Iniciar sesión / Registrar Cuenta
Jump to section

¿Qué es GitOps?

Copiar URL

GitOps consiste en una serie de prácticas para gestionar las configuraciones de las aplicaciones y las infraestructuras usando Git, un sistema de control de versiones open source, como única fuente de verdad para la infraestructura declarativa y las aplicaciones.

GitOps usa las solicitudes de incorporación de cambios de Git para gestionar de manera automática la preparación y la implementación de la infraestructura. El repositorio de Git contiene el estado completo del sistema, lo cual le permitirá ver y auditar las modificaciones realizadas en él.

GitOps se diseñó teniendo en cuenta la experiencia de los desarrolladores, y ayuda a los equipos a gestionar la infraestructura con las mismas herramientas y procesos que se usan para desarrollar los sistemas de software. También le da la posibilidad de elegir las herramientas que necesita, además de Git.

A Weaveworks se le atribuye la creación de este término.

Lo primero que necesita es una infraestructura que se pueda gestionar de manera declarativa. Por este motivo, 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 Kubernetes, ya que se trata de una técnica que puede aplicarse a otros canales de implementación e infraestructuras.   

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.

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, con GitOps debe describir 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 continuar usando sus prácticas de integración y distribución continuas y flujos de trabajo estándar. 

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

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.

Red Hat OpenShift GitOps es un complemento de Red Hat OpenShift que proporciona Argo CD y otras herramientas para que los equipos implementen los flujos de trabajo de GitOps, lo cual les permitirá configurar los clústeres y distribuir las aplicaciones. 

Red Hat Ansible Automation Platform es un motor de estado deseado que permite el modelado declarativo de los sistemas. Los playbooks de Ansible, los cuales están escritos en YAML, describen el estado deseado de sus sistemas, que generalmente se conservan en el control de versiones. Red Hat Ansible Automation Platform se encarga de que sus sistemas alcancen el estado deseado, sin importar el actual. 

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 sin sistema operativo, 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.

Artículos relacionados

Artículo

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

La CI/CD es un método para distribuir las aplicaciones a los clientes constantemente, mediante el uso de la automatización en las etapas del desarrollo de las aplicaciones. Los principales conceptos que se atribuyen a la CI/CD son la integración, la distribución y la implementación continuas.

Artículo

¿Qué es la infraestructura como código?

La infraestructura como código (IaC) permite gestionar y preparar la infraestructura con códigos, en lugar de hacerlo mediante procesos manuales. Con este tipo de infraestructura, se crean archivos de configuración que contienen las especificaciones que esta necesita, lo cual facilita la edición y la distribución de las configuraciones. 

Tema

El concepto de DevOps

DevOps es un modo de abordar la cultura, la automatización y el diseño de las plataformas para generar mayor valor empresarial y capacidad de respuesta, mediante la prestación ágil de servicios de alta calidad.Para este enfoque, es necesario que los equipos de desarrollo y operaciones trabajen juntos.

Comience con las soluciones de GitOps

Red Hat OpenShift

Plataforma de contenedores de Kubernetes empresarial con operaciones automatizadas integrales para gestionar implementaciones de nube híbrida, multicloud y edge computing. 

Red Hat Ansible Automation Platform

Plataforma que incluye las herramientas necesarias para diseñar y ejecutar la automatización en toda la empresa.

Illustration - mail

Obtenga más contenido como este

Suscríbase a nuestro boletín informativo: Red Hat Shares.