Von Continuous Integration zu Continuous Deployment

Ähnliche Dokumente
Serbest Hammade / Resh serbest.hammade@hammade.de. Do, 21. Juni 2012

Branching und Merging mit Visual Studio Team System

Continuous Integration mit Jenkins

AGILE APPLICATION LIFECYCLE MANAGEMENT IM ATLASSIAN ECOSYSTEM

Versionsverwaltung GIT & SVN. Alexander aus der Fünten. Proseminar: Methoden und Werkzeuge, SS Lehrstuhl i9, Prof. Dr. T.

Build-Pipeline mit Jenkins

Einführung in Subversion

Erfolgreicher Ums9eg auf Git

Database Change Management für Continuous Delivery. Diana Lander und Andreas Falk NovaTec Consulting GmbH

Continuous Integration

git & git-flow Jens Sandmann Warpzone Münster e.v. Jens Sandmann (WZ) git & git-flow / 31

Einreichung zum Call for Papers

Iterativ. Inkrementell

End-to-End Agility Sind Sie schon agil genug? Mag. Christoph Leithner

DevOps bei den ID Build-Automatisierung statt Silo-Betrieb

Einführung Git Interna Workflows Referenzen. Git. Fast Version Control System. Michael Kuhn

Deployment Deployment Seite 1 / 25

Qualitätserlebnis statt Qualitätssicherung. Eine Mehrfachfallstudie agiler Teams


ITIL und Entwicklungsmodelle: Die zwei Kulturen

Softwareproduktlinien Teil 4: Versionsverwaltungs- und Buildsysteme

Ablösung von Control-M durch JobScheduler

Abhängigkeiten und Git

Praktikum Ingenieurinformatik (PI)

Warum sich das Management nicht für agile Softwareentwicklung interessieren sollte - aber für Agilität

Testautomatisierung. Lessons Learned. qme Software. Gustav-Meyer-Allee Berlin. Telefon 030/ Telefax 030/

Moodle aktuell halten mit Git

Versionsverwaltung mit SVN

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008

Leseauszug DGQ-Band 14-26

Referenzen TYPO3 Projekt Slider für Reiseberichte Stand: Februar 2015

Git. Dezentrale Versionsverwaltung im Team Grundlagen und Workflows. Rene Preißel Björn Stachmann. 2., aktualisierte und erweiterte Auflage

Was versteht man unter Softwaredokumentation?

Agiles Testen. Gedankensammlung. 17. November Patrick Koglin

Individuelle Erweiterung des generierten Codes. 16. Januar 2013

Qualitätsmanagement mit Continuous Integration Untersuchung anhand einer Machbarkeitsstudie in der Praxis. Abschlußpräsentation zur Studienarbeit

SEMINAR Modifikation für die Nutzung des Community Builders

Vom lokalen Build zum Deployment

Anleitung Redmine. Inhalt. Seite 1 von 11. Anleitung Redmine

Continuous Delivery in der Realität eines Großunternehmens

ecaros2 Installer procar informatik AG 1 Stand: FS 09/2012 Eschenweg Weiterstadt

Konfiguration Management System. Konfiguration Management System. Versionierung Parallele Entwicklung Workspace

Ergebnisse. Umfrage Kurz-Statistiken Umfrage 'Feedback und Entertain 2.0'

Dieses Dokument soll dem Administrator helfen, die ENiQ-Software als Client auf dem Zielrechner zu installieren und zu konfigurieren.

Umfrage. Didaktischer Kommentar. Lernplattform

bitte auf den Button Baudaten-Fenster öffnen klicken. (oder über das Menü -> STAMMDATEN -> BAUDATEN anklicken)

Was ist Sozial-Raum-Orientierung?

Übungsklausur vom 7. Dez. 2007

Testen und Testautomatisierung in agilen Projekten

Permanente Integration Einstellung und Prozess versus Werkzeuge

Online Banking System

Dr. Nikolai Krambrock Andreas von Studnitz

Der Projektmanager (nach GPM / IPMA) Fragen zur Selbsteinschätzung und für die Prüfungsvorbereitung

Einbindung einer ACT!12-16 Datenbank als Datenquelle für den Bulkmailer 2012

Continuous Database Integration mit Flyway

Anforderungen an die HIS

Presse-Information

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: MORE Projects GmbH

Kurzanleitung zu. von Daniel Jettka

Wo finde ich die Software? - Jedem ProLiant Server liegt eine Management CD bei. - Über die Internetseite

Software Engineering in der Praxis

