Neues Toolkit soll die Verwaltung deklarativer Infrastruktur vereinfachen

Docker stellt InfraKit für selbstheilende Infrastrukturen Open Source
Kommentare

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:

docker-infrakit

Bild: © 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.

DevOps Docker Camp

Das neue DevOps Docker Camp mit Erkan Yanar

Lernen Sie die Konzepte von Docker und die darauf aufbauenden Infrastrukturen umfassend kennen. Bauen Sie Schritt für Schritt eine eigene Infrastruktur für und mit Docker auf!

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -