Cree un pipeline de integración y despliegue continuos con instancias de Oracle Cloud Infrastructure DevOps y OCI

Una entrega rápida de software es esencial para ejecutar eficazmente sus aplicaciones en la nube. El servicio Oracle DevOps proporciona una plataforma de integración y despliegue continuos (CI/CD) para desarrolladores. Puede utilizar el servicio DevOps para crear, probar y desplegar fácilmente el software y las aplicaciones en Oracle Cloud. Los pipelines de compilación y despliegue de DevOps reducen los errores basados en cambios y reducen el tiempo que los clientes gastan en crear y desplegar versiones. El servicio también proporciona un repositorio de Git privado para almacenar su código y soporta conexiones a repositorios de código externos. Tanto si migra cargas de trabajo a OCI (desde ubicaciones locales u otras nubes) como si desarrolla nuevas aplicaciones en OCI, puede utilizar el servicio DevOps para simplificar el ciclo de vida de entrega de software.

Arquitectura

Esta arquitectura de referencia muestra cómo crear una aplicación moderna y, a continuación, desplegarla en instancias informáticas de OCI. En esta demostración se utiliza una aplicación basada en una aplicación Java activada para Graal Enterprise/Micronaut. La aplicación se expone a través de un equilibrador de carga de OCI, lo que garantiza un cambio suave del tráfico durante un despliegue activo.

En el diagrama siguiente se ilustra esta arquitectura.

A continuación se muestra la descripción de instance-group-deploy-arch.png
Descripción de la ilustración instance-group-deploy-arch.png

Esta arquitectura contiene 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 grandes distancias pueden separarlas (entre países e incluso continentes). La arquitectura utiliza una sola región.

  • Proyecto de DevOps

    Agrupación lógica de recursos de DevOps necesarios para implantar un flujo de trabajo de integración y despliegue continuos. Los recursos de DevOps pueden ser artefactos, pipelines de compilación, pipelines de despliegue, conexiones externas, disparadores y entornos. Los proyectos DevOps facilitan el registro, la supervisión y las notificaciones de todos los recursos DevOps.

  • pipeline de compilación

    Un pipeline de compilación toma un ID de confirmación de sus repositorios de código fuente y utiliza ese código fuente para ejecutar las instrucciones de compilación. Los pipelines de compilación definen un juego de etapas para el proceso de compilación: creación, prueba y compilación de artefactos de software, entrega de artefactos a los repositorios de OCI y, opcionalmente, activación de un despliegue. Defina el flujo y las instrucciones de la ejecución de compilación en el archivo de especificación de compilación.

  • Creación de etapas

    Las etapas son acciones individuales que se realizan durante una ejecución de un pipeline. Las distintas etapas de creación que se mencionan aquí son:

    • Etapas de compilación gestionadas: etapa de compilación gestionada para crear y probar el código de origen.
    • Entregar etapa de artefactos: etapa para transferir las salidas de la etapa de creación a varios repositorios. Como las imágenes de contenedor en el repositorio de contenedor y el manifiesto de despliegue en el registro de artefactos.
    • Llamar al despliegue: etapa para llamar a un pipeline de despliegue una vez completadas las etapas de creación, junto con el análisis de las variables exportadas desde la etapa de creación gestionada a las etapas de pipeline de despliegue.
  • Repositorio de código

    Repositorios de Git privados alojados por el servicio DevOps. Puede almacenar, gestionar y desarrollar el código fuente con nuestros repositorios de código DevOps.

  • Despliegue de pipeline

    Secuencia de pasos para entregar y desplegar un juego de artefactos en un entorno de destino. El flujo y la lógica de su versión de software se pueden controlar mediante la definición de etapas que se pueden ejecutar en serie o en paralelo.

  • Etapas de despliegue

    Las etapas son acciones individuales que se realizan durante una ejecución de un pipeline. En esto estamos utilizando la etapa de acumulación Grupo de instancias informáticas con el pipeline de despliegue, que instalará la aplicación en las instancias informáticas de OCI según corresponda.

  • DevOps artefacto

    Un artefacto DevOps es una referencia o puntero a cualquier archivo, binario, paquete, manifiesto o imagen que forme parte de la aplicación. Al crear un artefacto, informe a Oracle DevOps de la ubicación de origen del artefacto real. DevOps soporta repositorios de OCI Container Image Registry y OCI Artifact Registry.

  • Repositorio de artefactos

    El repositorio de artefactos crea repositorios para agrupar artefactos similares. Cuando se crea el repositorio, puede cargar artefactos en él. Estos artefactos son una recopilación de archivos de texto, binarios y manifiestos de despliegue que se entregan al entorno de despliegue de destino. Cada artefacto tiene un nombre, que se compone de su ruta de acceso: versión. La ruta de acceso es una cadena para organizar los artefactos.

  • Servicios de registro y notificación de OCI

    El servicio OCI Logging almacena logs relacionados con el despliegue. La salida de tiempo de ejecución del despliegue y los resultados finales del despliegue se muestran como entradas de log. El servicio OCI Notifications 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 en un pipeline de despliegue está esperando la 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 instancia informática de máquina virtual (VM) o con hardware dedicado, o un cluster de OKE. El despliegue de Blue Green solo está disponible con el cluster de OKE y las máquinas virtuales de recursos informáticos.

  • Instancia informática de OCI

    Oracle Cloud Infrastructure proporciona capacidad informática rápida, flexible y asequible para adaptarse a cualquier necesidad de carga de trabajo, desde servidores con hardware dedicado de gran rendimiento y máquinas virtuales hasta contenedores ligeros. OCI Compute proporciona instancias de máquina virtual y con hardware dedicado con una flexibilidad única para obtener una relación rendimiento-precio óptima. Esta arquitectura utiliza OCI Compute con Oracle Linux como imagen de sistema operativo.

  • Equilibrador de carga de OCI

    El servicio Oracle Cloud Infrastructure Load Balancing proporciona distribución automatizada de tráfico desde un punto de entrada a varios servidores a los que se puede acceder desde la red virtual en la nube (VCN). El servicio ofrece un equilibrador de carga con un ancho de banda aprovisionado y una dirección IP pública o privada de su elección.

