Challenge
Designing and deploying a portfolio application using a real-world DevOps workflow instead of traditional static hosting, while ensuring automated deployments, consistency across environments, and a scalable cloud-based architecture.
Solution
This project implements a complete CI/CD pipeline for a containerized web application. Each code commit triggers an automated workflow that builds a Docker image, securely stores it in Artifact Registry, and deploys it to Cloud Run. Infrastructure is provisioned separately using Terraform, ensuring a consistent and reproducible environment, while GitHub Actions handles continuous application delivery.
Key Components:
- Terraform: Provisions core GCP infrastructure, including Artifact Registry, Cloud Run service, and IAM configurations.
- GitHub Actions: Automates the CI/CD workflow, including authentication, image build, and deployment.
- Workload Identity Federation (WIF): Enables secure, keyless authentication between GitHub and GCP.
- Docker: Containerizes the application using an Nginx base image for consistency across environments.
- Artifact Registry: Stores and manages versioned Docker images.
- Cloud Run: Deploys and runs the containerized application in a scalable, serverless environment.
Infrastructure Provisioning (Terraform)
- Creates the Artifact Registry repository.
- Provisions the Cloud Run service.
- Configures IAM roles and public access.
- Ensures consistent and repeatable environment setup.
Architecture overview
