från långsamhet och frustration till snabbhet och arbetsglädje | martin rosén-lindholm &...
DESCRIPTION
Presentation hållen vid Lean Tribe Gathering 24 i Växjö 20 november 2014.TRANSCRIPT
CD @ MVNO @ Telenor DKfrån långsamhet och frustration till snabbhet och arbetsglädje
Martin Rosén-Lidholmutvecklingschef
Christian Hollerup Mikkelsenseniorutvecklare
Problem• Komplex semimanuell utgivningsprocess med t.ex. manuella merges
• Lång utgivningsprocess (ca. 1,5 t)
• Hela systemet byggt och utgivet som en monolit
• Två stora tungjobbade Visual Studio-lösningar (upp till 80 projektfiler)
• Försök att automatisera acceptanstester har misslyckats (SBE, SpecFlow, Selenium, ...)
Working Review Test Production
Uppgift
Working
Uppgift
checkout -b uppgift
commit + push
Triggar följande automatiska process:
• Bygger och kör regressionstester
på byggservern
• Skapar NuGet-pkg
• NuGet-pkg i AppVeyor-feed
• NuGet-feed betraktas som test-feed
deploy till utv.server
färdig
ej färdig
pull request
Detta steg utförs ibland då bygg och deploy är en del av lösningen och källkoden för en mikroservice.
Working Review Test Production
Uppgift
Review
Uppgift
granska commit
beskriv önskadändring
«automatiskt»
upprätta ’task’ i’Uppgift’
anmärkning/-ar
återståendecommits
markera ’Uppgift’ som’ready to pull’
flytta ’Uppgift’ till’working’
ej anmärkning/-ar
anmärkning/-ar
«automatiskt»uppdatera ’Uppgift’ vid byggfel
Working Review Test Production
«ready»
Uppgift
Working Review Test Production
Uppgift
Test
Uppgift
genomgå ’Uppgift’
ej anmärkning/-ar
flytta ’Uppgift’ till’Production’
flytta ’Uppgift’ till’working’ medkommentarer
anmärkning/-ar
«automatiskt» deploy:a förra versionen
Working Review Test Production
Uppgift
Production
Uppgift
flytta ’Uppgift’ till’working’ medkommentarer
«automatiskt»
deploy:a till prod.server
«automatiskt»merge
gick bra
«automatiskt» deploy:a förra versionen
gick inte bra
«automatiskt» stäng pull request
Production
UppgiftMätningar
Sentry
Egen prestandalogg okej
ej okej
ny uppgift i backloggenpå tavlan
Batch-jobbloggar
Olika driftsloggar
Problem nu och då• Komplex semimanuell utgivningsprocess med t.ex. manuella merges
Enkel automatiserad utgivningsprocess. Auto-merge (eller varning).• Lång utgivningsprocess (ca. 1,5 t)
Snabb utgivningsprocess (minuter)• Hela systemet är byggt och utges som en monolit
Många självständiga mikroservisar/bounded contexts• Två stora tungjobbade Visual Studio-lösningar (upp till 80 projektfiler)
Många lösningar, inte nödvändigvis Visual Studio• Försök att automatisera accepttester har misslyckats (SBE, SpecFlow,
Selenium, ...)Lätt att implementera accepttester utan ballasten från det förgångna
• Nytt problem! Hur kommunicera optimalt?(Nu: NServiceBus. Imorgon: Kafka?)
VerktygslådaGit
GitHub
AppVeyor
Octopus Deploy
Slack + Hubot
AgileZen
Chrome Extensions
NuGet
Eget klister
Referenser
BoundedContext
#continuousdelivery @/#leanstartup #lean #kanban #microservices
#ddd #git @/#github @/#appveyor @/#octopusdeploy