Crear un pipeline de despliegue continuo mediante Oracle Cloud Infrastructure DevOps

Una rápida entrega de software es esencial para ejecutar con eficacia sus aplicaciones en la nube. Oracle Cloud Infrastructure (OCI) DevOps proporciona una experiencia de despliegue continuo integral a los desarrolladores. OCI DevOps incluye el despliegue de pipelines para automatizar el proceso de despliegue de software continuo (CD) en plataformas OCI: instancias de Container Engine for Kubernetes (OKE), funciones y recursos informáticos.

La automatización de las versiones de software con el despliegue de pipeline aumenta la productividad del desarrollador y le permite lanzar funciones con más frecuencia y con menos errores. Ayuda a evitar el tiempo de inactividad durante el despliegue y automatiza la complejidad de la actualización de aplicaciones. OCI DevOps puede ser utilizado por clientes que migran cargas de trabajo desde entornos locales u otras nubes a OCI y por clientes que desarrollan nuevas aplicaciones en OCI.

Arquitectura

En esta arquitectura de referencia, se despliega una aplicación Hello World de ejemplo mediante OCI DevOps. La aplicación Hello World ya se ha creado y está lista para desplegarse. La aplicación se despliega en tres entornos de destino diferentes: OKE, instancias informáticas y funciones. Para simplificar el proceso, Terraform se utiliza para la automatización de la infraestructura.

El siguiente diagrama ilustra esta arquitectura de referencia.

A continuación, se muestra la descripción de dev-ops-deployment-pipeline.png
Descripción de la ilustración dev-ops-deployment-pipeline.png

deployment-pipeline-devops-arch-oracle.zip

Esta arquitectura tiene los siguientes componentes:
  • Región

    Una región de OCI es un área geográfica localizada que contiene uno o más centros de datos, denominados dominios de disponibilidad. Las regiones son independientes de otras regiones y las grandes distancias pueden separarlas (entre países e incluso continentes).

    La arquitectura utiliza una sola región.

  • DevOps project

    Un proyecto DevOps es una agrupación lógica de recursos necesarios para implementar la carga de trabajo de integración y despliegue continuos (CI/CD). Los recursos DevOps pueden ser artefactos, pipelines de despliegue y entornos. Los proyectos DevOps facilitan el registro, la supervisión y las notificaciones de todos sus recursos DevOps.

  • Pipeline de despliegue

    Un pipeline de despliegue contiene los requisitos que se deben cumplir para entregar un juego de artefactos a un entorno. Los pipelines contienen etapas, que son los bloques de creación de un pipeline. Un pipeline puede tener etapas que se ejecuten en serie o en paralelo, de modo que pueda controlar el flujo y la lógica de la versión de software.

  • Etapas de despliegue
    Las etapas son acciones individuales que se realizan durante la ejecución de un pipeline. El pipeline de despliegue de DevOps incluye los siguientes tipos de etapa predefinidos que se utilizarán en el proceso de versión:
    • Despliegue continuo: una versión incremental en OKE, Functions o grupos de instancias.
    • Wait: Wait N seconds.
    • Aprobación manual: continúe si se proporciona una aprobación; detenga si se rechaza una aprobación.
    • Función de llamada: realice tareas e integración personalizadas llamando a una función y transfiera un artefacto de parámetros de solicitud.
  • DevOps artefacto

    Un artefacto DevOps es una referencia o puntero a cualquier archivo, archivo binario, paquete, manifiesto o imagen que forme la aplicación. Al crear un artefacto, debe informar a Oracle DevOps de la ubicación de origen del artefacto real. DevOps soporta los repositorios de registro de imágenes de contenedor de OCI y de registro de artefactos de OCI.

  • Repositorio de artefactos

    El repositorio de artefactos se utiliza para crear repositorios para agrupar artefactos similares. Una vez creado el repositorio, los artefactos se pueden cargar en ellos. Estos artefactos son una recopilación de archivos de texto, binarios y manifiestos de despliegue que se entregarán al entorno de despliegue de destino. Cada artefacto tiene un nombre, que está hecho de su ruta de acceso: versión. La ruta de acceso es una cadena para organizar los artefactos.

  • Servicios de registro y notificaciones de OCI

    El servicio de registro de OCI almacena logs relacionados con el despliegue. La salida del tiempo de ejecución del despliegue y los resultados finales del despliegue se muestran como entradas de log. El servicio de notificaciones de OCI proporciona visibilidad del último estado del proyecto de despliegue y sus recursos, y realiza las acciones necesarias. Por ejemplo, se le notifica cuando un evento importante, como una etapa de un pipeline de despliegue en espera de aprobación. Cuando reciba el mensaje de notificación, puede ir a los pipelines de despliegue DevOps y aprobar la etapa.

  • Entornos de despliegue
    Un entorno es una recopilación de recursos informáticos de un cliente en la que se despliegan artefactos. Los entornos pueden ser una función, una máquina virtual informática (VM) o una instancia con hardware dedicado, o un cluster de OKE.
    • Cluster de Oracle Kubernetes (OKE): Oracle Container Engine for Kubernetes es un servicio totalmente gestionado, escalable y con alta disponibilidad que puede utilizar para desplegar las aplicaciones en contenedores en la nube.
    • Instancias informáticas: el servicio OCI Compute permite aprovisionar y gestionar hosts informáticos en la nube. Puede iniciar instancias informáticas con unidades que cumplan los requisitos de recursos para CPU, memoria, ancho de banda de red y almacenamiento.
    • Funciones: Oracle Functions es una plataforma de funciones como servicio totalmente gestionada, multicliente, altamente escalable y bajo demanda. Se basa en OCI de nivel empresarial y en el motor de código abierto Fn Project.
    Los entornos pueden estar en diferentes regiones de OCI desde la región del pipeline de despliegue. Esto permite a los desarrolladores desplegar en varias regiones de OCI mediante el mismo pipeline de despliegue.

