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
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.