Immutable Infrastructure CI/CD using Jenkins and Terraform on Azure Virtual Architecture overview

Azure is a world-class cloud for hosting virtual machines running Windows or Linux. Whether you use Java, Node.js, Go, or PHP to develop your applications, you’ll need a continuous integration and continuous deployment (CI/CD) pipeline to push changes to these virtual machines automatically.

Jenkins Azure Virtual MachineScale Sets Terraform Azure Managed Disks(VM Image) Packer GitHub Engineer Azure Log Analytics 1 7 6 5 5 5 4 4 2 3 Visual Studio Code

Change application source code.

Commit code to GitHub.

Continuous Integration Trigger to Jenkins.

Jenkins triggers a Packer image build to create a VM and stores it as a VM image using Azure Managed Disks.

Jenkins triggers Terraform to provision a new Virtual Machine Scale Set using the Azure Managed Disks VM image.

Azure Log Analytics collects and analyzes logs.

Monitor application and make improvements.

  1. 1 Change application source code.
  2. 2 Commit code to GitHub.
  3. 3 Continuous Integration Trigger to Jenkins.
  4. 4 Jenkins triggers a Packer image build to create a VM and stores it as a VM image using Azure Managed Disks.
  1. 5 Jenkins triggers Terraform to provision a new Virtual Machine Scale Set using the Azure Managed Disks VM image.
  2. 6 Azure Log Analytics collects and analyzes logs.
  3. 7 Monitor application and make improvements.

Implementation guidance

Products/Description Documentation

Managed Disks

Persistent, secured disk storage for Azure virtual machines.

Virtual Machine Scale Sets

Manage and scale up to thousands of Linux and Windows virtual machines.

Log Analytics

Collect, search, and visualize machine data from on-premises and cloud.

Visual Studio Code

Build and deploy multi-platform apps to get the most from Azure services.

Related solution architectures

Visual Studio Team Services Git Visual Studio Team Services CI Visual Studio Team Services CD Engineer Visual Studio Azure Application Insights Azure Web Apps 2 1 7 3 4 5 6 Visual Studio Team Services Backlog 8

CI/CD for Azure Web Apps

Azure Web Apps is a fast and simple way to create web apps using ASP.NET, Java, Node.js, or PHP. Deliver value faster to your customers with a continuous integration and continuous deployment (CI/CD) pipeline that pushes each of your changes automatically to Web Apps.

Jenkins Azure ContainerRegistry Azure ContainerService (ManagedKubernetes) Azure CosmosDB GitHub Visual Studio Code Engineer Grafana Azure Monitor 1 8 2 3 5 4 6 7 7

Container CI/CD using Jenkins and Kubernetes on Azure Container Service (AKS)

Containers make it easy for you to continuously build and deploy applications. By orchestrating the deployment of those containers using Kubernetes in Azure Container Service, you can achieve replicable, manageable clusters of containers.