Chef
Inhaltsverzeichnis
Was ist Chef?
Definition
Chef bezeichnet ein Unternehmen sowie seine Software-Lösung, die sich auf Configuration-Management spezialisiert hat. Der Name leitet sich vom englischen Wort für Küchenchef ab, da die Software mit so genannten Rezepten und Kochbüchern arbeitet.
Chef ist Open-Source-basiert und dient der Automatisierung relevanter Prozesse in der Server-Verwaltung. Die Software trägt dazu bei, Konfigurationen zu testen. Ebenso lassen sich Konfigurationen versionieren sowie replizieren. Die Software liegt ebenso in einer kostenpflichtigen Enterprise-Variante vor.
Überblick und Entwicklung
Chef ist eine im Jahr 2009 veröffentlichte Software zur Konfigurationsverwaltung und Anwendungsentwicklung. Das herausgebende Unternehmen trägt den gleichen Namen. Entwickler von Chef ist Adam Jacob, Inhaber einer Consulting-Firma, die sich auf Deployment-Tools und End-To-End-Serverprodukte spezialisiert hat.
Adam Jacob stellte seine Entwicklung dem Technologieunternehmer Jesse Robbins vor. Dieser erkannte das Potential, nachdem er die Anwendung im Zusammenhang mit Amazon testete. Zusammen mit weiteren Entwicklern folgte die Gründung eines neuen Unternehmens.
Die Entwicklung Chefs erfolgte ursprünglich unter dem Namen Marionette. Die Umbenennung war die logische Folge des Formats der Software. Diese arbeitet mit einer Art “Kochrezept” beziehungsweise mehreren Rezepten, die sich in einem “Kochbuch” zusammenfassen lassen. Dies veranlasste die Entwickler zur Umbenennung, da der Begriff im Englischen gleichbedeutend ist mit Chefkoch.
Architektur und Plattformen
Grundsätzlich basiert Chef als Software auf einer traditionellen Systemarchitektur im Master-Client-Konzept. Die Software-Client-Application ist in Ruby geschrieben, eine objektorientierte Programmiersprache beziehungsweise DSL (Domain-specific Language). Der Server basiert auf den Programmiersprachen Ruby und Erlang.
Die ursprüngliche Entwicklung Chefs war auf Betriebssysteme von Linux ausgelegt. Inzwischen erfolgt die Bereitstellung des Werkzeugs zur Konfigurationsverwaltung für mehrere nachgefragte Clients und Server. Es existiert eine Matrix-Plattform, wobei die Software-Versionen eine ganze Reihe von Plattformen unterstützen.
Den meisten Support bietet sie clientseitig für AIX, FreeBSD, OS X, Solaris, Ubuntu und Microsoft Windows. Weitere unterstützte Client-Plattformen umfassen Linux, Debian, Arch und Fedora. Serverseitig wird die Software unterstützt von Oracle Linux, RHEL(CentOS, Ubuntu sowie Oracle Cloud.
Chef und seine Funktionsweise
Die zugrunde liegende Domain-spezifische Programmiersprache Ruby bildet die Basis. Die Entwicklung und Bereitstellung von Anwendungen ist daher an gewisse Kenntnisse dieser Sprache gebunden. Dies betrifft sowohl das kommerzielle Enterprise-Tool, als auch die Open-Source-basierte, frei verfügbare Community-Version. Ursprünglich ist Chef für die Anwendung in Linux konzipiert worden, doch unterstützen spätere Versionen auch Microsoft Windows.
Wissenswert
Die Software ermöglicht eine Anbindung an lokale Netzwerke. Die Integration der Software in eine Cloud ist keine zwingende Voraussetzung, doch bevorzugen viele Anwender eine solche Einbindung. Geht es um die virtuelle Abarbeitung von Aufgaben in der Cloud, kooperiert das Unternehmen mit mehreren anderen Anbietern und Diensten. Dazu gehören die Amazon Web Services, VMware sowie Microsoft Azure.
Indem ein Anwender “Rezepte” schreibt, beschreibt er, wie Chef Server-Anwendungen managen soll. Zu diesen Server-Applikationen gehören etwa Apache HTTP Server, Hadoop oder MySQL. Ebenso beschreiben Anwender auf diese Weise, wie die Anwendungen zu konfigurieren sind.
Diese Rezepte beschreiben grundsätzlich eine Reihe von Ressourcen, die auf eine bestimmte Weise zu behandeln sind. Dazu gehören durchzuführende Installationen, das Starten von Anwendungen oder das Schreiben von Dateien.
Das Werkzeug sorgt dafür, dass sämtliche dieser Ressourcen korrekt konfiguriert sind und korrigiert gleichermaßen alle Ressourcen, die sich nicht im gewünschten Zustand befinden. Zum einfacheren Management lassen sich diese Rezepte in einer Art Kochbuch zusammenfassen.
Chef funktioniert sowohl in einem Stand-Alone-Modus als auch in einem Client-Server-Modus. Der Stand-Alone Modus trägt auch die Bezeichnung Chef-Solo. Im Client-Server-Modus verwendet der Server Elasticsearch, um alle vom Client weitergeleiteten Attribute zu indexieren.
Weiterhin stellt der Server eine API für Clients zur Verfügung, über die sie diese Informationen abfragen können. Die Rezepte können diese Attribute abfragen und anschließend die entsprechenden Daten nutzen, um Konfigurationen vorzunehmen.
Rezepte und Kochbuch: die Grundbausteine
Die Abfolge der Abarbeitung dieser Arbeitsschritte erfolgt analog hierzu. Das Konfigurationsverwaltungs-Tool von Chef trägt dafür Sorge, dass sämtliche Ressourcen korrekt konfiguriert sind.
Sobald sich herausstellt, dass sich eine der Ressourcen nicht im gewünschten Status befindet, greift das Tool mit seiner Regulierung ein. Dies funktioniert sowohl im Client-Server- als auch im Stand-Alone-Betrieb.
Anwender können das Werkzeug auf den System-Plattformen Linux, Mac OS X, Unix und Windows einsetzen. Administratoren oder Entwickler haben mit Chef die Möglichkeit, ihre Systemlandschaften mit wenigen Mausklicks aufzusetzen und zu konfigurieren.
Sie haben noch Fragen?