Welcome to the Azure DevOps Demo Project!
This project demonstrates a full-featured DevOps pipeline and infrastructure automation using:
- Azure infrastructure provisioning with Terraform
- A .NET 8 Minimal API application
- A serverless Azure Function for custom logging
- CI/CD using both GitHub Actions and Azure DevOps
- Built-in monitoring and alerting using Application Insights and Log Analytics
/src/Azure-demo-app/ - .NET 8 Minimal API app
/src/Azure-demo-function/ - Azure Function (log ingestion)
/infra/ - Terraform files (App Plan, Function App, Insights, etc.)
.github/workflows/ - GitHub pipelines (App + Function)
/azure-pipelines.yml - Azure DevOps pipeline
- Azure App Service + Function App
- Terraform (IaC for clean deployments)
- Azure DevOps Pipelines
- GitHub Actions
- Application Insights + Log Analytics
- C# .NET 8 Minimal API + Azure Functions
- PowerShell & Python scripts (for health checks and alert simulations)
- App Service Plan + Web App (for Minimal API)
- Linux Function App (serverless logging endpoint)
- Azure Storage (Function App dependencies)
- Application Insights + Log Analytics Workspace
- Monitoring setup (availability test, alerts, traces)
- Terraform CLI
- Azure CLI
- Azure account with permission to create resources
az login
cd infra/
terraform init
terraform applyAuthentication is handled using a Service Principal with environment variables:
| Variable | Description |
|---|---|
| ARM_CLIENT_ID | SP App ID |
| ARM_CLIENT_SECRET | SP Secret |
| ARM_SUBSCRIPTION_ID | Subscription ID |
| ARM_TENANT_ID | Tenant ID |
These are stored in:
- GitHub → Repository → Secrets
- Azure DevOps → Service Connections
- App: Deploys the Minimal API to App Service
- Function: Deploys the Azure Function via publish profile
- Full pipeline: Terraform infra + build + deploy
- Triggered on commits to
devopsbranch - Pushes build artifacts and deploys the web app
- Application Insights: request logs, traces, exceptions
- Log Analytics: custom KQL queries
- Alerts: error thresholds and performance drop detection
- Availability Test: pings
/helloendpoint - Custom scripts:
- PowerShell: simulate errors, test alert flow
- Python: monitor health and call logging endpoint
- Auto-scaling policy
- Azure Key Vault integration
- Alerting via Teams or Slack
- Container-based deployment to AKS
This is a portfolio-ready DevOps demo project — use freely to learn or impress at your next interview!