sábado, 31 de mayo de 2025

Curso de DevOps: Automatización X. Configurar un entorno de automatización

En este último post de la serie vamos a configurar un entorno de automatización de principio a fin para el mecanismo de entrega impulsado por DevOps. Hay varias formas diferentes que se pueden utilizar para configurar un entorno de automatización. Es necesario contar con una gestión de configuración adecuada mediante Puppet o Chef. Y también debemos tener la capacidad de gestionar todos los módulos que se implementarán en la infraestructura aprovisionada y gestionada por Puppet o Chef. Tomaremos un ejemplo que proporcione un entorno de automatización de principio a fin configurado para un mecanismo de entrega impulsado por DevOps. Vamos a utilizar GitLab. Iniciaremos GitLab ien un navegador y especificando https://gitlab.com. También Podemos tener instalado GitLab en nuestras propias instalaciones o podemos utilizar la versión en la nube.

 

Curso de DevOps: Automatización X. Configurar un entorno de automatización

Hemos iniciado sesión en la versión en la nube. Crearemos nuestro proyecto, para hacer eso, haremos clic en el botón Nuevo proyecto de la parte superior derecha de la página web.

Haremos clic en él, GitLab nos ofrece varias opciones diferentes para crear un nuevo proyecto. Podemos  crear un proyecto en blanco, Crear desde plantilla, Importar proyecto existente o Ejecutar CI/CD para repositorios externos.

Haremos clic en Ejecutar CI/CD para repositorios externos.

Curso de DevOps: Automatización X. Configurar un entorno de automatización

Esto nos llevará a una página donde podremos decidir si deseas conectar el repositorio desde GitHub o mediante URL.

Curso de DevOps: Automatización X. Configurar un entorno de automatización


Haremos clic en GitHub. Una vez hecho clic en GitHub, nos autenticaremos con GitHub.

 

Curso de DevOps: Automatización X. Configurar un entorno de automatización

Nos pedirá que GitHub autorice a GitLab para que poder tener acceso a todos los repositorios de GitHub. Que incluso puede contener infraestructura como código para automatizar el aprovisionamiento de infraestructura. Debemos ir a nuestro GitHub y obtener un token de acceso personal. Después de obtener el token de acceso personal, debemos pegarlo y hacer clic en el botón autenticar, que se encuentra en la esquina derecha de la página actual. Ahora tenemos que decidir a qué repositorio conectarnos. Por ejemplo, podemos ir hacer clic en Conectar donde tenemos una muestra de Kubernetes. Haremos clic en Conectar.

Curso de DevOps: Automatización X. Configurar un entorno de automatización

Una vez hecho clic en conectar, comenzará a ejecutarse y podremos ver claramente el estado. Ahora el estado cambia a Listo, ahora tenemos la parte del repositorio de nuestro GitLab.

 

Curso de DevOps: Automatización X. Configurar un entorno de automatización

Haremos clic en Ir al proyecto

Curso de DevOps: Automatización X. Configurar un entorno de automatización

Hecho esto, encontraremos un panel de control donde tendremos el panel de navegación izquierdo, que nos ayudará a utilizar el repositorio de GitHub e implementar el proceso de escritura de CI/CD con función de automatización. El panel de navegación izquierdo contiene las siguientes opciones: descripción general del proyecto, repositorio, CI/CD, operaciones, etc.

 

Curso de DevOps: Automatización X. Configurar un entorno de automatización

Podemos pulsar sobre cualquiera de estas actividades. Por ejemplo, hacemos clic en CI/CD, se iniciará la página CI/CD, lo que nos facilitará la creación de canalizaciones. (pipelines)

El panel de contenido muestra un título en el centro, debajo del encabezado aparece un botón con la etiqueta: canalizaciones. (pipelines).

 

Curso de DevOps: Automatización X. Configurar un entorno de automatización

Al seleccionar el botón: Comenzar con canalizaciones, aparece una página titulada: Construir con confianza. GitLab CI/CD. Una vez que hagamos clic, en comenzar con las propiedades (Get started with propierties) nos proporcionará documentación que podremos utilizar para crear y automatizar varios tipos diferentes de actividades que requieren los ingenieros de DevOps.

Curso de DevOps: Automatización X. Configurar un entorno de automatización


Nos desplazamos hacia abajo en la página. La página muestra dos tarjetas, tituladas: Corredores específicos y Corredores compartidos. La tarjeta "Corredores específicos" contiene el botón: Instalar Runner en Kubernetes. Lo pulsamos  para configurarlo automáticamente.

 

Curso de DevOps: Automatización X. Configurar un entorno de automatización

