Jenkins X - AWS Guía prescriptiva

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Jenkins X

Jenkins X es una CI/CD plataforma de código abierto nativa de la nube que implementa GitOps principios para los entornos de Kubernetes. Aunque Jenkins X no es exclusivamente una GitOps herramienta como Argo CD o Flux, incorpora prácticas en sus flujos de trabajo. GitOps

GitOps soporte

Área Capacidades de la herramienta

Flujo de trabajo centrado en Git

Jenkins X usa los repositorios de Git como fuente principal de información tanto para el código como para la configuración de la aplicación. Todos los cambios en las aplicaciones y la infraestructura se realizan a través de Git.

El entorno como código (eAC)

Los entornos (como la puesta en escena y la producción) se definen como código en los repositorios de Git. Esto permite controlar las versiones y revisar las configuraciones del entorno.

CI/CD Canalizaciones automatizadas

Jenkins X configura automáticamente las CI/CD canalizaciones para los proyectos. Estas canalizaciones se definen como código (canalización como código) y se almacenan en Git.

Nativo de Kubernetes

Jenkins X está diseñado específicamente para entornos de Kubernetes. Utiliza recursos de Kubernetes y definiciones de recursos personalizadas (). CRDs

Previsualice los entornos

Jenkins X crea automáticamente entornos temporales para las solicitudes de incorporación de cambios. Permite revisar y probar fácilmente los cambios antes de las fusiones.

Promoción entre entornos

Jenkins X utiliza un GitOps enfoque para promover las aplicaciones entre entornos (por ejemplo, desde la puesta en escena hasta la producción). Las promociones se gestionan mediante solicitudes de selección para garantizar que los procesos de revisión y aprobación sean adecuados.

Gestión de gráficos de Helm

Jenkins X usa los gráficos de Helm para empaquetar e implementar aplicaciones. Los gráficos están controlados por versiones en los repositorios de Git.

Control de versiones automatizado

Jenkins X gestiona automáticamente el control de versiones de aplicaciones y versiones. Utiliza el control de versiones semántico y genera notas de lanzamiento.

ChatOps integración

Jenkins X admite ChatOps operaciones comunes. Esto se alinea con los GitOps principios de automatización y colaboración.

Extensibilidad

Esta herramienta proporciona un sistema de complementos para ampliar la funcionalidad. Permite la integración con varias herramientas nativas de la nube.

Infraestructura como código (IaC)

Jenkins X es compatible con Terraform y otras herramientas de IaC para definir y administrar la infraestructura. CloudFormation AWS Cloud Development Kit (AWS CDK) Las definiciones de infraestructura se controlan por versiones junto con el código de la aplicación.

Reversiones automatizadas

Jenkins X admite la reversión automática si se detectan problemas después de la implementación.

Administración de secretos

La herramienta se integra con soluciones de gestión de secretos externas para gestionar la información confidencial de forma segura.

Observabilidad

Jenkins X proporciona integración con herramientas de monitoreo y registro para la observabilidad.

Soporte multinube

Jenkins X está diseñado para funcionar en diferentes proveedores de nube y entornos locales.

Colaboración en equipo

Esta herramienta fomenta la colaboración a través de flujos de trabajo y solicitudes de cambios basados en Git.

Retroalimentación continua

La herramienta proporciona información rápida sobre los cambios mediante entornos automatizados de pruebas y vistas previas.

DevOps mejores prácticas

Jenkins X implementa las DevOps mejores prácticas de forma predeterminada, incluidos GitOps los principios.

Configuración declarativa

La herramienta utiliza configuraciones declarativas para definir aplicaciones y entornos.

Actualizaciones automatizadas

Jenkins X proporciona herramientas para automatizar las actualizaciones de la propia plataforma Jenkins X.

Jenkins X implementa estos GitOps principios para crear una solución integral de CI/CD para Kubernetes. Su objetivo es automatizar y agilizar todo el proceso de entrega de software, desde la confirmación del código hasta la implementación en producción, sin dejar de cumplir con las prácticas. GitOps De este modo, ayuda a los equipos a lograr despliegues más rápidos, fiables y consistentes en entornos nativos de la nube.

La diferencia clave entre Jenkins X y herramientas como Argo CD o Flux es que Jenkins X ofrece una CI/CD solución más completa, que incluye la automatización de la construcción y la gestión de los procesos, sin dejar de incorporar GitOps principios para la gestión del entorno y el despliegue. Esto lo hace especialmente adecuado para los equipos que necesitan una all-in-one solución que abarque los aspectos de CI y CD en un solo marco. GitOps

Para obtener más información, consulte la documentación de Jenkins X.

Arquitectura

El siguiente diagrama ilustra un flujo de trabajo de CD GitOps controlado por componentes que utiliza Jenkins X. Para obtener información detallada, consulte la documentación de Jenkins X.

La arquitectura y el flujo de trabajo de Jenkins X están activados. AWS

donde:

  • Paso 1: Fusión mediante solicitud de extracción (PR). Un desarrollador crea una solicitud de cambios en los manifiestos de Kubernetes, los gráficos de Helm o el código de la aplicación que está almacenado en un repositorio de Git. Tras su revisión y aprobación, el PR se fusiona con la rama principal y actualiza el estado deseado en el control de código fuente.

  • Paso 2: Sincronización del repositorio. Jenkins X activa automáticamente una CI/CD canalización cuando detecta el cambio. La canalización crea, prueba y promueve la aplicación en diferentes entornos (por ejemplo, puesta en escena y producción) utilizando GitOps principios.

  • Paso 3: Implementación en los espacios de nombres de destino. Jenkins X actualiza los repositorios del entorno (de puesta en escena y de producción) con las nuevas versiones de la aplicación. El clúster reconcilia automáticamente los cambios mediante la extracción de los últimos manifiestos de Git y el despliegue de la aplicación en los espacios de nombres correspondientes.