Skip to content

Re-architect and migrate a 3-tier application to Azure Kubernetes Service (AKS) for enhanced scalability, availability, and automation. This project utilizes Terraform and GitHub Actions for end-to-end infrastructure and CI/CD automation, ensuring security and observability best practices.

Notifications You must be signed in to change notification settings

Shouq-Alsulami/provision-terraform-via-GA

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

78 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

3-Tier Cloud-Native Application on Azure Kubernetes Service (AKS)

Final Project — SDA x IronHacks DevOps & Cloud Computing Bootcamp -Team 3


📌 Overview

This repository demonstrates the re-architecture and migration of a traditional 3-tier web application into a cloud-native, loosely coupled system deployed on Azure Kubernetes Service (AKS). Originally hosted on a tightly coupled Azure setup (VMs, Web Apps, and Azure SQL), the system experienced scaling limitations, slow response times, and manual, fragile deployments. Our mission was to modernize the platform for scalability, high availability, observability, and automated delivery using GitHub Actions, Terraform, and Azure-native services.


🧩 Architecture Summary

Layer Technology Description
Frontend React + TypeScript + Vite Containerized SPA served via Ingress (NGINX/AGIC)
Backend Spring Boot (Java 21) REST API deployed to AKS (ClusterIP service)
Database Azure SQL (Private Endpoint) Managed relational database for production
Orchestration AKS (2+ node pools) System & user node pools, autoscaling enabled
Networking Azure VNet Private subnets, secure communication, ingress controller
Secrets Azure Key Vault + CSI Centralized, secure secret management
Registry Docker Hub Stores signed and immutable container images
Monitoring Prometheus + Grafana End-to-end observability for workloads and cluster health

🏗️ Architecture Diagram

Project Diagram

Key Features

  • AKS Cluster with autoscaling
  • Ingress Controller (NGINX or AGIC) with TLS
  • Azure SQL behind a Private Endpoint
  • Key Vault + CSI for secure secrets
  • Prometheus & Grafana monitoring stack
  • Network isolation and RBAC

⚙️ Automation: GitHub Actions + Terraform

🔹 Infrastructure as Code (IaC)

  • Managed with Terraform
  • Stored in terraform/ directory
  • Executed via GitHub Actions
  • Remote backend on Azure Storage for state locking

Resources Provisioned:

  • AKS Cluster
  • Azure SQL (Private Endpoint)
  • ACR
  • Key Vault
  • Log Analytics + Monitoring

🔹 CI/CD Pipelines

Frontend-Backend CI/CD Flow

Frontend

  • Triggered on changes in frontend/**
  • Build → Test → Containerize → Push → Deploy
  • Health checks and rolling updates with no downtime

Backend

  • Triggered on changes in backend/**
  • Unit & integration tests
  • Immutable tagging (no :latest)
  • Helm or K8s manifest deployment

🔒 Security & Compliance

  • Secrets: Managed via Azure Key Vault (no plaintext)
  • Auth: GitHub OIDC → Azure (no static credentials)
  • RBAC: Least privilege service accounts
  • Private Networking: SQL via private endpoint
  • Images: Scanned, signed, immutable
  • Network Policies: Restrict access between namespaces

📊 Observability

  • Stack: Prometheus + Grafana + Alertmanager
  • Dashboards: API latency, error rates, saturation, pod health
  • Alerts: High error rate, pod crash, unschedulable pods
  • Runbooks: Deployment, rollback, scaling, secret rotation

🧱 Reference Repositories

This project builds upon the official bootcamp application:
github.com/saurabhd2106/devops-project2-ih

👥 Team Members

Name GitHub
Zainb Al-Atawi @zainbsuliman
Shahad Al-Johani @Elenore68
Abdulkarim Al-Sahli @Abdulkarim-Alsahli
Wafa Allihaibi @Waf-DPM-dev
Shada Haddad @Shada11haddad
Shouq Alsulami @76ilq

🎥 Presentation / Demo

🎬 Watch the Presentation

About

Re-architect and migrate a 3-tier application to Azure Kubernetes Service (AKS) for enhanced scalability, availability, and automation. This project utilizes Terraform and GitHub Actions for end-to-end infrastructure and CI/CD automation, ensuring security and observability best practices.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published