Blog

Agile Infrastruktur und Continuous Delivery in CoreMedia-Terraform-Teil3

Los geht es mit der Provisionierung der Infrastruktur von „0“ an. D.h. wir haben noch keine Server auf denen wir irgend etwas installieren können. Für unseren ShowCase nutzen wir das Tool Terraform, um Server in der Cloud zu starten. Als Cloud Provider nutzen wir Digital Ocean. Selbstverständlich können aber viele andere Provider genutzt werden wie Amazon Web Services, Google cloud Engine, Microsoft Azure, Redhat Openshift u.v.m.

Man unterscheidet Infrastruktur Provisonierung und Software Provisionierung. Für beide Kategorien gibt es Tools und meist beherrschen die Tools einer Kategorie ein paar Funktionen der anderen Kategorie. Terraform ist ein Tool aus der Kategorie Infrastruktur Provisionierung, es kann aber auch Software Provisonieren. Ansible oder Chef sind Beispiele aus der Kategorie Software Provisionierung. Mit ihnen kann man Software auf schon bestehenden Servern installieren, dabei spielt es keine Rolle, ob es ein oder 1000 Server sind. Ansible hat aber auch Funktionen, um Infrastruktur zu provisionieren. Es kommt ganz auf den Use Case an, welches man vorfindet. In unserem Fall nutzen wir Terraform, weil Terraform den „Zustand“ der Infrastruktur speichert und Maßnahmen treffen kann, wenn sich der Zustand ändert. Beispielsweise kann Terraform bei einer erneuten Ausführung merken, dass ein Server nicht zu Verfügung steht, oder man einen weiteren Server zur Infrastruktur hinzufügen will und nimmt nur die notwendigen Änderungen an der Infrastruktur vor. Wir werden später ein Beispiel hierfür sehen.

Für unseren CoreMedia Showcase nutzen wir Terraform, um 5 Server bei dem Cloud Provider Digital Ocean zu starten. Daneben wollen wir gleichzeitig den Open Source Cluster Scheduler Mesos bzw. DC/OS und das Container Orchestrierungs Tool Marathon provisionieren. Nach dem Lauf von Terraform werden wir also einen komplett funktionstüchtigen Cluster laufen haben, als Basis für unsere CoreMedia Umgebung. Terraform ist im Grunde ein Kommandozeilen Programm, welches man mit einigen Konfigurationsdateien füttert, die dann gegen die definierte Cloud API laufen und entsprechende Aktionen ausführen. In der Konfigurationsdatei legen wir bspw. fest wie viele Server wir benötigen mit wieviel Ram und CPU, in welcher geographischen Zone sie laufen sollen, wie sie miteinander verbunden sein sollen usw.

Zusätzlich werden entsprechende Shell Skripte zur Installation des Cluster auf jedem Rechner ausgeführt. Bei jedem Cloud Provider gibt es mehr oder weniger Möglichkeiten der Konfiguration. AWS bietet bswp. viel mehr Möglichkeiten als Digital Ocean, für unser Beispiel reicht aber Digital Ocean. Das interessante ist, dass wir das Paradigma Infrastructure as Code einsetzen. D.h. unsere Infrastruktur ist in einer Datei mit einer bestimmten Syntax festgehalten. Es kann versioniert werden und ist immer wieder reproduzierbar mit immer demselben Ergebnis.

Ist die Konfiguration erfolgt kann man mit „terraform apply“ die Ausführung starten. 10 Minuten später ist das Cluster einsatzbereit.

Am Ende des Befehls „terraform apply“ sehen wir die IPs der jeweiligen Server. Navigieren wir im Browser zur IP des Clusters, sehen wir nach der Authentifizierung per Oauth Provider, die Oberfläche von Marathon. Hier werden wir später sehen welche deployten Dienste vorhanden sind und welche Ressourcen sie im Cluster belegen. Im nächsten Artikel gehen wie genauer darauf ein. Hier schon mal ein Vorschau Screen:

Eine provokante Frage: „Wie lange dauert das in Ihrem Rechenzentrum“? Unser Cluster läuft im Beispiel bei Digital Ocean, mit einigen Änderungen kann es aber auch bei Amazon oder Azure gestartet werden. Terraform hat vieler sogenannter „Provider„. Bei einer On Premise Installation sollte allerdings der Einsatz von Ansible bevorzugt werden. Denn es gibt bis zum heutigen Datum keinen Provider für eine reine Bare Meta Lösung.

Im Teil 4 der Artikelserie sehen wir wie man eine komplette CoreMedia Strecke innerhalb weniger als 15 Minuten im eben installierten Cluster deployen kann.


Möchten Sie den CoreMedia DevOps ShowCase live erleben, per WebEx oder bei Ihnen im Unternehmen? Vereinbaren Sie einen Termin!


Dipl. Informatiker, CEO skillbyte GmbH

Mission: Mit Blockchain und Künstlicher Intelligenz die HR Welt verändern.
http://www.GravityCv.com, http://www.blockchain-hr.de
Experte in: Java Enterprise, CoreMedia, Spring, Microservices, DevOps, Machine Learning/AI

Masiar IghaniAgile Infrastruktur und Continuous Delivery in CoreMedia-Terraform-Teil3