Solution Idea
If you'd like to see us expand this article with more information, implementation details, pricing guidance, or code examples, 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.
Architecture
Download an SVG of this architecture.
Data Flow
- 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.
Components
- 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.
Next steps
- 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