Recomendaciones

Utilice las siguientes recomendaciones como punto de partida. Los requisitos pueden ser diferentes de la arquitectura que se describe aquí.
  • Unidades informáticas

    Esta arquitectura utiliza una imagen del sistema operativo Oracle Linux con unidad flexible E3 o E4 con recursos mínimos para alojar hosts informáticos en los nodos de cluster de OKE. Si la aplicación necesita más memoria o núcleos, puede elegir una unidad diferente.

  • VCN

    Al crear una VCN, determine el número de bloques CIDR necesarios y el tamaño de cada bloque según el número de recursos que planea asociar a subredes de la VCN. Utilice bloques CIDR que estén dentro del espacio de direcciones IP privadas estándar.

    Después de crear una VCN, puede cambiar, agregar y eliminar sus bloques de CIDR.

    Esta arquitectura utiliza una VCN pública para alojar Oracle Container Engine for Kubernetes. También puede utilizar una VCN privada. En ese caso, utilice un gateway de NAT para proporcionar al cluster acceso a través de la red pública de Internet.

  • OKE

    Esta arquitectura se despliega en el cluster de OKE como uno de los entornos de destino. Los nodos de trabajador se implementan en un sistema operativo Oracle Linux E3 o E4. Esta arquitectura utiliza tres nodos de trabajador en el cluster, pero puede crear hasta 1,000 nodos en cada cluster.

  • Funciones

    Si elige la arquitectura que desea desplegar en una función de OCI, se crean una nueva aplicación y función de funciones en su arrendamiento.

  • Grupo de instancias

    Si elige la arquitectura que desea desplegar en un grupo de instancias, tiene nuevas instancias informáticas de la unidad de computación que desee crear en su arrendamiento.

  • Registro de imágenes de contenedor

    Esta arquitectura despliega el registro como un registro privado de Docker para uso interno. Las imágenes de Docker se transfieren al registro y se extraen del mismo. También puede utilizar el registro como registro público de Docker, lo que permite a cualquier usuario con acceso a Internet y conocimientos de la URL correspondiente extraer imágenes de repositorios públicos en Oracle Cloud.

  • Registro de artefactos

    Esta arquitectura crea un artefacto para el software y la configuración utilizados por el despliegue de grupos de instancias, OKE y Functions. La arquitectura crea un repositorio de registro de artefactos para uso interno. Las configuraciones de despliegue, texto y binarios de software se cargan y descargan desde el repositorio de registro de artefactos.

Consideraciones

Tenga en cuenta los siguientes puntos al desplegar esta arquitectura de referencia.

  • Despliegues compatibles con DevOps

    DevOps soporta despliegues en OKE, hosts informáticos y funciones. Esta arquitectura se despliega en un cluster de OKE. Considere realizar el despliegue en otros puntos finales según los requisitos.

  • Soporte de Linux

    Solo están soportados los hosts de Linux para despliegues de grupos de instancias en instancias informáticas.

  • artefactos desplegados

    Los artefactos que se van a desplegar con DevOps deben estar en un registro de artefactos de OCI o en un repositorio de registro de imágenes de contenedor.

  • Agrupación de aplicaciones

    Como mejor práctica, agrupe cada aplicación y todos sus microservicios en un único proyecto.

Desplegar

El código de Terraform para esta arquitectura de referencia está disponible como pilas de ejemplo en Oracle Cloud Infrastructure Resource Manager. También puede descargar el código de GitHub y personalizarlo para que se ajuste a sus requisitos específicos.

  • Desplegar mediante la pila de ejemplo en Oracle Cloud Infrastructure Resource Manager:
    1. Haga clic en el botón Desplegar del caso de uso específico para acceder al gestor de recursos:

      Si aún no ha iniciado sesión, introduzca las credenciales de arrendamiento y usuario.

    2. Seleccione la región en la que desea desplegar la pila.
    3. Siga las indicaciones de la pantalla y las instrucciones para crear la pila.
    4. Después de crear la pila, haga clic en Acciones de Terraform y seleccione Plan.
    5. Espere a que termine el trabajo y revise el plan.

      Para realizar cambios, vuelva a la página Detalles de pila, haga clic en Editar pila y realice los cambios necesarios. A continuación, vuelva a ejecutar la acción Plan.

    6. Si no es necesario realizar más cambios, vuelva a la página Detalles de pila, haga clic en Acciones de Terraform y seleccione Aplicar.
  • Realice el despliegue con el código de Terraform en GitHub:
    1. Vaya a GitHub.
    2. Clone o descargue el repositorio en su equipo local.
    3. Siga las instrucciones del documento README.

Log de Cambios

Este log muestra cambios importantes: