Today’s businesses need to innovate at a rapid pace to be competitive in the marketplace. A ride sharing company may have to update its app several times a day to respond to daily demand fluctuations and adjust its pricing. A location-based social gaming app has to constantly engage users with new features to increase daily active users and stay at the top of app store rankings. Delivering high-quality, modern applications requires DevOps tools and processes that are critical to enable this constant cycle of innovation. With the right DevOps tools, developers can streamline continuous deployment and get innovative applications into user’s hands faster. Again and again.
While continuous integration and deployment practices are well established, the introduction of containers brings new considerations, particularly when working with multi container applications. On Nov. 7, we announced a series of updates to Azure Container Service (ACS) that continue to demonstrate ACS is the most streamlined, open and flexible way to run your container applications in the cloud — providing even more customer choice in their cloud orchestrator.
Today, the preview of continuous integration and deployment of multicontainer Linux applications is now available using Visual Studio, Visual Studio Team Services, and the open source Visual Studio Code. To continue enabling deployment agility, these tools provide excellent dev-to-test-to-prod deployment experiences for container workloads using a choice of development and CI/CD solutions.
Create a continuous pipeline to Azure Container Service with Visual Studio Team Services
You can write your app using the language of your choice (Java, C#, PHP, etc) and your favorite IDE (Eclipse, Visual Studio, IntelliJ, etc), with standard Docker assets. Then, using the Azure Command Line Interface (CLI), you can run a simple command to connect your source repository to a target Azure Container Service (ACS) cluster and set up a containerized build and deployment pipeline for a multi-container Docker application. So now anytime source code is pushed to a repository in GitHub, it can automatically trigger VSTS to build and tag container images, run unit tests, push to the Azure Container Registry, and deploy to ACS with zero-downtime. For Preview, we support creating pipelines that deploy to DC/OS only.
In addition to the Azure CLI, similar experiences for setting up CI/CD are also available directly in the Azure Portal (in the ACS blade) and the Visual Studio IDE.
Use the Azure Container Registry to store images
Azure Container Registry is a private registry for hosting container images. Using the Azure Container Registry, customers can store Docker-formatted images for all types of container deployments. Azure Container Registry integrates well with orchestrators hosted in Azure Container Service, including Docker Swarm, DC/OS and Kubernetes. The continuous integration and deployment tools will push the container images to the Azure Container Registry after a build. Later, it will pull images from the container registry and deploy them into the ACS cluster.
Easily promote images across environments
The continuous integration and deployment tools support the immutable services principle. Which means, you can easily promote images from development to downstream release environments such as Test and Production and importantly, you don’t have to rebuild the container image each time you promote the image.
These innovations demonstrate our continued investment in the container ecosystem and highlight our unique strategy of offering the only public cloud container orchestration service that offers a choice of open source orchestration technologies — DC/OS, Docker Swarm and Kubernetes. The support for continuous integration and deployment tools amplifies our strategy to make it easier for organizations to adopt containers in the cloud.
Customers will be able to access the preview of continuous integration and deployment tools starting Nov. 16 — watch for more details at Microsoft Connect();!
Check out this tutorial for setting up continuous integration and deployment of a multi-container app to Azure Container Service.