Saltar a contenido

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: Pipeline de CI/CD para la infraestructura en GCP

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.