Tutum und Docker statt Provisionierung

von Andreas Pointner, 17. Februar 2016
In unserem letzten Beitrag dieser Serie haben wir uns mit dem Thema beschäftigt wie man die einzelnen Docker-Container effizient miteinander verbindet.
Benutzt man also Docker-Compose hat man innerhalb weniger Sekunden eine funktionierende Entwicklungsumgebung in der man Magento ohne Probleme starten kann. Ein großer Vorteil davon ist auch, dass man eine ganze Reihe von komplizierten Konfigurationen (Redis, Solr, DB-Cluster, Web-Cluster, Varnish, PHP-Versionen, Nginx-Configs, …) sehr einfach und schnell bei sich lokal ausprobieren kann ohne dabei eine Vielzahl an Servern konfigurieren bzw. anmieten muss. In diesem Beitrag beschäftigen wir uns mit dem Thema wie wir mit Hilfe von Tutum und Docker einen Server (DigitalOcean) starten ohne dabei auf Werkzeuge für Provisionierung zurückzugreifen.

²

Was ist Tutum?

Tutum selbst bezeichnet sich als „The Docker Platform for Dev and Ops – Build, deploy, and manage your apps across any cloud“¹

Die Tutum Inc. wurde 2013 in New York gegründet und erlebte 2015 seinen Durchbruch. In diesem Jahr wurde es auch von Docker selbst aufgekauft.

Was macht Tutum?

Mit Hilfe von Tutum kann man ein Docker-Compose-File auf einfache Art und Weise auf einen Server deployen. Wenn man will übernimmt Tutum auch das Erstellen des Cloud-Servers automatisch. Der Service selbst befindet sich zwischen IaaS (Infrastructure as a Service) und PaaS(Platform as a Service), da die Infrastruktur zur Verfügung gestellt wird und mit Hilfe der Docker Container die benötigte Plattform hinzugefügt wird.

Des Weiteren lassen sich die Container auch über das User-Interface währen des Betriebs aktualisieren, skalieren und auf mehrere Server verteilen. Die Plattform Tutum übernimmt auch noch andere Funktionen wie das Monitoring.

Node

Loggt man sich das erste Mal bei Tutum ein, so wird einem ein Tutorial angezeigt bei dem alles schön sorgfältig der Reihe nach passiert. Als erstes muss man eine Node anlegen auf den die Container gespielt werden. Eine Node ist im Prinzip nichts anderes als ein Server. Nur kann dieser Server eben in der Cloud (in unserem Beispiel Digital Ocean), oder bei einem Hoster oder bei einem selbst im Keller liegen.

Tutum Nodes
Im Bild zu sehen ist die Übersicht über sämtliche Nodes die man aktuell zur Verfügung hat. In unserem Falls liegt eine Node bei Digital Ocean und es sind 9 Docker Container darauf deployt.

 

Um aber eine Node für einen Cloud-Anbieter anlegen zu können, muss man sich vorher bei einem Cloud Provider anmelden. Die tolle Sache dabei ist, dass Tutum beinahe bei allen großen Cloud Providern Gutscheincodes hat. Dadurch bekommt man gratis Guthaben und man kann die ganze Sache auch einfach mal nur testen.

Hat man einmal einen Cloud Provider mit Tutum verbunden, kann man direkt aus Tutum heraus eine neue Node konfigurieren und starten.

Tutum Digital Ocean

Stack

Nachdem wir eine Node besitzen können wir anfangen unsere Docker Container hinaufzuspielen und unsere Applikation testen. Dies geschieht am einfachsten mit Hilfe eines Stacks.

Ein Stack ist eine Ansammlung an verlinkten Docker-Containern. Um solch eine Ansammlung zu bekommen kann man entweder ein docker-compose.yml File hochladen oder aber sich den Stack ganz einfach zusammenstellen.

Da wir bereits in unserem Beitrag „Magento Docker Entwicklungsumgebung“ ein solches docker-compose.yml File erstellt haben, nahmen wir diese Datei (fügen noch ein paar Redis-Cache Backends hinzu) und liesen uns unseren ersten Tutum Stack erstellen.

Tutum Stack
Jeder diese Stacks beinhaltet in einer logischen Kapselung nun eine Menge von Services wie zum Beispiel einen Datenbank. Ein Service selbst besteht aus mindestens einem Docker Container kann aber auch aus mehreren bestehen.

In der Detailansicht des Stacks werden alle Services inklusive deren Status angezeigt. Genau wie erwartet gibt es in unserem Fall zwei reine Daten-Container-Services und ein Tools-Service die nicht laufen. Alle anderen Services sind auf die entsprechende(n) Node(s) gespielt, verlinkt und gestartet worden.

Tutum Containers
Tutum selbst lässt einige Docker Container auf den Nodes laufen die die Überwachung der Container und das Auslesen der Logs-Files  übernehmen. Der große dabei Vorteil ist, dass man sich von jedem Service die Auslastung ansehen kann und nach Bedarf auch noch neue Container starten kann.
Tutum Service

Docker Cloud

Seit ein paar Tagen gibt es auf Tutum einen kleinen Hinweis auf eine neue Plattform namens Docker Cloud (https://cloud.docker.com/).
Die Oberfläche von Docker Cloud ist komplett identisch zu Tutum und wird vermutlich dessen Ablöse bedeuten. Derzeit gibt es noch kaum Informationen darüber aber wir sind definitiv gespannt wo das ganze hin geht.

Fazit

Wir haben nun in unserer Beitragsreihe zu Vagrant, Docker, Docker-Compose, Tutum gesehen wie einfach es sein kann, einen Produktivserver und eine lokale Entwicklungsumgebung ident aussehen zu lassen. Natürlich ist es auch ein große Herausforderung speziell für die DevOps solch ein System für die eigenen Bedürfnisse anzupassen aber dennoch sind wir der Meinung, dass dies die Zukunft sein wird.

Man bedenke nur wie einfach es ist in Zukunft ein Versions oder Sicherheitsupdate einzuspielen. Denn speziell über Tutum benötigt man nur einen Klick und sämtliche Container auf allen noch so verteilten Servern (Nodes) werden mit der neuesten Version bespielt.

Zu beginn dieser Thematik waren wir selbst noch etwas skeptisch, doch wie sich herausgestellt hat zu unrecht.

 

Wenn Sie noch Fragen zu diesem Thema haben oder mit uns diesbezüglich gerne mal selber sprechen wollen, dann nehmen Sie einfach Kontakt mit uns auf.

Noch kurz zur Info: Beim 15. Magento Stammtisch in Wien am 24.2.2016 werden wir einen Vortrag zum Thema „Dockerize Magento2“ halten.

UPDATE: Die Slides zum Vortrag in Wien sind auf Slideshare zu finden.

¹ https://www.tutum.co/

² https://www.tutum.co/static/images/docker_hosting_tutum.png

Teilen