Para crear una canalización de integración continua y entrega continua (Continuous Integration And Continuous Delivery, CICD) en Code Stream, puede utilizar la plantilla inteligente de canalización de CICD. Para planificar una compilación nativa de CICD, recopile la información que necesita para rellenar la plantilla inteligente de canalización antes de utilizarla para crear la canalización en este plan de ejemplo.

Después de introducir la información en la plantilla inteligente de canalización y guardarla, la plantilla crea una canalización que incluye etapas y tareas. También indica dónde implementar la imagen en función de los tipos de entorno que seleccione, como desarrollo y producción. La canalización publicará la imagen de Docker y realizará las acciones necesarias para ejecutarla. Después de ejecutar la canalización, puede supervisar las tendencias en las ejecuciones de la canalización.

Para crear una canalización de CICD, es necesario planificar las etapas de integración continua (Continuous Integration, CI) y de entrega continua (Continuous Delivery, CD) de esa canalización.

Cuando una canalización incluye una imagen de Docker Hub, debe asegurarse de que la imagen tenga una cURL integrada antes de ejecutar la canalización. Cuando se ejecuta la canalización, vRealize Automation Code Stream descarga un archivo binario que utiliza cURL para ejecutar los comandos.

Planificación de la etapa de integración continua (Continuous Integration, CI)

Para planificar la etapa de integración continua de la canalización, configurará los requisitos internos y externos y determinará la información que se debe introducir en la parte de integración continua de la plantilla inteligente de canalización. A continuación se resume la planificación.

Repositorios y endpoints locales remotos o basados en la nube que necesitará:

  • Un repositorio de código fuente de Git donde los desarrolladores comprueban el código. Code Stream extrae el código más reciente a la canalización cuando los desarrolladores confirman cambios.
  • Un endpoint de Git para el repositorio donde reside el código fuente del desarrollador.
  • Un endpoint de Docker para el host de compilación de Docker que ejecutará los comandos de compilación dentro de un contenedor.
  • Un endpoint de Kubernetes para que Code Stream pueda implementar la imagen en un clúster de Kubernetes.
  • Una imagen de Builder que crea el contenedor donde se ejecutan las pruebas de integración continua.
  • Un endpoint del registro de imágenes del que el host de compilación de Docker extrae la imagen de Builder.

Necesitará acceso a un proyecto. El proyecto agrupa todo el trabajo, incluidos la canalización, los endpoints y los paneles de control. Compruebe si es un miembro de un proyecto en Code Stream. Si no lo es, solicite al administrador de Code Stream que lo agregue como miembro de un proyecto. Consulte Cómo agregar un proyecto en VMware Code Stream.

Necesitará un webhook de Git que permita a Code Stream utilizar el activador de Git para activar la canalización cuando los desarrolladores confirmen cambios de código. Consulte Cómo usar el activador de Git en Code Stream para ejecutar una canalización.

Sus conjuntos de herramientas de compilación:

  • Su tipo de compilación, como Maven.
  • Todas las herramientas de compilación posteriores al proceso que utilice, como JUnit, JaCoCo, Checkstyle y FindBugs.

Su herramienta de publicación:

  • Una herramienta como Docker que implementará el contenedor de compilación.
  • Una etiqueta de imagen, que puede ser el identificador de confirmación o el número de compilación.

Su área de trabajo de compilación:

  • Un host de compilación de Docker, que es el endpoint de Docker.
  • Un registro de imágenes. La parte de integración continua de la canalización extrae la imagen del endpoint del registro seleccionado. El contenedor ejecuta las tareas de integración continua e implementa la imagen. Si el registro necesita credenciales, primero debe crear un endpoint del registro de imágenes y, seguidamente, seleccionarlo para que el host pueda extraer la imagen del registro.
  • URL de la imagen de Builder que crea el contenedor donde se ejecutan las tareas de integración continua.

Planificación de la etapa de entrega continua

Para planificar la etapa de entrega continua de la canalización, configurará los requisitos internos y externos y determinará la información que se debe introducir en la parte de entrega continua de la plantilla inteligente de canalización.

Endpoints locales remotos o basados en la nube que necesitará:

  • Un endpoint de Kubernetes para que Code Stream pueda implementar la imagen en un clúster de Kubernetes.

Tipos de entorno y archivos:

  • Todos los tipos de entorno donde Code Stream implementará la aplicación, como desarrollo y producción. La plantilla inteligente de canalización crea las etapas y las tareas en la canalización en función de los tipos de entorno que seleccione.
    Tabla 1. Etapas de canalización que la plantilla inteligente de canalización de CICD crea
    Contenido de la canalización Qué función tiene
    Etapa de compilación y publicación El código se compila y comprueba, la imagen de Builder se crea y se publica en el host de Docker.
    Etapa de desarrollo Se usa un clúster de Amazon Web Services (AWS) de desarrollo para crear e implementar la imagen. En esta etapa se puede crear un espacio de nombres en el clúster y crear una clave secreta.
    Etapa de producción Utiliza una versión de producción de VMware Tanzu Kubernetes Grid Integrated Edition (anteriormente conocido como VMware Enterprise PKS) para implementar la imagen en un clúster de producción de Kubernetes.
  • Un archivo YAML de Kubernetes que se selecciona en la parte de entrega continua de la plantilla inteligente de canalización de CICD.

    Para aplicar el archivo, haga clic en Seleccionar, elija el archivo YAML de Kubernetes y haga clic en Procesar. La plantilla inteligente de canalización muestra los servicios y los entornos de implementación disponibles. Debe seleccionar un servicio, el endpoint del clúster y la estrategia de implementación. Por ejemplo, para usar el modelo de implementación Canary, seleccione Canary e introduzca el porcentaje de la fase de la implementación.

    Procesamiento de una implementación Canary de CICD

Para ver un ejemplo de uso de la plantilla inteligente de canalización para crear una canalización de una implementación azul-verde, consulte Cómo implementar la aplicación en VMware Code Stream en una implementación azul-verde.

Cómo crear la canalización de CICD mediante la plantilla inteligente de canalización

Después de recopilar toda la información y configurar lo que necesita, le indicamos cómo crear una canalización a partir de la plantilla inteligente de canalización de CICD.

En Canalizaciones, debe seleccionar Nueva canalización > Plantillas inteligentes.

Seleccione Plantilla inteligente.

Luego, debe seleccionar la plantilla inteligente de canalización de CICD.

Crear una canalización de integración y entrega continuas a partir de una plantilla inteligente de canalización de CICD.

Debe rellenar la plantilla y guardar la canalización con las etapas que se hayan creado. Si necesita rematar con algún cambio, puede editar la canalización y guardarla.

Nuevas etapas de canalización de CICD creadas a partir de una plantilla inteligente de canalización de CICD.

A continuación, deberá habilitar la canalización y ejecutarla. Tras ejecutarla, estas son algunas de las cosas que puede buscar:

  • Compruebe que la canalización se haya completado correctamente. Haga clic en Ejecuciones y busque la canalización. Si se produjeron errores, corríjalos y vuelva a ejecutarla.
  • Compruebe que el webhook de Git esté funcionando correctamente. La pestaña Actividad de Git muestra los eventos. Haga clic en Activadores > Git > Actividad.
  • Observe el panel de control de la canalización y examine las tendencias. Haga clic en Paneles de control y busque el panel de control de la canalización. También puede crear un panel de control personalizado para informar sobre KPI adicionales.

Para obtener un ejemplo detallado, consulte Cómo integrar de forma continua código de un repositorio de GitLab o GitHub en la canalización en VMware Code Stream.