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.




sábado, 16 de agosto de 2025

Curso de DevOps. Adoptando la Automatización II. Evaluación de la automatización

Vamos a describir las ventajas, desventajas y mejores prácticas de automatización que necesitamos aplicar para operaciones de IT productivas. Como arquitectos de automatización, debemos enfocarnos en comprender el sistema existente. Una vez que realicemos un estudio adecuado del sistema, tendremos que identificar los elementos que se pueden automatizar. Todo elemento que se necesita automatizar debe brindar algún beneficio a la empresa.


Ventajas

Por lo tanto, existen ciertas ventajas comunes de la automatización, que cuando se aplican, las empresas lo comprenderán. Y la primera ventaja es la reducción de errores. La automatización garantiza la consistencia a gran escala, lo que no es posible para las personas que operan manualmente. La segunda ventaja importante es el ahorro de tiempo y costos, con la automatización de TI podemos optimizar el uso de recursos porque la automatización puede aumentar la productividad. También puede reducir el costo de infraestructura al optimizar la utilización de recursos y, por lo tanto, disminuye el costo asociado con la infraestructura y los recursos. La tercera ventaja importante de la automatización es el ahorro de tiempo. Sus operaciones son rápidas, se puede acelerar el funcionamiento del centro de datos y la nube, reduciendo el tiempo de entrega de servicios y recursos de semanas a horas. Y el cuarto beneficio importante de la automatización que obtienen las empresas está relacionado con la seguridad. Los procesos automatizados requerirán menos personas para ver información confidencial, lo que reduce la posibilidad de infracciones. Además, la automatización de IT también se puede utilizar para ayudar al equipo de IT a mantener un sistema de respuesta a incidentes en funcionamiento. Como arquitecto de automatización.


Desventajas

También debemos centrarnos en cuáles serán las desventajas de la automatización y en qué medida las empresas se verán afectadas por esas desventajas. La primera desventaja está relacionada con la inversión inicial. Si bien la automatización de IT puede ahorrar costos, también puede implicar una inversión inicial sustancial en la que es necesario comprar software y configurar la automatización. La segunda es el aumento de las consecuencias de los errores. Todos sabemos que la automatización reduce en gran medida la posibilidad de error humano. Pero debido a que la automatización es tan rápida y poderosa, cualquier error automatizado que ocurra puede causar a veces más daño que los manuales. Por lo tanto, debemos ser cuidadosos al adoptar la automatización en la empresa. Finalmente, la tercera desventaja está relacionada con la inflexibilidad que surge en su arquitectura existente. El proceso automatizado por sí solo no maneja bien el cambio, y muchas herramientas de automatización están diseñadas para un propósito específico y limitado, lo que las limita a esa funcionalidad en particular. Por lo tanto, debemos ser cuidadosos al seleccionar herramientas y asegurarnos de que se adapten a nuestra arquitectura existente. 


Mejores prácticas

Una vez que hemos decidido adoptar la automatización, existen unas mejores prácticas que debemos seguir. La primera es decidir y derivar la automatización para objetivos comerciales específicos. Debemos poder identificar el retorno de la inversión que brindará a nuestra empresa una vez que se adopte la automatización. 

Evaluación de la automatización
 

La segunda es elegir siempre herramientas flexibles. Cuando seleccionemos una caja de herramientas de automatización, debemos centrarnos siempre en la flexibilidad, la simplicidad y la facilidad de uso. La tercera es no adoptar nunca un enfoque a corto plazo, sino pensar siempre a largo plazo y comenzar siempre de forma incremental. No debemos automatizar todo a la vez. Primero debemos identificar, crear una secuencia particular de automatización, probar después de la automatización cada unidad funcional, así como la unidad operativa, y luego avanzar. La cuarta práctica recomendada importante que debemos adoptar es considerar la posibilidad de formar un equipo dedicado. Debemos poner todo su esfuerzo en documentar el trabajo de automatización. Por último, siempre hay que documentar el proceso automatizado, ya que ayuda al equipo a resolver los problemas si vuelven a aparecer en un entorno automatizado. 

Evaluación de la automatización

Enmarcaremos y crearemos un marco para la automatización estratégica en función de las necesidades de la empresa. Y para ello, tenemos que empezar por identificar la visión y la estrategia de la empresa para implementarlo y automatizarlo. El segundo paso importante debería ser siempre identificar la capacidad de la empresa y el impacto de la automatización. El tercer paso importante es identificar las tecnologías. Es necesario identificar siempre las metodologías y tecnologías de IT que se van a utilizar para la automatización. El cuarto paso es la gobernanza. Hay que asegurarse de que la estructura y los procesos organizativos se gestionen para derivar un modelo operativo compatible. El quinto paso es importante. Tiene que ver con la medición, el análisis y la planificación financiera. Eso nos ayudará a gestionar adecuadamente las finanzas que se van a generar como resultado de la automatización. El sexto paso tiene que ver con el desarrollo y la implementación. Hay que identificar los procesos y los recursos que intervienen en el desarrollo y la implementación del marco de automatización. Y, por último, hay que comprobar la preparación y la sostenibilidad de la organización. Y si es necesario, hay que comunicar, capacitar y desarrollar una estrategia de soporte adecuada para garantizar que la empresa pueda adoptar la automatización en los niveles requeridos.