sábado, 14 de febrero de 2026

Curso de DevOps: Automatización de la Implementación

Vamos a ver como automatizar la implementación, junto con los enfoques más destacados para implementarla. Es una tarea crítica: pues pone la aplicación a disposición del usuario final. Al adoptar DevOps y CloudOps, tendremos múltiples destinos donde implementar la aplicación. Necesitamos pues también automatizar la implementación porque las implementaciones manuales no siempre son consistentes en todos los entornos. Son lentas, no repetibles ni confiables. La implementación manual requiere un uso intensivo de recursos humanos, así como de infraestructura. Finalmente, las implementaciones manuales dificultan la colaboración, ya que solo la realizan unos pocos expertos. 

Por esta razón, necesitamos adoptar la implementación automatizada para lograr consistencia en todos los entornos, ser rápidos, minimizar el uso de recursos humanos repetidamente y, además, construir la colaboración adecuada mediante la implementación en un flujo de trabajo automatizado de CI/CD. Vamos a ver el proceso de automatización de la implementación, para lo cual necesitamos veremos varios componentes diferentes. Para empezar, necesitamos saber qué se debe automatizar. Es necesario automatizar el flujo de trabajo de implementación, las pruebas de integración, la configuración, la gestión y las implementaciones. También es necesario realizar un seguimiento de dónde y en qué objetivos se implementará, ya sea físico o virtual, local o en la nube. 

 

Curso de DevOps: Automatización de la Implementación

Es necesario realizar un seguimiento de la práctica de implementación. Esto se puede lograr mediante la adopción de implementaciones automatizadas rápidas y sin errores. Se puede utilizar un solo clic o herramientas que proporcionen una implementación continua con un solo clic. También se pueden seleccionar herramientas que proporcionen una implementación con una sola herramienta en todos los entornos. Por lo tanto, se puede tener una sola herramienta, un solo clic, y también se deben identificar varias métricas de implementación. Existen varios entornos diferentes donde se pueden utilizar las capacidades de implementación automatizada. Para empezar, se tienen los entornos SIT, QA, staging y producción. Debemos adoptar la herramienta adecuada de implementación continua, con un solo clic, para automatizar implementaciones sin errores, realizar un seguimiento de las métricas de implementación, identificar qué se debe automatizar y cuál es el objetivo de la implementación. 

Curso de DevOps: Automatización de la Implementación

A continuación veremos la práctica de la implementación continua mediante un pipeline. Tendremos desarrolladores que enviarán el código a VCS (Sistema de Control de Versiones). Tendremos un servidor de automatización de compilación que buscará cambios tan pronto como se identifiquen. Este servidor se encargará de compilar los cambios, realizar pruebas unitarias y finalizar la implementación. Esta implementación puede realizarse en un entorno de producción, un entorno de UAT o cualquier otro entorno de prueba. Sin embargo, debemos asegurarnos de crear un entorno de implementación independiente para las pruebas de aceptación, las pruebas de capacidad, las pruebas de aceptación del usuario y el entorno de producción. Finalmente, debemos identificar la automatización de la implementación y la estrategia que podemos adoptar para integrarla en DevOps. Comenzaremos con la planificación para definir el tipo de desarrollo, la estrategia y el objetivo de desarrollo. El siguiente paso siempre es implementar, probar y, finalmente, verificar. Por lo tanto, debemos seguir tres pasos importantes antes de definir el enfoque de automatización de la implementación. Se trata de planificar, implementar y probar adecuadamente las herramientas que utilizamos, ya sea desde una perspectiva de desarrollo o de operaciones. Finalmente, verificaremos el resultado de la automatización.

Con este post terminamos la automatización de DevOps, en el próximo comenzaremos con CICD.


sábado, 17 de enero de 2026

Curso de DevOps. Arquitecto de Automatización DevOps

 Vamos a ver el rol del arquitecto de automatización DevOps y sus responsabilidades críticas. Un arquitecto o ingeniero de automatización es responsable de gestionar y mantener el sistema de infraestructura mediante la automatización. 

Arquitecto de Automatización DevOps


Debe ser un buen comunicador y fomentar la colaboración. Debe comprender cómo y cuándo escalar automáticamente un sistema. También debe ser un buen mentor para asegurar que el equipo pueda escalar y comprender la implementación técnica de la automatización. Un ingeniero o arquitecto de automatización también es responsable de controlar los componentes integrales y garantizar que cualquier componente en el que trabaje esté alineado con el objetivo de la empresa. Y, por último, debe ser un colaborador experto. 

