Jump to section

¿Qué es GitOps?

Copiar URL

Gartner reconoció a Red Hat como líder en el informe de 2023 Gartner® Magic Quadrant™

Red Hat ocupó el puesto más alto no solo por su capacidad de ejecución sino también por la integridad de su visión en el Magic Quadrant de Gartner de 2023 para la gestión de contenedores.

GitOps usa los repositorios de Git como única fuente de verdad para ofrecer una infraestructura como código. El código enviado verifica el proceso de integración continua (CI), mientras que el proceso de distribución continua (CD) comprueba y aplica los requisitos en torno a la seguridad, la infraestructura como código o cualquier otro límite establecido para el marco de la aplicación. Dado que se hace un seguimiento de todos los cambios en el código, resulta más sencillo implementar las actualizaciones. Además, se puede usar el control de versiones para restaurar el sistema, en caso de ser necesario.

GitOps ofrece:

  • Un flujo de trabajo estándar para el desarrollo de las aplicaciones
  • Mayor seguridad para definir los requisitos de las aplicaciones por anticipado
  • Confiabilidad mejorada con un sistema de supervisión y control de versiones a través de Git
  • Uniformidad en todos los clústeres, las nubes y los entornos locales

Se pueden combinar otras herramientas para diseñar un marco de GitOps, como los repositorios de Git, Kubernetes, las herramientas de integración y distribución continuas (CI/CD) y las de gestión de la configuración.

El enfoque de GitOps sobre la distribución continua en Kubernetes

Vea la transmisión GitOps Guide to the Galaxy en OpenShift.tv, jueves por medio a las 15 h, ET (Hora del Este)

GitOps utiliza las filosofías y los enfoques ofrecidos a quienes invierten en la cultura de DevOps y proporciona un marco para empezar a obtener resultados. Según el informe anual State of DevOps Report, las empresas que implementan las prácticas de DevOps logran mejorar considerablemente la estabilidad y la velocidad con que generan innovaciones para las aplicaciones y el código. 

GitOps utiliza los flujos de trabajo de Git que conocen los desarrolladores para ampliar los procesos actuales, desde el desarrollo de la aplicación hasta la implementación, la gestión del ciclo de vida y la configuración de la infraestructura. Los cambios que se implementan durante el ciclo de vida de la aplicación se registran en el repositorio de Git y se pueden auditar. Esto permite que los desarrolladores finalmente puedan trabajar a gusto: escriben el código a su propio ritmo sin tener que esperar a que los equipos de operaciones les asignen o aprueben los recursos.

En cuanto a los equipos de operaciones, el hecho de que puedan obtener información sobre los cambios implica que les será posible rastrear y solucionar los problemas con rapidez para mejorar la seguridad general. Los registros de auditoría actualizados permiten que las empresas reduzcan el riesgo de enfrentarse a cambios no deseados y los corrijan antes de que lleguen a la etapa de producción. 

Estos cambios en el código, desde la etapa de desarrollo hasta la de producción, agilizan la capacidad de respuesta de las empresas en el panorama empresarial y competitivo.

Lo primero que necesita es una infraestructura que se pueda gestionar de manera declarativa. Por eso, GitOps suele utilizarse como modelo operativo para Kubernetes y para el desarrollo de aplicaciones en la nube, y permite que Kubernetes realice implementaciones constantes.

Sin embargo, GitOps no exige el uso de esta plataforma, ya que se trata de una técnica que puede aplicarse a otros canales de implementación e infraestructura.   

Al igual que Kubernetes, Ansible es un motor de estado deseado que permite el modelado declarativo de sistemas de TI tradicionales y, por lo tanto, se puede usar para GitOps. Un usuario de Ansible puede gestionar las aplicaciones en Kubernetes, en una infraestructura de TI actual o en ambos entornos, con un solo plano de control y utilizando los módulos de Ansible.

GitOps se puede usar para diseñar canales de desarrollo, programar aplicaciones, gestionar configuraciones, preparar clústeres de Kubernetes y realizar implementaciones en registros de contenedores o Kubernetes.

¿Cuál es la diferencia entre Ansible y Red Hat Ansible Automation Platform?

Prepárese para empezar a usar Red Hat OpenShift GitOps

GitOps puede considerarse una evolución de la Infraestructura como código (IaC) que usa Git como su sistema de control de versiones para las configuraciones de la infraestructura. Por lo general, la IaC utiliza un enfoque declarativo para gestionar la infraestructura, es decir, define el estado deseado del sistema y realiza un seguimiento del estado actual.

Al igual que con la IaC, GitOps exige que se describa de manera declarativa el estado deseado del sistema. Si utiliza herramientas declarativas, podrá controlar la versión de todos sus archivos de configuración y códigos fuente en Git.

Por lo general, los canales de CI/CD se activan por eventos externos, como la inserción de un código en un repositorio. En un flujo de trabajo de GitOps, los cambios se realizan utilizando solicitudes de incorporación de cambios, las cuales modifican el estado en el repositorio de Git. 

Para implementar una nueva versión mediante un flujo de trabajo de GitOps, se debe realizar una solicitud de incorporación de cambios en Git, que modifica el estado declarado del clúster. El operador de GitOps, que se sitúa entre el canal de GitOps y el sistema de coordinación, detecta la confirmación y extrae de Git la declaración con el nuevo estado.  

Una vez que se aprueban y unifican los cambios, se aplican automáticamente a la infraestructura actual. Los desarrolladores pueden seguir usando sus prácticas de CI/CD y flujos de trabajo estándares.

