Java Kurse
von Java Profis.

Continuous Delivery - DevOps

Continuous Delivery – Pragmatischer Einstieg

Workshop mit Eberhard Wolff

1 Tag

Termin und Ort auf Anfrage
  • 1 praxisnaher Workshoptag
  • Teilnehmer erhalten Eberhard Wolffs neues Buch
    "Continuous Delivery: Der pragmatische Einstieg"
  • Kursort in der 8. Etage im HBF in den lichtdurchfluteten und filigranen Bügelbauten mit Blick auf ganz Berlin
  • 1 x Berlin WelcomeCard: freie Fahrt mit U-, S-Bahn und Bus in Berlin (AB) für 1 Tag, 200 Rabattangebote, Stadtplan + Guide
  • Mittagessen, Getränke und Snacks sind All inclusive
  • Eine Stadtrundfahrt mit der legendären Linie 100
  • Dozent: Eberhard Wolff (Java Champion)

Workshopinhalte

Der Workshop zeigt alle wesentlichen Bestandteile einer Continuous-Deployment-Pipeline. Dabei werden die Ansätze nicht nur theoretisch sondern auch anhand praktischer Beispiele gezeigt. So wird Continuous Delivery ganz praktisch klar, wie Continuous Delivery funktioniert und mit welchen Werkzeugen es umsetzbar ist. Der genutzte Technologie-Stack setzt auf Java-Werkzeugen auf. Die Konzepte sind aber auf andere Programmiersprachen übertragbar.

Einführung
Überblick über Continuous Delivery
Warum überhaupt Continuous Delivery?

Infrastruktur bereitstellen

Chef für Software-Installation
Vagrant für den Aufbau von Entwickler-Rechnern
Docker als universeller Software Container

Tests
Die Test-Pyramide
Was sind Akzeptanztests?
GUI-basierte Akzeptanztests mit Selenium
Textuelle Akzeptanztests (BDD) mit jBehave
Kapazitätstests mit Gatling
Exploratives Testen

Deploy – der Rollout in Produktion
Rollout und Rollback

Operate – Produktionsbetrieb der Anwendungen
Herausforderungen im Betrieb
Werkzeuge zum Verarbeiten von Log-Dateien mit dem ELK-Stack (Elasticsearch, Logstash, Kibana)
Monitoring mit Graphite

Fragen an Eberhard Wolff zu Continuous Delivery

Was verbirgt sich genau hinter dem Begriff Continuous Delivery?

Herzstück ist eine Continuous Delivery Pipeline. Es bringt die Software über verschiedene Test-Phasen in Produktion. Dabei sind die Tests soweit wie möglich automatisiert. Dazu ist es auch notwendig, die Installation der Software und den Aufbau von Umgebungen zu automatisieren, da ja für jede Test-Phase eine Installation der Software bereit gestellt werden muss. Manuelle Verfahren sind dafür viel zu aufwändig.

Welche Vorteile ergeben sich beim Einsatz von Continuous Delivery und welche Probleme können mit dem Einsatz von Continuous Delivery gelöst werden?

Durch die höhere Automatisierung ist der Durchlauf durch die Continuous Delivery Pipeline viel schneller als ein manueller Prozess. Änderungen können innerhalb von weniger einer Stunde in Produktion sein. Neue Software kann mehrmals pro Tag ausgeliefert werden. Das ist ein erheblicher Fortschritt im Vergleich zu Quartalsreleases. Außerdem führt die Automatisierung zu Reproduzierbarkeit: Die automatisierte Installation aus den Test-Umgebungen kann genau so auch in Produktion genutzt werden. Das macht die Releases-Prozesse zuverlässiger und reduziert das Risiko erheblich. Das Team kann also der Produktivstellung wesentlich zuversichtlicher entgegenblicken.

Welche Voraussetzungen muss man für einen Einsatz von Continuous Delivery schaffen?

Die wesentlichen Aufgaben sind die Automatisierung der Tests und der Infrastruktur. Continuous Delivery kann schrittweise eingeführt werden: Schließlich gibt es immer eine Pipeline, um Releases in Produktion zu bringen. Die Pipeline kann einer Analyse unterworfen werden, um Phase zu identifizieren, die entweder sehr viel Zeit benötigen oder fehleranfällig sind. Dort kann das Team mit der Optimierung beispielsweise durch Automatisierung beginnen.

Wer sollte Continuous Delivery einsetzen? Gibt es eine bestimmte Projektgröße oder Projektumfang?

