The Azure Container Service is a reference implementation of DC/OS optimized to take advantage of the features of Microsoft Azure infrastructure. If you already have an Azure account, you can try out a reference implementation of DC/OS built on Microsoft Azure by creating an Azure Container Service cluster. (Obtain a free Azure trial account first if you do not have one.)
This document describes:
- Advantages of using DC/OS
- Azure infrastructure and the implementation architecture
- Bill of materials used to construct DC/OS and the ACS clusters
Benefits of DC/OS
DC/OS is powered by Apache Mesos, used as the distributed kernel of a set of computers that you can treat as one unit, though you retain control of each one. In DC/OS, the kernel of the system is any number of Mesos masters and agents both publicly available and private; failed Mesos masters are replaced by a standby master transparently, and handles leader election. Masters handle failed agents and processes.
DC/OS applications function as system components in its distributed user space. The system Marathon component is the distributed
init for DC/OS; but this also includes the Admin Router service, the Mesos-DNS service, Exhibitor, and other system-wide components that are used by user processes and manage the masters and agents.
For a more comprehensive architectural description of DC/OS, see DC/OS Architecture.
For a more complete discussion of components, see DC/OS Components.
Why DC/OS and not Mesos?
Many companies use Mesos directly with success. However, DC/OS has several important features that distinguish it from the open-source features of Mesos, and add functionality to your deployment.
- Deploying and managing Mesos can be complex, precisely because it can manage very complex environments; DC/OS makes that complexity straightforward to use and supported by the community.
- DC/OS implements fault tolerance not just on an industrial but on an internet scale.
- The DC/OS Catalog of packages for easy installation supports developers, data scientists, and system administrators with all their favorite open source packages.
- The real-time metrics “firehouse” is open for use by your favorite diagnostics and analytics packages.
- DC/OS has three ways to administer your distributed OS: a CLI, a graphical UI, and an API.
The Catalog of packages
Here is a list of what is in the Catalog on Day 1 of DC/OS, categorized by the type of license.
Apache License V2
- Apache Cassandra
- Elastic Search
- Apache Hadoop
- Apache Kafka
- Mr Redis
- Spark Notebook
- Apache Spark
- Apache Storm
- Docker Swarm
- Apache Zeppelin
- OpenVPN Admin
Not only may you use the Catalog of packages available with the DC/OS packaging system, you can also publish there to give your skills back to the community. You may also want to deploy DC/OS yourself; you can start with a reference implementation of DC/OS in “the cloud” with the Azure Container Service.
Azure Container Service infrastructure and optimizations
The Azure Container Service is built with DC/OS as one of the critical orchestration options. The DC/OS implementation is optimized for easy creation and use on Microsoft Azure and on-premise, eventually with Azure Stack. It is one of the best ways to get started with DC/OS, Mesos, and a distributed cluster that can be managed like one large system, whether in your datacenter or in Azure.
The Azure Container Service implementation brings several more benefits to you:
- It is the easiest way to get started with DC/OS. You only need to click a few buttons and provide a few parameters, then you are ready to deploy your apps. If you have an Azure account, try it.
- DC/OS deployments are vetted and optimize specifically for Azure: all VMs, storage, networks, load balancers, and so on are created and configured for a highly available DC/OS cluster.
- You have the ability to increase integration with Azure services if you decide it would benefit your deployments as the system moves forward.
- ACS brings Microsoft support to the infrastructure to complement Mesosphere’s support of DC/OS.
The default ACS architecture looks like this:
Figure 1 - Azure Container Service architecture using DC/OS
DC/OS component list
The following list shows the components used by DC/OS itself. You will note that the core components center around Mesos, Marathon, Python, and so on.