Suchen

Automatisierung mit DevOps-Tools Continuous Delivery mit Chef

Autor / Redakteur: Thomas Joos / Stephan Augsten

Unternehmen, die auf moderne Entwicklungstrends setzen, kommen um DevOps-Strategien kaum herum. In diesem Bereich spielt auch die Automatisierung eine wichtige Rolle. Chef ist eines der wichtigsten Tools in diesem Bereich.

Firmen zum Thema

Auf der Webseite von Chef.io finden sich allerhand Hilfestellungen und Tutorials zum Erstellen der sogenannten Cookbooks und zur IT-Automation im allgemeinen.
Auf der Webseite von Chef.io finden sich allerhand Hilfestellungen und Tutorials zum Erstellen der sogenannten Cookbooks und zur IT-Automation im allgemeinen.
(Bild: Chef.io)

Die Automatisierung von Development-Prozessen ist einer der zentralen Bestandteile von DevOps-Konzepten. Nur dadurch ist sichergestellt, dass neue Versionen möglichst fehlerfrei, einheitlich und effizient bereitgestellt werden können. Auch die Produktionsumgebung sollte dem gleichen Stand entsprechen.

Hier helfen Tools wie Ansible, Chef, Puppet oder Saltstack. Durch deren Pipeline wird sichergestellt, wie die Bereitstellung des neuen Codes zu erfolgen hat. Die Continuos-Automation-Plattform Chef bietet auch die automatisierte Durchführung von Compliance-Tests.

Chef als Alternative zu Puppet

Das bekannteste Tool im DevOps-Bereich für die automatisierte Konfiguration und Continuous Delivery ist Puppet. Es gibt mit Chef aber eine bekannte Alternative, die mittlerweile ebenfalls sehr stark verbreitet ist. Vor allem in größeren Umgebungen spielt Chef eine immer wichtigere Rolle.

Chef arbeitet wie Puppet deklarativ. Bei Chef sind die Klassen als Rezepte integriert, die wiederum in Kochbüchern gesammelt werden. Da beide Tools auf Ruby aufbauen, sind sie zwar enorm flexibel, dafür aber auch etwas komplizierter als Ansible. Da Chef ein DevOps-Tool ist, werden beide Zielgruppen angesprochen, also Entwickler und Administratoren. Der Schwerpunkt des Produktes ist aber eher bei Entwicklern zu sehen.

Chef steht als Community-Edition und als Enterprise-Variante zur Verfügung. Die Basis von Chef ist Ruby, genauso wie bei Puppet. Chef erlaubt auch die Anbindung im lokalen Netzwerk, es ist nicht unbedingt die Integration in der Cloud notwendig. Natürlich arbeitet Chef auch optimal mit Amazon Web Service, Microsoft Azure und auch mit VMware zusammen, um Aufgaben virtualisiert und in der Cloud durchführen zu können.

Chef in der Cloud bei Amazon nutzen

Bei AWS können Unternehmen einen Chef Automate Server direkt in der Cloud buchen. Der Server wird komplett von Amazon verwaltet.

Die Datensicherung, Aktualisierung und Sicherheitseinstellungen des Servers obliegt dementsprechend Amazon, während sich Entwickler und Administratoren komplett auf das Tool selbst konzentrieren können. Ein weiterer Vorteil ist die schnelle Bereitstellung des Servers, da keinerlei lokale Installation erfolgen muss. In wenigen Minuten ist die Umgebung einsatzbereit, eine Mindestlaufzeit ist nicht vorgesehen.

InSpec und Habitat mit Chef nutzen

Bestandteil von Chef ist das Tool InSpec. Diese Erweiterung ist dazu in der Lage, Compliance-Analysen durchzuführen. Die Berichte der Analysen werden automatisch erstellt und abhängig von der Rolle des jeweiligen Empfängers angepasst. InSpec bietet eine eigene Sprache, mit der die Tests definiert werden können.

