Visión general de las interconexiones de DevSecOps
Los distintos pipelines que se proporcionan en las cadenas de herramientas de integración continua y despliegue continuo de referencia se basan en la compatibilidad de Continuous Delivery con Tekton Pipelines. Para obtener más información sobre Tekton Pipelines, consulte Cómo trabajar con Tekton Pipelines.
No es necesario ser un experto en Tekton para utilizar los conductos de referencia. Los pipelines de referencia están predefinidos con una estructura básica que incluye marcadores de posición para scripts personalizados para pasos como compilaciones, pruebas automatizadas y despliegue. Los usuarios pueden declarar sus scripts personalizados para sus propias interconexiones y establecer valores para varias propiedades de entorno para una interconexión específica.
Tipos de estado de interconexión
Es importante comprender las condiciones de error o de anomalía de una interconexión de referencia en determinados puntos. Conceptualmente, en una interconexión de conformidad se ejecutan dos tipos diferentes de resultados de estado de una tarea:
- Estado de conformidad: el estado de pass o fail de
somecomprobación o de un conjunto de comprobaciones. - Estado de interconexión: el estado success o failure de la propia ejecución la de tarea.
Si falla una prueba, exploración o comprobación, no hace que falle o se detenga la propia interconexión; la tarea que está ejecutando la prueba se marca como verde.
Desde un punto de vista de conformidad, el resultado de la prueba de unidad no afecta al despliegue. Puede desplegar artefactos con comprobaciones con errores, pero el proceso mantiene pruebas sobre dicha actividad. El flujo de conformidad no
le impide publicar una corrección cuando se produce una interrupción. Por ejemplo, una ejecución en color verde para una tarea de prueba de unidad que ha encontrado pruebas con errores significa que The task ran successfully and found the following issues.
Si una tarea falla con un estado en color rojo, se produce porque la interconexión no puede continuar o no debe continuar. Las condiciones de ejemplo para la anomalía incluyen:
- Errores en una tarea o en la interconexión.
- Algo sucedió que significa que no tiene sentido seguir ejecutando la interconexión.
Por ejemplo, si una compilación de artefacto falla en la integración continua, interrumpe la finalidad del proceso de integración continua propiamente dicho.
Para mantener el estado de la interconexión final en sincronización con los resultados de conformidad, una tarea al final de la interconexión comprueba los resultados de conformidad y establece el estado de ejecución de la interconexión en color
red o green.
Interconexión de solicitud de extracción
La interconexión de solicitud de extracción ejecuta comprobaciones de estado de conformidad previamente definidas en una solicitud de extracción para el repositorio (repo) de la aplicación (app) especificado. Estas comprobaciones de estado podrían
impedirle fusionar la pull request en la rama activa por defecto, normalmente master, si las comprobaciones no tienen éxito. Abra o actualice una pull request contra la rama activa por defecto para activar la ejecución del pull
request pipeline. Los usuarios pueden ejecutar su propia configuración para la interconexión y las pruebas en etapas personalizadas. Para obtener más información sobre la interconexión de la solicitud de extracción, consulte Interconexión de solicitudes de extracción.
Interconexión de integración continua
La interconexión de integración continua crea los artefactos desplegables a partir de los repositorios (repos) de la aplicación (app). Antes de crear artefactos, la interconexión comprueba que el código se haya explorado y probado, de la misma forma que se procesan las solicitudes de extracción. Los artefactos creados también se exploran para detectar vulnerabilidades y se firman en la interconexión antes de marcarlos para su publicación y despliegue en el inventario. A diferencia de la interconexión de la solicitud de extracción, la interconexión de integración continua recopila pruebas y artefactos de resultados en cada etapa de la compilación como, por ejemplo, pruebas, exploraciones y firmas. Estos datos se correlacionan con los artefactos creados y se pueden rastrear a través del proceso de despliegue y la gestión de cambios. Para obtener más información sobre la interconexión de la integración continua, consulte Interconexión de integraciones continuas.
Conducto de despliegue continuo
El canal de despliegue continuo genera todo el contenido de las pruebas y el resumen de las solicitudes de cambio. La interconexión despliega los artefactos de compilación en un entorno específico, como por ejemplo la transferencia o producción, y luego recopila, crea y carga todos los archivos de registro, pruebas y artefactos existentes en el archivo de pruebas. Para obtener más información sobre el conducto de despliegue continuo, consulte Conducto de despliegue continuo.
Conducto de conformidad continua
El conducto de conformidad continua explora periódicamente los artefactos desplegados y sus repositorios de origen en busca de vulnerabilidades más recientes desde que se desplegaron los artefactos en producción. El proceso también ayuda a realizar un seguimiento automático de las desviaciones con fecha de vencimiento y proporciona información sobre la aplicación. Para obtener más información, consulte Canal de cumplimiento continuo.
Flujo de trabajo
Consulte Pruebas.
Consulte Inventario.
La integración continua guarda la información en el inventario
El inventario contiene varias ramas, incluida la rama por defecto. Estas ramas pueden representar etapas, entornos o regiones de despliegue, o una combinación de estas opciones, en función de la configuración y el uso.
La rama por defecto se rellena a partir de las compilaciones de integración continua. La última confirmación en el destino como, por ejemplo, staging, contiene una etiqueta que muestra que fue el último despliegue concluido.
Si la rama predeterminada para el inventario se cambia a una rama diferente, debes rebasar las confirmaciones de la rama predeterminada anterior a la nueva rama predeterminada para que el historial de confirmaciones Git sea lineal.
Promoción
Para promocionar a una rama de destino, cree una solicitud de extracción. El contenido de la solicitud de extracción rellena los campos de la solicitud de cambio. Una vez que se haya revisado, puede fusionar la solicitud de extracción de promoción.
Delta y despliegue
Una vez que se ha fusionado la solicitud de extracción de promoción, puede iniciarse la interconexión de despliegue. El delta de despliegue es la diferencia entre el contenido del último despliegue finalizado y el despliegue actual. El delta de despliegue genera una lista de los artículos de inventario que se están desplegando.
Finalizar
Cuando finaliza el despliegue, avanza la etiqueta latest.
Durante el desencadenante dev-mode, las etiquetas no serán avanzadas, la finalidad del desencadenante dev-mode es únicamente probar la interconexión de CD y no se recomienda su uso en el entorno de producción.
Promocionar a otros entornos
La promoción y el despliegue pueden producirse de una rama cualquiera a otra.
Entorno de inventario
El estado desplegado actual incorpora el contenido que se va a desplegar en un entorno. Cada confirmación promocionada en las ramas de destino contiene el ID de ejecución de interconexión y el ID de solicitud de cambio relevantes como, por ejemplo, una etiqueta. Algunas confirmaciones pueden tener varias etiquetas, por ejemplo, cuando se ejecuta de nuevo un despliegue con error. El inventario contiene todos los fragmentos de información para reproducir los despliegues.
Configuración de destino único y varias regiones
La configuración de un destino único y varias regiones es una iteración en este modelo donde se introducen varias etiquetas latest para un entorno de destino único. Este modelo permite que varias interconexiones continuas funcionen
en el mismo destino para diferentes tipos de casos de uso.
Por ejemplo, puede utilizar el mismo entorno de destino para varias regiones (como us-south y eu-de) en el entorno de destino de producción y en la rama de inventario.
Para especificar la región de despliegue mediante el conducto de despliegue continuo, utilice el parámetro region. Para obtener más información sobre este parámetro, consulte Parámetros de interconexión de despliegue continuo.
Los equipos no necesitan crear una sucursal diferente para cada región, como us-south-prod y eu-de-prod, y ejecutar la promoción de forma redundante. En su lugar, especifique estos destinos adicionales para la misma
rama de inventario y, a continuación, utilícelas como etiquetas Git.
En esta configuración, la rama prod tiene varias etiquetas latest en la misma rama, como us-south_prod_latest y eu-de_prod_latest, y cada canal de despliegue continuo responsable de cada región puede
utilizar esas etiquetas para el despliegue.
Escenario de ejemplo
Un conjunto de cambios que finalmente se pueden desplegar en todas partes, es posible que se liberen primero a una sola región. A continuación, puede desplegar gradualmente este conjunto de cambios en otras regiones utilizando canalizaciones de despliegue continuo dirigidas a esas regiones.