Welcome to your comprehensive guide through a DevOps journey using Azure DevOps! This tutorial will walk you through the entire process, from setting up your pipeline to deploying an application on your Azure Kubernetes cluster.
In this tutorial, you will gain hands-on experience in the following areas:
- Azure DevOps Setup: Learn how to set up Azure DevOps to begin deploying to Azure using Pipelines as code.
- Terraform Deployment: Discover how to deploy Azure resources using Terraform modules for efficient infrastructure management.
- Application Deployment: Deploy a test application to Azure Kubernetes Service (AKS) and understand the deployment process.
- CI/CD Fundamentals: Grasp the concepts of Continuous Integration and Continuous Deployment (CI/CD) with automated application deployments.
- Monitoring and Alerting: Explore monitoring and alerting solutions using Application Insights and Container Insights to keep track of your application's health and performance.
This setup is designed to reflect a real-world scenario, providing you with practical, applicable skills.
Before you begin, please ensure you have reviewed the prerequisites. This step is crucial to ensure you have all necessary tools and configurations in place.
The labs are organised sequentially. You can find them here. Please complete each lab in order: 1, 2, 3, etc.
By following this structured approach, you will build a strong foundation in DevOps practices using Azure DevOps. This journey is not only about learning but also about applying your knowledge to real-life scenarios. Enjoy your DevOps journey!
-
Initial Setup starts you off with setting up:
-
- Create an Azure DevOps organisation
- Create a new Azure DevOps project
- Create Azure Workload Identity
-
- Create a Blob Storage location for the Terraform state file
-
Create Azure AD Group for AKS Admins
- Create an Azure AD group for AKS administrators
-
-
Setup Azure DevOps Pipeline The purpose of this lab is to create all of the Azure cloud services you'll need from an environment/infrastructure perspective to run the test application.
- Pipeline setup
- Configure the Azure DevOps pipeline to create necessary Azure cloud services for your environment
- Pipeline setup
-
Deploy Application to Azure Container Registry Deploy sample Application to Container Registry.
- Deploy Application to Azure Container Registry
- Build the Docker image locally
- Run the Docker image locally
- Deploy the sample application to the Azure Container Registry
- Deploy Application to Azure Container Registry
-
Deploy Application to Azure Kubernetes Cluster
-
- Use Terraform to assign roles for AKS managed identity to access the Azure Container Registry
-
Add Application Insights to Terraform
- Integrate Application Insights for monitoring the application
-
Add Azure Key Vault to Terraform
- Use Azure Key Vault to store secrets in your Azure DevOps Variable Group
-
Update Pipeline to Deploy Application to AKS
- Update the pipeline to deploy the application to AKS
-
-
-
Introducing CI/CD to your pipeline
- Configure pipeline triggers for automatic runs
-
Automated deployment of your AKS Application
- Automate the application deployment process to AKS, ensuring updates each time the pipeline runs
-
-
-
- Use Application Insights to view telemetry data
-
Azure Application Insights Availability Tests
- Configure availability tests using Application Insights
-
Log Analytics Container Insights
- Review Log Analytics Container Insights
-
Learn how to set up and configure a pipeline that incorporates CI/CD practices:
- Developer changes application source code.
- Application is committed to the source code repository in Azure Repos.
- Continuous integration triggers an application build.
- Continuous deployment within Azure Pipelines triggers an automated deployment with environment-specific configuration values.
- Updated application is deployed to an environment-specific Kubernetes cluster.
- Application Insights collects and analyzes health, performance, and usage data.
- Azure Monitor collects and analyzes health, performance, and usage data.
Thank you for participating in this tutorial/labs. Your feedback is valuable!
Connect with me on social media:
Feel free to check out my blog for more awesome content! https://thomasthornton.cloud/
Ensure to follow me on GitHub. Please star/share this repository!