La evolución de la gestión de la configuración: IaC frente a GitOps

Publicado: 2022-05-23

Tabla de contenido

La evolución de la gestión de la configuración

Las estructuras inadecuadas son la razón principal detrás de los incidentes de seguridad en Kubernetes, entornos orquestados u otros entornos de contenedores. Sin la configuración adecuada, las aplicaciones pueden tener problemas que van desde incompatibilidades y conflictos hasta fallas en el rendimiento, vulnerabilidades de seguridad y fallas operativas. La administración de la configuración es una parte importante para mantener el estado estable y deseado de las computadoras en el ciclo de vida del desarrollo de software.

Gestión de configuración heredada

En ese entonces, cuando se trataba de administrar cambios en los recursos de TI, el equipo de TI se enfocaba principalmente en el nivel del servidor, para ver si algún cambio en el hardware causaría problemas en la capa restante. Cada servidor fue configurado manualmente con excelente atención y tiempo libre. Las máquinas virtuales aportaron mayor flexibilidad y eficiencia a este proceso.

El código de infraestructura (IaC) es un gran paso para la gestión de la configuración, donde todo el hardware se define como un código. Las herramientas de IaC, como las plataformas basadas en la nube, Chef, Puppet y Ansible, desempeñaron un papel clave en la simplificación y escalabilidad de la gestión de la infraestructura. Ayudaron a acelerar el aprovisionamiento de infraestructura y redujeron los costos al mejorar la utilización de los recursos.

A lo largo de los años, las plataformas basadas en la nube y los contenedores, en particular, han revolucionado la forma en que se aprovisiona la infraestructura. Con la adopción de una nube importante y la transformación de Git en el sistema de control de versiones actual, GitOps se ha convertido en el último giro en la evolución de la gestión de la arquitectura. GitOps va mucho más allá de IaC cuando se trata de codificar todo. 'Todo' aquí incluye infraestructura, redes, datos y aplicaciones.

Kubernetes y el enfoque declarativo de la infraestructura

Al igual que la programación, existen dos enfoques para proporcionar infraestructura: notificación y obligatoriedad.

Un enfoque convincente requiere que especifique los pasos apropiados que se deben tomar para proporcionar o modificar la infraestructura. Proporciona la experiencia para utilizar la infraestructura. Proporciona la experiencia para utilizar la infraestructura. Por otro lado, el enfoque de notificación es más apto para el enfoque moderno nativo de la nube definido por Kubernetes. Solo necesita definir el estado deseado del sistema y dejar su funcionalidad a un sitio como Kubernetes. La infraestructura de Kubernetes facilita tanto la automatización como la configuración de notificaciones.

El cambio de DevOps a GitOps

GitOps, concebido en 2017, es un marco funcional moderno para administrar clústeres de Kubernetes y entregar aplicaciones centradas en Git. Obtiene los mejores bits de DevOps, como la herramienta CI/CD, una colaboración entre Dev y Ops, la automatización de procesos y los utiliza en la canalización de entrega de software utilizando Git como fuente de autenticidad.

DevOps aseguró la colaboración entre los equipos operativos y de desarrollo y generó un cambio cultural en el campo de la tecnología de la información. Pero, menos de lo esperado, las empresas adoptaron las características de integración continua y distribución continua, pero no avanzaron hacia el despliegue continuo.

Aquí es donde GitOps lleva las cosas al siguiente nivel. Con el enfoque de GitOps, los equipos no solo definen sino que también administran la clasificación y modificación de su infraestructura desde un repositorio de Git. Hacer cambios en la infraestructura es tan fácil como crear una solicitud de arrastre ahora: puede detectar errores tipográficos, realizar revisiones periódicas o cambiar el compromiso si es necesario. Con Git, los desarrolladores ahora pueden generar código y los ingenieros de sistemas operativos pueden usar este código automáticamente en producción.

Uso de Flux & Helm para la gestión de configuración impulsada por GitOps

Kubernetes le permite integrar una variedad de herramientas para automatizar la planificación, clasificación y monitoreo de contenedores. Una de esas herramientas es Helm, que se ha vuelto muy popular en el ecosistema GitOps.

Helm es un poderoso administrador de paquetes para Kubernetes que facilita la definición, instalación y despliegue de las aplicaciones y servicios más repetitivos utilizados en una variedad de situaciones. Helm Charts agrega un gran valor al entorno de distribución continua al proporcionar un diseño de paquete organizado para administrar múltiples archivos YAML con valores duplicados y de código fijo.

Gestión de la configuración: IaC frente a GitOps

En resumen, Helm lo ayuda a simplificar las cosas cuando mide y administra resultados complejos. Pero debe estar vinculado a los repositorios esenciales de Git definidos por el clúster de K8 y las especificaciones de la aplicación. Flujo lo hace fácil.

Flux es una colección de agentes de GitOps de código abierto que actúan como puente entre los repositorios de Git y los clústeres de Kubernetes. Helm chart es una herramienta de automatización de clasificación de notificaciones que mantiene la coherencia del código al automatizar la salida cuando se introducen cambios en el código. Flux sincroniza estos cambios de Git a los clústeres de Kubernetes.

Lo hace con recursos personalizados llamados HelmRelease, que activa el operador de timón y sincroniza los cambios en el código del gráfico. Sin mencionar que Flux viene con amplias funciones de detección de deriva, así como otras características interesantes.

Durante mucho tiempo, la gestión de la arquitectura se centró en el hardware y la infraestructura, pero desde entonces hemos recorrido un largo camino. Con la introducción de GitOps y las herramientas que lo hacen más fácil, los desarrolladores y los ingenieros de plataformas tienen muchas opciones para diseñar la infraestructura que desean, de manera anunciada.

Weave GitOps utiliza Flux y Helm y permite flujos de trabajo de administración de configuración efectivos desde repositorios jit en todas las formas en que Kubernetes produce clústeres. Una característica que distingue a Weave GitOps es su capacidad para ofrecer aplicaciones confiables. Agrega una política de entrega de utilidad confiable como código a GitOps, seguridad y cumplimiento, regresión de aplicaciones e implementación de estándares de codificación desde la fuente hasta la producción. Es una combinación de canalizaciones GitOps seguras y pruebas de seguridad continuas a través de políticas codificadas que permiten las mejores prácticas de seguridad y estándares de alta seguridad a lo largo del ciclo de vida del desarrollo de software. GitOps también es la forma de administrar la configuración para los sistemas nativos de la nube modernos y Weave GitOps hace que este enfoque no solo sea simple sino también seguro.

como-crear-una-cuenta-de-gmail-guia-paso-a-paso

web-crawling-vs-web-scraping-cuál-es-la-diferencia