Podemos hacer clic en Instalar corredor en Kubernetes. Nos proporcionará documentación que nos ayudará a decidir cómo podemos automatizarlo,  podemos iniciar la ejecución automáticamente. Así es como utilizar GitLab como  plataforma  para configurar un entorno de automatización de principio a fin.

Resumen del curso

En este curso, hemos examinado cómo identificar tareas clave y procesos comerciales para la automatización.  Configurar entornos de automatización de principio a fin. Hemos explorando el concepto de automatización de TI. Las tareas y procesos clave que se pueden automatizar para obtener valor del modelado de negocios. Junto con el ciclo automatizado de entrega de TI y su impacto en la gestión y el monitoreo de TI. El papel de la automatización de procesos, la automatización robótica de procesos y la automatización de servicios en la creación de flujos de valor para la entrega de TI empresarial de principio a fin junto con los beneficios de implementar sistemas de información conscientes de los procesos. Las características clave, el núcleo y el componente de administración que debemos considerar al configurar un sistema de automatización multiplataforma. Los atributos técnicos de la automatización, el papel del flujo de trabajo de DevOps para satisfacer las demandas de la economía digital. Y las herramientas destacadas que podemos utilizar para facilitar los entornos de automatización. Cómo configurar un entorno de automatización de un extremo a otro para un mecanismo de entrega impulsado por DevOps.

 

 

sábado, 17 de mayo de 2025

Curso de PL/SQL. Bucles con FOR LOOP

Curso de PL/SQL. Bucles con FOR LOOP

En PL/SQL, los bucles o ciclos son estructuras de control que permiten ejecutar un bloque de código repetidamente. Uno de los tipos más comunes de bucle es el FOR LOOP, que resulta muy útil cuando sabemos cuántas veces necesitamos repetir una tarea. A continuación, veremos cómo funciona y algunos ejemplos prácticos de su uso.

¿Qué es un FOR LOOP en PL/SQL?

El FOR LOOP en PL/SQL se utiliza para iterar sobre un rango de valores. Cada iteración incrementa automáticamente el contador del ciclo sin que el programador tenga que preocuparse por actualizarlo manualmente. Este tipo de bucle es ideal cuando conocemos el número de iteraciones por adelantado.

El formato básico del bucle FOR LOOP es:

FOR contador IN [rango] LOOP

   -- Código que se ejecutará en cada iteración

END LOOP;

Curso de PL/SQL. Bucles con FOR LOOP


Componentes:

  • contador: Es la variable que se incrementa automáticamente con cada iteración.
  • rango: Define el inicio y el fin del bucle. Puede ser ascendente o descendente.
  • cuerpo del bucle: Es el bloque de código que se ejecuta en cada iteración.

Ejemplo básico

Un ejemplo típico sería imprimir los números del 1 al 5:

BEGIN

   FOR i IN 1..5 LOOP

      DBMS_OUTPUT.PUT_LINE('El valor de i es: ' || i);

   END LOOP;

END;

Explicación:

  • El bucle comienza con la variable i igual a 1.
  • En cada iteración, i se incrementa automáticamente en 1.
  • Se ejecuta el código dentro del bucle, que en este caso imprime el valor de i en cada vuelta.
  • El ciclo se detiene cuando i llega a 5, luego de ejecutar la última iteración.

Resultado:

El valor de i es: 1

El valor de i es: 2

El valor de i es: 3

El valor de i es: 4

El valor de i es: 5

Rango descendente

El FOR LOOP en PL/SQL también permite rangos descendentes. Si quieres ejecutar un ciclo hacia atrás, puedes utilizar el siguiente formato:

BEGIN

   FOR i IN REVERSE 5..1 LOOP

      DBMS_OUTPUT.PUT_LINE('El valor de i es: ' || i);

   END LOOP;

END;

Explicación:

  • Utilizamos la palabra clave REVERSE para que el bucle decremente el valor de i en lugar de incrementarlo.
  • El ciclo comenzará en 5 y finalizará cuando i sea 1.

Resultado:

El valor de i es: 5

El valor de i es: 4

El valor de i es: 3

El valor de i es: 2

El valor de i es: 1

Ejemplo práctico: Insertar registros en una tabla

Supongamos que tenemos una tabla llamada EMPEADOS y queremos agregar 5 registros de prueba utilizando un FOR LOOP en PL/SQL.

BEGIN

   FOR i IN 1..5 LOOP

      INSERT INTO EMPLEADOS (EMPLEADO_ID, NOMBRE)

      VALUES (i, 'Empleado ' || i);

   END LOOP;

   COMMIT;

END;

Explicación:

  • El bucle se ejecuta 5 veces, insertando un nuevo registro en la tabla EMPLEADOS en cada iteración.
  • La columna EMPLEADO_ID toma el valor de i, y la columna NOMBRE concatena el número de empleado.
  • Finalmente, el bloque termina con una sentencia COMMIT para asegurarse de que los cambios se guarden en la base de datos.