Por lo general, si utiliza GitOps con Kubernetes, el operador será un Operador de Kubernetes. El operador compara el estado deseado, que figura en el repositorio, con el estado real de la infraestructura implementada. En caso de encontrar diferencias entre el estado real y lo que hay en el repositorio, el operador actualizará la infraestructura. Además, podrá supervisar un repositorio de imágenes de contenedor y realizar actualizaciones de la misma manera para implementar imágenes nuevas.

Un concepto importante de GitOps es la capacidad para determinar el estado interno de todos los sistemas que puedan analizarse, la cual permite garantizar que coincidan el estado deseado y el real (es decir, el que se observa).

Si utiliza solicitudes de incorporación de cambios y sistemas de control de versiones, como Git, obtendrá un panorama completo del proceso de implementación: visualizará y rastreará los cambios que se realizaron en el sistema, obtendrá un registro de auditoría y podrá revertir los cambios si algo sale mal.

Los flujos de trabajo de GitOps pueden aumentar la productividad y la velocidad del desarrollo y de las implementaciones y, al mismo tiempo, mejorar la estabilidad y fiabilidad de los sistemas.

GitOps y DevOps comparten algunos principios y objetivos. DevOps se concentra en el cambio cultural y en ofrecer a los equipos de desarrollo y de operaciones la posibilidad de trabajar juntos de manera colaborativa.

GitOps le proporciona las herramientas y un marco para que aplique las prácticas de DevOps (como la colaboración, la CI/CD y el control de versiones) a la automatización de la infraestructura y la implementación de las aplicaciones.Los desarrolladores pueden trabajar en los repositorios de código que ya conocen, mientras que los equipos de operaciones se encargan de los demás elementos necesarios.

Obtenga mayor información en Red Hat Developer Hub

Red Hat® OpenShift® es una plataforma declarativa de Kubernetes que los administradores pueden configurar y gestionar usando los principios de GitOps. Cuando se trabaja en las infraestructuras y las aplicaciones de Kubernetes, se puede aplicar la uniformidad a todos los clústeres y ciclos de vida del desarrollo. Red Hat OpenShift permite consolidar la administración y la gestión de las aplicaciones que se encuentran distribuidas en recursos locales y de nube pública para:

  • Comprobar que el estado de los clústeres sea similar (las configuraciones, la supervisión, el almacenamiento), para conocer las limitaciones de la aplicación al comienzo del ciclo de desarrollo.
  • Restaurar un cambio en el código en varios clústeres recuperándolos desde un estado conocido.
  • Implementar un cambio enviado a Git en varios clústeres de Red Hat OpenShift.
  • Asociar las configuraciones en plantillas en toda la nube híbrida.

 

GitOps Red Hat OpenShift Kubernetes diagram
 

Red Hat participa en diversos proyectos open source, como ArgoCD y Tekton, a fin de implementar un marco para GitOps. Instale el operador de Red Hat OpenShift Pipelines y descubra las herramientas nuevas que se encuentra desarrollando el operador de Red Hat OpenShift GitOps con Argo para gestionar GitOps dentro de las implementaciones actuales de Red Hat OpenShift.


Red Hat OpenShift Service on AWS (ROSA) es una plataforma de aplicaciones lista para usarse y totalmente gestionada que le permite aumentar la eficiencia operativa, centrarse nuevamente en generar innovaciones, y diseñar, implementar y ajustar las aplicaciones rápidamente en un entorno de AWS. 

Quiere decir que ROSA permite que los equipos gestionen los clústeres en todas las regiones, los creen e implementen usando las herramientas de autoservicio, y automaticen las actualizaciones y la ejecución de parches de seguridad. Por ejemplo, facilita la modernización de las aplicaciones, ya que otorga a los administradores y equipos de infraestructura los mismos beneficios que los propietarios de las aplicaciones.


Red Hat Advanced Cluster Management for Kubernetes ofrece la gestión del ciclo de vida de varios clústeres de Kubernetes. Utiliza un marco de suscripción y canal, junto con normas de ubicación, para implementar las aplicaciones de forma automática en un modelo de estado deseado en múltiples clústeres.


Red Hat Ansible® Automation Platform se encarga de que sus sistemas alcancen el estado deseado, sin importar el actual. Los playbooks de Ansible, escritos en YAML, describen el estado deseado de los sistemas, que generalmente se conservan en el control de versiones. 

Gracias a esta plataforma de automatización, puede aplicar las prácticas de GitOps a los sistemas tradicionales de TI, como las redes, la nube y los equipos con servidores dedicados (bare metal), además de Kubernetes. Con el fin de admitir las prácticas de GitOps y la IaC, se incorporan webhooks de automatización a Ansible Automation Platform. Estos permiten conectar un repositorio de Git a dicha plataforma de automatización. Una vez que se establece un enlace al repositorio, Ansible Automation Platform detecta los cambios guardados desde el sistema de Git, y utiliza esos eventos para activar trabajos de automatización que permiten actualizar proyectos, gestionar inventarios y realizar implementaciones.

Con la integración de Red Hat Advanced Cluster Management, Red Hat OpenShift GitOps y Red Hat Ansible Automation Platform, los equipos de DevOps pueden asegurarse de que las configuraciones se gestionen y mantengan según sea necesario para mejorar los canales de CI/CD.

Más información

Blog

Red Hat OpenShift Pipelines y OpenShift GitOps ahora están disponibles para el público en general

Red Hat OpenShift Pipelines y OpenShift GitOps son la base de GitOps y la CI/CD en la nube en Red Hat OpenShift Container Platform.

Artículo

La integración y la distribución continuas (CI/CD)

La CI/CD incorpora 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.

Blog

El concepto de GitOps con Red Hat Advanced Cluster Management

GitOps puede ayudarlo a implementar más aplicaciones en múltiples nubes.

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