Updatehinweise für die Version forma 5.5.5

ecaros-update 8.2 Update 8.2 procar informatik AG 1 Stand: DP 02/2014 Eschenweg Weiterstadt

1. Fehlende Zugriffsrechte für die Verwendung der VR -NetWorld Software

How-to: Webserver NAT. Securepoint Security System Version 2007nx

Erfahrungen mit Hartz IV- Empfängern

MetaQuotes Empfehlungen zum Gebrauch von

TYPO3 CMS 6.2 LTS. Die neue TYPO3- Version mit Langzeit- Support

Anleitung Redmine. Inhalt. Seite 1 von 11. Anleitung Redmine

Summer Workshop Mehr Innovationskraft mit Change Management

Content Management System mit INTREXX 2002.

STRATEGIEN FÜR DAS NÄCHSTE JAHRZEHNT

HelpMatics Survey. Survey. Das Tool für Ihre Mitarbeiterbefragung

Gründe für fehlende Vorsorgemaßnahmen gegen Krankheit

Die Makler System Club FlowFact Edition

Softwareanforderungsanalyse

Inhaltserzeichnis. Datenübernahme

emlp: e-learning Plattform und mobile Lösungen für Military Operations EUROKEY Software GmbH Ludwig Kuhn

SVN-Einführung für das SEP DS und CM. Julian Timpner, Stefan Brenner, Stephan Rottmann

SSI WHITE PAPER Design einer mobilen App in wenigen Stunden

1 Installation QTrans V2.0 unter Windows NT4

Qualitätssicherung leicht gemacht: Open Source Tools sinnvoll einsetzen und verzahnen

Leseprobe. Thomas Konert, Achim Schmidt. Design for Six Sigma umsetzen ISBN: Weitere Informationen oder Bestellungen unter

Installation der SAS Foundation Software auf Windows

ACHTUNG: Es können gpx-dateien und mit dem GP7 aufgezeichnete trc-dateien umgewandelt werden.

SMART Newsletter Education Solutions April 2015

Das Compare-, Merge- und Versionierungstool für Microsoft Dynamics NAV. NAVObjectEditor RECY CLE

Zentrum. Zentrum Ideenmanagement. Zentrum Ideenmanagement. Umfrage zur Nutzung von mobilen Endgeräten im Ideenmanagement

THEMA: "SAS STORED PROCESSES - SCHNELL GEZAUBERT" HELENE SCHMITZ

HTML5. Wie funktioniert HTML5? Tags: Attribute:

Virtuelles Coaching (VC) ist eine Mischung aus telefonischem Coaching begleitet durch die Eingabe in ein Online-Formular.

Crashkurs Subversion / Trac / Provisioning. Jan Zieschang, , Berlin

teischl.com Software Design & Services e.u. office@teischl.com

Referenzen Typo3. Blog der Internetagentur Irma Berscheid-Kimeridze Stand: Juni 2015

UpToNet DMS Posteingang

3 Great Place to Work Institut Deutschland

Konfigurationsdateien mit Git verwalten

ARBEITNEHMERÜBERLASSUNG. Zeitarbeit? Leiharbeit?

Transkript:

Von Continuous Integration zu Continuous Deployment Manuel Pichler <mapi@pdepend.org> 31. Mai 2010

Über mich Manuel Pichler Jahrgang 1978 Diplom Informatiker Softwarearchitekt Entwickler von: PHP_Depend phpundercontrol PHPMD Berlin, 31. Mai. 10 Von Continuous Integration zu Continuous Deployment 2

Warum kontinuierlich integrieren? Frühzeitige Erkennung von Fehlern Minimierung manueller Arbeitsschritte Lauffähige Softwareversion zu jeder Zeit Transparenz des Entwicklungsprozesses Zufriedenheit mit dem eigenen Produkt Berlin, 31. Mai. 10 Von Continuous Integration zu Continuous Deployment 3

Agenda Klassische Integration Grundlagen für kontinuierliche Integration Kontinuierliche Integration Prozesse und Techniken im Detail Continuous Deployment Berlin, 31. Mai. 10 Von Continuous Integration zu Continuous Deployment 4

Klassische Integration deploy Entwickler Stage / Live Berlin, 31. Mai. 10 Von Continuous Integration zu Continuous Deployment 5

Klassische Integration Dieser Ansatz scheitert spätestens: Mit größer werdenden Teams deploy Stage / Live Entwickler Berlin, 31. Mai. 10 Von Continuous Integration zu Continuous Deployment 6