Resultado:

La tabla EMPLEADOS tendría 5 registros nuevos:

EMPLEADO_ID

NOMBRE

1

Empleado 1

2

Empleado 2

3

Empleado 3

4

Empleado 4

5

Empleado 5

Consideraciones importantes:

  • Los rangos en un FOR LOOP deben ser enteros. No se pueden utilizar valores decimales o no numéricos como rangos.
  • Un FOR LOOP siempre ejecutará las iteraciones en un orden predecible y fijo. Esto lo hace perfecto para tareas repetitivas donde se necesita controlar exactamente cuántas veces se ejecuta el ciclo.

Conclusión

El FOR LOOP en PL/SQL es una herramienta poderosa y eficiente para realizar tareas repetitivas cuando el número de iteraciones está claramente definido. Desde recorrer un rango de valores hasta realizar operaciones masivas en la base de datos, el FOR LOOP te permite escribir código limpio y fácil de mantener. 

jueves, 1 de mayo de 2025

Curso de DevOps. Automatización IX. Herramientas para la automatización

Uno de los requisitos esenciales es seleccionar la herramienta de automatización adecuada. Y para eso necesitamos saber qué es necesario automatizar y a qué  categoría pertenece. Hemos clasificado en dos categorías importantes. Primero como herramienta de automatización de procesos de negocio. En segundo lugar como herramienta de automatización de infraestructura.

 

Curso de DevOps. Automatización IX. Herramientas para la automatización

Vamos a enumerar ciertas herramientas que se pueden utilizar para la automatización de procesos comerciales. Para empezar, tenemos Blue Prism, s UiPath, Automation Anywhere y Pega. Estas son algunas de las herramientas esenciales que son populares en el mercado y se utilizan para la automatización de procesos comerciales.

 

Curso de DevOps. Automatización IX. Herramientas para la automatización

Podemos comparar Blue Prism, UiPath, Automation Anywhere y Pega utilizando ciertos escenarios de uso. Blue Prism proporciona capacidades básicas. UiPath también proporciona capacidades básicas, Automation Anywhere es similar a UiPath y Blue Prism proporciona capacidades básicas. Pero Pega viene con capacidades de gestión de procesos comerciales. Desde la perspectiva de la independencia de la plataforma. Blue Prism es compatible con cualquier plataforma, UiPath es compatible con cualquier plataforma y también es compatible con Citrix. Automation Anywhere es local y en la nube. Pega es un servidor de escritorio. En cuanto a la facilidad de uso, Blue Prism es fácil de usar para los desarrolladores. UiPath proporciona una interfaz que pueden utilizar incluso quienes no son desarrolladores, lo mismo ocurre con Automation Anywhere y Pega.

Desde la perspectiva de costos, Blue Prism tiene un costo en torno a 15.000 a 18.000 € al año. UiPath es gratis. Automation Anywhere tiene diferentes modelos de cálculo de costos que dependen del sistema local y de la nube. Pega comienza desde 200 € al mes.

Respecto a la escalabilidad, Blue Prism no compromete la escalabilidad. UiPath, Automation Anywhere proporciona escalabilidad. Pero cuando se trata de Pega, es escalable a nivel empresarial porque solo proporciona versiones de servidores de escritorio.

 

Curso de DevOps. Automatización IX. Herramientas para la automatización

Ahora vamos a repasar las herramientas de automatización de infraestructura. Para empezar tenemos Docker, Puppet, Chef, Ansible y Kubernetes. Son cinco herramientas importantes, vamos a ver se puede hacer con cada una de ellas y  para qué. Docker es una tecnología de contenedores. Puppet, Chef, Ansible y Kubernetes son herramientas de gestión de configuración. Docker soporta Go. Puppet, utiliza el lenguaje específico del dominio Ruby, Chef, utiliza Ruby y Erlang. Ansible está escrito en Python y admite scripts de Python y finalmente Kubernetes se maneja en Go.

Docker, es más fácil de administrar, comprender y aislar, generalmente la tecnología de contenedorización es difícil para principiantes. Chef es complejo desde la perspectiva del desarrollo, porque necesitamos conocer Ruby. Ansible proporciona un enfoque sencillo para la gestión de la configuración. Y Kubernetes requiere mucha planificación para poder configurarlo.

 

sábado, 12 de abril de 2025

Curso de PL/SQL. Control de Flujo con IF-THEN-ELSE en PL/SQL

En el mundo de PL/SQL, una de las herramientas más importantes para controlar el flujo de nuestro programa es la estructura IF-THEN-ELSE. Esta  permite tomar decisiones dentro de nuestros bloques de código, ejecutando ciertas acciones cuando se cumple una condición y otras cuando no se cumple.

