Jump to section

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. 

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:

Artículos relacionados

ARTÍCULO

¿Qué es DevSecOps?

Si desea aprovechar al máximo la agilidad y la capacidad de respuesta de los enfoques de DevOps, la seguridad de la TI debe desempeñar un papel principal en todo el ciclo de vida de sus aplicaciones.

ARTÍCULO

¿Qué son la integración/distribución continuas (CI/CD)?

La integración y la distribución continuas (CI/CD) incorporan la automatización y la supervisión permanentes en todo el ciclo de vida de las aplicaciones, desde las etapas de integración y prueba hasta las de distribución e implementación.

ARTÍCULO

¿Qué hace un ingeniero de DevOps?

Un ingeniero de DevOps es alguien que posee una combinación única de habilidades y experiencia que permite la colaboración, la innovación y los cambios culturales dentro de una empresa.  

Más información sobre DevOps

Productos

Programa intensivo y altamente especializado con personal experto de Red Hat, que le enseñará a utilizar una metodología ágil y herramientas open source para solucionar los problemas comerciales de su empresa.

Servicio de nuestros asesores estratégicos, quienes tienen una visión amplia de su empresa, analizan sus desafíos y lo ayudan a superarlos con soluciones completas y rentables.

Contenido adicional

Lista de verificación

Automatización empresarial con metodología DevOps

Whitepaper

Optimice los canales de CI/CD con Red Hat Ansible Automation Platform