Cuenta Iniciar sesión
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é 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

Red Hat Open Innovation Labs

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.

Red Hat Consulting

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

Illustration - mail

Obtenga más contenido como este

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

Red Hat logo LinkedInYouTubeFacebookTwitter

Productos

Herramientas

Comprar, vender, explorar

Comunicarse

Acerca de Red Hat

Somos el proveedor líder a nivel mundial de soluciones empresariales de código abierto, incluyendo Linux, cloud, contenedores y Kubernetes. Ofrecemos soluciones reforzadas, las cuales permiten que las empresas trabajen en distintas plataformas y entornos con facilidad, desde el centro de datos principal hasta el extremo de la red.

Suscríbase a nuestra newsletter, Red Hat Shares

Suscríbase ahora

Seleccionar idioma

© 2022 Red Hat, Inc. Red Hat Summit