Azure DevOps (CI/CD) Learning Lab Setup

Job ID: 40102183

Budget: £100 – £200 GBP

I want to build a complete, hands-on lab in my own Azure subscription so I can practice modern DevOps workflows from infrastructure provisioning through automated performance testing. The work revolves around these key pieces:

• Infrastructure provisioning
– Create a Windows VM using either Terraform or an ARM template .
– Store the Terraform state file in an Azure Storage Account you provision.
– Write the IaC logic in Python/any other language where scripting is required.

• Secure configuration
– Place every sensitive value (service-principal secrets, storage keys, ACR credentials) in Azure Key Vault and reference them from the pipelines.

• CI / CD automation in Azure DevOps
Pipeline 1 (Build):
1. Use the latest JMeter base image, add custom plugins if needed.
2. Build and push the image to Azure Container Registry (ACR is the chosen registry).

Pipeline 2 (Release):
1. Pull the image from ACR.
2. Run JMeter tests against a sample target .
3. Publish JMeter HTML test reports back to the pipeline summary and as artifacts.
Note: I can create the JMeter script
• Observability
– Enable Azure Monitor on the VM for CPU and memory, set up alert rules with sensible thresholds so I can see a real alert fire.

• Troubleshooting & knowledge transfer


Acceptance criteria
1. Running terraform apply (or the ARM deployment) from a clean repo creates the VM, storage account, Key Vault, and required IAM roles in one pass, with the state file landing in the storage container.
2. A manual trigger of Build pipeline pushes a versioned JMeter image into ACR.
3. A manual trigger of Release pipeline pulls that exact tag, executes tests, and surfaces reports; Key Vault secrets never appear in logs.
4. Azure Monitor alerts hit the threshold and send an email or Teams notification I can see.
5. All code, pipeline YAML, and a short README land in the repo so I can reuse or extend the setup later.