Mesosphere DC/OS on AWS
AWS provides all the infrastructure to satisfy your corporate datacenter needs, such as EC2 Virtual Machines, ECS (Elastic Container Service), EKS (Elastic Container Service for Kubernetes) and a plethora of supporting services, so that you can containerize and deploy your applications/microservices using CI/CD (Continuous Integration, Continuous Deployment) DevOps pipelines, on AWS.
When your data center is operating at the level of 10’s of nodes/machines, DevOps tools such as Chef, Puppet, Ansible and SaltStack will serve you well. Beyond that level, you will need the next level of tooling to abstract the entire datacenter into a single pool of computing resources, for better management. Enter Mesosphere DC/OS datacenter operating system, built on top of the Apache Mesos open-source distributed systems kernel.
Apple, a major user of Mesos, built it’s Siri backend services on Apache Mesos. Other heavy weights using Mesos include Twitter and AirBnB. If you have access to resources like Apple has, it may be a good idea to start from the Mesos kernel and build the services around it from scratch. For the others, Mesosphere has packaged the Mesos kernel with software components that provide key functionality like service discovery, internal and external load balancing, user/service authentication and authorization, CLI, and graphical user interfaces, as the DC/OS datacenter operating system. DC/OS is available as an open source version, in addition to the commercially supported version from Mesosphere.
Here’s a summary of important features of DC/OS:
- Run DC/OS on bare metal, VSphere, OpenStack, AWS, Azure, GCE
- Service catalog for easy install, scale, patch, upgrade complex services like Kubernetes
- Strong resource isolation with dynamic partioning
- Access control by integration with LDAP, Active Directory, SAML 2.0 and OpenID providers
- TLS based encryption between DC/OS services and connected devices
- Containers do not run as root, but with limited privileges
- Container Network Interface (CNI) support to run all compatible container types
- GPU-based acceleration
- High availability with self-healing, zero downtime app deployment
- High performance load balancing
- Service discovery built-in
- Secrets management built-in
- Persistent and external storage volumes
Marathon vs Kubernetes
DC/OS had Marathon as its primary built-in container orchestration service. In 2017, Mesosphere added Kubernetes as an alternative on DC/OS. Running Kubernetes on DC/OS gets you the additional benefits of running a cluster on DC/OS, such as automation for monitoring, failover, scaling, adding storage volumes, and more. Kubernetes is winning the popularity contest between container orchestration platforms.
Traditional DevOps tooling vs DC/OS
Traditional DevOps tooling | DC/OS | |
---|---|---|
Scale of use | 10's of nodes/machines | 1000's of nodes/machines |
Resource isolation | No resource isolation from underlying machine | Compute resources (CPU, memory, storage) abstracted from underlying machine |
Multi-tenancy | Multi-tenancy requires special configuration | Fine-grained native multi-tenancy using containerization |
Fault-tolerance | No fault-tolerance to absorb node/machine failure | High availability with self-healing |
Partioning of nodes | Static partioning of nodes | Dynamic, managed |
Node utilization efficiency | Less efficient | Higher efficiencies |
Provisioning and deployment | Longer provisioning and deployment times. Node/machine specific deployment. | Install, scale, patch, upgrade complex services like Kubernetes, Sparc, and Kafka with as-a-service paradigm. |
Heterogenous infrastructure | Hard to accomodate | Heterogenous work loads capability bulit-in natively |
Cluster state monitoring | Limited tools | Built-in monitoring, CLI, graphical interface |
It is easy to try out DC/OS by installing a mini DC/OS test environment.