Continuous Integration and Continuous Delivery (CI/CD) is used to provide automation of building, testing and deploying software into production environments. CI/CD has grown in popularity as it allows for greater efficiency in software development which in short allows developers to deliver quality code faster to the end user.
The pipeline breaks down the delivery of software into different stages which as the name pipeline suggests, flow into each other. Automation is at the centre of the pipeline, each stage is automated, from build, onto testing, flowing down to deployment. The delivery process only moves down the stages of the pipeline if the previous stage is successful.
Azure offers a wide variety of CI/CD options and I wanted to highlight briefly what is available. I’ll call out here that this list isn’t exhaustive and i’m not an expert on CI/CD but will hopefully send you in the right direction to find out more information.
Visual Studio Team Services (VSTS)
VSTS CI/CD - Image credit MicrosoftVSTS provides the ability to commit code, build and test and release to Azure, with deployment options including Web Apps, VMs and Web App for Containers. VSTS supports apps written in multiple languages including but not limited to Node.js, ASP.NET, .NET for Windows and Java. More information on CI/CD with VSTS can be found here.
Jenkins CI/CD - Image credit Microsoft
Jenkins is an open source automation server that integrates with Azure to enable CI/CD. Jenkins can be easily deployed to an Azure Linux VM as covered here, and can trigger the likes of Team Services, Packer and Terraform in the delivery process.
Azure empowers the developer, it provides end to end solutions for enabling CI/CD deployment to various Azure services, allowing developers to deliver quality code faster.