Klassische Integration Dieser Ansatz scheitert spätestens: Mit größer werdenden Teams Mit komplexeren Projekten deploy Stage / Live Entwickler Berlin, 31. Mai. 10 Von Continuous Integration zu Continuous Deployment 7

Agenda Klassische Integration Grundlagen für kontinuierliche Integration Kontinuierliche Integration Prozesse und Techniken im Detail Continuous Deployment Berlin, 31. Mai. 10 Von Continuous Integration zu Continuous Deployment 8

Zurück zum Ausgangspunkt deploy Entwickler Stage / Live Berlin, 31. Mai. 10 Von Continuous Integration zu Continuous Deployment 9

Grundvoraussetzungen Versionsmanagement ~ $ svn ci deploy SVN, Git Stage / Live Berlin, 31. Mai. 10 Von Continuous Integration zu Continuous Deployment 10

Grundvoraussetzungen Versionsmanagement Automatisierte Tests ~ $ svn ci deploy ~ $ phpunit AllTests Entwickler SVN, Git Stage / Live Berlin, 31. Mai. 10 Von Continuous Integration zu Continuous Deployment 11

Grundvoraussetzungen Versionsmanagement Automatisierte Tests Buildmanagement ~ $ svn ci deploy ~ $ ant Entwickler SVN, Git Stage / Live Berlin, 31. Mai. 10 Von Continuous Integration zu Continuous Deployment 12

Zwischenfazit 25% - Frühzeitige Erkennung von Fehlern Automatisierte Tests 50% - Minimierung manueller Arbeitsschritte Buildautomatisierung 25% - Lauffähige Softwareversion zu jeder Zeit Versionsverwaltung 25% - Transparenz des Entwicklungsprozesses Commithistorie 31% - Zufriedenheit mit dem eigenen Produkt Berlin, 31. Mai. 10 Von Continuous Integration zu Continuous Deployment 13

Agenda Klassische Integration Grundlagen für kontinuierliche Integration Kontinuierliche Integration Prozesse und Techniken im Detail Continuous Deployment Berlin, 31. Mai. 10 Von Continuous Integration zu Continuous Deployment 14

Kontinuierliche Integration ist......nicht nur ein Werkzeug, sondern hat Einfluss auf den gesamten Entwicklungsprozess Jede Änderung wird zeitnah eingecheckt Die Versionsverwaltung ist kein Zwischenspeicher für fehlerhaften Quelltext Fehlgeschlagene Builds werden umgehend gefixt, denn oberstes Ziel ist eine lauffähige Software Mittels Buildskript führt jeder Entwickler vor einem Commit eine lokale Integration durch Berlin, 31. Mai. 10 Von Continuous Integration zu Continuous Deployment 15

Etappenziel erreicht ~ $ svn ci deploy Entwickler SVN, Git Stage / Live poll svn copy XML-Logs Feedback: Mail, Twitter, RSS Berlin, 31. Mai. 10 Von Continuous Integration zu Continuous Deployment 16

Zwischenfazit 50% - Frühzeitige Erkennung von Fehlern Automatisierte Tests, Testlauf nach jedem Commit 50% - Minimierung manueller Arbeitsschritte Buildautomatisierung 50% - Lauffähige Softwareversion zu jeder Zeit Versionsverwaltung, CI-Version 50% - Transparenz des Entwicklungsprozesses Commithistorie, CI-Feedback 50% - Zufriedenheit mit dem eigenen Produkt Berlin, 31. Mai. 10 Von Continuous Integration zu Continuous Deployment 17

Agenda Klassische Integration Grundlagen für kontinuierliche Integration Kontinuierliche Integration Prozesse und Techniken im Detail Continuous Deployment Berlin, 31. Mai. 10 Von Continuous Integration zu Continuous Deployment 18

Versionsmanagement Artefakte die versioniert werden sollten Quelltexte jeglicher Art Konfigurationsdateien Branches zur Trennung von Produktlinien Releases und Features bekommen einen Branch Tags Releases und erfolgreiche Builds werden mit einem Tag versehen Berlin, 31. Mai. 10 Von Continuous Integration zu Continuous Deployment 19

Tagging & Branching tags/r10kw02_build03 tags/r10kw02_build02 tags/r10kw02_build01 tags/r10kw06_build03 tags/r10kw06_build02 tags/r10kw06_build01 Tagesgeschäft tags/r10kw02 Mainline branches/r10kw02 tags/r10kw06 branches/r10kw06 Neuentwicklung branches/feature42 tags/feature42_build02 tags/feature42_build01 tags/feature42_build04 tags/feature42_build03 tags/feature42_build05 tags/featu... Berlin, 31. Mai. 10 Von Continuous Integration zu Continuous Deployment 20

