Deploying your application whenever you want is easy. Everyone does it nowadays. And that works great when you have a small group of people responsible for an application. But what if you have several teams working on the same application? What if you have almost 80 people committing more than 30 times a day? Can you face the challenge of deploying that application as often as you wish and succeed in keeping it stable? In this talk we will walk the journey from a conservative four week release cycle to full autonomy. What are the challenges you will face and how to tackled them.
17. AgendaAgenda
1. Perspective1. Perspective
2. define: beast2. define: beast
3. Why not3. Why not slayslay it?it?
4. Taming the beast4. Taming the beast
5. Lessons learnt5. Lessons learnt
18. AgendaAgenda
1. Perspective1. Perspective
2. define: beast2. define: beast
3. Why not3. Why not slayslay it?it?
4. Taming the beast4. Taming the beast
5. Lessons learnt5. Lessons learnt
19. How to tame a beast?How to tame a beast?
Through being able to change it at a fast andThrough being able to change it at a fast and
stable pacestable pace
21. Continuous Delivery (CD)Continuous Delivery (CD)
“Continuous Delivery is a software development“Continuous Delivery is a software development
discipline where you build software in such a waydiscipline where you build software in such a way
that the software can be released to production atthat the software can be released to production at
any time.”any time.”[1][1]
Martin Fowler
24. Problems with CDProblems with CD
"Problems, causes and solutions when adopting"Problems, causes and solutions when adopting
continuous delivery—A systematic literature review."continuous delivery—A systematic literature review."
Laukkanen, Eero, Juha Itkonen, and Casper Lassenius.Laukkanen, Eero, Juha Itkonen, and Casper Lassenius.
Information and Software Technology 82 (2017): 55-79.Information and Software Technology 82 (2017): 55-79. [2][2]
25.
26. Problems with CDProblems with CD
Build design Complex build, inflexible build
System design System modularization, unsuitable architecture, internal
dependencies, database schema changes
Integration Large commits, merge conflicts, broken build, work blockage,
long-running branches, broken development flow, slow integration
approval
Testing Ambiguous test result, flaky tests, time-consuming testing,
hardware testing, multi-platform testing, UI testing, untestable code,
problematic deployment, complex testing
Release customer data preservation, documentation, feature discovery,
marketing, more deployed bugs, third party integration, users do not
like updates, deployment downtime
Human and
organizational
Lack of discipline, lack of motivation, lack of experience, more
pressure, changing roles, team coordination, organizational
structure
Resource Effort, insufficient hardware resources, network latencies
27. Problems with CDProblems with CD (for our application) (for our application)
Build design -
System design -
Integration Merge conflicts, work blockage, long-running branches
Testing Flaky tests, time-consuming testing, problematic deployment
Release Feature discovery
Human and
organizational
Lack of discipline, lack of motivation, lack of experience
Resource -
31. Lack of discipline, lack of motivation, lack of experienceLack of discipline, lack of motivation, lack of experience
ProblemProblem
32. Lack of discipline, lack of motivation, lack of experienceLack of discipline, lack of motivation, lack of experience
SolutionSolution
33. Lack of discipline, lack of motivation, lack of experienceLack of discipline, lack of motivation, lack of experience
ResultResult
34. Long running branches, merge conflicts, work blockageLong running branches, merge conflicts, work blockage
ProblemProblem
35. Long running branches, merge conflicts, work blockageLong running branches, merge conflicts, work blockage
SolutionSolution
36. Long running branches, merge conflicts, work blockageLong running branches, merge conflicts, work blockage
ResultResult
37. Feature discovery, team coordination, problematic deploymentsFeature discovery, team coordination, problematic deployments
ProblemProblem
38. Feature discovery, team coordination, problematic deploymentsFeature discovery, team coordination, problematic deployments
SolutionSolution
39. Feature discovery, team coordination, problematic deploymentsFeature discovery, team coordination, problematic deployments
ResultResult
40.
41. Lack of discipline, lack of motivation, lack of experienceLack of discipline, lack of motivation, lack of experience
ProblemProblem
42. ResultsResults
30 releases instead of 430 releases instead of 4
446 features released446 features released
TTL 4 days vs 1.5 weeksTTL 4 days vs 1.5 weeks
43. AgendaAgenda
1. Perspective1. Perspective
2. define: beast2. define: beast
3. Why not3. Why not slayslay it?it?
4. Taming the beast4. Taming the beast
4a. A look into the future4a. A look into the future
5. Lessons learnt5. Lessons learnt
44. What's next?What's next?
“The past is always tense,“The past is always tense,
the future perfect.”the future perfect.”
Zadie Smith Zadie Smith
47. AgendaAgenda
1. Perspective1. Perspective
2. define: beast2. define: beast
3. Why not3. Why not slayslay it?it?
4. Taming the beast4. Taming the beast
5. Lessons learnt5. Lessons learnt
48. Lessons learntLessons learnt
Stable and reliable tests suiteStable and reliable tests suite
Stable and reliable tests suiteStable and reliable tests suite
Proper branching strategyProper branching strategy
Visibility on your pipelineVisibility on your pipeline
Effective way of communicatingEffective way of communicating