GitOps para los entornos multicloud

Copiar URL

GitOps es un conjunto de principios que dirigen su flujo de trabajo y permiten que adopte la implementación continua (CD) para las aplicaciones desarrolladas en la nube. La automatización de los procesos manuales permite gestionar la configuración de los clústeres y la implementación de las aplicaciones. Por ejemplo, con GitOps puede gestionar clústeres de Red Hat® OpenShift® Container Platform en diferentes entornos de varios clústeres de Kubernetes. Le permite automatizar las implementaciones independientemente de su complejidad, lo cual aporta una mayor eficiencia a los flujos de trabajo de las aplicaciones.

Puede utilizar GitOps para implementar aplicaciones nuevas o actualizar las que ya posee. Solo debe actualizar el repositorio, y un flujo de trabajo de GitOps se encargará de automatizar el resto. 

Específicamente, GitOps permite:

  • Gestionar las implementaciones multicloud y de nube híbrida en nubes públicas y privadas
  • Supervisar los diferentes clústeres y gestionar el ciclo de vida de las aplicaciones
  • Proteger la gestión de los secretos durante la implementación

Gracias a estas funciones, es posible reducir los desafíos inherentes al enfoque multicloud, como la necesidad de mantener la uniformidad, la seguridad y la colaboración a medida que las cargas de trabajo se trasladan entre los diferentes entornos: las nubes públicas y privadas e incluso las instalaciones. 

En GitOps, el repositorio de Git es la única fuente de información que se utiliza para configurar las aplicaciones y los sistemas. Se trata de una descripción declarativa de la infraestructura del entorno que funciona en conjunto con los procesos automatizados que se gestionan con herramientas de GitOps, como Argo CD. Los procesos de automatización se encargan de que el estado real de su entorno se corresponda con el descrito. También puede utilizar el repositorio para ver la lista de los cambios en el estado del sistema, ya que la herramienta se encarga de registrarlos. 

Además, al almacenar la infraestructura y la configuración como código, se reduce el crecimiento descontrolado. Esto es algo que puede hacer con la configuración de las aplicaciones y los clústeres en los repositorios de Git. 

Recursos de Red Hat

Las empresas necesitan desarrollar, implementar y gestionar las aplicaciones en una nube híbrida abierta de manera segura, sencilla y estable. Para ello, deben contar con una estrategia híbrida que incluya implementaciones multicloud. 

Sin embargo, el enfoque multicloud presenta desafíos importantes. Por ejemplo, los diferentes proveedores de nube ofrecen distintas herramientas que pueden no funcionar bien entre sí, de manera que resulta complicado y costoso migrar las cargas de trabajo. La falta de portabilidad también conlleva mayores riesgos para la seguridad y la privacidad de los datos. 

Sin embargo, muchos de estos desafíos se han logrado abordar con Kubernetes, ya que permite ejecutar varios clústeres en diferentes entornos de nube y en las instalaciones. Las cargas de trabajo se trasladan perfectamente entre los entornos sin que se generen problemas relacionados con la seguridad y la migración. 

Además, pueden ejecutarse en varios clústeres y en diferentes nubes, ya sean públicas o privadas. Si bien esta estrategia ayuda a reducir las dificultades mencionadas anteriormente, también implica la adopción de un enfoque de infraestructura como código. En otras palabras, una estrategia multicloud moderna exige el uso de GitOps. 

Como explicamos antes, GitOps usa los repositorios de Git como única fuente de información para ofrecer una infraestructura como código. Primero, el código enviado pasa por el proceso de integración continua (CI) y, mediante la distribución continua (CD), se verifican y aplican los requisitos. Se registran todos los cambios que se realizaron al código, lo cual le permite revisar y controlar las versiones. 

Así, GitOps posibilita la colaboración entre los equipos de infraestructura para agilizar el proceso de desarrollo. Además, aporta uniformidad al enfoque multicloud mediante el uso de procesos automatizados en lugar de manuales, ya que estos últimos pueden resultar costosos y dar lugar a errores humanos. 

Las empresas que implementan un enfoque multicloud requieren que todos sus entornos sean uniformes y seguros. Por eso, necesitan una solución de GitOps, como Red Hat OpenShift GitOps.

Red Hat OpenShift GitOps es un operador que se encarga de instalar y configurar instancias de Argo CD para que usted no deba hacerlo. En función de estos repositorios de configuración, organiza el proceso de implementación para gestionar la configuración de la infraestructura y las implementaciones de aplicaciones. Hay al menos dos repositorios que siempre son esenciales en el proceso:

  • El repositorio de aplicaciones con el código fuente
  • El repositorio de configuración del entorno que define el estado deseado de la aplicación

Para mantener los recursos de los clústeres, Red Hat OpenShift GitOps utiliza Argo CD, una herramienta open source que se ocupa de la implementación continua dentro del proceso de integración e implementación continuas (CI/CD) de las aplicaciones. Más precisamente, Argo CD actúa como un controlador de Red Hat OpenShift GitOps que supervisa las configuraciones y las descripciones del estado de las aplicaciones que aparecen en un repositorio de Git. Compara el estado definido con el real y genera informes cuando advierte que las configuraciones no se ajustan a la descripción especificada. 

