This project demonstrates the deployment of a microservices-based application using Kubernetes (K8s) on Azure Cloud, following best practices in:
✅ Automation (Infrastructure as Code, GitOps) ✅ CI/CD (Continuous Integration & Deployment) ✅ IaC (Infrastructure as Code using Terraform) ✅ Observability (Monitoring, Logging, and Tracing)
The microservices application consists of:
- Frontend (Angular)
- Backend services (Node.js, Spring Boot, Go)
- Database (PostgreSQL, Redis)
- API Gateway (NGINX)
Deployed in an AKS (Azure Kubernetes Service) cluster with NGINX Ingress Controller for traffic routing.
| Category | Tools/Technologies |
|---|---|
| Cloud | GCP |
| Kubernetes | GKE (Google Kubernetes Engine) |
| IaC | Terraform |
| CI/CD | GitHub Actions - Jenkins |
| Containerization | Docker |
| Ingress Controller | NGINX Ingress |
| Monitoring & Logging | Prometheus, Grafana |
| Secrets Management | GitHub Secrets |
-
Infrastructure Setup (IaC)
- Use Terraform to provision GKE, networking, and databases.
- Secure configurations using GitHub Secrets.
-
Containerization & CI/CD
- Build & push Docker images to Google Artifact Registry.
- Use GitHub Actions to deploy workloads.
-
Kubernetes Deployment
- Set up Ingress & Service Mesh.
- Configure autoscaling & security policies.
-
Observability & Security
- Monitor logs with Prometheus, Grafana.
- Implement Network Policies.
📅 Date: 2025-04-23 🌐 Cluster: GKE with infrastructure automated via Terraform 🔒 Focus: Security, scalability, and continuous quality
-
Implemented Namespaces:
frontend: user-facing applicationsbackend: business logic servicesdatabase: persistence servicesmonitoring: observability tools (Prometheus, Grafana, Sonar)
-
NGINX Ingress configured to:
- Expose only necessary services publicly
- Apply centralized security and routing rules
-
Terraform used to provision cluster and resources
-
GitHub Actions workflows for:
- Building and pushing images to private registry
- Automatic deployment on image updates
- Tests and static analysis using SonarQube
-
Monitoring stack: Prometheus + Grafana
-
Security:
- Workload Identity
- Secrets managed via GitHub Secrets
- Network Policies enforced
- Node pools by service type
- Cluster-level Load Balancer enabled