Neues Toolkit soll die Verwaltung deklarativer Infrastruktur vereinfachen

Docker stellt InfraKit für selbstheilende Infrastrukturen Open Source

Christoph Ebert

© Shutterstock.com / Panom

Docker hat den Nutzern von Container-Infrastruktur ein neues Tool Open Source zur Verfügung gestellt: Mithilfe des Projekts InfraKit soll die Verwaltung deklarativer Infrastrukturen vereinfacht werden. Darüber hinaus soll InfraKit das Aufsetzen und Verwalten „selbstheilender Infrastrukturen“ ermöglichen.

Laut Bill Farner und David Chung von Docker (einst Mitarbeiter von Conductant, das von Docker im März übernommen wurde) benötigen IT-Ops-Teams „einen simplen und konsistenten Ansatz, um die Anzahl von Servern festzulegen, welche Größe diese haben sollen und welche Art von Softwarekonfiguration benötigt wird.“ Ferner müsse man im Fall von Serverausfällen sicherstellen können, dass etwaig benötigte Ersatz-Server die notwendige Konfiguration erhalten.

Selbstheilende Infrastruktur dank InfraKit

Infrakit soll genau solche Probleme adressieren und das Erstellen von deklarativen, selbstheilenden Infrastrukturen ermöglichen. Im Kern besteht InfraKit aus einem Set von ineinandergreifenden, aktiven Prozessen. Dazu teilt es die Infrastrukturautomatisierung in einfach kombinierbare Komponenten auf, sogenannte Plugins. Sie sind mehrheitlich in Go geschrieben, grundsätzlich aber sprachenagnostisch, was Entwickler in die Lage versetzen soll, eigene Plugins auch in anderen Sprachen als Go zu schreiben.

Plugins als Controller

Die Plugins sind per Default aktive Komponenten bzw. aktive Controller, die sicherzustellen sollen, das der Zustand der Infrastruktur den definierten Spezifikationen entspricht. Gibt es Abweichungen schreiten die Plugins ein – der selbstheilende Aspekt von InfraKit. Auf Wunsch lassen sich die Komponenten allerdings auch passiv wie herkömmliche Tools nutzen.

Als aktive Komponenten legen die Plugins das Verhalten von bestimmten sogenannten Primitives fest, die von InfraKit unterstützt werden, als da wären: Groups, Instances und Flavors. Die Primitives sind aktive Komponenten, die als Plugins laufen.

  • Groups: Gruppen dienen der Abstraktion und sind leichter zu handhaben als das Management individueller Instanzen. Groups bestehen bspw. aus einer Zusammenstellung von mehreren (Virtual) Machines, die entweder identische (genannt „cattle“) oder unterschiedliche Konfigurationen und Propertys (genannt „pet“) haben dürfen. Das Group-Plugin kontrolliert die Größe und den allgemeinen Zustand von Gruppen und entscheidet selbstständig über etwaige Updates.
  • Instances: Instances oder Instanzen sind Teile/Mitglieder einer Gruppe. Ein Instance-Plugin beobachtet und verwaltet die physischen Ressourcen der Instanzen. InfraKit enthält bspw. Instance-Plugins für Vagrant und Terraform, Instance-Plugins für AWS und Azure wurden in Aussicht gestellt.
  • Flavors: Flavors sollen dabei helfen Gruppenmitglieder zu unterscheiden und definieren deren unterschiedliche Behandlung. Somit definiert ein Flavor-Plugin quasi die Spezifikationen der auf einer Instance laufenden Dienste. Es ist verantwortlich für die Konfiguration einer physikalischen Instanz und deren Health Check. Beispiele für Flavor-Plugins sind einfache Server oder Docker Swarm Mode Manager. So soll ein Swarm Mode Flavor-Plugin nicht nur kontrollieren können, ob eine Swarm Mode Member Node aktiv ist, sondern auch, ob die Node Teil des Clusters ist.

Das Entkoppeln der Ausstattung von physikalischen Instanzen und der Konfiguration von Applikationen in Instance- und Flavor-Plugins soll folgenden weiteren Vorteil bringen: Anbieter von Anwendungen können einfach selbst ein Flavor-Plugin erstellen, z.B. für MySQL, das mit einer großen Zahl von Instance-Plugins zusammenarbeitet.

Das folgende Schaubild visualisiert die Funktionsweise von InfraKit:

Quelle: Docker

Quelle: Docker

Es gibt drei definierte Gruppen:

  • stateless cattle instances
  • stateful instances
  • Infrakit manager instances

Der deklarierte Infrastrukturzustand jeder Gruppe wird kontrolliert und unabhängig von den anderen Gruppen abgeglichen. Sollte beispielsweise ein Node der „cattle“-Gruppe ausfallen, wird ein neuer gestartet, um die gewünschte Größe wieder herzustellen. Ähnlich auf der Host-Seite: Fällt der „Leader“-Host, auf dem InfraKit läuft, aus, springt ein „standby“-Leader (M1 oder M3) ein.

InfraKit steht Open Source auf Github zur Verfügung uns soll laufend aktualisiert werden.

Docker-Kontroverse

Docker war zuletzt vor rund einem Monat Objekt hitziger Debatten. Mehrere Parteien, verteilt über das Ökosystem bis hin zu großen Nutzern, führten in der Öffentlichkeit eine Diskussion, in der der Unmut über Dockers Umgang mit dem Support für Enterprise-Deployments zum Tragen kam. Es ging vor allem um Probleme mit der Stabilität, der Versionierung, der Migration und der Backend-Kompatibilität. Könnte es zum Docker-Fork kommen? Dazu gibt es spannende Kommentare, zunächst von Benjamin Wootton und auch von Peter Roßbach.

DevOpsCon Whitepaper 2018

Free: BRAND NEW DevOps Whitepaper 2018

Learn about Containers,Continuous Delivery, DevOps Culture, Cloud Platforms & Security with articles by experts like Michiel Rook, Christoph Engelbert, Scott Sanders and many more.

 

Verwandte Themen:

Geschrieben von
Christoph Ebert
Christoph Ebert
Christoph Ebert stieß im Juli 2011 zum Online-Team von Software & Support Media. Als Redakteur kümmert er sich um das Portfolio von entwickler.press und ist verantwortlich für das Entwickler Magazin und entwickler.de. Davor betreute er die Portale WebMagazin.de, CreateOrDie.de und mobile360.de. Vor seiner Zeit in Frankfurt arbeitete der studierte Amerikanist und Tech-Geek als Redakteur für ein Heimkinofachmagazin im Süden Deutschlands.
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: