Blog

Container OS Vergleich

Seit dem Aufstieg der Container-Community in den letzten drei Jahren sind viele Unternehmen und Projekte entstanden, die wirklich innovative Wege zur Verwaltung von Anwendungen bieten.

Es gibt mehrere Projekte rund um das Thema Management, Netzwerk, Speicherung, Protokollierung, Überwachung und mehr (siehe diese Mind Map des Ökosystems). Die Container-Betriebssysteme spielen in diesem Ökosystem eine besonders wichtige Rolle.

In allen Unternehmen wo ich bisher als Berater unterwegs war gab es eine Frage die sich alle Entwickler stellten: Welches ist das beste Betriebssystem, um Container zu betreiben? Ein komplettes Linux? CoreOS? Was ist mit RedHat? Ich habe auch von etwas namens RancherOS gehört? Und diese ganzen „Atomic“ Systeme?

Uns natürlich ist die Antwort wie immer: „Es hängt davon ab“. Im Nachfolgenden führe ich eine Liste von Container OS auf mit deren Merkmalen:

CoreOS

CoreOS konzentriert sich auf groß angelegte Installationen, die sich hauptsächlich an Unternehmen richten. Es hat folgende Vorteile:

Hunderte von Mitwirkenden und in der Regel 500+ IRC-Nutzer in #coreos auf FreeNode. Es wird mit einigen wirklich interessanten Tools geliefert, die vom CoreOS-Team entwickelt wurden, wie etcd, fleet und flanell. Mit diesen Tools können Sie sehr schnell ein CoreOS Cluster aufsetzen.

Im Dezember 2014 kündigte das CoreOS-Team auch eine weitere Art von Container-Laufzeit-Engine namens rkt an. Dies war eine Antwort auf das, was das Team als Wegdriften von Dockers ursprünglichem Container-Manifest betrachtete. CoreOS betreibt immer noch sowohl Docker- als auch rkt-Container, so dass man sich noch oder in naher Zukunft keine Sorgen über Kompatibilität machen muss.

Das CoreOS-Team hat sich auch mit Google zusammengeschlossen (Google Ventures ist auch ein Investor in CoreOS) und hat Tectonic entwickelt, eine wirklich interessante Möglichkeit, CoreOS mit Kubernetes einfach und effizient zum Laufen zu bringen. Tectonic ist eine kommerzielle Kubernetes-Plattform, die wichtig sein kann. Und natürlich hat die Übernahme von CoreOS durch RedHat auch Auswirkungen, denn RedHat 4.0 z.B. läuft mit dem Red Hat Enterprise Linux (RHEL) CoreOS Betriebssystem. Ein reduziertes, unveränderbares OS optimiert für den Betrieb von Container. Dieses wird vermutlich das Project Atomic von RedHat über kurz oder lang ablösen. Project Atomic oder RHEL Atomic Host ist ebenfalls ein unveränderbares und reduzierbares OS basierend auf RHEL 7.

RancherOS

Rancher versucht, das was ein Container-Betriebssystem sein sollte konsequent zu verfolgen. Hierbei ist alles in RancherOS ein Docker-Container es läuft einen System-Docker als PID 1 und startet dann je einen ContainerFür Benutzer Container.

Das mag verrückt erscheinen, aber für ein Betriebssystem, das nichts anderes tun will als Container zu hosten, macht es Sinn. Rancher hat alles, was nicht benötigt wird entfernt. Dies macht das OS sehr leichtgewichtig. Die Installations ISO beträgt nur 22MB.

Noch interessanter sind alle Dienste, die über das Betriebssystem hinaus mit dem Rancher-System hinzugefügt werden. Wenn Sie bedenken, was in einem Container-Produktionssystem alles benötigt wird: In der Regel Funktionen wie Security und Networking, Service Discovery, Loadbalancing, Monitoring und Scheduling. Rancher fügt all dies on top auf RancherOS hinzu.

Snappy Ubuntu Core

Dies ist ein interessantes Projekt, das Mark Shuttleworth im vergangenen Jahr angekündigt hat, während er gleichzeitig einige der damals verfügbaren Container-Betriebssysteme als zu „aufgebläht“ bezeichnet hat.

Das Snappy Ubuntu Core OS kommt mit einer neuen Art von Anwendungsmanager („snappy“) und konzentriert sich auf die Ausführung von Anwendungen und Containern. Einige mögen argumentieren, dass dies im Widerspruch zu dem steht, was ein Container-Betriebssystem tun sollte, aber es könnte auch ein gutes Übergangssystem sein. Es stellt eine großartige Lernmöglichkeit für diejenigen dar, die nur Dinge ausprobieren wollen und keine Zeit haben, die Feinheiten von etcd, consul, fleet, kubernetes und all den anderen Werkzeugen zu erlernen.

Die Basis des Systems ist der „Ubuntu Core“. Darüber hinaus existieren Apps in schreibgeschützten Images (ähnlich wie Container), und die Apps können „transaktional“ aktualisiert werden. Das ist großartig, denn man muss nicht eine ganze Anwendung erneut herunterladen, um eine neue Version bereitzustellen, sondern nur die vorgenommenen Änderungen (Wie bei Image Layer).

Das Snappy Ubuntu Core OS ist kein reines Container-Betriebssystem, hat aber einige interessante Aspekte. Jeder, der Ubuntu in der Produktion eingesetzt hat oder daran interessiert ist, sowohl Anwendungen als auch Container nebeneinander auszuführen, sollte sich das unbedingt ansehen.

RedHat Project Atomic

Diese Distribution wird mit Upstream RPMs von CentOS, Fedora und RHEL erstellt und ermöglicht das, was RedHat „atomare“ Upgrades und Rollback nennt.

Das Betriebssystem verfügt über integrierte Funktionen für Docker, flanell (vom CoreOS-Team), Kubernetes, ein transaktionales Betriebssystem-Update-Tool namens rpm-ostree, das immer eine ältere Version des Betriebssystems (ähnlich CoreOS) und natürlich systemd verfügbar hält.

Das Projekt Atomic verwendet SELinux für Container Security und den Zugriff auf und von ihnen zu verwalten. Durch den Zukauf von CoreOS geht vermutlich Project Atomic in RedHat CoreOS auf.

Mesosphere DCOS

Mesosphere DCOS ist ein Projekt, das leider häufig mit Apache Mesos verwechselt wird.

Es nimmt die Open-Source-Projekte Apache Mesos, Marathon, Zookeeper und einige andere Dienste, bündelt sie auf clevere Weise und fügt außerdem Enterprise Funktionen hinzu. DCOS wird in zwei Varianten angeboten: eine Community-Edition für AWS-Workloads und eine Enterprise-Version.

Das Interessanteste an Mesosphere DCOS ist, dass es sich nicht nur auf das Containermanagement beschränkt. Es baut schließlich auf Apache Mesos auf, das noch viel mehr kann. Wie wäre es mit der Bereitstellung eines Hadoop-Clusters? Vielleicht ein großer Cassandra-Cluster? Mesosphere hat diese Funktionalität eingebaut, und ich glaube, dies ist eines der wichtigsten Unterscheidungsmerkmale zu den anderen Container-Betriebssystemen. Gefühlt hat DCOS an Fahrt verloren im vergleich zu Kubernetes und OpenShift.

VMware Photon

VMware Photon ist ein Container-Betriebssystem und der erste Teil einer laufenden Open-Source Reihe von VMware. VMware konzentriert sich definitiv auf die groß angelegte Bereitstellung von Anwendungen, wie das andere Projekt Lightwave zeigt, das Identitätsdienste einschließlich Authentifizierung und Autorisierung für große verteilte Infrastrukturen, Anwendungen und Container bereitstellt.

Zusammenfassung

Wie man sieht gibt es inzwischen einige Container OS Hersteller und weitere werden sicherlich folgen. Im Enterprise Umfeld würde ich – gerade in Bezug auf OpenShift – mit CoreOS gehen.

Masiar IghaniContainer OS Vergleich