Share
## https://sploitus.com/exploit?id=C1954BF6-339D-53A6-8F5A-4D5505BDA55B
# Hays London Azure Platform Engineer POC โ AKS Operations & Platform Engineering
[](https://github.com/saikirangvariganti/hays-london-azure-platform-2-poc/actions/workflows/aks_deploy.yml)
## Overview
This proof-of-concept demonstrates end-to-end Azure Platform Engineering capabilities aligned with the Hays Specialist Recruitment Azure Platform Engineer role. It covers AKS cluster operations, GitOps with ArgoCD, Terraform IaC, Azure security (Key Vault CMK, Defender for Cloud, RBAC), and full observability with Azure Monitor, Log Analytics, and Grafana.
**Author:** Sai Kiran Goud Variganti
**GitHub:** [saikirangvariganti](https://github.com/saikirangvariganti)
**Role Target:** Azure Platform Engineer โ Hays Specialist Recruitment (London)
---
## Architecture
```
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Azure Subscription โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Resource Group: rg-platform โ โ
โ โ โ โ
โ โ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโ โ โ
โ โ โ AKS Cluster โ โ ACR โ โ Key Vault โ โ โ
โ โ โ (prod-aks) โโโโโ (prodacr) โ โ (CMK + RBAC) โ โ โ
โ โ โโโโโโโโฌโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโ โ โ
โ โ โ โ โ
โ โ โโโโโโโโผโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโ โ โ
โ โ โ ArgoCD โ โ App Gateway โ โ Azure Monitor โ โ โ
โ โ โ (GitOps) โ โ (Ingress) โ โ + Log Anal. โ โ โ
โ โ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโ โ โ
โ โ โ โ
โ โ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโ โ โ
โ โ โ VNet โ โ Defender โ โ Grafana โ โ โ
โ โ โ (10.0.0.0) โ โ for Cloud โ โ Dashboards โ โ โ
โ โ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโ โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
```
---
## Key Capabilities Demonstrated
### 1. AKS Operations
- **Cluster management** with system and user node pools
- **Horizontal Pod Autoscaler (HPA)** configured for CPU/memory thresholds
- **Network Policies** enforcing pod-to-pod communication rules
- **ArgoCD GitOps** โ declarative continuous delivery
- **Helm charts** for application packaging and versioning
### 2. Terraform IaC
- Modular Terraform: `aks`, `acr`, `networking`, `security` modules
- Azure Provider v3.x with remote state in Azure Storage
- Variables and outputs for reusable, environment-agnostic deployments
### 3. Azure Security
- **Key Vault CMK** โ Customer-Managed Keys for AKS disk encryption
- **Azure Policy** โ enforce tagging, restrict SKUs, require HTTPS
- **Defender for Cloud** โ threat detection on AKS and ACR
- **RBAC** โ least-privilege role assignments
### 4. CI/CD Pipelines
- **GitHub Actions** โ build, scan, push to ACR, deploy via ArgoCD
- Multi-stage pipeline: lint โ security scan โ build โ push โ deploy โ verify
### 5. Observability
- **Azure Monitor** + **Log Analytics** workspace
- **Prometheus** alert rules for pod failures, node pressure, HPA saturation
- **Grafana** dashboard โ cluster health, request rate, error budget
- **KQL queries** โ pod restart analysis, node memory pressure, slow queries
### 6. Incident Response
- `incident_response.py` โ automated triage, escalation, evidence collection
- `cluster_health_check.py` โ pre-on-call health sweep
- **AKS Incident Runbook** โ step-by-step SRE playbook
---
## Project Structure
```
hays-london-azure-platform-2-poc/
โโโ README.md # This file
โโโ requirements.txt # Python dependencies
โโโ terraform/ # Terraform IaC
โ โโโ main.tf # Root module โ providers, backend, calls
โ โโโ variables.tf # Input variables
โ โโโ outputs.tf # Output values
โ โโโ modules/
โ โโโ aks/main.tf # AKS cluster module
โ โโโ aks/variables.tf # AKS module variables
โ โโโ acr/main.tf # Azure Container Registry module
โ โโโ networking/main.tf # VNet, subnets, NSG
โ โโโ security/main.tf # Key Vault, RBAC, Defender
โโโ k8s/ # Kubernetes manifests
โ โโโ namespace.yaml # platform-apps namespace
โ โโโ deployment.yaml # App deployment with resource limits
โ โโโ service.yaml # ClusterIP + LoadBalancer service
โ โโโ hpa.yaml # Horizontal Pod Autoscaler
โ โโโ network_policy.yaml # Network isolation policies
โโโ helm/app-chart/ # Helm chart
โ โโโ Chart.yaml # Chart metadata
โ โโโ values.yaml # Default values
โโโ argocd/
โ โโโ application.yaml # ArgoCD Application manifest
โโโ scripts/
โ โโโ incident_response.py # Incident triage automation
โ โโโ cluster_health_check.py # Cluster health sweep
โโโ monitoring/
โ โโโ prometheus_rules.yaml # Alert rules
โ โโโ grafana_dashboard.json # Grafana dashboard definition
โ โโโ log_analytics_queries.kql # KQL queries for Log Analytics
โโโ runbooks/
โ โโโ aks_incident_runbook.md # SRE incident playbook
โโโ .github/workflows/
โ โโโ aks_deploy.yml # GitHub Actions CI/CD pipeline
โโโ tests/
โโโ test_poc.py # 90+ validation tests
```
---
## Quick Start
### Prerequisites
- Terraform >= 1.5
- Azure CLI >= 2.50
- kubectl >= 1.28
- Helm >= 3.12
- ArgoCD CLI >= 2.8
- Python 3.11+
### Deploy Infrastructure
```bash
cd terraform
terraform init
terraform plan -var-file=environments/prod.tfvars
terraform apply -auto-approve
```
### Deploy Application via ArgoCD
```bash
# Install ArgoCD
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
# Apply application manifest
kubectl apply -f argocd/application.yaml
```
### Run Tests
```bash
pip install -r requirements.txt
python -m pytest tests/test_poc.py -v
```
---
## Certifications & Alignment
| Certification | Relevance to This POC |
|---|---|
| AZ-104 (Azure Administrator) | AKS, VNet, Key Vault, RBAC configuration |
| AZ-305 (Azure Solutions Architect) | Modular Terraform, multi-layer security |
| AZ-400 (Azure DevOps Expert) | GitHub Actions pipeline, ArgoCD GitOps |
---
## Security Posture
- All container images scanned with Trivy before push
- AKS uses managed identity (no service principal credentials)
- Key Vault CMK for disk encryption at rest
- Network policies enforce namespace isolation
- Defender for Cloud plan enabled on AKS and ACR
- RBAC โ no cluster-admin bindings in application namespaces