Skip Navigation

CI/CD for Azure VMs

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

Visual Studio Team Services provides the CI/CD pipeline, starting with a Git repository for managing your application source code and infrastructure code (ARM templates), a Build system for producing packages and other build artifacts, and a Release Management system for setting up a pipeline to deploy your changes through dev, test, and production environments. The pipeline uses ARM templates to provision or update your infrastructure as necessary in each environment, and then deploys the updated build. You can also use Azure Dev/Test labs to automatically tear down test resources that are not in use.

Visual StudioTeam Services Git Visual StudioTeam Services CI Visual StudioTeam Services Backlog Visual StudioTeam Services CD AzureVirtual Machines Azure DevTestLabs AzureVirtual Machines 3 2 1 4 6 5 8 8 8 9 7 AzureApplication Insights Visual Studio Engineer 10

Change application source code

Commit Application Code and Azure Resource Manager (ARM) Template

Continuous integration triggers application build and unit tests

Continuous deployment trigger orchestrates deployment of application artifacts with environment specific parameters

Deployment to QA environment

Deployment to staging environment

Deployment to production environment

Application Insights collects and analyses health, performance and usage data

Review health, performance and usage information

Update backlog item

  1. 1 Change application source code
  2. 2 Commit Application Code and Azure Resource Manager (ARM) Template
  3. 3 Continuous integration triggers application build and unit tests
  4. 4 Continuous deployment trigger orchestrates deployment of application artifacts with environment specific parameters
  5. 5 Deployment to QA environment
  1. 6 Deployment to staging environment
  2. 7 Deployment to production environment
  3. 8 Application Insights collects and analyses health, performance and usage data
  4. 9 Review health, performance and usage information
  5. 10 Update backlog item

Implementation guidance

Related solution architectures

Visual StudioTeam Services Git Visual StudioTeam Services CI Visual StudioTeam Services CD Azure Container Service(Managed Kubernetes) Azure ContainerRegistry 3 5 4 7 6 Engineer Visual Studio Azure ApplicationInsights 1 9 8 Visual StudioTeam Services Backlog 2 10

CI/CD for Containers

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

Jenkins Azure ContainerInstances AzureFiles Azure WebApps Azure Databasefor MySQL GitHub IntelliJ Engineer ApplicationInsights 1 8 2 3 4 5 6 7 7

Java CI/CD using Jenkins and Azure Web Apps

Azure App Service is a fast and simple way to create web apps using Java, Node, PHP or ASP.NET, as well as support for custom language runtimes using Docker. A continuous integration and continuous deployment (CI/CD) pipeline that pushes each of your changes automatically to Azure app services allows you to deliver value faster to your customers.