Recomendaciones

Utilice las siguientes recomendaciones como punto de partida para crear un pipeline de integración y despliegue continuos mediante Oracle Cloud Infrastructure DevOps e instancias de OCI. Sus requisitos pueden diferir de la arquitectura que se describe aquí.
  • Unidades de computación

    Esta arquitectura utiliza una imagen del sistema operativo Oracle Linux con una 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 en función del número de recursos que planea asociar a las 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 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 otorgar acceso al cluster a través de la red pública de Internet.

  • Grupo de instancias

    Si elige la arquitectura que desea desplegar en un grupo de instancias, tendrá nuevas instancias informáticas de la forma que elija creadas en su arrendamiento.

  • Registro de artefactos

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

Consideraciones

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

  • Despliegues soportados por DevOps

    DevOps soporta despliegues en OKE, hosts informáticos y funciones. Esta arquitectura se despliega en un cluster de OKE. Considere la posibilidad de 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 de Compute.

  • Artefactos desplegados

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

  • Agrupación de aplicaciones

    Se recomienda agrupar cada aplicación y todos sus microservicios en un solo proyecto.

Despliegue

El código de Terraform para esta arquitectura de referencia está disponible como pila 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.

  • Realice el despliegue con la pila de ejemplo en Oracle Cloud Infrastructure Resource Manager:
    1. Haga clic en Desplegar en Oracle Cloud.

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

    2. Seleccione la región en la que desea desplegar la pila.
    3. Siga las indicaciones e instrucciones de la pantalla para crear la pila.
    4. Después de crear la pila, haga clic en Acciones de Terraform y seleccione Plan.
    5. Espere a que finalice 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 la computadora local.
    3. Siga las instrucciones del documento README.

Confirmaciones

Autor: Rahul M.R.