Container orchestration with Mesos Marathon and Kubernetes
1 min read
Original version published September 2019.
In the world of microservices, Mesos Marathon (MM) and Kubernetes (K8s) are two of the leading technologies for container orchestration and deployment. Both use Docker to encapsulate software into distributable containers, so from a development perspective, it may not matter which tool is used. However, using MM or Kubernetes affects many more aspects of successful development including CI/CD, agility, security, reliability, cost control, operational excellence, and more, so it’s important to weight the pros and cons carefully and use the correct tool for a given context.
Companies that entered the microservices game a few years ago are likely using Mesos Marathon, a product package written in Scala that allows canary deployments. Due to its construction, size, and licensing limitations, MM is not able to integrate or keep up with industry standards as quickly as other tools, all other conditions remaining the same. For example, Mesos Marathon has difficulty scaling due to threading issues and struggles with multi-tenancy at scale due to limitations in Metadataproxy while running on AWS EC2 hosts.
In contrast, Kubernetes, originally created by Google but since turned open source, has become a specification and is quickly becoming the industry standard. Its portability, advanced features, and established relationships with cloud platform vendors like Google (GCP), Microsoft (Azure), Amazon (AWS), Oracle Cloud, Rackspace and others providing Kubernetes-as-a-service make Kubernetes a popular choice. Kubernetes allows for a variety of hosting solutions including on-premise, off-premise, or hybrid cloud. It also simplifies canary and red/black deployments, increasing operational excellence and agility. Overall, it is a modern, battle tested, production-grade, and malleable solution.
While Kubernetes is a great solution for new projects, the reality is that many businesses are still fully invested in using MM. To gain similar agility and capability as Kubernetes, teams can pair MM with Spinnaker, Metadataproxy, and Calico (assuming Marathon v1.2.0+). For many businesses, this is a great solution since fully switching to Kubernetes can be a costly endeavor, but the limitations and trade-offs must be considered.
For more information, check out our AWS Well Architected Framework information page.