Continuous Lifecycle 2013 » Agenda »
// Grundlegende Konzepte von Continuous Integration anhand von Jenkins
Das Kernstück von Continuous Integration ist - wie der Name schon sagt - das fortlaufende Zusammenfügen aller Komponenten einer Anwendung, um die Softwarequalität zu steigern. Zunächst wollen wir im Rahmen dieses interaktiven Tutorial den dazu notwendigen Jenkins-Job für ein kleines, vorbereitetes Beispielprojekt erstellen, um dieses
- auszuchecken,
- zu kompilieren,
- zu testen,
- statische Code-Analyse durchzuführen und
- in ein Artefakt-Repository hochzuladen.
Dabei soll insbesondere auf die verschiedenen, dafür nützlichen Jenkins-Plug-ins eingegangen werden. Der Job wird dabei in der Regel durch Änderungen an der Codebasis ausgelöst, was sich sowohl durch regelmäßiges Abrufen der Versionsverwaltung (= Polling) als auch durch sogenannte Post-Commit-Hooks lösen lässt. Anschließend sollen die Teilnehmer dazu befähigt werden, eine sogenannte Build-Pipeline für mehrere voneinander abhängige Jobs einzurichten.
Darauf werden wir noch auf die Möglichkeiten der Skalierung der Jenkins-Installation via Slaves und auf die Benutzung von Jenkins zum Deployment eingehen, indem wir die notwendigen Teile zu einer Delivery Pipeline zusammenfügen.
Zielgruppe:
- Architekt
- Softwareentwickler
- Scrum Master
- Build-Manager
Voraussetzungen:
- Grundkenntnisse Java
// Referenten
// Dr. Stefan Wolf
ist Senior Consultant bei TNG Technology Consulting GmbH. Sein Fokus liegt auf Build- und Deployment-Automatisierung sowie Design und Entwicklung mit Java EE. Er ist Jenkins-Core-Committer sowie Autor und Maintainer mehrerer Jenkins-Plug-ins. Bei mehreren Projekten hat er schon eine funktionierende Delivery Pipeline vom Einchecken des Codes bis zum Ausliefern der Software geschaffen. Dabei hat er das automatisierte Deployment in sehr komplexen Situationen gemeistert und mit verschiedenen Arten automatisierter Tests sichergestellt, dass in der Produktionsumgebung möglichst wenig Bugs auftreten.
// Andreas Schmid
ist Senior Consultant bei TNG Technology Consulting GmbH, wo er seit November 2009 hauptsächlich für Kunden im Java-Enterprise-Umfeld Software (weiter-)entwickelt, Automatisierung vorantreibt und neue Entwicklungsmethodiken (z.B. agile Softwareentwicklung oder TDD) einführt. Seit seinem ersten Projekt als IT-Berater für TNG setzt er dabei auf Continuous Integration und Delivery. Nach seiner Erfahrung hilft ein adäquat aufgesetztes CI&D nicht nur dabei sicherzustellen, dass die auszuliefernde Software richtig funktioniert. Es bietet zudem auch die Flexibilität, Software auf unterschiedlichen Umgebungen (Test, Integration, Produktion,etc) zu Verfügung stellen zu können.