La importancia de GitOps: el paso hacia la nube nativa
Al integrar las herramientas, las prácticas y los procesos de GitOps, usted puede crear una base sólida para sus aplicaciones nativas de la nube.
A medida que su organización adopta medidas para convertirse en nativa de la nube, deberá hacer un cambio de mentalidad. En lugar de pensar en términos de máquinas virtuales, almacenes de datos, desarrollo en cascada y migraciones, sus equipos pasarán al mundo de los contenedores y de la informática sin servidor, de los lagos de datos, del desarrollo ágil y de la automatización.
Ser nativo de la nube significa adoptar una manera más inteligente, rápida y escalable de operar, una manera habilitada por la nube que lo ayude a resolver los desafíos comerciales y a mejorar las experiencias más rápido y con un conjunto de herramientas más valioso.
Aunque DevOps ha dado lugar a grandes avances en esta área para el desarrollo de aplicaciones, la infraestructura se mantiene, en gran parte, inactiva. Muchos equipos de infraestructura siguen atascados con procesos, infraestructuras y modelos de servicio manuales y obsoletos.
Ahí es donde entra GitOps. Con GitOps, puede aplicar una mentalidad nativa de la nube a su infraestructura para crear un ambiente elástico que soporte implementaciones continuas, mientras establece confiabilidad y seguridad.
¿Cómo es GitOps?
1. Es un sistema basado en código
A través de herramientas como Kustomize, Helm, Terraform y Ansible, puede declarar (definir) servicios/plataformas a través de lenguajes de configuración. Además, almacenará su repositorio de plantillas y manifiestos en un sistema de control de código fuente basado en Git creando una fuente única de información para sus equipos de DevOps o SRE.
2. Aplica protecciones efectivas
Al declarar todos los servicios/las plataformas mediante el control de código fuente, puede aplicar control de acceso basado en roles (RBAC) y auditar registros para abordar los requisitos de seguridad. Su repositorio de servicios/plataformas también se puede integrar en las herramientas de CI/CD, de modo que pueda habilitar implementaciones con aprobación a través de solicitudes con los comandos pull, push o merge y garantizar tiempos de recuperación rápidos cuando se requiera una restauración.
3. Detecta y administra el cambio
Al integrar herramientas de infraestructura como operadores de Kubernetes en el proceso de GitOps, puede monitorear el estado actual de sus servicios/plataformas y garantizar que, cuando se produzca el cambio, se reconcilie el estado deseado. Esto hace que sus servicios/plataformas estén continuamente alineados con el repositorio.
4. Sus implementaciones son automáticas, con integración continua
El repositorio de servicios/plataformas para su aplicación puede seguir un modelo de implementación push o pull. Con el modelo pull, se integrará con una herramienta de infraestructura como el operador de Kubernetes para buscar cambios en el repositorio de aplicaciones o en el repositorio de servicios/plataformas. Si se detectan cambios, la herramienta implementará los cambios necesarios.
Con el modelo push, los ingenieros enviarán el código al repositorio del ambiente que hospede el código para el servicio o la plataforma. Entonces, esto activará una respuesta de desarrollo o cambio en el ambiente usando el operador de Kubernetes o las herramientas de infraestructura.
Los beneficios de GitOps
1. Mejor experiencia del cliente
Las prácticas, los procesos y las herramientas de GitOps pueden acelerar su implementación de nuevas funciones y productos. Y a medida que aumentan sus velocidades de lanzamiento, puede recopilar y responder a los feedback de los clientes más rápido, lo que puede dar lugar a una mejor satisfacción del cliente.
2. Confiabilidad
Debido a que sus servicios/plataformas se definen de forma declarativa a través del código, puede integrar las pruebas de código en sus flujos de CI/CD. A través de esta integración, puede habilitar los procesos de aprobación, prueba y reversión de cambios, lo que puede mejorar la confiabilidad general y el tiempo medio de recuperación de sus aplicaciones cuando implementa cambios.
3. Coherencia
Con los procesos, las prácticas y las herramientas de GitOps, su proceso integral para implementar o cambiar servicios/plataformas se vuelve estandarizado y coherente. Y debido a que la configuración del servicio/la plataforma se administra mediante código, sus ingenieros pueden revisar los estados actuales y anteriores al acceder a los registros de las ramas del repositorio.
4. Seguridad
GitOps puede ayudarlo a abordar sus requisitos de compliance de SOC 2 a medida que se hace un seguimiento de las implementaciones y los cambios a través del comando git log, lo que crea un rastro de auditoría de quién hizo qué y cuándo. Además, mediante la aplicación de procesos de codificación y aprobación, y la implementación de controles de acceso basados en roles en los repositorios, puede disminuir la superficie de ataque para sus servicios/plataformas.
Cómo desarrollar una base sólida
Al integrar las herramientas, las prácticas y los procesos de GitOps, usted puede crear una base sólida para sus aplicaciones nativas de la nube. GitOps lo ayuda a garantizar que su traslado a las arquitecturas nativas de la nube sea controlado y que pueda continuar ofreciendo nuevas funciones más rápido, al tiempo que mantiene la confiabilidad para sus aplicaciones.
DevOps en el mundo de la nube nativa: colisionan dos de los términos más importantes de la tecnología
About the Authors
Lead Cloud Architect, Elastic Engineering
Oliver Fletcher
Oliver has been working with a great team at Rackspace Technology to help build out the Elastic Engineering capability across APJ. Oliver has worn many hats during this time of growth, which has included pre-sales, leadership, architecture and engineering. For the last 8 years, Oliver has spent time helping organizations on their journey to the cloud. This included working with top-tier financial services and telecommunications organizations to define their cloud strategies, and also designing and delivering complex architectures across multiple public and private cloud platforms. Prior to Rackspace Technology Oliver led strategy, delivery and operations teams at both Accenture and EY. Having come from a development and operations background, Oliver understands the importance of building resilient distributed systems that not only deliver business outcomes but allow engineers to sleep at night.
Read more about Oliver FletcherRelated Topics