En función de estos informes, los administradores pueden volver a sincronizar las configuraciones para alcanzar el estado deseado, ya sea de forma manual o automatizada. En caso de que se automatice la sincronización, lo que hace la configuración es autorregenerarse.

Red Hat OpenShift GitOps y sus procesos automatizados le permiten:

  • Asegurarse de que los clústeres tengan estados similares de configuración, supervisión y almacenamiento
  • Aplicar o revertir los cambios de configuración en varios clústeres
  • Asociar las configuraciones en plantillas a diferentes entornos
  • Implementar aplicaciones en diferentes clústeres, desde la preparación hasta la producción

Los operadores son el método más utilizado para empaquetar, implementar y gestionar los servicios en el plano de control de OpenShift Container Platform. Por ejemplo, GitOps Primer es un operador que exporta objetos de Kubernetes, lo cual permite compartirlos entre los distintos clústeres, equipos y entornos. Es uno de los elementos que permite que GitOps aporte uniformidad, seguridad y colaboración a los enfoques multicloud. 

Se integran con las API de Kubernetes y las herramientas de la interfaz de línea de comandos (CLI) a fin de ofrecer los medios necesarios para supervisar las aplicaciones, comprobar su estado, garantizar que se mantengan en el estado que especificó y gestionar las actualizaciones inalámbricas (OTA).

Según el objetivo que tengan los operadores de OpenShift Container Platform, se utilizan dos sistemas diferentes para gestionarlos:

Con los operadores, puede diseñar aplicaciones para supervisar los servicios que se ejecutan en el clúster. Estos implementan y automatizan las operaciones de instalación y configuración, se ajustan automáticamente y crean backups. Todas estas actividades se realizan en un sistema de software en ejecución dentro del clúster.

Los operadores proporcionan:

  • Instalaciones y actualizaciones que se pueden repetir
  • Verificaciones permanentes del estado de todos los elementos del sistema
  • Actualizaciones inalámbricas (OTA) de los elementos de OpenShift
  • Una ubicación que reúne el conocimiento de los ingenieros de campo y permite distribuirlo a todos los usuarios, no solo a unos pocos

GitOps Primer es un operador que se ejecuta en el clúster de OpenShift y permite que los desarrolladores exporten todos los objetos de Kubernetes en un espacio de nombres. Genera un archivo .zip portable que le permite:

GitOps Primer facilita la adopción del enfoque de infraestructura como código que GitOps aporta a los entornos multicloud.

Git funciona como la única fuente de información para la configuración de la infraestructura y las aplicaciones. Para que las herramientas de GitOps puedan cumplir esa función, en ambos casos es necesario acceder a recursos confidenciales, más conocidos como secretos (por ejemplo, las claves privadas y los tokens de autenticación, entre otros).

Sin embargo, el almacenamiento de secretos en el repositorio de Git representa un punto vulnerable de seguridad y no debería permitirse, incluso si se considera que el repositorio es privado y que contiene controles para limitar el acceso del público. Una vez que un secreto se agregue a Git en texto claro (o en un estado que se pueda revertir con facilidad), se considerará en riesgo y deberá eliminarse de inmediato.

Para abordar este desafío, GitOps ofrece dos enfoques de arquitectura principales:

  • El uso de secretos cifrados
    • Se almacenan en repositorios de Git.
    • Los procesos automatizados los descifran y los procesan como secretos de Kubernetes.
  • El almacenamiento de referencias a los secretos en los repositorios de Git
    • Los procesos automatizados recuperan los secretos en función de las referencias, los cuales se procesan como secretos de Kubernetes.
    •  

Lea A Guide to Secrets Management with GitOps and Kubernetes para obtener más información sobre estos dos enfoques.

Ahora que tiene conocimiento sobre GitOps para los entornos multicloud, está en condiciones de aprender a utilizar GitOps en el desarrollo:

  • Comience a usar Argo CD y OpenShift GitOps Operator.
  • Empiece a utilizar enlaces y syncwaves.
  • Obtenga información sobre la CI/CD con Red Hat Ansible® Automation Platform y Jenkins on OpenShift.

También puede seguir explorando artículos relacionados con OpenShift GitOps, por ejemplo:

Desarrolle aplicaciones con GitOps

Hub

Blogs de Red Hat

Aquí encuentras la información más reciente sobre nuestros clientes, partners y comunidades open source.

Todas las versiones de prueba de los productos de Red Hat

Con las versiones de prueba gratuitas de nuestros productos, podrás adquirir experiencia práctica, prepararte para obtener una certificación o evaluar las soluciones para saber si son adecuadas para tu empresa.

Más información

¿Qué es una plataforma interna para desarrolladores?

Una plataforma interna para desarrolladores (IDP) consiste en un conjunto de tecnologías y herramientas de autoservicio que los desarrolladores necesitan para crear e implementar código.

La ingeniería de plataformas

La ingeniería de plataformas es la disciplina del desarrollo de software que se centra en mejorar la productividad, la duración de los ciclos de las aplicaciones y el tiempo de comercialización.

¿Qué es la observabilidad? Conoce sus ventajas

La observabilidad se refiere a la capacidad de supervisar, medir y conocer el estado de un sistema o una aplicación mediante la evaluación de sus resultados, registros e indicadores de rendimiento.

DevOps: lecturas recomendadas