© Liashko/Shutterstock.com
Entwickler Magazin
Wie Docker die DevOps-Kultur beeinflusst

DevOps mit Puppet, Ansible und Docker

Puppet als etablierte Lösung zur zentralen Verwaltung einer Serverfarm erreicht seine Grenzen, wenn verschiedene Teams mit diversen Anforderungen ihre eigenen Server oder Virtual Machines administrieren wollen. Docker erfüllt diese Anforderungen auf flexible Weise und lässt sich leicht in eine bestehende Infrastruktur integrieren. Puppet und Docker lassen sich problemlos kombinieren und erlauben sogar eine ausreichende Kapselung der spezifischen Anforderungen von Dev und Ops, ohne Gräben zwischen den Teams entstehen zu lassen.

Tobias Gesellchen


Bei Hypoport gab es schon vor 2014 eine umfassende Puppet-basierte [1] Lösung zur Maintenance und zum Provisioning der Server oder Virtual Machines (VM) verschiedener Produkte. Die Verantwortung für die zentrale Puppet-Codebasis lag bei Operations und erlaubte auf relativ schnellem Wege die Erstellung einer neuen Oracle Enterprise Linux (OEL) Virtual Machine. Dennoch forderten einige Entwickler höhere Flexibilität, die Anfang 2014 mit Docker [2] in erreichbare Nähe rückte. Durch die gleichzeitige Offenheit für eine Dev- und Ops-übergreifende Zusammenarbeit wurde die Integration von Docker in den Puppet Master bereitwillig ermöglicht. Unser Team lernte mit der Zeit die Operations-Sicht besser kennen und konnte irgendwann auch sehr eigenverantwortlich im zentralen Puppet-Repository arbeiten. Schon innerhalb dieses Repositories gab es sehr VM-spezifische, aber auch übergreifende Bereiche, derer man sich bewusst sein musste, um nicht versehentlich die VMs anderer Teams negativ zu beeinflussen.

Leider war der Entwicklungszyklus des Docker-Projekts zu schnell, um auf einem Red-Hat- oder OEL-basierten System mit aktuellen Fehlerkorrekturen oder Features mithalten zu können, sodass sich unser Team entschied, Ubuntu als Grundlage für die eigenen VMs zu fordern. Operations war sehr offen für diesen Vorschlag, konnte aber mangels Zeit nicht selbst die notwendigen Vorbereitungen in Puppet ergänzen. Unser Team übernahm daher die Implementierung der Ubuntu-spezifischen Konfiguration und öffnete so auch den Weg für andere Teams, sich zwischen OEL und Ubuntu entscheiden zu können. Ende 2014 war Docker in den meisten Teams bei Hypoport ein vertrauter Begriff, zwei weitere Teams ließen sich sogar von unseren positiven Erfahrungen anstecken und verwenden nun selbst Docker zum Deployment ihrer Services.

Wie es dazu kam, wird in den folgenden Abschnitten beschrieben. Da sich viele Änderungen auf den kulturellen Wandel beziehen, wird es nur wenige Codebeispiele geben. Dennoch wird erkennbar, dass gerade durch gemeinsam gepflegten Code die Teams dazu gebracht werden, aufeinander zuzugehen und Verständnis für die verschiedenen Perspektiven aufzubringen.

Puppet für das Provisioning jeder VM

Puppet ist bei Hypoport so konfiguriert, dass auf jeder VM regelmäßig ein Puppet-Agent startet, der sich zum zentralen Puppet-Server verbindet und verfügbare Änderungen abruft bzw. anwendet. Der Puppet-Server erhält die Manifeste aus einem Git Repository, das traditionell von Operations gepflegt...

Entwickler Magazin
Wie Docker die DevOps-Kultur beeinflusst

DevOps mit Puppet, Ansible und Docker

Puppet als etablierte Lösung zur zentralen Verwaltung einer Serverfarm erreicht seine Grenzen, wenn verschiedene Teams mit diversen Anforderungen ihre eigenen Server oder Virtual Machines administrieren wollen. Docker erfüllt diese Anforderungen auf flexible Weise und lässt sich leicht in eine bestehende Infrastruktur integrieren. Puppet und Docker lassen sich problemlos kombinieren und erlauben sogar eine ausreichende Kapselung der spezifischen Anforderungen von Dev und Ops, ohne Gräben zwischen den Teams entstehen zu lassen.

Tobias Gesellchen


Bei Hypoport gab es schon vor 2014 eine umfassende Puppet-basierte [1] Lösung zur Maintenance und zum Provisioning der Server oder Virtual Machines (VM) verschiedener Produkte. Die Verantwortung für die zentrale Puppet-Codebasis lag bei Operations und erlaubte auf relativ schnellem Wege die Erstellung einer neuen Oracle Enterprise Linux (OEL) Virtual Machine. Dennoch forderten einige Entwickler höhere Flexibilität, die Anfang 2014 mit Docker [2] in erreichbare Nähe rückte. Durch die gleichzeitige Offenheit für eine Dev- und Ops-übergreifende Zusammenarbeit wurde die Integration von Docker in den Puppet Master bereitwillig ermöglicht. Unser Team lernte mit der Zeit die Operations-Sicht besser kennen und konnte irgendwann auch sehr eigenverantwortlich im zentralen Puppet-Repository arbeiten. Schon innerhalb dieses Repositories gab es sehr VM-spezifische, aber auch übergreifende Bereiche, derer man sich bewusst sein musste, um nicht versehentlich die VMs anderer Teams negativ zu beeinflussen.

Leider war der Entwicklungszyklus des Docker-Projekts zu schnell, um auf einem Red-Hat- oder OEL-basierten System mit aktuellen Fehlerkorrekturen oder Features mithalten zu können, sodass sich unser Team entschied, Ubuntu als Grundlage für die eigenen VMs zu fordern. Operations war sehr offen für diesen Vorschlag, konnte aber mangels Zeit nicht selbst die notwendigen Vorbereitungen in Puppet ergänzen. Unser Team übernahm daher die Implementierung der Ubuntu-spezifischen Konfiguration und öffnete so auch den Weg für andere Teams, sich zwischen OEL und Ubuntu entscheiden zu können. Ende 2014 war Docker in den meisten Teams bei Hypoport ein vertrauter Begriff, zwei weitere Teams ließen sich sogar von unseren positiven Erfahrungen anstecken und verwenden nun selbst Docker zum Deployment ihrer Services.

Wie es dazu kam, wird in den folgenden Abschnitten beschrieben. Da sich viele Änderungen auf den kulturellen Wandel beziehen, wird es nur wenige Codebeispiele geben. Dennoch wird erkennbar, dass gerade durch gemeinsam gepflegten Code die Teams dazu gebracht werden, aufeinander zuzugehen und Verständnis für die verschiedenen Perspektiven aufzubringen.

Puppet für das Provisioning jeder VM

Puppet ist bei Hypoport so konfiguriert, dass auf jeder VM regelmäßig ein Puppet-Agent startet, der sich zum zentralen Puppet-Server verbindet und verfügbare Änderungen abruft bzw. anwendet. Der Puppet-Server erhält die Manifeste aus einem Git Repository, das traditionell von Operations gepflegt...

Neugierig geworden?


   
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang