Categories
54cuatro

DevOps, DataOps… ¿Y ahora? GitOps

Ya hemos hablado de DevOps, de DataOps, y con el correr del tiempo se incorporan nuevos *Ops.

Mas adelante vamos a escribir de #MLOps, pero ahora vamos a ver de que se trata #GitOps.

¿De donde sale GitOps?

Weaveworks on Twitter: "Great article on #GitOps by @wbiller: "GitOps –  Continuous Deployment für Kubernetes". #CICD #kubernetes #k8s  https://t.co/nUi05zj9DR… https://t.co/PH2fn1qZmc"

GitOps surge principalmente de la necesidad de administración de clústeres de Kubernetes y la entrega de aplicaciones. Para esto es necesario usar #Git, la herramienta numero 1 de #desarrollo. GitOps, se basada en usar Git como única fuente de verdad para aplicaciones e infraestructura declarativa, de esta manera, las herramientas de #GitOps como #ArgoCD (la cual pueden ver como funciona en este post) puede alertar sobre cualquier diferencia existente entre Git y lo que está configurado en K8s, y si hay una diferencia, los reconciliadores de Kubernetes actualizan o revierten automáticamente la configuración. El objetivo por cierto es acelerar y simplificar las implementaciones de aplicaciones como las tareas de operaciones en Kubernetes.

¿GitOps es un reemplazo de DevOps?

Nos suelen hacer esta pregunta cuando hablamos de DevOps. Y la respuesta es: NO!

DevOps es una practica que tiene en cuenta factores culturales, de procesos y de tecnología. En DevOps, la cultura es parte fundamental para asegurarse de que las personas se alineen y trabajen de forma fluida. Pero GitOps incluye aquellas mejores prácticas que unifican la implementación, la gestión y la supervisión de aplicaciones, y la administración de clústeres de #containers.

GitOps por tanto, es un complemento de DevOps, con mayor orientación al desarrollo Cloud Native, Container First, o Serverless.

Además del repositorio de codigo, GitOps hace uso de herramientas de IaC (infrastructure as code) con el fin de administrar los despliegues de infraestructura con un control de versionado de la misma. Herramientas como #Puppet, #Ansible o #Terraform, permiten desplegar servidores y orquestar su implementación, pero el crecimiento exponencial del uso de contenedores junto al despliegue de las aplicaciones que corren sobre ellos potenció la necesidad de contar con herramientas que además de la infra puedan orquestar el despliegue aplicativo.

De esta manera, “recetas” de despliegue de infraestructura pueden ser respaldadas en Git para que sus archivos de configuración puedan ser “mergeados” con flujos de trabajo GitOps. Esto genera una super receta que al ejecutarse permitirá desplegar un servidor junto con su aplicación, con un control exacto de versiones.

¿Cuál son sus beneficios?

  • El principal es el de simplificar las administraciones de las implementaciones. La configuración de las aplicaciones y sus entornos de implementación son realizadas de manera declarativas (yaml/json).
  • Existe un control de versiones tanto de la infra como de las apps. Cualquier desviación de la configuración de versión es detectada y corregida de inmediato.
  • Todos los despliegues permiten una rápida vuelta atrás, además de dejar un registro de auditoria de sus ejecuciones.
  • Las implementaciones de aplicaciones son rápidas y confiables.

[popup_anything id=”2076″]
Categories
54cuatro

Orquestar la infraestructura con TERRAFORM

Una nueva forma de administrar tu plataforma

Que es #IaC

Infraestructura como Código es el concepto de administrar y manejar la infraestructura de la misma manera que se trata el código fuente de una aplicación.

IaC es un #ConfigurationManager?

IaC esta centrado en crear instancias y administrar los elementos de infraestructura necesarios
para ejecutar aplicaciones y las herramientas de CM se centran en instalar, configurar y mantener los componentes de software en la infraestructura existente.

Beneficios de #Terraform

ProductividadSeguridadEficienciaAgilidad
Reducir las tareas repetidas permite al personal enfocarse en actividades intelectualmente más desafiantesLas políticas de seguridad se pueden definir como código y la infra siempre estará segura.Genere su infraestructura con los tamaños adecuados a las necesidades. No gaste de mas.Desplegar más rápido y con menos errores

Diferenciales de Terraform

○ Soporte para múltiples nubes : es compatible con todas las nubes, desde #AWS hasta #Alibaba, y admite múltiples servicios dentro de cada proveedor. También es compatible con las soluciones IAC de los proveedores de la nube, como #ARM y #CloudFormation.
○ Facilidad de uso : el lenguaje de configuración de #Hashicorp (#HCL) es fácil de leer para los humanos (y de escribir), incluso si no es un experto en Terraform, podrá comprender lo que sucederá observando la configuración. Además, es fácil de instalar; es solo un archivo binario único, que representa una sencilla arquitectura de cliente donde los comandos se envían al destino y se extraen de un servidor central.


[popup_anything id=”2076″]