FeaturedNOTICIAS

¿Qué es «GitOps» y por qué es importante? – CloudSavvy IT


logotipo de git en el fondo
Shutterstock / Estudio posmoderno

GitOps es un enfoque de infraestructura que toma las mejores prácticas de desarrollo de software y las aplica a los sistemas de TI. GitOps se basa en el modelo Infraestructura como código para crear un modelo de infraestructura automatizado colaborativo y versionado como su código.

Un equipo de operaciones moderno lanzará periódicamente nuevos servicios para cada distribución. Las instancias de contenedores, las bases de datos y el equipo de red deben estar disponibles para que las implementaciones sean exitosas.

GitOps define los recursos que se aprovisionarán como archivos existentes en un repositorio de Git. Esto permite que todos los miembros del equipo inspeccionen y contribuyan a la infraestructura que se proporcionará. Puede utilizar las canalizaciones de CI para verificar su configuración y, en última instancia, enviarla a su plataforma en la nube.

Un repositorio de infraestructura termina pareciéndose mucho a un repositorio de software. Usted crea una rama para cada cambio, actualiza sus archivos de configuración, completa una revisión y se une a su rama principal. Luego, una herramienta automatizada, como Ansible o Terraform, aplica los cambios a su entorno. El flujo de trabajo es el mismo modelo de ramificación versionado que utilizan los desarrolladores.

¿Qué es Git?

El Git en GitOps se refiere al sistema de control de versiones de Git. Git se ha convertido en la herramienta de verificación de código elegida por la mayoría de los desarrolladores. Tiene un modelo de almacenamiento descentralizado y enfatiza el uso de sucursales locales para evolucionar cambios.

Los sistemas de control de versiones simplifican la iteración del trabajo. Puede abordar los componentes independientes en paralelo, utilizando ramas, antes de fusionarlos en una rama principal que representa la versión «liberada» de su proyecto. Envíe su código a un repositorio compartido, a menudo en un servicio como GitHub o GitLab, para compartirlo con otros.

Infraestructura declarativa

La mayor fortaleza de GitOps radica en su papel como fuente de verdad. Cualquiera puede saber cómo se ve su infraestructura haciendo referencia a los archivos en su repositorio de Git. Tendrás una serie de archivos de configuración que definen las características de tu sistema.

Los archivos de configuración suelen ser declarativo en la naturaleza: describe el sistema en tiempo presente. Usted «declara» que debe haber cinco servidores en su arquitectura, en lugar de proporcionar una lista de comandos que inician directamente cinco servidores. Su herramienta de aprovisionamiento convierte sus instrucciones en una secuencia de comandos que mueven su infraestructura al estado deseado.

Aquí es donde entra en juego la integración continua (CI). Un desarrollador de software ejecutará canalizaciones automatizadas para ejecutar pruebas unitarias, realizar análisis estáticos y, en última instancia, implementar en producción. Una canalización de equipo de infraestructura típica verificará sus archivos de configuración en busca de errores de sintaxis antes de enviarlos a un agente que aplica los cambios a sus sistemas.

Habilidad de verificar

Ser capaz de utilizar canalizaciones de CI para implementar cambios en la infraestructura le permite verificar que esos cambios realmente estén funcionando según lo previsto. GitOps también ofrece la opción de verificación continua donde los agentes en su infraestructura monitorean constantemente las discrepancias.

El depósito es la única fuente de verdad. De ello se deduce que cualquier diferencia observada en el sistema real es un error que debe corregirse. Un agente con acceso al repositorio y los recursos proporcionados puede tomar medidas para corregir el estado actual si ya no coincide con sus reclamos.

GitOps le ayuda a observar su infraestructura. Los archivos de configuración declarativos proporcionan una explicación de cómo sus sistemas entraron en su estado actual. Puede consultar los compromisos de Git del repositorio para comprender cómo ha evolucionado la infraestructura con el tiempo.