Arquitecto de Automatización DevOps

La responsabilidad del arquitecto de automatización es analizar, ejecutar y optimizar las prácticas de DevOps. También es responsable de adoptar los procesos de automatización adecuados con las herramientas adecuadas. Su responsabilidad es facilitar el proceso de desarrollo y las operaciones mediante la colaboración adecuada. Además, debe crear un canal DevOps adecuado en toda la organización o empresa. Finalmente, debe crear un entorno de desarrollo continuo para acelerar el proceso de desarrollo e implementación de aplicaciones. 

Arquitecto de Automatización DevOps

Para ser un arquitecto de automatización DevOps, ¿qué habilidades necesitamos? Necesitamos años de experiencia para comprender arquitecturas complejas y estar al día con las herramientas disponibles. Necesitamos la capacidad de construir la visión de la automatización. Un arquitecto de automatización DevOps posee una mentalidad de liderazgo inherente. Debe tener excelentes habilidades de comunicación. Y siempre debe estar al día con el conocimiento de las herramientas y tecnologías que se pueden utilizar para optimizar el nivel de automatización existente. Por último, debe tener un sólido conocimiento de automatización, DevOps, arquitectura y conceptos tecnológicos. Ahora, intentemos comprender la gestión práctica del arquitecto y DevOps. La gestión adecuada de las prácticas de DevOps, se puede lograr analizando, ejecutando y optimizando todos los procesos y prácticas de DevOps. También deberá automatizar los procesos con las herramientas adecuadas, facilitar el desarrollo y la operación de principio a fin, y establecer un canal y una cultura DevOps adecuados. Además, existen otras prácticas de DevOps que el arquitecto debe adoptar e implementar. Para empezar, debe tener la capacidad de configurar la compilación continua. También debe diseñar o rediseñar prácticas integrales y eficientes para aumentar la adaptabilidad de la automatización. Finalmente, debe guiar constantemente a los equipos de desarrollo y operación para garantizar que, ante cualquier problema, se gestione de forma colaborativa.



sábado, 13 de diciembre de 2025

Curso de Devops. El rol de la automatización en DevOps

La automatización es esencial al adoptar DevOps y su rol es aumentar la velocidad al reemplazar los procedimientos manuales por automatizados, lo que hace que la gestión de la infraestructura sea más eficiente, eficaz y automatizada. En segundo lugar, la automatización aporta consistencia, al garantizar que el marco de automatización verifique que cada servidor siga la política correcta y sea correcto desde la perspectiva del cumplimiento normativo. En tercer lugar, la escalabilidad, o la automatización, permite escalar verticalmente según la demanda. La automatización es un componente fundamental de cualquier estrategia que requiera el aprovisionamiento dinámico de infraestructura a medida que escala. La automatización permite un escalado elástico, ya sea que se opere en instalaciones locales, en la nube pública o en un entorno híbrido. Y, por último, la retroalimentación. Una vez automatizada la monitorización identificando las métricas adecuadas, se pueden generar alertas automáticas para mantener a los administradores informados sobre los problemas y poder reaccionar rápidamente.  Vamos a ver los objetivos de la automatización DevOps. Como arquitectos de automatización, al implementar la automatización y adoptar prácticas DevOps, necesitamos establecer ciertos objetivos.

 

El rol de la automatización en DevOps

El primero es proporcionar entornos de desarrollo, prueba y producción estandarizados. Además, debemos asegurarnos de proporcionar un sistema donde la automatización implemente y gestione eficazmente los recursos en la nube. El tercer objetivo de la automatización DevOps es lograr que todo el sistema esté libre de errores. En resumen, debería eliminar las tareas manuales propensas a errores y que consumen mucho tiempo. El cuarto objetivo importante es mejorar la cooperación entre los equipos de desarrollo y operaciones y, finalmente, implementar canales de lanzamiento automatizados con un sistema de control de versiones adecuado. 

 

El rol de la automatización en DevOps

A continuación echaremos un vistazo  a las características de la plataforma de automatización DevOps. Al seleccionar una plataforma de automatización, debemos buscar sus características. En primer lugar, debe ser escalable. La infraestructura tiende a volverse cada vez más compleja con el tiempo. Para garantizar la escalabilidad, nuestra plataforma de automatización debe ser distribuida en lugar de tener una arquitectura centralizada. La segunda característica que debemos buscar en una plataforma de automatización DevOps es su capacidad de tolerancia a fallos. Es necesario determinar su rapidez de recuperación ante problemas. Por ejemplo, su rapidez de recuperación ante una falla de red o la necesidad de reiniciar un sistema para mantenimiento. La tercera característica importante que debemos buscar en una plataforma de automatización DevOps será una o evaluación desde la perspectiva de la implementación de la seguridad. Una aplicación empresarial tendrá múltiples plataformas y nuestra plataforma de automatización DevOps deberá ser capaz de gestionarlas para garantizar que también se automaticen diversas aplicaciones. También debemos buscar la capacidad de gestionar sistemas heredados como parte de nuestro marco de automatización. Si nos comprometemos a gestionar sistemas heredados, debemos ser capaces de gestionarlos. Y finalmente, identificaremos si nuestra plataforma de automatización DevOps es compatible con la nube. En otras palabras, siempre deberíamos optar por una plataforma de automatización DevOps habilitada para la nube. 

 

Arquitectura de roles en DevOps

Finalmente, veremos cómo debería ser la arquitectura de automatización DevOps. Para ser precisos, debemos cuidar tres elementos importantes: el nodo, las políticas y el estado. Siempre debemos solicitar las políticas actuales que deben aplicarse al nodo. Debemos identificar cuál es el estado actual del nodo desde la perspectiva del cumplimiento de las políticas y, finalmente, debemos estar siempre en una situación donde podamos obtener el estado actual del nodo. Por lo tanto, al utilizar un servidor de automatización, debemos comprender cómo se gestionan estas tres dimensiones: estado, políticas y nodo.


sábado, 15 de noviembre de 2025

Código limpio en SQL

Para escribir consultas SQL legibles y de calidad, como ejemplos de buenas prácticas. Ejemplos  de formato y ortografía de palabras clave y nombres de tablas y columnas:

SELECT Nombre, Apellido FROM Empleados WHERE Salario > 500;

Los nombres deben describir lo que se almacena en su objeto. Esto implica que los nombres de las columnas normalmente deben estar en singular. Si los nombres de las tablas deben usar singular o plural es una cuestión muy discutida, pero en la práctica, es más común usar nombres de tabla en plural. 

Agregar prefijos o sufijos como tbl o col reduce la legibilidad, por lo que se deben evitar. Sin embargo, a veces se usan para evitar conflictos con palabras clave de SQL y, a menudo, se usan con activadores e índices (cuyos nombres generalmente no se mencionan en las consultas). 

Código limpio en SQL


Palabras clave 

Las palabras clave de SQL no distinguen entre mayúsculas y minúsculas. Sin embargo, es una práctica común escribirlas en mayúsculas. 

SELECT * 

devuelve todas las columnas en el mismo orden en que están definidas en la tabla. Al usar SELECT *, los datos devueltos por una consulta pueden cambiar siempre que cambie la definición de la tabla. Esto aumenta el riesgo de que las diferentes versiones de nuestra aplicación y nuestra base de datos sean incompatibles entre sí. Además, leer más columnas de las necesarias puede aumentar la cantidad de E/S de disco y red. Por tanto, siempre debemos especificar explícitamente las columnas que realmente deseamos recuperar:

 SELECT ID, Nombre, Apellido1, Apellido2, N_Telefono FROM Empleados;

(Al realizar consultas interactivas, estas consideraciones no se aplican). Sin embargo, SELECT * no daña en la subconsulta de un operador EXISTS, porque EXISTS ignora los datos reales de todos modos (solo verifica si se ha encontrado al menos una fila). 

Por la misma razón, no tiene sentido enumerar columnas específicas para EXISTS, por lo que SELECT * en realidad tiene más sentido en este caso concreto: 

Ejemplo: enumerar los departamentos en los que no se contrató a nadie recientemente 

SELECT ID, Nombre FROM Departamentos WHERE NOT EXISTS (SELECT * FROM Empleados WHERE IDDepartamento = Departmento.ID AND FechaContrato >= '2015-01-01'); 

