Infraestructura como código (IaC)


iac

DevOps está transformando las organizaciones, está permitiendo agilizar muchos de los procesos que en un momento se realizaban de manera manual, además está permitiendo una mejor manera de trabajar unidos los desarrolladores (incluido testers) con el personal de operaciones o los IT Pros como muchos los conocemos y también los usuarios . Esto ha permitido a muchas organizaciones que han adoptado o están en fases de implementación, no solo agilizar y tener mayor control sino también brindar una entrega continúa de valor a los usuarios finales con pequeños ciclos y no en largos tiempos de espera, además de incrementar la calidad y seguridad. Sin embargo, la entrega continúa que se realiza no es solamente un software sino es una solución como un todo, esto incluye configuración de servidores, redes, scripts de bases de datos, código fuente de las aplicaciones, etc. Con esto vamos a la siguiente pregunta:

¿Qué es Infraestructura como código?

Podemos decir que es la administración del manejo de la infraestructura, sin importar si es en nube, on-premise o híbrido, podemos gestionar configuración por medio de scripts de switches, routers, firewall y demás componentes de redes, como también, configuración de máquinas virtuales, balanceadores de carga, topología de conexiones, configuración de roles y servicios dentro de los sistemas operativos o en las plataformas, entre todos lo demás componentes que comprende la infraestructura.

¿Por qué es importante IaC?

Bajo el mismo concepto que tenemos el código fuente de una aplicación, lo que se pretende con la infraestructura como código es que tengamos un control de versiones de los scripts que utilizamos para configurar infraestructura y de igual modo que una aplicación, buscamos que el despliegue (Release) sea más simple y con mayor control, evitando error humano y manteniendo una trazabilidad muy transparente de punto a punto, desde que se escribe un script hasta cuando se edita y se hace un despliegue en alguno de los diferentes ambientes.

¿Que pasos debo seguir para empezar con IaC?

El primer paso es mantener bajo un control de versiones el código los scripts que utilizamos para configuración de infraestructura, para esto Visual Studio Team Services (VSTS) permite mantener repositorios de código tanto en Git como en TFVC, si estos scripts son en PowerShell es muy importante mencionar que existe una extensión tanto para Visual Studio Code como para Visual Studio que permite trabajar directamente desde el IDE estos scripts, en caso de que tengamos scripts en otra plataforma, podemos utilizar Team Explorer Everywhere y/o cualquier cliente de Git para hacer la conexión al repositorio de VSTS.

powershellvspowershellvscode

Nota: es altamente recomendado vincular elementos de trabajo con el código que subimos a la plataforma, les comparto una imagen como ejemplo:

workitemrelated

El segundo paso es automatizar el despligue o la ejecución de estos scripts, para esto podemos utilizar el Release de VSTS, en esta solución podemos crear una o múltiples definiciones que contengan uno o múltiples ambientes, en cada uno de estos ambientes definimos las tareas que requerimos para la ejecución de estos scripts, por ejemplo, la copia de archivos, desencriptar archivo (OpenSSL), ejecución de un bash, Shell, paquetes NPM, Nugets, tareas con Windows Remote Management, Docker, Azure App Fabric, etc. Adicionalmente en cada uno de los ambientes podemos establecer configuraciones propias a ese ambiente así también como aprobaciones antes del despliegue, es decir, para poder realizar la ejecución del script en producción, se requiere que una o varias personas aprueben dicho proceso, de esta manera se permite verificar que en los ambientes donde se ejecutó previamente el script haya sido de manera exitosa, les comparto un ejemplo en la siguiente imagen:

releasedefinition

Espero que esto les sea de utilidad en sus procesos de DevOps!

Gracias por su atención, ante cualquier consulta quedo a completa disposición.

Comments (0)

Skip to main content