Microsoft has recently announced the Azure Container Service has reached preview status. The service was first discussed at the AzureCon event earlier this fall and is now available to customers through a self-nomination process.
Ross Gardler, program manager at Microsoft, describes the service in the following way: “Azure Container Service is an Azure Compute resource provider to create and manage a cluster of virtual machines that act as container hosts together with a number of master machines that are used to orchestrate your application containers.”
Microsoft, amongst other vendors such as Amazon and IBM, are positioning containers as an alternative to traditional virtualization techniques that create heavy dependencies on the Hypervisor and Host OS that supports the underlying workload. Alternatively, smaller, lightweight compute resources are created and spread across a Host OS that includes dependencies required for that the application to run within the container. Gardler feels this architecture yields benefits: “because they are lightweight, you get more density, speed, agility and many other advantages.”
In the following diagram, both traditional virtualization and container architectures are illustrated. One noticeable differences between the two architectures is the lack of duplication of binaries and libraries in the container architecture.
Image Source: Screenshot https://channel9.msdn.com/Events/Microsoft-Azure/AzureCon-2015/ACON203?ocid=player
The Azure Container Service is not something that Microsoft has built in isolation. In conjunction with Docker Inc. and Mesosphere, the service will be production ready and includes support for the Docker Engine, Apache Mesos and open source components from Mesosphere’s Data Center Operating System (DCOS). Along with these organizations, Microsoft has also embraced the open source community to ensure of workload optimization and compatibility.
Microsoft and Mesosphere selected open source components from Mesos and Mesosphere DCOS including:
- Apache Mesos – a distributed systems kernel
- Mesosphere Marathon – a framework that manages the life cycle of a container that includes the starting, stopping and scaling of applications.
- Mesos-DNS – a stateless DNS server for Mesos
- Chronos – a distributed, fault-tolerant scheduler
- Docker Containerization – support for launching tasks that contain Docker images
Matthew Trifiro, cmo at Mesosphere, is confident that the Azure Container Service is capable of providing a production-grade container cluster as a result of leveraging Mesosphere’s DCOS: “Mesos-based systems have proven capable of launching tens of thousands of containers and running across thousands of nodes.“ Mesos’ underlying technology is also responsible for running both Twitter and Apple Siri.
Currently, only Linux containers are supported in the service. Microsoft has committed to providing Windows Server Containers using Docker and Apache Mesos is being ported over to Windows which will allow for Windows containers to run in the service.
Trifiro applauds Microsoft’s container vision: “Microsoft is advancing a vision for containers, one that we at Mesosphere support. Linux and Windows Server are the two most popular server operating systems in the world and enterprises have been asking for a way to unify their workloads across these diverse systems, in the cloud and on premises.”