¿Qué es IF-THEN-ELSE?

La estructura IF-THEN-ELSE se utiliza para ejecutar diferentes bloques de código dependiendo del resultado de una condición lógica. Esta estructura es muy similar a la de otros lenguajes de programación, pero se adapta específicamente a las reglas de PL/SQL.

La sintaxis básica es la siguiente:

IF condición THEN

    -- Código a ejecutar si la condición es verdadera

ELSE

    -- Código a ejecutar si la condición es falsa

END IF;

Para hacer el código aún más flexible, PL/SQL también nos ofrece la opción de usar ELSIF si tenemos múltiples condiciones. Esto permite evaluar varias posibilidades de manera ordenada.

Control de Flujo con IF-THEN-ELSE en PL/SQL


Ejemplo Básico de IF-THEN-ELSE

Imaginemos que tenemos una variable que almacena el salario de un empleado, y queremos imprimir un mensaje basado en el valor del salario. El siguiente ejemplo muestra cómo podríamos hacerlo:

DECLARE

    salario NUMBER := 4500;

BEGIN

    IF salario > 5000 THEN

        DBMS_OUTPUT.PUT_LINE('El salario es alto.');

    ELSE

        DBMS_OUTPUT.PUT_LINE('El salario es moderado o bajo.');

    END IF;

END;

En este ejemplo:

  • Si el salario es mayor que 5000, se mostrará el mensaje: "El salario es alto."
  • De lo contrario, se mostrará el mensaje: "El salario es moderado o bajo."

Utilizando ELSIF para Múltiples Condiciones

Si necesitamos evaluar más de dos situaciones, podemos utilizar ELSIF. Imagina que quieres clasificar los salarios en diferentes categorías:

DECLARE

    salario NUMBER := 3500;

BEGIN

    IF salario > 7000 THEN

        DBMS_OUTPUT.PUT_LINE('El salario es muy alto.');

    ELSIF salario BETWEEN 5000 AND 7000 THEN

        DBMS_OUTPUT.PUT_LINE('El salario es alto.');

    ELSIF salario BETWEEN 3000 AND 4999 THEN

        DBMS_OUTPUT.PUT_LINE('El salario es moderado.');

    ELSE

        DBMS_OUTPUT.PUT_LINE('El salario es bajo.');

    END IF;

END;

Aquí hemos introducido múltiples condiciones:

  1. Si el salario es mayor que 7000, mostramos "El salario es muy alto."
  2. Si está entre 5000 y 7000, mostramos "El salario es alto."
  3. Si está entre 3000 y 4999, mostramos "El salario es moderado."
  4. Si no cumple ninguna de las anteriores, mostramos "El salario es bajo."

Ventajas de IF-THEN-ELSE en PL/SQL

  • Claridad: Permite tomar decisiones en el código de una manera lógica y fácil de entender.
  • Flexibilidad: Podemos encadenar múltiples condiciones con ELSIF, lo cual es ideal para manejar varios casos específicos.
  • Control del flujo: Ayuda a controlar qué se ejecuta y cuándo, en función de las condiciones dadas.

Ejemplo con Variables de Base de Datos

Podemos hacer un ejemplo un poco más avanzado usando datos que provienen de una tabla. Supongamos que tenemos una tabla llamada empleados y queremos clasificar a los empleados según sus años de antigüedad.

DECLARE

    v_antiguedad NUMBER;

BEGIN

    -- Supongamos que estamos seleccionando a un empleado con ID = 101

    SELECT antiguedad INTO v_antiguedad FROM empleados WHERE empleado_id = 101;

   

    IF v_antiguedad > 10 THEN

        DBMS_OUTPUT.PUT_LINE('El empleado tiene alta antigüedad.');

    ELSIF v_antiguedad BETWEEN 5 AND 10 THEN

        DBMS_OUTPUT.PUT_LINE('El empleado tiene antigüedad moderada.');

    ELSE

        DBMS_OUTPUT.PUT_LINE('El empleado es relativamente nuevo.');

    END IF;

END;

En este ejemplo, estamos consultando la antigüedad de un empleado y mostrando un mensaje basado en la cantidad de años que ha trabajado en la empresa. El uso de IF-THEN-ELSE nos permite decidir qué mensaje mostrar dependiendo del valor de v_antiguedad.

Conclusión

La estructura IF-THEN-ELSE en PL/SQL es fundamental para controlar la lógica y el flujo de nuestros programas. Nos permite tomar decisiones y actuar en función de los datos que tenemos disponibles. Ya sea que estemos trabajando con simples valores de variables o con datos provenientes de la base de datos, esta herramienta es esencial para escribir código eficiente y efectivo.