Share
## https://sploitus.com/exploit?id=C1954BF6-339D-53A6-8F5A-4D5505BDA55B
# Hays London Azure Platform Engineer POC โ€” AKS Operations & Platform Engineering

[![CI/CD Pipeline](https://github.com/saikirangvariganti/hays-london-azure-platform-2-poc/actions/workflows/aks_deploy.yml/badge.svg)](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