Casos de uso de Argo CD y Flux - 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.

Casos de uso de Argo CD y Flux

Esta sección se centra en dos herramientas, Argo CD y Flux, que proporcionan una funcionalidad pura GitOps. En este contexto, pure GitOps se refiere a un modelo en el que un repositorio de Git sirve como única fuente de información sobre el estado deseado de las aplicaciones y la infraestructura. Todos los cambios se realizan mediante confirmaciones de Git y el sistema sincroniza automáticamente el entorno en vivo para que coincida con el estado definido en el repositorio. No se requiere ninguna intervención manual fuera de las operaciones de Git.

Consideraciones generales

  • Puede que prefieras usar Argo CD en entornos en los que la gestión visual y los flujos de trabajo centrados en las aplicaciones sean importantes.

  • Puede elegir Flux si necesita soluciones más livianas, una sólida capacidad de arrendamiento múltiple o una integración profunda con la red más amplia de Cloud Native Computing Foundations (CNCF).

  • Argo CD suele atraer a los equipos que están pasando de la CI/CD tradicional a la CI/CD tradicional debido a su interfaz de usuario intuitiva. GitOps

  • Flux suele ser el preferido en los entornos nativos de la nube, donde los flujos de trabajo basados en CLI y las prácticas de IaC ya están establecidos.

En última instancia, la elección entre Argo CD y Flux suele depender de las necesidades organizativas específicas, de las herramientas existentes y de las preferencias del equipo. Ambas herramientas son capaces de gestionar la mayoría de los GitOps escenarios, por lo que le recomendamos que las evalúe en función de sus casos de uso y requisitos específicos.

Casos de uso de Argo CD

Gestión visual:

  • Cuando necesite una interfaz de usuario fácil de usar para gestionar las implementaciones y visualizar los estados de las aplicaciones.

  • Para los equipos que prefieren una interfaz gráfica para la supervisión y la solución de problemas.

Enfoque centrado en las aplicaciones:

  • Cuando desee gestionar las implementaciones a nivel de aplicación en lugar de gestionar los recursos individuales.

  • Para organizaciones que estructuran sus despliegues en torno a conceptos de aplicaciones.

Administración de varios clústeres:

  • Cuando la gestión de las implementaciones en varios clústeres es un requisito principal.

  • Para entornos complejos y distribuidos con muchos clústeres.

Reversión y sincronización de ondas:

  • Cuando necesite un control detallado del proceso de implementación, incluidas las ondas de sincronización y las intervenciones manuales.

  • Para escenarios que requieren estrategias de reversión complejas.

Integración con las herramientas existentes:

  • Cuando ya utilizas otras herramientas del proyecto Argo, como Argo Workflows y Argo Events.

Entornos empresariales:

  • Para grandes empresas que necesitan una sólida integración de RBAC e inicio de sesión único de forma predeterminada.

Casos de uso de Flux

Implementaciones ligeras:

  • Cuando necesite una solución más ligera y que consuma menos recursos GitOps.

  • Para escenarios de computación perimetral o IoT en los que los recursos pueden estar limitados.

Actualizaciones de imágenes automatizadas:

  • Cuando la detección y el despliegue automáticos de nuevas imágenes de contenedores son un requisito clave.

  • Para equipos que se centran en un despliegue continuo con actualizaciones frecuentes de las imágenes.

Tenencia múltiple:

  • Cuando se necesita un sólido soporte para múltiples inquilinos, especialmente en entornos de clústeres compartidos.

  • Para proveedores de servicios o grandes organizaciones que tienen una separación estricta entre equipos o proyectos.

IaC:

  • Cuando es importante gestionar las aplicaciones y la infraestructura mediante el mismo GitOps flujo de trabajo.

  • Para equipos que apuestan fuertemente por el paradigma de la IaC.

Integración del timón:

  • Cuando el uso extensivo de los gráficos de Helm forma parte de su estrategia de despliegue.

  • Para entornos que tienen despliegues complejos basados en Helm.

Integración del proyecto CNCF:

  • Cuando es importante una estrecha integración con otros proyectos de la CNCF.

  • Para organizaciones que se alinean con las tecnologías y los principios de la CNCF.

Arquitectura modular:

  • Cuando necesite flexibilidad para usar solo componentes específicos del GitOps kit de herramientas.

  • Para equipos que desean crear GitOps flujos de trabajo personalizados mediante componentes modulares.

Entrega progresiva:

  • Cuando las estrategias de despliegue avanzadas, como las versiones preliminares o A/B las pruebas, son requisitos fundamentales.

Comparación de características

Área Argo CD Flujo

Support for core GitOps principles

Arquitectura

End-to-end aplicación para implementar flujos de trabajo de Kubernetes GitOps

Proporciona CRDs Kubernetes y controladores para GitOps

Configuración

Sencillez

Complejo

Soporte de timón

Personaliza el soporte

GUI integrada

CLI e interfaz de usuario web con todas las funciones

CLI e interfaz web ligera opcional

Soporte RBAC

Control granular

RBAC nativo de Kubernetes

Soporte para varios usuarios y varios clústeres

Excelente soporte para múltiples clústeres

Excelente soporte para la multitenencia

Autenticación mediante inicio de sesión único

Automatización de la sincronización

Posibilidad de sincronizar ventanas

Posibilidad de establecer intervalos de reconciliación

Sincronización parcial

No

Proceso de reconciliación

Soporta sincronizaciones manuales y automáticas. Hay varias estrategias diferentes disponibles.

Soporta sincronizaciones manuales y automáticas.

Extensibilidad

Soporta plugins personalizados. Opciones de personalización limitadas.

Soporta un mando personalizado. Buena extensibilidad e integraciones de terceros.

Apoyo de la comunidad

Comunidad grande y activa.

Comunidad más pequeña pero en crecimiento.

Escalabilidad

Buena escalabilidad, pero limitada por la velocidad de obtención de datos de la interfaz de usuario web. Los análisis de la comunidad sugieren que son compatibles con decenas de miles de aplicaciones.

Guías claras para la escalabilidad horizontal y vertical, hasta decenas de miles de aplicaciones.