Despliegue de Infraestructura en GCP automatizada
La infraestructura en la nube pública se despliega de forma automatizada utilizando Terraform. El código de Terraform se encuentra en el proyecto Terraform-GCP-IaC, y se utiliza para crear los recursos necesarios en GCP, como el clúster de Kubernetes, la VPC y las subredes.
Desglose del pipeline de CI/CD para la infraestructura en GCP
Las etapas del pipeline de CI/CD para la infraestructura en GCP pueden visualizarse como se muestra en la siguiente imagen:

Como puede observarse, al realizar un commit y un push sobre la rama main del proyecto Terraform-GCP-IaC, se ejecuta el pipeline de CI/CD correspondiente. Este pipeline incluye las siguientes etapas:
1. create-environment: Crea el entorno de GCP necesario para desplegar la infraestructura. Esta etapa está compuesta por dos trabajos:
- terraform-init: Inicializa Terraform, descargando los proveedores necesarios y preparando el entorno.
- terraform-apply: Aplica la configuración de Terraform, creando los recursos necesarios en GCP.
2. verify: Verifica que la infraestructura se ha desplegado correctamente. En esta estapa se espera a que los nodos del clúster de Kubernetes estén en estado Ready y que pueda desplegarse un pod de prueba satisfactoriamente.
3. deploy-mongodb: Despliega MongoDB en el clúster de Kubernetes. Esta etapa recupera el Chart de MongoDB desde el repositorio de despliegue y lo aplica con los valores necesarios para la configuración del despliegue.
4. deploy-conduit: Despliega Conduit en el clúster de Kubernetes. Esta etapa está compuesta por dos trabajos:
- deploy-backend: Despliega el backend de Conduit en el clúster de Kubernetes.
- deploy-frontend: Despliega el frontend de Conduit en el clúster de Kubernetes.
5. update-cloudflare-dns: Actualiza los registros DNS de Cloudflare para apuntar al dominio del proyecto. Esta etapa utiliza la API de Cloudflare para actualizar los registros A y CNAME necesarios para que el dominio apunte a la IP proporcionada por GCP.
6. destroy-environment: Esta etapa requiere de activación manual y se utiliza para destruir el entorno de GCP creado por Terraform. Esta etapa está compuesta por dos trabajos:
- delete-resources-gcp: Elimina los recursos creados por Terraform en GCP.
- terraform-destroy: Destruye la infraestructura creada por Terraform, eliminando todos los recursos de GCP.