GitOps también puede ofrecer una forma de revertir los cambios de infraestructura. En su forma más simple, volver a una confirmación anterior restaura una versión anterior de los archivos de configuración. Sin embargo, aplicarlos realmente puede ser difícil. Si bien el código se puede restaurar simplemente sobrescribiendo la implementación actual, «revertir» la creación o eliminación de la infraestructura es mucho menos sencillo.

Deberá evaluar el agente de implementación que está utilizando para determinar si las reversiones son una posibilidad realista. Si no es posible una implementación en el lugar, al menos puede restaurar las confirmaciones en su repositorio y volver a implementarlas en un entorno limpio. Luego, debe utilizar sus procedimientos de recuperación para restaurar sus datos.

Desafíos con GitOps

La falta de madurez es el mayor obstáculo para adoptar GitOps. El término sigue siendo opaco para los equipos de operaciones que pueden ser relativamente inexpertos con los flujos de trabajo controlados por versiones.

Muchos equipos de infraestructura estarán acostumbrados a las prácticas de trabajo que han perfeccionado durante las últimas dos décadas. SSH en los servidores, realice sus cambios y documentelos en una wiki administrada de forma centralizada. No está controlado, pero es simple y funciona.

GitOps resuelve la falta de control y puede mejorar la visibilidad del estado de los sistemas. Al mismo tiempo, existe una curva de aprendizaje que implica un flujo de trabajo estructurado y un conjunto de herramientas muy diferente. El acceso SSH directo ya no es apropiado. En su lugar, realiza cambios editando archivos y esperando que una canalización de CI los aplique.

Obtener el consenso de los equipos relevantes puede ser el mayor desafío al presentar GitOps a una nueva organización. Esté preparado para que quienes toman las decisiones malinterpreten el valor o no lo reconozcan por completo. Algunos se sentirán frustrados por tener que confirmar, fusionar y buscar la aprobación de los cambios que podrían obtener manualmente mediante un comando SSH rápido. GitOps permanece donde estaba DevOps hace unos años, esperando ver una adopción generalizada fuera de la literatura técnica.

Aparte del rechazo organizacional, GitOps también tiene debilidades prácticas. Un desafío común es la implementación en múltiples entornos diferentes. Un enfoque común es asignar a cada entorno su propia rama en el repositorio. Esto se vuelve torpe rápidamente si tienes muchos entornos. Un enfoque alternativo podría basarse en múltiples repositorios, quizás usando submódulos de Git, pero esto mueve la redundancia a otra parte.

GitOps es todavía un concepto joven y no existen modelos establecidos para su implementación. Sin una arquitectura de referencia, tendrá que experimentar de forma independiente. Esto se suma a la lista de incógnitas para las organizaciones que evalúan la idoneidad del modelo.

RELACIONADOS: Automatice la implementación continua en contenedores con CodeBuild, ECR y CodeDeploy

Resumen

GitOps es un enfoque para la gestión de la infraestructura de TI que utiliza un repositorio de Git como fuente de verdad. Escribe archivos de configuración declarativos que describen los recursos que desea aprovisionar. Un sistema automatizado toma esos archivos y los usa para hacer evolucionar el estado de su infraestructura.

Como concepto, GitOps tiene mucho sentido. Reduzca la brecha entre los equipos de desarrollo y operaciones unificando el flujo de trabajo. Obtenga una mayor visibilidad de su infraestructura y la capacidad de controlar versiones y cambios.

Sin embargo, GitOps sigue siendo difícil de implementar en muchos casos. Requiere el consentimiento de la organización, la aceptación de algunas ineficiencias inherentes y el compromiso de resolver problemas técnicos que no necesariamente puede prever. Las organizaciones que se centran en GitOps pueden esperar ver una mayor coherencia y estandarización. Pero para muchos otros, los beneficios proporcionados todavía no son un incentivo suficiente para deshacerse de los comandos CLI en la terminal de un administrador de sistemas.

TE INTERESA>>  Summer Game Fest 2021: hoy inicia el evento, conozcan a qué hora y cómo pueden verlo

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba