Agilität, Snapshots und Continuous Delivery

Post on 29-Nov-2014

1.172 views 0 download

description

Präsentation von der Continuous Lifecycle 2013 von Dr. Halil-Cem Gürsoy.

Transcript of Agilität, Snapshots und Continuous Delivery

12.11.13

Agilität, Snapshots und Continuous Delivery

Dr. Halil-Cem Gürsoy Tw @hgutwit G+ https://plus.google.com/+HalilCemGürsoy

Der Referent

Über 10 Jahre Software-Entwicklung

„Software Architect“ @ adesso AG

Verteilte, skalierbare Systeme

Continuous Delivery

Artikel und Konferenzen

12.11.13 Agilität, Snapshots und Continuous Delivery

12.11.13 Agilität, Snapshots und Continuous Delivery http://www.flickr.com/photos/enor/517787281/

12.11.13 Agilität, Snapshots und Continuous Delivery http://www.flickr.com/photos/lizandcormac/372399658/

Scrum

12.11.13 Agilität, Snapshots und Continuous Delivery

Quelle: scrumalliance.org

„Our highest priority is to satisfy the

customer through early and

continuous delivery of valuable

software.“ http://agilemanifesto.org/principles.html

12.11.13 Agilität, Snapshots und Continuous Delivery

„Our highest priority is to satisfy the

customer through early and

continuous delivery of valuable

software.“ http://agilemanifesto.org/principles.html

12.11.13 Agilität, Snapshots und Continuous Delivery

Warum SNAPSHOT‘s?

Entwickler-Version

Stabile Versionen erkennen

Releases sind aufwendig

Interaktion zwischen Teams

12.11.13 Agilität, Snapshots und Continuous Delivery

Auswirkungen

Release-Vorbereitungen

Merge Feature Branches („Done“)

Integration von Release-Modulen

Release-Management

Dokumentation

12.11.13 Agilität, Snapshots und Continuous Delivery

Das Maven-Modell „Super-Simplified“

12.11.13 Agilität, Snapshots und Continuous Delivery

Build SNAPSHOT Test

Build RELEASE Deliver / Go Live

SNAPSHOT != Releasable

12.11.13 Agilität, Snapshots und Continuous Delivery

Der Release „The Maven Release Plugin Way“ (tm)

Alles in SCM? SNAPSHOT-Abhängigkeiten? Compile & Test

Ändere POM auf neue Release-Version SCM-Info in POM anpassen

Compile & Test Commit in SCM

SCM Tag Ändere POM auf neue –SNAPSHOT Version

Commit in SCM Compile & Test

12.11.13 Agilität, Snapshots und Continuous Delivery

„The Maven Release Plugin Way“ (tm)

3 x Clean & Compile & Test

2 x POM Transformation

2 x SCM Commit

3 SCM Revisionen

12.11.13 Agilität, Snapshots und Continuous Delivery

„Mavenized“ Build-Pipeline

12.11.13 Agilität, Snapshots und Continuous Delivery

Continuous Build

Deploy artifacts

Inspect Build

Release Build

Prepare artifacts

Deploy artifacts

Production

12.11.13 Agilität, Snapshots und Continuous Delivery http://www.flickr.com/photos/myklroventine/3400039653/

12.11.13 Agilität, Snapshots und Continuous Delivery

Lösung?

CD Build-Pipeline

12.11.13 Agilität, Snapshots und Continuous Delivery

Developer Build

Developer Test

Candidate Build

Prepare artifacts

Deploy artifacts

Production Promote artifacts

Jason van Zyl

„Unfortunately, but naturally, users tend

to think that the release plugin

embodies all best practices for Maven

with respect to releases, but in practice

many people accept it's flaws.“ http://www.lucasward.net/2010/11/maven-and-continuous-delivery.html?showComment=1289373353091#c7316536994911982893

12.11.13 Agilität, Snapshots und Continuous Delivery

Lösungen

CD-Pipeline =

immer RELASE-Versionen!

1.1.0-2652-245

12.11.13 Agilität, Snapshots und Continuous Delivery

Lösungen

CD-Pipeline =

immer RELASE-Versionen!

1.1.0-2652-245

12.11.13 Agilität, Snapshots und Continuous Delivery

SCM Revision

Lösungen

CD-Pipeline =

immer RELASE-Versionen!

1.1.0-2652-245

12.11.13 Agilität, Snapshots und Continuous Delivery

Build Number

Lösung

Codehaus Versions Plugin

mvn versions:set –DnewVersion=$NEWVER

Codehaus Build Helper Plugin <goals> <goal>parse-version</goal> </goals>

12.11.13 Agilität, Snapshots und Continuous Delivery

Lösung

Codehaus Versions Plugin

12.11.13 Agilität, Snapshots und Continuous Delivery

<execution> <id>setnewversion</id> <phase>validate</phase> <goals> <goal>set</goal> </goals> <configuration> <generateBackupPoms>false</generateBackupPoms> <newVersion>${parsedVersion.majorVersion}.

${parsedVersion.minorVersion}.${parsedVersion. incrementalVersion}-${NEWVER} </newVersion>

</configuration> </execution>

Promote

„Promote“ Artefakte

Release vs Staging

Repository

12.11.13 Agilität, Snapshots und Continuous Delivery http://www.flickr.com/photos/mac_filko/5491781178/

Housekeeping

Staging-Repositories Artifactory Pro

Nexus Professional Apache Archiva (manuell)

Maven/Jenkins Plugin‘s REST-Schnittstellen

12.11.13 Agilität, Snapshots und Continuous Delivery

Nach-“Lese“ Maven Mailing List http://maven.40175.n5.nabble.com/Continuous-Delivery-and-Maven-td3245370.html

Lucas Ward - Maven and Continuous Delivery http://www.lucasward.net/2010/11/maven-and-continuous-delivery.html

Kief Morris - The Conflict Between Continuous Delivery and

Traditional Agile http://kief.com/the-conflict-between-continuous-delivery-and-traditional-agile.html

Axel Fontaine – The Final Nail in the Coffin http://axelfontaine.com/blog/final-nail.html

12.11.13 Agilität, Snapshots und Continuous Delivery

12.11.13 Agilität, Snapshots und Continuous Delivery http://www.flickr.com/photos/an_untrained_eye/6630719431/

Vielen Dank für Ihre Aufmerksamkeit.

www.adesso.de info@adesso.de