Continuous Delivery in a Box
Continuous Delivery setzt auf radikale Automatisierung: Bei Änderungen und Erweiterungen der Software wird der neue Softwarestand direkt automatisiert getestet. Die Tests liefern schnelles Feedback über Seiteneffekte und Regressionen. Sind sie erfolgreich, lässt sich der neue Softwarestand auf Knopfdruck und innerhalb von Minuten auf dem Produktionssystem installieren.
Jan Rümenapf und Matthias Zieger von der codecentric AG zeigen am 15.12. in ihrer Session während der IT-Tage in Frankfurt, wie "Continuous Delivery in a Box" aussehen kann. Wir haben mit ihnen über deren Ansatz für eine Continuous Delivery-Pipeline, Hürden bei der Umsetzung und das 4+1-Modell gesprochen.
Informatik Aktuell: Ihr sprecht während der IT-Tage 2016 über Continuous Delivery in a Box. Was muss man sich darunter vorstellen?
Matthias Zieger: Wir wollen zeigen, mit wie wenig Aufwand – sowohl von der Hardware-Seite als auch der verwendeten Software – man eine vollständige Continuous Delivery-Pipeline aufbauen kann. Um das zu verdeutlichen haben wir alles in eine kleine Kartonbox gepackt, um es auf Messen, Meetups und unseren Kunden zeigen zu können. Diese Pipeline enthält dennoch alle Bausteine, die wir so ähnlich auch in Kundenprojekten einsetzen würden, wobei Produktivsysteme natürlich ein wenig größer wären.
Informatik Aktuell: Was ist denn der Unterschied zwischen Continuous Delivery und Continuous Deployment?
Jan Rümenapf: Continuous Delivery hat als Ziel, automatisiert Software bereitzustellen. Der letzte manuelle Vorgang ist quasi der commit in der Versionskontrolle. Continuous Delivery erfordert aber noch eine "Bestätigung" vor dem Produktionsdeployment in Form von Freigaben, Vier-Augen-Prinzip oder ähnlichen.
Matthias Zieger: Genau. Und die beiden letzten Punkte fallen bei Continuous Deployment dann weg, es wird also "durchdeployed" bis in Produktion – vollautomatisch, ohne jegliche manuelle Interaktion und das für jede Codeänderung.
Informatik Aktuell: Welche Tools, Frameworks und Methoden werden denn üblicherweise eingesetzt?
Matthias Zieger: Eine der Grundlagen für Continuous Delivery ist ein agiler Entwicklungsprozess. Zudem sollte man Themen wie Versionierung, Continuous Integration und Testautomatisierung im Schlaf beherrschen. Gerade im Bereich der Testautomatisierung gibt es da allerdings bei vielen Kunden noch Verbesserungspotential.
An diese Methoden schließen sich dann Themen wie automatisierte Provisionierung und Deployments an, einhergehend mit einem eingebetteten Konfigurationsmanagement. Sollte noch nicht alles automatisiert sein, ist gegebenenfalls auch ein Release-Management-Prozess notwendig um Abhängigkeiten zu verwalten und zur Planung und Transparenz manueller Schritte.
Jan Rümenapf: Bei der Auswahl der Tools und Frameworks hat man eine fast unbegrenzte Auswahl an Open Source-Werkzeugen, wie auch an kommerziellen Lösungen. Natürlich gibt es dominierende Werkzeuge in den einzelnen Bereichen z. B. GIT für die Versionierung oder Jenkins als CI Server, Nexus als Artefakt-Repository. In der klassischen Welt setzt man häufig Ansible für die Provisionierung ein. In der modernen Welt wird allerdings eher auf Docker, Mesos und Kubernetes gesetzt.
Dazu kommt, dass es Bereiche in der CD-Pipeline gibt, die unabhängig von der Architektur sind wie z. B. die Versionskontrolle und das Release-Management. Andere Themen wie Testautomatisierung, Deployment und Provisierung aber stark davon abhängen, welche Zielumgebung und welche Deployment-Umgebungen man einsetzt.
Matthias Zieger: Man muss verstehen, dass es keine Silver Bullets für Continuous Delivery gibt. Denn es geht darum, sich kontinuierlich – Schritt für Schritt – zu verbessern und bestehende funktionierende Inseln zu verstärken. Auch das Feiern von Erfolgen ist ein schöner und wichtiger Schritt für alle Beteiligten.
Informatik Aktuell: Und wovon hängt es ab, was man genau einsetzt?
Matthias Zieger: Kurz gesagt: von den Anforderungen! Ernsthaft, vor der Einführung von Continuous Delivery muss man sich einige Fragen stellen:
- Was sind die Haupttreiber für die Einführung einer CD-Pipeline?
- Geht es "nur" um Kosteneinsparung und Fehlerminimierung durch Automation oder auch um Erhöhung der Durchsatzrate insgesamt oder ist Geschwindigkeit die wichtigste Anforderung?
- Welche Rolle spielen Rechte-Vergabe und Compliance?
- Brauchen wir eine Traceability von den Anforderungen über den Code und die Testfälle bis zum tatsächlich installierten Release?
- Brauchen wir ein Reporting, wenn ja, in welcher Form?
- Investitionsschutz: Welche Werkzeuge sind evtl. schon beschafft bzw. im Einsatz und decken diese bereits einen Teil der Anforderungen ab?
Jan Rümenapf: Und wie sehen Migrationspfade von bestehenden Systemen in die neue CD-Pipeline aus? Werden diese überhaupt benötigt, oder stellen wir die neue CD-Pipeline nur neuen Projekten zu Verfügung?
Matthias Zieger: Wie du siehst, gibt es viele Fragen und noch mehr Antworten darauf. Man muss sich dann die Einzelbausteine der Pipeline so zusammenstellen, dass die Anforderungen erfüllt sind, die Bausteine ohne Medienbruch miteinander interagieren können und das bei Bedarf auch Bausteine ausgetauscht und ergänzt werden können, wenn z. B. neue Anforderungen/Zielplattformen hinzukommen oder auch, wenn es bessere Bausteine gibt. Die CD Pipeline unterliegt also einer ständigen Evaluation und einem ständigen Verbesserungsprozess.
Kernelemente sind eine ausgeprägte Wissenskultur und Neugier auf Neues und auf Herausforderungen.
Informatik Aktuell: Ziel von ITIL war ursprünglich Stabilität. Mein Eindruck ist, das hat man nicht nur erreicht, sondern ist auch über das Ziel hinausgeschossen. Viele Unternehmen sind in den Prozessen rund um ITIL regelrecht "eingefroren". Welche Erfahrungen macht Ihr denn mit Unternehmen?
Jan Rümenapf: Natürlich treffen wir in jedem größeren Unternehmen meist irgendwann auf die ITIL-Protagonisten. ITIL beinhaltet ja vom Kerngedanken her die Themen Service Strategy, Design, Transition, Operation und Improvement. Aus unserer Sicht wird allerdings der Improvement-Teil nicht genügend gelebt, sondern es wird quasi der Status-Quo "beschützt" und ITIL als Schutzschild missbraucht. Genau da sollte angesetzt werden: Die Stärkung des Improvement-Gedankens und schon sind wir wieder bei einem kontinuierlichen Verbesserungsprozess wie Continuous Delivery.
Informatik Aktuell: Wie verändert man das?
Matthias Zieger: Man muss die Menschen verändern und das fängt bei der Unternehmenskultur an. Die klassische IT-Organisation ist sehr arbeitsteilig aufgestellt, ein Kunde sagte uns mal: "Wir haben Silos of Excellence". IT-Organisationen wurden auf dieses Modell die letzten 40-50 Jahre optimiert. Was nicht per se schlecht ist, wenn das Hauptziel ist, möglich günstig Software zu produzieren. Wir sehen aber heute Treiber am Markt (so genannte disruptive Technologien) die einen dazu zwingen, sehr sehr schnell anstatt nur günstig zu sein. Und plötzlich funktionieren die klassischen Methoden nicht mehr.
Jan Rümenapf: Was allerdings nicht funktionieren wird, ist der Glaube, dass die Kultur den Werkzeugen folgt. Viele Unternehmen führen neue Werkzeuge ein und haben die Hoffnung, dass sich die Kultur von allein ändert. Das ist eher selten der Fall.
Informatik Aktuell: Gibt es da auch Widerstände von Mitarbeitern?
Jan Rümenapf: Wir erleben wenige Widerstände bei den eigentlichen Mitarbeitern, wenn man ihnen die Zeit gibt, sich die neuen Fähigkeiten anzueignen und ihnen plausibel macht, warum die Änderungen erfolgen. Die Hauptwiderstände finden wir eher im mittleren Management, das seine Machtpositionen in Gefahr sieht und wo man sich in seinem Silo eingerichtet hat.
Informatik Aktuell: Was sind sonst noch typische Hürden?
Matthias Zieger: Wir bekommen häufig Anfragen, CD-Pipelines auch für sogenannte Legacy-Architekturen wie Client/Server-Systeme einzuführen. Da bekommt man es plötzlich mit monolithischen Systemen zu tun, deren Code-Basis über 15 Jahre alt ist, die mit vertretbarem Aufwand nicht testbar sind und die in Umgebungen laufen, wo es schlichtweg keine Anknüpfungspunkte für Deployment-Automation gibt.
Informatik Aktuell: Wie schafft man es denn, diese Hürden zu überwinden? Was ist dazu erforderlich?
Jan Rümenapf: Im Idealfall bauen wir gemeinsam mit dem Kunden ein neues System – das aber aus verschiedenen Gründen wie Budget, Skills beim Kunden etc. nicht immer möglich ist. Also finden wir gemeinsam mit dem Kunden einen Weg, das maximale aus der bestehenden Architektur heraus zu automatisieren. Das ist dann zwar kein Continuous Delivery nach Lehrbuchmeinung – trotzdem ist es ein Schritt vorwärts. Langfristig hilft aber meist wirklich nur, das gesamte System zu modernisieren.
Informatik Aktuell: Seht Ihr auch "kulturelle" Unterschiede zwischen alter und neuer Welt?
Matthias Zieger: Ja, ganz klar. Die "alte Welt" ist geprägt von Hierarchiestrukturen, Arbeitsteilung und Expertentum. Wie bereits gesagt, das ist erstmal nichts schlechtes, aber es ist eben optimiert auf Kosten, nicht auf Geschwindigkeit. Wenn man eine deutlich höhere Geschwindigkeit erreichen möchte, geht das nur, wenn sich die Kultur in Richtung selbst-organisierende Teams, Ende-zu-Ende-Verantwortung, cross-funktionale Produkt-Teams mit Fachseite, Entwicklung, QA und Betrieb in einem Team ändert.
Informatik Aktuell: Welche Unternehmenskultur praktiziert Ihr denn bei Euch?
Jan Rümenapf: Wir sehen uns als Vordenker für agile Softwareentwicklung und Digitalisierung. Da ist es ein Muss, eine gewisse Leidenschaft für technologische Herausforderungen mitzubringen. Kernelemente sind eine ausgeprägte Wissenskultur und Neugier auf Neues und auf Herausforderungen. Dazu kommen flache Hierarchien und kurze Wege.
Informatik Aktuell: Was ist für Euch persönlich wichtig bei der Auswahl Eures Arbeitsumfeldes?
Jan Rümenapf: Da kommt einiges zusammen: dass Können und Engagement mehr zählen als Jobtitel, dass man nicht auf eine Rolle festgelegt ist, dass flache Hierarchien und kurze Wege nicht nur eine Floskel sind, sondern gelebt werden, Freiheit bei der Auswahl der Arbeitsmittel (Laptop, Betriebssystem, Firmenwagen), ein Feelgood-Manager, aber auch dass Erfolge ordentlich gefeiert werden empfinden wir als sehr wichtig.
Informatik Aktuell: Und wie bildet Ihr Euch fort?
Matthias Zieger: Damit wir nicht nur mit dem Innovationstempo Schritt halten, sondern sogar Vorreiter sein können, haben wir unser 4+1-Modell. Hier können wir unsere fachliche Weiterbildung selbst organisieren. Daneben werden aber auch nichtfachliche Themen wie Sprachkurse, Kommunikationskurse uvm. angeboten.
Wir wollen den Leuten zeigen, dass wir ein cooler Haufen sind.
Informatik Aktuell: Und was heißt 4+1 genau?
Matthias Zieger: Konkret bedeutet das, dass unsere Mitarbeiter im Schnitt nur vier Tage pro Woche für Kunden arbeiten und ca. 20 Prozent der Arbeitszeit für Weiterbildung genutzt werden können. Diese Weiterbildung organisieren wir selbst, wir bestimmen die Themen, die Form und die konkrete Umsetzung, allein oder in Gruppen. Ergänzend haben wir ein unternehmensweites Chat-System mit Kanälen zu allen möglichen (und manchmal auch unmöglichen) Themen.
Informatik Aktuell: Was macht codecentric, um Mitarbeiter zu gewinnen?
Matthias Zieger: Community-Arbeit ist ein großes Thema bei uns. Unser Blog zählt bereits 1.300 Einträge, in diesem Jahr haben wir ca. 80 Vorträge auf Konferenzen und Messen gehalten, um unser Wissen zu teilen und unsere Firma zu präsentieren. Um uns kennenzulernen und einfach mal reinzuschnuppern fanden dieses Jahr knapp 120 Meetups in unseren Standorten statt. Diese Serie geht natürlich nächstes Jahr weiter.
Wir wollen den Leuten zeigen, dass wir ein cooler Haufen sind und sich ein zweiter Blick als Kollege/Kollegin und Arbeitgeber definitiv lohnt. Unabhängig von jeder Stellenausschreibung gilt: für gute Leute gibt es immer einen Platz bei uns. Viele Bewerber kommen auf Empfehlung unserer Kollegen zur codecentric. Und wir setzen auch auf Kooperationen mit Hochschulen und aktives Talent-Recruiting.
Informatik Aktuell: Was muss man denn mitbringen, um bei Euch ins Team zu passen?
Jan Rümenapf: Bewerber sollten sich über technologische Herausforderungen freuen und sich nicht davor fürchten. Ein hoher Qualitätsanspruch an die eigene Arbeit und ein freundschaftliches Miteinander werden bei uns groß geschrieben und auch gefordert. Deshalb suchen wir Kolleginnen und Kollegen aus dem Java-Bereich, die agil sind und eigene Ideen mitbringen, ihr Wissen entfalten, vertiefen und weitergeben möchten.
Diese Werte bestimmen auch unsere Lern- und Wissenskultur. Durch Weiterbildung und stetigen Wissenserwerb fördern wir unsere Kompetenz. Deshalb steht der fachliche Austausch bei uns im Vordergrund. Du musst nicht alles können, aber Interesse haben und nicht stehen bleiben. Wir legen großen Wert auf Selbstorganisation und Teamgeist.
Informatik Aktuell: Vielen Dank für das Gespräch.
Möchten Sie mehr über Expertise und Jobangebote der codecentric AG erfahren, steht Ihnen Claudia Fröhling für Fragen zur Verfügung.
Frau Claudia Fröhling | Community Manager
codecentric AG
mobil: +49 (0) 173/7310341
www.codecentric.de
Jan Rümenapf & Matthias Zieger auf den IT-Tagen 2016
Jan Rümenapf & Matthias Zieger haben am 15.12.2016 zum Thema "Continuous Delivery in a Box? Wie geht das?" eine Session auf unserer Jahreskonferenz, den IT-Tagen 2016 gehalten.