13
Smidig Utrulling Anders Sveen

Smidig Utrulling

Embed Size (px)

DESCRIPTION

Presentation held for Norwegian Java User Group. An expanded version of a lightning talk with limited time, so a bit high level. Hoping for a longer version with details for JavaZone.

Citation preview

Page 1: Smidig Utrulling

Smidig Utrulling

Anders Sveen

Page 2: Smidig Utrulling

© 2008 Capgemini - All rights reserved

Anders Sveen

2

Hva er smidig utrulling?

Raskt Sikkert Miljøuavhengig Automatisert

Mange disipliner møtes• Konfigurasjonsstyring• Integrasjonsstrategi• Drift• Testing• Databaser

Du kommer ikke dit i morgen

Page 3: Smidig Utrulling

© 2008 Capgemini - All rights reserved

Anders Sveen

3

Hvorfor?

Definition of done Spare tid Prioritere å lage ny funksjonalitet Raskere features i test og produksjon Mindre endringer og kortere tid til man oppdager feil Raskere feilrettinger i test og produksjon Test av produksjonssetting Flere miljøer

Page 4: Smidig Utrulling

© 2008 Capgemini - All rights reserved

Anders Sveen

4

Motivasjon

Kultur Manuelle rutiner er waste Lette oppgaver blir gjort ofte Kan det fikses? Klart det kan!

Page 5: Smidig Utrulling

© 2008 Capgemini - All rights reserved

Anders Sveen

5

Hvordan

Releasehåndtering Pakking Deploy Databasehåndtering Integrasjon Applikasjonsdesign Verktøy

Page 6: Smidig Utrulling

© 2008 Capgemini - All rights reserved

Anders Sveen

6

Hvordan: Java

Maven med AppAssembler og Assembly plugin• Pakking• Release• Repository

Spring• Konfigurasjon og properties for miljø

Jetty• Webcontainer som pakkes med

DBDeploy• Oppgradering (migrations) av databasen

Egne script for utrulling (bash)• Hente nyeste versjon• Pakke ut• Stoppe server• Fikse spesielle settings• Oppgradere databasen• Start server

Page 7: Smidig Utrulling

© 2008 Capgemini - All rights reserved

Anders Sveen

7

Utviklingsløpet

Utvikler DBsandkasse

Hent release

t versj

on

Hent releaset versjon

Hent releaset versjon

Commit

Tes

ter

Utvikler Subversion Mavenrepository

Deploy

Hen

t nye

ste

Hudson Test

Beta

ProdDB

DB

DB

Oppgrader

Oppgrader

Oppgrader

Page 8: Smidig Utrulling

© 2008 Capgemini - All rights reserved

Anders Sveen

8

asv@beast:~$ ./deploy.sh test org.myorg myapp 2.13.1

Downloading org.myorg:myapp:2.13.1 ... OKDownloading org.myorg:myapp-database:2.13.1 ... OKUnpacking... OKStopping server... OKUpgrading database... OKDeploying new version... OKStarting server... OK

Done deploying org.myorg:myapp:2.13.1 in 2:21

asv@beast:~$

Page 9: Smidig Utrulling

© 2008 Capgemini - All rights reserved

Anders Sveen

9

Feil?

Automatiske tester Kopiproduksjon Vær forberedt på feil Tilbakerulling Automatisk feildeteksjon

Page 10: Smidig Utrulling

© 2008 Capgemini - All rights reserved

Anders Sveen

10

Utfordringer

Politikk Feilhåndtering Håndtering av testdata Tilbakerulling av databasen Kunnskap om database refactoring Grensesnitt mot andre Bygg kultur!

Page 11: Smidig Utrulling

© 2008 Capgemini - All rights reserved

Anders Sveen

11

Finnes det der ute?

IMVU går i produksjon flere ganger om dagen

Patientkeeper ruller ut ved hver iterasjonsavslutning

Hvorfor ikke?

Page 12: Smidig Utrulling

© 2008 Capgemini - All rights reserved

Anders Sveen

12

Spørsmål?

Page 13: Smidig Utrulling

© 2008 Capgemini - All rights reserved

Anders Sveen

13

Smidig 2009

[email protected] / http://blog.f12.no / http://twitter.com/anderssv