Desplegando Infraestructura como Código (IaC) con Terraform en Azure Devops
ESCENARIO:
La gerencia de Tecnología y nube de la empresa Tom Bombadill Foundation se
encuentra implementando un proyecto de tratamiento de data de sus clientes,
para esto hace uso de una aplicación compuesta por una serie de funciones de azure
en conjunto para procesar luego la información con la ayuda de los demás
componentes que se ven en la “arquitectura” de despliegue.
El área de Devops y Automatización requiere encontrar una solución de IaC y
versionamiento de dicho código ya que es un ambiente que constantemente se debe
crear por diferentes circunstancias en varios Grupos de Recursos y Suscripciones.
ANALISIS Y RELEVAMIENTO DE INFORMACIÓN:
Contextualización, alcance de proyecto y generalidades: Se requiere conocer el contexto general del producto final/ aplicación y el objetivo a cumplir de la infraestructura, especialmente, se debe tener en cuenta la solicitud de utilizar las plantillas para crear nuevas versiones del mismo ambiente, Se requiere un entendimiento genérico de las Azure Function y el concepto de vnet integration. |
Definición de Elementos Transversales: Se requiere conocer la información de las redes y subredes asignadas para cada recurso que así lo requiera. Se debe conocer en detalle la distribución de las functions ¿Cuántos App Service Plan y cuáles funciones asociadas a dichos ASP? Las subredes para las vnet integration de las functions van asociadas al App Service Plan, se debe estimar el escalamiento y crecimiento que pueda tener para saber qué tipo de máscara asignarse por ejemplo. |
Definir control de versionamiento: Hace referencia a la herramienta de almacenar y versionar el código, en este caso hablamos de Azure Devops Repos. |
Diseños de Infraestructura (Arquitecturas): Se presenta el diagrama de arquitectura de despliegue que muestra los recursos a automatizar, mas no se presenta la arquitectura funcional de la aplicación. |
Documento de Despliegue de Componentes: Hace referencia al documento donde se consigne finalmente con los detalles técnicos y nombres específicos lo necesario para proceder con la automatización en el lenguaje de iac a utilizar. |
Dadas las tareas anteriores se tiene ya un conocimiento general y especifico de los
requerimientos para la automatización y las siguientes conclusiones a partir de las
cuales puede efectuarse un plan de acción.
REQUERIMIENTOS Y PLAN DE ACCIÓN :
- Se requiere automatizar la infraestructura con Terraform para la aplicación en cuestión.
- Se debe crear el código y posteriormente se versionará en Azure Devops.
- El código de Terraform debe limitarse sólo a crear los recursos dentro del RG indicado,
- La configuración del código de cada function se hará después con un proceso de CI/CD.
- Se deben crear también los demás recursos indicados en la arquitectura y el documento base.
- Se debe crear un ASP y un App Insight para las functions.
- Se debe utilizar la misma storage account para las tres funciones.
- Crear también un filesystem para el datalake.
Arquitectura Cloud:
SOLUCIÓN:
El siguiente video muestra la metodología y el proceso de principio a fin para la construcción
del código IaC con Terraform, versionamiento y construcción/ejecución del Pipeline de
despliegue en Azure Devops.
Se procede con la codificación de los recursos y del pipeline de ejecución.