La Infraestructura como Código es uno de esos grandes avances de la tecnología que pasan desapercibidos en nuestro día a día. Uno de los objetivos es definir nuestra infraestructura en código que nos permita hacer repetible la ejecución en diferentes entornos o recuperar toda la infraestructura en caso de desastres. Si estáis en algún tipo de cloud, debería de ser un requisito imprescindible.
Si hablamos de Azure, el propio cloud de Microsoft está basado en Azure Resource Manager (ARM), el servicio de implementación y administración de Azure. ARM permite definir nuestra infraestructura usando un sistema de plantillas con una sintaxis declarativa que podemos clasificar como IaC,
Pongamos un ejemplo para entender cómo crear nuestra infraestructura usando ARM. Nuestra aplicación necesita una máquina virtual, un App Service y un SQL Azure.
Hablemos de la plantilla necesaria para crear la máquina virtual.
En la plantilla podemos ver cómo se definen los recursos necesarios para crear una máquina virtual:
Fácil pero complejo de leer y mantener, ¿no os parece?
Las plantillas de IaC no son sencillas. Fijaos en la complejidad del json que simplemente crea una máquina virtual. Las plantillas ARM son muy potentes, incluso en la última versión podemos ejecutar scripts PowerShell o de Az Cli, pero la complejidad que esto implica no ayuda en la adopción de IaC.
Para ayudar con esta complejidad, Microsoft ha desarrollado un lenguaje de dominio (DSL) llamado Azure Bicep. Bicep nos ayuda a desarrollar plantillas ARM con un lenguaje sencillo que nos ayuda a quitar complejidad de las plantillas ARM, pero no nos resuelve el que necesitamos tener conocimiento de ellas para poder aplicar las configuraciones.
En el fragmento de código anterior, tenemos la misma implementación de los recursos necesarios para crear una máquina virtual usando Bicep. ¿Qué os parece? Bastante más simple de leer y, os invito a probarlo, más simple de desarrollar.
Aunque existen otras opciones como Terraform, una herramienta que usa ficheros de configuración declarativos para implementar la infraestructura en un entorno multi-cloud, Pulumi o Farmer, Azure Bicep puede ofrecer las siguientes ventajas:
Por su puesto, Azure Bicep es sólo para Azure, si tenéis un entorno multi-cloud y queréis mantener un único lenguaje o framework de despliegue, Bicep no encaja.
Este sitio web utiliza cookies para que tengas la mejor experiencia de usuario. Si continuas navegando, estás dando tu consentimiento para aceptar las cookies y también nuestra política de cookies (esperemos que no te empaches con tanta cookie 😊)