2016, Mesos and Kubernetes

I want to talk about Mesos and Kubernetes , both of which have reached a high level of maturity, and this year there are many blog posts associated with it. I firmly believe that the next year, their use will grow faster, so it is time to review the summary, prepared for the 2016 years. This article I would like to discuss the status of Mesos and Kubernetes, and lists the advantages and disadvantages, so that we can understand the concept of cluster manager.

Mesos and Kubernetes

Before I start, I'd like to take a brief look at Mesos and Kubernetes. This comparison is not easy, because Mesos do work and Kubernetes is not exactly the same. To understand the reasons for this, you need a quick and in-depth look at how Mesos and Kubernetes work.

Mesos is a cluster manager based on two-stage scheduling. In terms of height simplification, Mesos is used to manage cluster resources and provide them with a "framework" that can accept these resources at high levels to initiate the task.

In contrast, Kubernetes is based on the idea behind Borg's cluster manager. Google's cluster manager does not have the concept of two-stage scheduling.

When I introduce Mesos, I usually introduce the entire Mesos "stack" because I found that introducing Mes Mes only would be inaccurate: As mentioned earlier, based on its two-stage scheduling feature, users need to be able to use Mesos' Mesos framework (for example, Marathon, Aurora, Singularity) to work like a Kubernetes scheduler. The popular (paid) solution for using Mesos Management Clusters with Enterprise Support is DCOS .

In addition to two-stage scheduling, Mesos and Kubernetes have many differences, such as their dependencies (Zookeeper, Etcd, etc.) and how they are used. This article does not want to discuss the internal details of Mesos and / or Kubernetes, so it will directly explore the strengths and weaknesses of both.

Status, advantages and disadvantages

Mesos and Kubernetes are relatively clear that they are at different stages. Mesos was advanced by Mesosphere , which achieved a lot of successful milestone nodes this year, while Kubernetes released its first stable version in July. This means using a widely used project with a relatively long history (Mesos), or using a bright future, well-designed new project (Kubernetes).

I can spend a few hours talking about the two, but if you think about using them in a cluster, I think there is no absolute win in the current program, so explore the advantages and disadvantages of which help in the specific practice Reference.

Mesos stack


  • Has proven the ability to expand , Apple uses 75,000 nodes
  • Extremely flexible . Now, many companies use it in a production environment, and there are many different Mesos frameworks that can meet different needs.
  • Relatively mature and easier to find use cases and best practices for their use.
  • You can use a different format than the docker container.


  • For different times and students , to adapt to the docker container era. It is obvious from some design decisions that it is obvious that the way in which the cluster information is exposed, through the Json API, is actually quite difficult to use.
  • Too much language . As a developer and operation and maintenance staff, I want to know what is running in the cluster, when I find the code base problem, I want to be able to fix the problem. To run the Mesos stack, it involves many components: Mesos (C ++), Marathon (Scala), Mesos-DNS (Golang), and so on. It's not easy to find developers who are familiar with so many languages.
  • All dispatchers are not well abstracted for micro services , like Pod, Service, Namespace abstracts. These are easy to implement, but have not yet been achieved.



  • Well-designed API.
  • Pod, Service, Namespace is the correct abstraction of micro services.
  • Vibrant, fast-moving community.
  • A language, Golang.


  • Still very young, will encounter bugs.
  • There is no large-scale use of large companies. Google itself is still using BORG, and at the time of this writing, many companies migrating to Kubernetes do not have a large production cluster.
  • Only support Docker (at the time of writing)

in conclusion

Many people are talking about both of these technologies and think about who is the best cluster manager for the competition, and there is no clear conclusion. If you want to use the cluster manager, I strongly recommend Mesos and Kubernetes to try, because there are a lot of places to be studied in the two, before you can use the production environment, you may want to know both. Let us look forward to 2016 will really become Kubernetes mature years, can really be used in the production environment, but also look forward to see how the Mesos ecosystem will fight back this powerful competitor.

Original link: 2016, Mesos and Kubernetes (translation: Cui Jingwen)
Translator introduction Cui Jingwen, now working at IBM, senior software engineer, responsible for IBM WebSphere business process management software system testing work. Has worked for VMware in the quality assurance of desktop virtualization products. Has a strong interest in virtualization, middleware technology, business process management.

Heads up! This alert needs your attention, but it's not super important.