Crear un pipeline de despliegue e integración continuas mediante los servicios de Oracle Cloud Infrastructure DevOps
La entrega rápida de software es clave para crear y desplegar de forma eficaz sus aplicaciones en la nube. Los servicios de Oracle Cloud Infrastructure (OCI) DevOps proporcionan una plataforma de integración y despliegue continuos (CI/CD) para que los desarrolladores puedan crear, probar y desplegar fácilmente software y aplicaciones en Oracle Cloud.
Los pipelines de creación y despliegue de OCI DevOps reducen los errores controlados por cambios y disminuyen el tiempo que los clientes invierten en crear y solucionar problemas permitiendo que se reconstruya el software y, a continuación, se vuelva a probar a medida que se apliquen los cambios y, como resultado, detectar cualquier impacto adverso con antelación.
El servicio incluye el suministro de repositorios de GIT privados para almacenar su código y soporta conexiones a repositorios de código externos para contener el código de origen y los archivos de configuración. A medida que los procesos de creación dependen de artefactos intermedios (módulos, paquetes, etc.), también funcionan con repositorios de artefactos y contenedores de Oracle. Tanto si está migrando cargas de trabajo a OCI (desde ubicaciones locales u otras nubes) como desarrollando nuevas aplicaciones en OCI, puede utilizar OCI DevOps para simplificar el ciclo de vida de entrega de software.
Al trabajar en un entorno híbrido o multinube, OCI DevOps se puede utilizar para crear artefactos que se van a desplegar en otros entornos.
Arquitectura
El pipeline de creación sigue un flujo definido por el usuario para crear y probar software y, a continuación, crear una imagen de contenedor con la última versión de la aplicación. La salida de la creación se almacena en el registro de contenedor como una imagen. A continuación, un pipeline de despliegue utiliza la imagen creada del registro de contenedor y un manifiesto de Kubernetes para desplegar la versión más reciente de la aplicación en OKE.
El pipeline proporcionado no aborda consideraciones como la aplicación de pruebas de unidad y el análisis de la calidad del código mediante el análisis de código estático y herramientas de enlace.
El siguiente diagrama ilustra esta arquitectura de referencia.
Descripción de la ilustración deployment-pipeline-devops-arch.png
deployment-pipeline-devops-arch-oracle.zip
- 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.
- Proyecto DevOps
Agrupación lógica de recursos DevOps necesarios para implementar un flujo de trabajo de integración y despliegue continuos. Los recursos DevOps pueden ser artefactos, pipelines de creación, pipelines de despliegue, conexiones externas, disparadores y entornos. Los proyectos DevOps facilitan el registro, la supervisión y las notificaciones de todos sus recursos DevOps.
- Crear pipeline
Un pipeline de creación toma un ID de confirmación de los repositorios de código fuente y utiliza ese código fuente para ejecutar las instrucciones de creación. Los pipelines de creación definen un juego de etapas para el proceso de creación, prueba y compilación de artefactos de software, la entrega de artefactos en repositorios de OCI y, opcionalmente, el disparo de un despliegue. Puede definir el flujo y las instrucciones de la ejecución de creación en el archivo de especificación de creación.
- Repositorio de código
Repositorios de Git privados alojados por el servicio DevOps. Puede almacenar, gestionar y desarrollar código fuente con repositorios de código DevOps de OCI.
- Pipeline de despliegue
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 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
- Espera: N segundos de espera
- Aprobación manual: continúe si se proporciona una aprobación; detenga si se rechaza una aprobación.
- Función de llamada: realice tareas o integraciones 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, informe 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 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 está hecho 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 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): OCI Container Engine for Kubernetes es un servicio totalmente gestionado, escalable y con alta disponibilidad que puede utilizar para desplegar las aplicaciones contenedorizadas en la nube.
- Instancias informáticas: el servicio OCI Compute permite aprovisionar y gestionar hosts informáticos en la nube. Puede desplegar 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. El servicio se basa en Oracle Cloud Infrastructure de nivel empresarial y en el sistema de código abierto Fn Project.
Recomendaciones
- Unidades informáticas
Esta arquitectura utiliza una imagen del sistema operativo Oracle Linux con la unidad flexible E3 o E4. Puede comenzar con los recursos mínimos necesarios para los hosts informáticos en el entorno de grupo de instancias y 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 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.
- Oracle Container Engine for Kubernetes (OKE)
Esta arquitectura despliega 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.
- 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 OCI.
Consideraciones
Tenga en cuenta los siguientes puntos al desplegar esta arquitectura de referencia:
- DevOps soporta despliegues en OKE, hosts informáticos, funciones.
- Solo están soportados los hosts de Linux para despliegues de grupos de instancias en instancias informáticas.
- 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.
- La mejor práctica es agrupar cada aplicación y todos sus microservicios en un único proyecto.
Desplegar
El código de Terraform para crear y desplegar un pipeline mediante OCI DevOps está disponible en GitHub.
- Desplegar mediante la pila de ejemplo en Oracle Cloud Infrastructure Resource Manager:
- Haga clic en
.
Si aún no ha iniciado sesión, introduzca las credenciales de arrendamiento y usuario.
- Seleccione la región en la que desea desplegar la pila.
- Siga las indicaciones de la pantalla y las instrucciones para crear la pila.
- Después de crear la pila, haga clic en Acciones de Terraform y seleccione Plan.
- 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.
- 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.
- Haga clic en
- Despliegue con la CLI de Terraform:
- Vaya a GitHub.
- Clone o descargue el repositorio en su equipo local.
- Siga las instrucciones del documento README (Léame).
Log de Cambios
Este log muestra cambios importantes:
27 de octubre de 2021 | Se ha agregado el tema Desplegar y el enlace al código de despliegue. También se agregó la insignia de automatización disponible. |
5 de agosto de 2022 | Cambios de texto en la visión general del documento y el tema Arquitectura.
Nuevo enlace agregado al tema Explorar más. |