Die Konzepte lassen sich in beliebigen Projekten einsetzten. Schließlich gibt es bei jedem Projekt einen Weg, wie Software in Produktion gebracht wird. In einigen Fällen ist der letzte Schritt nicht ganz so einfach: Wenn die Software nicht im eigenen Rechenzentrum läuft, sondern beim Kunden installiert werden muss, ist das Deployment in Produktion etwas kaum voll automatisierbar – aber der Rest der Pipeline mit den verschiedenen Test-Phasen lässt sich dennoch umsetzen. Weil ich Continuous Delivery für so fundamental und breit einsetzbar halt, habe ich mich auch mit dem Thema so intensiv beschäftigt.

Was machst Du genau in Deinem 1-tätigen Continuous Delivery Workshop am 4. Juni 2015 in Berlin?

Wir werden Werkzeuge für eine Continuous Delivery Pipeline mit den verschiedenen Test-Stufen kennenlernen. Wir sehen den Aufbau von Umgebungen auf Rechnern mit Vagrant und Docker. Dann beschäftigen wir uns mit automatisierten Akzeptanztests mit Selenium und JBehave, automatisierten Kapazitätstests mit Gatling und Möglichkeiten für das Monitoring mit Graphite sowie die Auswertung von Log-Dateien mit Elasticsearch, Logstash und Kibana.

Was ist das Ziel des Workshops, was können die Teilnehmer danach?

Die Teilnehmer haben einen Überblick über eine Continuous Delivery Pipeline und ihre Phasen. Sie kennen Werkzeuge für die einzelnen Schritte, können die für sie passenden Werkzeuge auswählen und sich dann in bestimmte Werkzeuge oder Techniken weiter vertiefen. Da sie mein Buch zu diesem Kurs mitbekommen, können sie das Gelernte dann noch weiter vertiefen. Das Buch enthält Aufgaben, die dabei helfen.

Ist dieser Workshop nur für Entwickler aus der Java-Welt oder können auch Entwickler fremder Softwareprogrammiersprachen wie C# teilnehmen?

Die Beispielanwendung ist eine Java-Anwendung. Die Konzepte sind allerdings übertragbar – und Werkzeuge zum Beispiel für Lasttests und Akzeptanztests nutzen die Web-Oberfläche der Anwendung und können daher mit allen Plattformen genutzt werden.

Du hast darüber ein Buch geschrieben „Continuous Delivery. Der pragmatische Einstieg“, erschienen im Herbst 2014 bei dpunkt, (ISBN 978-3-864-90208-6). Wie kam es dazu? Das Buch gibt es übrigens zu dem Kurs dazu.

Ich habe mich schon lange mit Continuous Delivery beschäftigt. Die bisherige Literatur erklärt die Konzepte sehr gut – ich wollte gerne noch eine Schritt weitergehen und ganz praktisch zeigen, wie Software-Teams Continuous Delivery umsetzen können. Daher zeigt das Buch auch einen möglichen Technologie-Stack. Zusätzlich stellt das Buch natürlich beispielsweise die Auswirkungen auf die Organisation und die Management-Perspektive dar. Das ist Buch ist dennoch kompakt – und kommt auch gut an. Bei Amazon gibt es aktuell vier Rezensionen und alle bewerten das Buch mit fünf Punkten – das freut mich natürlich besonders! Außerdem ist es das erste deutschsprachige Buch zu Continuous Delivery.

Hast Du eventuell für uns eine Erfolgstory für uns?
Z. B. „Seit dem unsere Abteilung Continuous Delivery einsetzt, haben wir…“.


Es gibt Projekte, die dank Continuous Delivery nicht mehr ein Release pro Quartal haben, sondern innerhalb einer Stunde eine Änderung ausrollen können. Dadurch können Kunden viel schneller auf neue Features zugreifen und die Firmen können im Wettbewerb besser bestehen.

Was ist der Unterschied zwischen Continuous Delivery und Continuous Deployment?

Continuous Deployment bedeutete, dass tatsächlich jede Änderung in Produktion geht. Dadurch wird Continuous Delivery auf die Spitze getrieben, denn bei Continuous Delivery wird zwar der Prozess weitgehend automatisiert, aber Releases müssen nicht unbedingt in Produktion gehen. Natürlich werden auch bei Conitnuous Deployment Probleme durch die Test-Phasen frühzeitig aufgedeckt und das Risiko der Releases wird durch Techniken wie Canary Releasing oder Blue/Green Deployment minimiert.

Wo und ab wann fängt in der Softwareentwicklung Continuous Delivery an?

Wenn der Entwickler seine Änderungen in die Versionkontrolle eingecheckt hat, fängt die Bearbeitung der Änderungen in der Continuous Delivery Pipeline an – die Anwendung wird gebaut, in den verschiedenen Stages automatisiert getestet und kann dann in Produktion gebracht werden. Also umfasst Continuous Delivery alles zwischen der Änderung des Source Codes und dem Ausrollen in Produktion.

Der Projektleiter möchte wissen, wie viel Zeit man letztendlich mit dem Einsatz spart?

