sábado, 15 de marzo de 2025

Curso de DevOps: Automatización VIII. Componentes de una plataforma de automatización

Vamos a recordar los componentes de la plataforma de automatización, junto con las ventajas de utilizar una plataforma frente a un sistema de scripts aislados para tareas de administración del sistema. Hay diferentes enfoques que podemos adoptar para automatizar nuestros sistemas. Uno de ellos es adoptar la plataforma de automatización. El segundo es optar por el script de automatización. Intentemos comprender la arquitectura centrándonos en los componentes de esta.

 

Curso de DevOps: Automatización VIII. Componentes de una plataforma de automatización

Hay cuatro capas importantes. La primera capa es la base que proporciona la infraestructura. Puede ser NSX, vSphere o también puede ser vSAN. La segunda capa tiene que ver con operaciones en las que podemos utilizar componentes como vRealize Log Insight o incluso vRealize Operations Manager. Hay que seleccionar componentes que puedan gestionar las operaciones de nuestra plataforma de automatización. Después necesitamos una plataforma de gestión en la nube, que pueda funcionar con la automatización del orquestador. vRealize proporciona componentes como vRealize Orchestrator y vRealize Automation para administrar nuestra plataforma en la nube. Y, por último, es necesario identificar escenarios que representen qué modelos de negocio se pueden automatizar. Y eso se puede hacer utilizando vRealize Business o vRealize Hyperic. Existen varias herramientas externas diferentes que se pueden utilizar para crear escenarios.

 

Curso de DevOps: Automatización VIII. Componentes de una plataforma de automatización

Ahora, debemos centrarnos en utilizar un flujo de trabajo de automatización. Puede haber una desviación respecto a nuestro flujo de trabajo de automatización. Estamos adoptando un flujo de trabajo de automatización que se ha implementado prácticamente en varios escenarios. Para empezar, primero debemos utilizar un formato de diseño validado proporcionado por un proveedor. Por ejemplo, podemos tomar la base de VMware Validated Design. Esto nos ayudará a clasificar primero el tipo de implementación. Ahora hay tres posibilidades diferentes de tipo de implementación. La primera es una región única, la segunda es una región dual y la tercera es una región cruzada que utiliza UDLR. Necesitamos entender que una sola región siempre se preparará para una región particular, digamos, la región Y, como se indica en la ilustración. Podemos utilizar estas regiones para realizar la implementación de varios escenarios que están presentes en una región en particular. Podemos completar la región Z. Cuando tenemos una región dual, tenemos que realizar todas las tareas de una sola región y luego necesitaremos preparar la región X. En resumen, estamos preparando dos regiones diferentes y luego estas implementarán los escenarios. Cuando vayamos a una región cruzada con UDLR, realizaremos un escenario con UDLR. No realizaremos un escenario preparando un escenario explícito para regiones específicas.

 

Curso de DevOps: Automatización VIII. Componentes de una plataforma de automatización

Ahora bien, ¿cuales son las ventajas de utilizar una plataforma de automatización? En primer lugar, la alta disponibilidad de los componentes de gestión porque están debidamente probados. Proporciona copia de seguridad y restauración simplificada de los componentes de administración, monitoreo y alertas configurables y configuración basada en UI de recuperación ante desastres de los componentes de administración.

 

Curso de DevOps: Automatización VIII. Componentes de una plataforma de automatización

Finalmente, necesitamos clasificar los beneficios de la plataforma de scripts. El primer beneficio es la compatibilidad con el ritmo del ciclo de desarrollo. Costo de mantenimiento más económico y proporciona automatización de escala incorporada. También proporciona la capacidad de ampliar el alcance de la automatización. Y, por último, proporciona una adopción mejorada con automatización de pruebas sin código donde, en el caso de un script, es necesario escribir código. Depende de un intérprete particular para interpretar el código. También es necesario probarlo aplicando varios tipos diferentes de pruebas.

 

sábado, 1 de marzo de 2025

Curso de SQL. Filtrar resultados usando HAVING

A diferencia de la cláusula WHERE, HAVING se puede utilizar con funciones agregadas. Una función agregada es una función donde se agrupan los valores de varias filas juntos como información sobre ciertos criterios para formar un valor único de significado más significativo o medición.

Las funciones agregadas comunes incluyen COUNT(), SUM(), MIN() y MAX().

Este ejemplo utiliza la tabla Coches de una base de datos de ejemplo.

SELECT IdCliente, COUNT(Id) AS [Numero de Coches] FROM Coches

GROUP BY IdCliente HAVING COUNT(Id) > 1

Esta consulta devolverá el ID de cliente y el número de coches de cualquier 
cliente que tenga más de uno. En este caso, hay dos clientes que tienen 
más de uno, el 1 y el 4, el cliente 1 tiene 2 coches y el cliente 4 tiene 3 coches.



Los resultados se verán así:
Id. de cliente Número de Coches

stomerId ProductId Quantity Price

1                   2

4                   3

También se puede utilizar HAVING para comprobar si hay clientes que hayan pedido dos productos determinados. Por ejemplo en este caso se quiere saber los clientes que han pedido el producto con Id = 2 e Id = 3.

SELECT IdCliente FROM Pedidos WHERE IdProducto in (2,3)

GROUP by IdCliente HAVING count(distinct IdProducto) = 2

La consulta selecciona solo registros con los IdProducto 2 y 3 y con la cláusula
 HAVING busca solo los clientes que hayan pedido ambos IdProducto  
y no solo uno.
Otra posibilidad sería

SELECT IdCliente FROM orders GROUP BY IdCliente HAVING SUM(CASE WHEN IdProducto = 2 THEN 1 ELSE 0 END) > 0 AND SUM(CASE WHEN productID = 3 THEN 1 ELSE 0 END) > 0 

Esta consulta selecciona solo grupos que tengan al menos un registro con 
IdProducto =  2 y al menos uno con IdProducto = 3.