No existe un estándar ampliamente aceptado sobre las sangrías. En lo que todos están de acuerdo es en que meter todo en una sola línea es malo. Como mínimo, colocaremos cada cláusula en una nueva línea y dividiremos las líneas si se vuelven demasiado largas.

A veces, todo lo que sigue a la palabra clave SQL que introduce una cláusula se sangra en la misma columna: 

SELECT d.Nombre,

COUNT(*) AS Empleados

FROM Departamentos AS d

JOIN Empleados AS e ON d.ID = e.DepartamentoID

WHERE d.Nombre != 'HR'

HAVING COUNT(*) > 10

ORDER BY COUNT(*) DESC;

Esto también se puede hacer mientras se alinean correctamente las palabras clave de SQL. Otro estilo común es colocar palabras clave importantes en sus propias líneas: 

SELECT

d.Nombre,

COUNT(*) AS Empleados

FROM

Departamentos AS d

JOIN

Empleados AS e

ON d.ID = e.DepartamentoID

WHERE

d.Nombre != 'HR'

HAVING

COUNT(*) > 10

ORDER BY

COUNT(*) DESC;

La alineación vertical de múltiples expresiones similares mejora la legibilidad: 

SELECT Modelo, IDEmpleado 

FROM Coches 

WHERE IDCliente = 42 

AND Status = 'Listo'; 

El uso de múltiples líneas dificulta la incorporación de comandos SQL en otros lenguajes de programación. Sin embargo, muchos lenguajes tienen un mecanismo para cadenas de varias líneas, por ejemplo, @"..." en C#, """...""" en Python o R"(...)" en C++. 

JOINS

Siempre se deben utilizar uniones explícitas; las uniones implícitas tienen varios problemas: La condición de unión está en algún lugar de la cláusula WHERE, mezclada con cualquier otra condición de filtro. Esto hace que sea más difícil ver qué tablas se unen y cómo. Debido a lo anterior, existe un mayor riesgo de errores y es más probable que se encuentren más tarde.  En SQL estándar, las uniones explícitas son la única forma de utilizar uniones externas: 

SELECT d.Nombre, e.FNombre || e.LNombre AS EmpNombre 

FROM Departamentos AS d 

LEFT JOIN Empleados AS e ON d.ID = e.IDDepartamento; 

Las uniones explícitas permiten usar la cláusula USING: 

SELECT IDReceta, Receta.Nombre,  COUNT(*) AS NumeroDeIngredientes 

FROM Recetas

LEFT JOIN Ingredientes USING (IDReceta); 

(Esto requiere que ambas tablas usen el mismo nombre de columna. USING elimina automáticamente la columna duplicada del resultado, p. ej., la unión en esta consulta devuelve una sola columna IDReceta). 


sábado, 11 de octubre de 2025

Curso de SQL. Cláusulas EXPLAIN and DESCRIBE

DESCRIBE nombre_tabla

DESCRIBE y EXPLAIN son sinónimos. DESCRIBE en un nombre de tabla devuelve la definición de las columnas.

DESCRIBE tablename;

Ejemplo de resultado:

COLUMN_NAME COLUMN_TYPE IS_NULLABLE COLUMN_KEY COLUMN_DEFAULT EXTRA

id int(11) NO PRI 0

auto_increment

test varchar(255) YES (null)

Curso de SQL.  Cláusulas EXPLAIN and DESCRIBE



Muestra los nombres de las columnas, seguidos del tipo de columna, si se permite nulo en la columna y si la columna utiliza un índice. También se muestra el valor predeterminado y si la tabla contiene algún comportamiento especial como un  auto_increment.

EXPLAIN Select query

Un EXPLAIN delante de una consulta de selección muestra cómo se ejecutará la consulta. De esta manera veremos si la consulta utiliza un índice o si podríamos optimizar la consulta agregando un índice.

Ejemplo de query:

explain select * from usuarios join data on usuarios.test = data.fk_usuarios;

Ejemplo de resultado:

id select_type table type possible_keys key key_len ref rows Extra

1 SIMPLE user index test test 5 (null) 1 Using where;

Usando índice

1 SIMPLE data ref fk_user fk_user 5 user.test 1 (null)

En el tipo se ve si se utilizó un índice. En la columna posible_keys podemos ver si el plan de ejecución puede elegir entre diferentes índices o si no existe ninguno.  La clave nos indica el índice real utilizado. Key_len muestra el tamaño en bytes de un elemento de índice. Cuanto menor sea este valor, más elementos del índice encajarán en el mismo tamaño de memoria y se pueden procesar más rápido. Rows muestra el número esperado de filas que la consulta debe escanear, cuanto más bajas, mejor.


sábado, 13 de septiembre de 2025

Curso de DevOps. DevOps y automatización

Vamos a ver los principios clave de DevOps junto con el enfoque de automatización del proceso de DevOps mediante tecnologías de integración. Como arquitecto de automatización, necesito entender por qué deberíamos adoptar DevOps. DevOps aporta características valiosas no solo en la cultura, sino también en los procesos que se adoptan y que se pueden automatizar. Por lo tanto, responderemos primero por qué debemos optar por DevOps. Necesitamos optar por DevOps porque la organización enfrenta la falta de colaboración. 

 

DevOps y automatización

Debido a que hay muchos, encontraremos falta de sincronización entre los procesos, lo que automáticamente genera pérdida de productividad, porque la colaboración no es adecuada, los procesos no están sincronizados, tendremos mayores costos y gastos generales. Aparte de eso, encontraremos múltiples facturas y eso creará riesgos para las implementaciones. Y siempre que se apliquemos un cambio, descubriremos que los cambios son difíciles de gestionar y rastrear en caso de que no hayamos adoptado DevOps. Una vez que adoptemos DevOps, nos daremos cuenta de ciertos beneficios porque DevOps cree en el enfoque colaborativo, también proporciona un marco que nos ayuda a crear procesos optimizados y automatizados. Cada actividad es medible.

DevOps y automatización


Aparte de eso, todos los procesos son ejecutables. También proporciona una entrega rápida al adoptar el mecanismo de ciclo de retroalimentación y entrega continua de DevOps. Otro beneficio que obtenemos una vez que adoptamos DevOps es el monitoreo constante que proporciona un producto de calidad. 

DevOps y automatización


Una vez que hemos adoptado DevOps, debemos automatizar varios procesos. Los beneficios que obtendremos una vez que automaticemos los procesos, son: 

El primer beneficio es un tiempo de comercialización más rápido porque proporciona una implementación rápida y una comunicación fácil que permite que el producto ingrese al mercado rápidamente. También elimina el aislamiento, reúne a todos los equipos aislados. Ya sea desarrollo, pruebas u operaciones, trabajan de la mano, construyendo un canal de comunicación adecuado entre ellos. En tercer lugar, una vez que automaticemos, DevOps, podrá automatizar flujos de trabajo de extremo a extremo, que son una parte esencial de la cadena de desarrollo e implementación. La integración continua también agrega valor. Tendrá múltiples procesos diferentes, como la creación de código y las pruebas, que se pueden automatizar, y esta automatización mejora la productividad del ciclo de vida de DevOps. Si automatizamos la supervisión, podremos obtener informes en tiempo real y podremos identificar problemas y resolverlos rápidamente. Y, por último, podrá mitigar el riesgo automáticamente escribiendo varias reglas diferentes, que activarán acciones correctivas cada vez que ocurra un problema en particular. 

También ayuda a reducir costos al utilizar la mano de obra adecuada para el trabajo adecuado. 

DevOps y automatización

Por último, el enfoque de evaluación y entrega de la automatización, comienza con el aprovisionamiento de infraestructura. También debemos asegurarnos de que, si estamos automatizando el lanzamiento de software, realicemos una evaluación adecuada adoptando el enfoque de entrega correcto. Las pruebas se pueden automatizar, pero la evaluación es lo que nos ayudará a identificar qué casos de prueba se pueden automatizar, la automatización selectiva de la implementación en caso de que sea obligatorio mantener la aprobación manual antes de la implementación y omitir esa parte particular de la automatización. Las tareas de seguridad centrales también deben automatizarse y, después de la automatización, realizaremos una evaluación para asegurarnos de que se ajusta a las reglas de seguridad que intentamos aplicar. Por último, debemos aplicar políticas de cumplimiento y gestión de configuración. Una vez que hayamos aplicado nuestras políticas y hayamos adoptado una técnica de gestión de configuración en particular, realizaremos una evaluación de automatización adecuada para asegurarnos de obtener el resultado correcto.