Schneller am Markt durch die Beschleunigung des Continuous Delivery

Continuous Delivery ist kein Projekt mit festem Ende. Vielmehr ist es ein Prozess, der von den Beteiligten gefördert und angetrieben werden muss.

Per Definition ist Continuous Delivery (CD) kein Projekt mit einem festen Ende. Vielmehr handelt es sich um einen Prozess, der von den Beteiligten  gefördert, verbessert und angetrieben werden muss, selbst wenn es scheinbar rund läuft.

Selbst wenn Sie davon überzeugt sind, dass Ihre CD-Pipeline optimal in Schuss ist, schadet es nicht,  genauer hinzusehen und für optimale Rahmenbedingungen zu sorgen. Auf Basis unserer Erfahrungen und des Feedbacks aus der Branche weltweit haben wir eine Checkliste zusammengestellt, die einige Vorschläge rund um die Prozessoptimierung von CD beinhaltet.

Sacha Labourey,
CEO von Cloudbees.

1. Verbessern Sie ständig Ihre CD-Pipeline.

Anders formuliert lautet unsere Empfehlung:  Agieren Sie aggressiver! Wenn die Pipeline linear verläuft, links also der Quellcode, rechts das Produkt ist, dann ist die Automatisierung der Schritte in den Anfängen wichtig. In den meisten Unternehmen erfolgt eine schrittweise Implementierung und der eigentliche Feinschliff erfolgt erst später. Auf diese Weise bleiben personelles und finanzielles Investment überschaubarer.

CD dichter an die Produktion zu bringen, ist insoweit eine größere Herausforderung, da das Tooling für Produktivumgebungen nicht wirklich automatisiert ist. Der Einsatz von Konfigurations-Management-Lösungen wie Chef oder Puppet kann das Aufsetzen Ihrer Infrastruktur automatisieren.

Eine andere Möglichkeit ist es, das Verfahren Immutable Infrastructure anzuwenden, welches Teile Ihrer Infrastruktur komplett ersetzt, anstatt sie dauernd zu aktualisieren. Das verringert die Komplexität von Deployments. Mit dem Ersetzen eines Systems auf unterster Ebene kann die Automatisierung aller folgenden Schritte erzwungen werden.  

2. Synchronisieren Sie die Produktionsumgebung mit den nichtproduktiven Umgebungen.

Beginnt man mit CD, stellt man normalerweise fest, dass nicht nur die nichtproduktive Umgebung einfacher als die Produktivumgebung ist, sie ist auch anders, da die Menschen, die sie erschaffen haben, aus unterschiedlichen Kulturen innerhalb des Unternehmens kommen. Das Entwicklungs-Team hat großen Einfluss auf die nichtproduktive Umgebung, während der Betrieb für Optimierungen des Produktivsystems sorgt.

Mit der zweiten Generation von CD müssen wir dieselbe Kultur auf beiden Seiten der Pipeline haben -  von der Entwicklung bis zur Produktion. Diese Kultur nennt man DevOps. In einer DevOps-Umgebung arbeitet jeder an gemeinsamen Zielen. Es gibt keine Abteilungsgrenzen oder Schuldzuweisungen. Zunächst wird Automatisierung mit anderen Gruppen geteilt, die ebenfalls Software ausliefern. Anschließend wird die Kultur verbreitet. Immutable Infrastructure, etwa mittels Containern wie zum Beispiel Docker, bieten eine gute Grundlage, um dieselbe Kultur sowohl in der Entwicklung als auch im Betrieb zu teilen, da sie Umgebungen und Konfigurationen über die gesamte Lieferkette verlässlich machen.

3. Verbessern Sie die Qualität automatisierter Tests.

Ein todsicherer Weg zur Verbesserung ihrer CD-Pipeline ist das Anheben der Testkultur auf eine neue Ebene. Das ist ein evolutionärer Prozess. Zunächst verpflichten Sie sich zu testen, dann fügen
Sie Tests zu bestehenden Produkten hinzu und später entwerfen Sie Ihr Produkt mit automatischen End-zu-End Tests, die mit dem Prozess synchron laufen.

Die Vorteile liegen auf der Hand: Es ist deutlich preiswerter, eine Reihe von Tests in der Lieferkette zu erzeugen, als jeweils Einzeltests bei Bedarf. Zusätzlich ist jeder dieser Tests einfacher zu implementieren, da das Produkt bereits bereits im Hinblick auf seine Testbarkeit entworfen wurde. Und obendrein kann man die Automatisierung von Tests auf die Spitze treiben. Mehr automatisierte Tests bringen Ihre Produkte schneller zur Marktreife und geben Ihnen gleichzeitig die Gelegenheit, sich mit höherwertige Aufgaben zu beschäftigen. Und schließlich trauen sich die Produkt-Teams eher, neue Features zu implementieren, da sie sich auf gründliche, automatisierte Tests verlassen können. 

4. Mittelfristig: Passen Sie die Rollenverteilung in den Teams an.

Etwa ein Jahr nach Einführung von CD ist es sinnvoll, die Positionen und Aufgaben der Entwickler  neu zu verteilen. So kann der ganze Prozess ergebnisorientiert ausgerichtet werden. Manche Tasks  werden  umverteilt,  andere sollten neu definiert werden. Aufgrund  der Automatisierung der Tests fallen beispielsweise einige Aufgaben weg, dafür entstehen neue. Zu den neuen Aufgaben zählt etwa die stetige Verbesserung der Automatisierungsfunktionen.

Dafür sind nicht unbedingt (externe) Schulungen nötig, eher geht es darum, intern neue Denkprozesse anzustoßen. Damit das gemeinsame Produkt designt und vor allem auch die Automatisierung stetig optimiert werden kann, ist der Informationsaustausch zwischen den verschiedenen Unternehmensbereichen sinnvoll. Auch Brainstormings sind empfehlenswert. Wenn zwei Teams sich austauschen, beispielsweise der E-Commerce Bereich mit einem Team von Entwicklern der Website, dann können beide Seiten viel mitnehmen. Das passiert nicht, wenn die Teams getrennt voneinander agieren und ihre Pipelines nicht abgleichen.

Eine weitere gute Idee ist es, die Teams immer mal wieder neu zu mischen. So erhalten alle Einblick in die Prozesse der anderen, wodurch die Prozesse letztlich auch wieder verbessert werden können.

5. Teilen Sie ihr Wissen mit der Welt.

Interner Informationsaustausch ist wertvoll, noch besser ist es aber, mit Profis aus der ganzen Branche, am Besten weltweit, verknüpft zu sein. Schicken Sie Ihre besten Arbeitskräfte auf internationale DevOps Events. Diese sind relativ neu, dadurch tummeln sich sehr viele wissbegierige Experten dort, die ihre Erfahrungen teilen.

Erfolge vorzuzeigen ist gut für die Firma. Auch die Mitarbeiter sind motivierter, wenn sie externes Feedback erhalten. Ihr Image als fortschrittliches und innovatives Unternehmen wird sich positiv auf den Markt auswirken, wodurch Sie neue Kunden und Mitarbeiter gewinnen können.

Fazit

Continuous Delivery ist ein Prozess, der niemals abgeschlossen ist. Was Unternehmen tun können, ist sich stetig zu verbessern, indem sie ihre Methoden verändern und den internen und externen Erfahrungsaustausch unterstützen.

Über den Autor:

Sacha Labourey ist CEO und Gründer von Cloudbees, einem Unternehmen, dass sich auf die Arbeit mit Jenkins und Continuous Delivery konzentriert. Bevor er Cloudbees im Jahr 2010 gründete, war Labourey Mitgeschäftsführer der Middleware-Divsion von Red Hat. Zu Red Hat kam Labourey im Zuge der Übernahme des Unternehmens JBoss, wo er als CTO tätig war.

 

Folgen Sie SearchEnterpriseSoftware.de auch auf Twitter, Google+ und Facebook!

Erfahren Sie mehr über Softwareentwicklung

- GOOGLE-ANZEIGEN

ComputerWeekly.de

Close