Continuous Delivery erhöht die Zuverlässigkeit, weil jede Änderung ausführlich automatisiert getestet wird. Außerdem erfolgt das Feedback schneller. Wenn eine Änderung nach einer Stunde in den Akzeptanztest kommt, weiß der Entwickler noch sehr genau, was er getan hat – nach einigen Monaten ist das schon anders. Dieses schnelle Feedback und die Automatisierung erhöht natürlich nicht nur die Zuverlässigkeit, sondern auch die Produktivität.

Beschreibung

Continuous Delivery ermöglicht es, Software schneller und zuverlässiger in Produktion zu bringen als bisher. Grundlage dafür ist eine Continuous-Delivery-Pipeline, die das Ausrollen der Software weitgehend automatisiert. Dieser Workshop erläutert den Teilnehmern, wie eine solche Pipeline praktisch aufgebaut wird und welche Technologien dazu eingesetzt werden können. Dabei geht es nicht nur um das Kompilieren und Installation der Software, sondern vor allem um verschiedene Tests, die die Qualität der Software abzusichern.

Der Workshop zeigt außerdem, welche Auswirkungen Continuous Delivery auf das Zusammenspiel zwischen Entwicklung und Betrieb im Rahmen des Begriffs DevOps hat. Schließlich werden die Auswirkungen auf die Software-Architektur beschrieben.

Voraussetzungen

Erfahrungen in der Programmierung und ggf. auch dem Betrieb von Software.

Dieser Workshop benötigt eine Mindestteilnehmerzahl. Nach Buchung erhalten Sie regelmäßig Informationen über den Stand.

Über den Dozenten

Eberhard Wolff hat mehr als 10 Jahre Erfahrung als Architekt, Entwickler und Trainer. Er ist regelmäßiger Sprecher auf verschiedenen internationalen Konferenzen. Außerdem ist er Autor zahlreicher Fachartikel und Bücher – beispielsweise auch des ersten deutschsprachigen Buchs über Continuous Delivery.

Konferenzen / Vorträge

Eberhard Wolff wird in 2015 auf folgenden Konferenzen Vorträge halten:

-> mircoXchg

-> JAX + WJAX

-> Continuous Lifecycle

-> GOTOcon Berlin

-> JavaLand

Maßgeschneidert?

Diesen Kurs gibt es auch als
individuelle Firmenschulung.

Kontaktieren Sie mich oder
nutzen Sie unseren
Schulungskonfigurator!

030 / 755 49 188

Tim.Neumann@GEDOPLAN.de

Ihr Ansprechpartner für organisatorische Fragen bei java advanced training

Das sagen Kursteilnehmer

Lernen Sie uns Kennen

Einen Werkzeugkasten zu besitzen macht aus einem noch keinen Handwerker.

Christoph Cieslik

Dozent für Java Standard und Enterprise Edition, Consultant, Reviewer und Entwickler im Enterprise Java Team

Einen Werkzeugkasten zu besitzen macht aus einem noch keinen Handwerker.

Stefan Kastigen

Dozent

“Als Agile Native helfe ich Ihnen zu einer modernen agilen Arbeitsweise - für Sie+Ihre Mitarbeiter“

Judith Islitzer

Agile Consultant und Coach

“Als Agile Native helfe ich Ihnen zu einer modernen agilen Arbeitsweise - für Sie+Ihre Mitarbeiter“

Alle Schulungsleiter bei GEDOPLAN IT Training.

Das erwartet Sie bei uns

Bei Kursen von GEDOPLAN IT Training ist nicht nur der Kaffee gratis.

Kaffee, Tee und kalte Getränke

Wer öfter trinkt, kann besser denken. Deshalb versorgen wir Sie mit ausreichend gratis Getränken.

Gratis Obst, Snacks und Mahlzeiten für einen erfolgreichen Java Kurs

Obst, Kekse und Mahlzeiten

Ein voller Bauch studiert zwar nicht gern, aber nur wer sich wohl fühlt, hat auch Spaß am Seminar.

Sie erhalten Ihre Java Schulungsunterlagen auf einem 32 GB USB-Stick.

Demos und Beispiele zum Mitnehmen

Unsere Kurse haben einen hohen Praxisanteil. Die komplette Übungsumgebung nehmen Sie bei vielen Kursen am Ende auf einem USB-Stick mit.

Ihre erfolgreiche Teilnahme an unserer Java Schulung wird bestätigt

Teilnahmebescheinigung

Nach erfolgreicher Teilnahme erhalten Sie eine Bescheinigung zur Bestätigung Ihrer Teilnahme.

Java EE 7 Buch von Dirk Weil

Dirk Weil schenkt Ihnen bei einer Buchung eines Java EE Kurses sein Buch Java über EE 7 – auf Wunsch mit Signatur und Widmung.