Zusätzlich bieten die Entwickler noch das Tool Automate. Das Tool dient in Enterprise-Umgebungen vor allem dazu, Chef mit InSpec und Habitat zu verbinden. Für die automatisierte Bereitstellung ist das notwendig, wenn mehrere Tools gemeinsam genutzt werden.

Habitat hat in der Chef-Infrastruktur die Aufgabe, Applikationen automatisiert zu erstellen und zu verwalten. In diesem Zusammenhang lassen sich auch Pakete erstellen. Auch das Erkennen von Viren ist möglich. In diesem Fall kann Habitat entsprechende Anwendungen neu kompilieren.

Durch die Zusammenarbeit mit Github kann Habitat die Daten wie Quellcode und Pakete automatisiert herunterladen. Natürlich wird dabei auf verschiedene Versionen Rücksicht genommen. Aktuelle Versionen von Habitat sind darüber hinaus in der Lage, auch verschiedene Versionen einer verwalteten Applikation auf einem Computer bereitzustellen.

Habitat arbeitet in diesem Bereich auch mit Containern zusammen. Neben Docker werden hier auch Kubernetes und OpenShift unterstützt. Automate ist auch in der Lage, AWS Azure, GCE Container und Ressourcen aus VMware vRealize zu automatisieren.

Big Data und andere Anwendungen mit Chef und Habitat sind ebenfalls möglich. Habitat kann, zusammen mit Chef auch Anwendungen wir Cassandra, Spark, Storm, Kafka und andere relevante Anwendungen im Big Data-Bereich paketieren.

Schnellere und einfachere Bereitstellung

Häufig nutzen Unternehmen keine Automatisierung, weil die Einführung zu kompliziert ist. Neue Funktionen in Chef und der beschriebene Automate Server bei AWS sollen Unternehmen dabei unterstützen, schneller und einfacher zu Chef wechseln zu können.

Vor diesem Hintergrund bietet Chef die Möglichkeit, teils kostenlose (oder zumindest kostenlos testbare) Erweiterungen für die Automatisierung in vorhandene Entwicklungsumgebungen zu integrieren. Die Chef-Entwickler wollen auch in Zukunft monatliche Updates veröffentlichen, damit Unternehmen die Aktualisierung des Produktes optimal planen können.

Ansible – Die Alternative zu Chef und Puppet

Chef und Puppet sind sich recht ähnlich, einen etwas anderen Ansatz bietet Ansible. Der größte Unterschied besteht darin, dass Ansible auf Python aufbaut, während Chef und Puppet auf Ruby basieren. Auf den Ziel-Systemen ist keine Erweiterung notwendig, um Anwendungen mit Puppet automatisiert bereitzustellen. Außerdem ist nicht zwingendermaßen ein eigener Server notwendig. Die Skripte, auch Playbooks genannt, werden in Ansible mit YAML verfasst. Dabei arbeitet YAML aber nicht deklarativ, so wie Chef und Puppet.

Fazit

Die drei bekanntesten Produkte im Bereich der IT-Automatisierung sind sicherlich Puppet, Chef und Ansible. Auch Saltstack wird in diesem Bereich häufig eingesetzt. Alle Werkzeuge haben ihre Vor- und Nachteile. Generell ist es empfehlenswert, dass sich Unternehmen alle drei Werkzeuge ansehen sollten, um sich einen Überblick darüber zu verschaffen, welches Programm sich am besten für das Konfigurationsmanagement im Unternehmen eignet.

Große Unternehmen sollten eher einen Blick auf Chef und Puppet werfen, während mittelständische und kleine Software-Schmieden durchaus auch mit Ansible oder Saltstack arbeiten können. Natürlich können Chef und Puppet auch in kleinen Netzwerken bzw. Ansible und Saltstack in großen Umgebungen nützlich sein. Der Schwerpunkt von Chef liegt aber eher in größeren Umgebungen, wie bei Puppet auch.

(ID:44836064)

Über den Autor

 Thomas Joos

Thomas Joos

Freiberuflicher Autor und Journalist