Komponenten bilden svn:externals Git submodule PEAR Paket Datenzugriffsschicht Projekt Domainmodel Präsentationsschicht Berlin, 31. Mai. 10 Von Continuous Integration zu Continuous Deployment 21

Vorteile der Komponentenbildung Komponenten sind getrennt von einander testbar Kürzere Zeitenspanne bis zum Feedback Es existieren immer stabile Versionen von Komponenten und der gesamten Software Definierte und gut sichtbare Abhängigkeiten Berlin, 31. Mai. 10 Von Continuous Integration zu Continuous Deployment 22

Testverfahren Software- & Akzeptanztests mit PHPUnit, Selenium, Fitnesse Statische Tests Lint, PHPCPD, PHP_CodeSniffer, PHPMD Last- und Performancetests JMeter Berlin, 31. Mai. 10 Von Continuous Integration zu Continuous Deployment 23

Akzeptanztest... Wer kennt Fitnesse? Berlin, 31. Mai. 10 Von Continuous Integration zu Continuous Deployment 24

Statische Tests Gerade bei modernen, browserbasierten Anwendungen ist syntaktische Korrektheit Die einfachste Form der statischen Codeanalyse ist das lintern: php -l W3C CSS Validator xmllint html noout http://www.example.com/ Douglas Crockfords JSLint Berlin, 31. Mai. 10 Von Continuous Integration zu Continuous Deployment 25

Programmierkonventionen Ein häufig unterschätzter Qualitätsaspekt Wo hinterlässt man eher Unrat? Im keimfreien Operationssaal Neben einer überquellenden Mülltonne Reduziert die Einarbeitungszeit in Quelltext PHP_CodeSniffer ist hier der Defacto-Standard Berlin, 31. Mai. 10 Von Continuous Integration zu Continuous Deployment 26

Softwaremetriken Eine Softwaremetrik ist eine Maßzahl für Qualitätsmerkmale von Software Mathematische Funktion zur Ermittlung von Kennzahlen Softwaremetriken ermöglichen die Kontrolle der qualitativen Entwicklung von Software Berlin, 31. Mai. 10 Von Continuous Integration zu Continuous Deployment 27

Buildmanagement Datenbanken Anlegen/Löschen von Schemata und Testdaten Automatisierung von Schema-Migrationen Für jede Änderung existiert der passende Rollback Doctrine Migrate, DbDeploy Automatisierung aller Schritte zur Erzeugung einer frei wählbaren Softwarekonfiguration One Click Install Berlin, 31. Mai. 10 Von Continuous Integration zu Continuous Deployment 28

Zwischenfazit 75% - Frühzeitige Erkennung von Fehlern Automatisierte Tests, Testlauf nach jedem Commit 75% - Minimierung manueller Arbeitsschritte Buildautomatisierung, One Click Install 75% - Lauffähige Softwareversion zu jeder Zeit Versionsverwaltung, CI-Version, Tags 75% - Transparenz des Entwicklungsprozesses Commithistorie, CI-Feedback 75% - Zufriedenheit mit dem eigenen Produkt Berlin, 31. Mai. 10 Von Continuous Integration zu Continuous Deployment 29

Agenda Klassische Integration Grundlagen für kontinuierliche Integration Kontinuierliche Integration Prozesse und Techniken im Detail Continuous Deployment Berlin, 31. Mai. 10 Von Continuous Integration zu Continuous Deployment 30

Continuous Deployment Was ist zu beachten? CI-, Stage- und Live-System müssen identisch sein Klare Abgrenzung zwischen Tagesgeschäft und Neuentwicklungen Deployments erfolgen nur aus einem durch die QA abgenommenen Branch Deployt wird immer auf eine Stage-Umgebung, wo die letzte Abnahme erfolgt Berlin, 31. Mai. 10 Von Continuous Integration zu Continuous Deployment 31

Continuous Deployment ~ $ svn ci Entwickler SVN, Git Stage svn copy poll deploy XML-Logs Feedback: Mail, Twitter, RSS Berlin, 31. Mai. 10 Von Continuous Integration zu Continuous Deployment 32

Danke? Contact: Manuel Pichler http://manuel-pichler.de mapi@pdepend.org @manuelp Kommentare, Anregungen & Bewertung: http://joind.in/1719 Berlin, 31. Mai. 10 Von Continuous Integration zu Continuous Deployment 33