Immutable Infrastructure CI/CD using Jenkins and Terraform on Azure Virtual Architecture overview
If you'd like to see us expand this article with more information (implementation details, pricing guidance, code examples, etc), let us know with GitHub Feedback!
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.
Download an SVG of this architecture.
- 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.
- 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.
- Use Terraform to create a Virtual Machine Scale Set from a Packer customer VM image
- Use Terraform to plan and create a Virtual Machine Scale Set with Managed Disk
- Use Log Analytics to collect data from Linux computers
- Get the Azure Extensions Pack for Visual Studio Code