Download - Continuous Delivery
![Page 1: Continuous Delivery](https://reader037.vdocuments.site/reader037/viewer/2022102721/54b715034a7959af718b459f/html5/thumbnails/1.jpg)
Continuous Delivery
Helping your business win by bringing the pain forward
![Page 2: Continuous Delivery](https://reader037.vdocuments.site/reader037/viewer/2022102721/54b715034a7959af718b459f/html5/thumbnails/2.jpg)
Agenda
• Introduction• Deployment pipeline• User disruption• Anti-patterns• Adoption• Tools• Conclusion• Q&A
![Page 3: Continuous Delivery](https://reader037.vdocuments.site/reader037/viewer/2022102721/54b715034a7959af718b459f/html5/thumbnails/3.jpg)
Introduction
![Page 4: Continuous Delivery](https://reader037.vdocuments.site/reader037/viewer/2022102721/54b715034a7959af718b459f/html5/thumbnails/4.jpg)
Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
Agile Manifesto
![Page 5: Continuous Delivery](https://reader037.vdocuments.site/reader037/viewer/2022102721/54b715034a7959af718b459f/html5/thumbnails/5.jpg)
What is continuous delivery?
Agile methodology for reducing the cost, time and risk of delivering incremental changes to users.
![Page 6: Continuous Delivery](https://reader037.vdocuments.site/reader037/viewer/2022102721/54b715034a7959af718b459f/html5/thumbnails/6.jpg)
Inspired by Lean Startup
![Page 7: Continuous Delivery](https://reader037.vdocuments.site/reader037/viewer/2022102721/54b715034a7959af718b459f/html5/thumbnails/7.jpg)
Deliver the right thing. Frequently.
![Page 8: Continuous Delivery](https://reader037.vdocuments.site/reader037/viewer/2022102721/54b715034a7959af718b459f/html5/thumbnails/8.jpg)
«You can’t just ask customers what they want and then try to give that to them.
By the time you get it built, they’ll want something new.»
![Page 9: Continuous Delivery](https://reader037.vdocuments.site/reader037/viewer/2022102721/54b715034a7959af718b459f/html5/thumbnails/9.jpg)
So how frequently?
Deliver fast-enough so that a customer didn’t have time to change their mind.
![Page 10: Continuous Delivery](https://reader037.vdocuments.site/reader037/viewer/2022102721/54b715034a7959af718b459f/html5/thumbnails/10.jpg)
Goals
- Build the right thing (MVP, eliminate waste)- Reduce lead time (reduce WiP, eliminate bottlenecks)- Reduce cost (optimize, automate)- Reduce risk (resilience built-in, small increments)
Continuously:
![Page 11: Continuous Delivery](https://reader037.vdocuments.site/reader037/viewer/2022102721/54b715034a7959af718b459f/html5/thumbnails/11.jpg)
Who does continuous delivery?
![Page 12: Continuous Delivery](https://reader037.vdocuments.site/reader037/viewer/2022102721/54b715034a7959af718b459f/html5/thumbnails/12.jpg)
Let’s rock.
![Page 13: Continuous Delivery](https://reader037.vdocuments.site/reader037/viewer/2022102721/54b715034a7959af718b459f/html5/thumbnails/13.jpg)
Redefine «Done»
Coded Reviewed Checked-in Built Tested Demoed
Released to end-user.
![Page 14: Continuous Delivery](https://reader037.vdocuments.site/reader037/viewer/2022102721/54b715034a7959af718b459f/html5/thumbnails/14.jpg)
How long would it take your organization to deploy a change that involved just one single line of code?
Do you do this on a repeatable, reliable basis?
Mary & Tom PoppendieckImplementing Lean Software Development
Determine cycle time
![Page 15: Continuous Delivery](https://reader037.vdocuments.site/reader037/viewer/2022102721/54b715034a7959af718b459f/html5/thumbnails/15.jpg)
Reduce risk of release
« If it hurts, do it more frequently »
![Page 16: Continuous Delivery](https://reader037.vdocuments.site/reader037/viewer/2022102721/54b715034a7959af718b459f/html5/thumbnails/16.jpg)
How?
![Page 17: Continuous Delivery](https://reader037.vdocuments.site/reader037/viewer/2022102721/54b715034a7959af718b459f/html5/thumbnails/17.jpg)
By implementing end-to-end automation of build, deploy, test and release processes.
![Page 18: Continuous Delivery](https://reader037.vdocuments.site/reader037/viewer/2022102721/54b715034a7959af718b459f/html5/thumbnails/18.jpg)
The Deployment Pipeline
![Page 19: Continuous Delivery](https://reader037.vdocuments.site/reader037/viewer/2022102721/54b715034a7959af718b459f/html5/thumbnails/19.jpg)
A pull system spanning full product cycle.- Fully automated (with push button approvals)- Visible - Measurable- Parallelizable
![Page 20: Continuous Delivery](https://reader037.vdocuments.site/reader037/viewer/2022102721/54b715034a7959af718b459f/html5/thumbnails/20.jpg)
![Page 21: Continuous Delivery](https://reader037.vdocuments.site/reader037/viewer/2022102721/54b715034a7959af718b459f/html5/thumbnails/21.jpg)
Build only once.
![Page 22: Continuous Delivery](https://reader037.vdocuments.site/reader037/viewer/2022102721/54b715034a7959af718b459f/html5/thumbnails/22.jpg)
Deploy the same way to every environment.
![Page 23: Continuous Delivery](https://reader037.vdocuments.site/reader037/viewer/2022102721/54b715034a7959af718b459f/html5/thumbnails/23.jpg)
Fail fast.
![Page 24: Continuous Delivery](https://reader037.vdocuments.site/reader037/viewer/2022102721/54b715034a7959af718b459f/html5/thumbnails/24.jpg)
Automate everything (almost).
![Page 25: Continuous Delivery](https://reader037.vdocuments.site/reader037/viewer/2022102721/54b715034a7959af718b459f/html5/thumbnails/25.jpg)
Build quality in.
![Page 26: Continuous Delivery](https://reader037.vdocuments.site/reader037/viewer/2022102721/54b715034a7959af718b459f/html5/thumbnails/26.jpg)
Keep code always releasable.
![Page 27: Continuous Delivery](https://reader037.vdocuments.site/reader037/viewer/2022102721/54b715034a7959af718b459f/html5/thumbnails/27.jpg)
Treat every version is a release candidate.
Contradicts with traditional approaches.
![Page 28: Continuous Delivery](https://reader037.vdocuments.site/reader037/viewer/2022102721/54b715034a7959af718b459f/html5/thumbnails/28.jpg)
Quality goes up.
People care.
![Page 29: Continuous Delivery](https://reader037.vdocuments.site/reader037/viewer/2022102721/54b715034a7959af718b459f/html5/thumbnails/29.jpg)
Version everything.
Single version. No major/minor/patch increments.
![Page 30: Continuous Delivery](https://reader037.vdocuments.site/reader037/viewer/2022102721/54b715034a7959af718b459f/html5/thumbnails/30.jpg)
Version control everything.
Code, Configuration, Infrastructure…
![Page 31: Continuous Delivery](https://reader037.vdocuments.site/reader037/viewer/2022102721/54b715034a7959af718b459f/html5/thumbnails/31.jpg)
Test excessively.
![Page 32: Continuous Delivery](https://reader037.vdocuments.site/reader037/viewer/2022102721/54b715034a7959af718b459f/html5/thumbnails/32.jpg)
Provide recovery plan.
![Page 33: Continuous Delivery](https://reader037.vdocuments.site/reader037/viewer/2022102721/54b715034a7959af718b459f/html5/thumbnails/33.jpg)
Measure.
![Page 34: Continuous Delivery](https://reader037.vdocuments.site/reader037/viewer/2022102721/54b715034a7959af718b459f/html5/thumbnails/34.jpg)
- Small increments- Deploy components independently- Leave backward compatibility
Avoid «Big Bang» releases
![Page 35: Continuous Delivery](https://reader037.vdocuments.site/reader037/viewer/2022102721/54b715034a7959af718b459f/html5/thumbnails/35.jpg)
Avoid branches
- True Continuous Integration - work only in mainline- No feature branches- No release branches
![Page 36: Continuous Delivery](https://reader037.vdocuments.site/reader037/viewer/2022102721/54b715034a7959af718b459f/html5/thumbnails/36.jpg)
«Feature branching is a poor man’s modular architecture»
Dan Bodart
Build a modular platform of micro-services.
![Page 37: Continuous Delivery](https://reader037.vdocuments.site/reader037/viewer/2022102721/54b715034a7959af718b459f/html5/thumbnails/37.jpg)
Make no exceptions
Even urgent production fix should pass the same deployment pipeline.
![Page 38: Continuous Delivery](https://reader037.vdocuments.site/reader037/viewer/2022102721/54b715034a7959af718b459f/html5/thumbnails/38.jpg)
User disruption
![Page 39: Continuous Delivery](https://reader037.vdocuments.site/reader037/viewer/2022102721/54b715034a7959af718b459f/html5/thumbnails/39.jpg)
downtime deployments0
![Page 40: Continuous Delivery](https://reader037.vdocuments.site/reader037/viewer/2022102721/54b715034a7959af718b459f/html5/thumbnails/40.jpg)
Blue - Green deployment
![Page 41: Continuous Delivery](https://reader037.vdocuments.site/reader037/viewer/2022102721/54b715034a7959af718b459f/html5/thumbnails/41.jpg)
Deployment is not a Release.
Release is a marketing decision.
![Page 42: Continuous Delivery](https://reader037.vdocuments.site/reader037/viewer/2022102721/54b715034a7959af718b459f/html5/thumbnails/42.jpg)
Smoke test deployment.
Release only after that.
![Page 43: Continuous Delivery](https://reader037.vdocuments.site/reader037/viewer/2022102721/54b715034a7959af718b459f/html5/thumbnails/43.jpg)
Feature Toggles
![Page 44: Continuous Delivery](https://reader037.vdocuments.site/reader037/viewer/2022102721/54b715034a7959af718b459f/html5/thumbnails/44.jpg)
Branch by AbstractionMultiple versions in a single code base.
![Page 45: Continuous Delivery](https://reader037.vdocuments.site/reader037/viewer/2022102721/54b715034a7959af718b459f/html5/thumbnails/45.jpg)
Backward compatibility is a key.
State is pain in the ass, but remediable with redundancy
![Page 46: Continuous Delivery](https://reader037.vdocuments.site/reader037/viewer/2022102721/54b715034a7959af718b459f/html5/thumbnails/46.jpg)
Canary releasingRelease to a subset of users.
![Page 47: Continuous Delivery](https://reader037.vdocuments.site/reader037/viewer/2022102721/54b715034a7959af718b459f/html5/thumbnails/47.jpg)
Anti-Patterns
![Page 48: Continuous Delivery](https://reader037.vdocuments.site/reader037/viewer/2022102721/54b715034a7959af718b459f/html5/thumbnails/48.jpg)
Code Freeze ceremony
![Page 49: Continuous Delivery](https://reader037.vdocuments.site/reader037/viewer/2022102721/54b715034a7959af718b459f/html5/thumbnails/49.jpg)
Deployment rarely / late
Avoid late contact with reality.
![Page 50: Continuous Delivery](https://reader037.vdocuments.site/reader037/viewer/2022102721/54b715034a7959af718b459f/html5/thumbnails/50.jpg)
Manual environment configuration
![Page 51: Continuous Delivery](https://reader037.vdocuments.site/reader037/viewer/2022102721/54b715034a7959af718b459f/html5/thumbnails/51.jpg)
Privileged deploy team
![Page 52: Continuous Delivery](https://reader037.vdocuments.site/reader037/viewer/2022102721/54b715034a7959af718b459f/html5/thumbnails/52.jpg)
Not repeatable process
![Page 53: Continuous Delivery](https://reader037.vdocuments.site/reader037/viewer/2022102721/54b715034a7959af718b459f/html5/thumbnails/53.jpg)
Slight differences
![Page 54: Continuous Delivery](https://reader037.vdocuments.site/reader037/viewer/2022102721/54b715034a7959af718b459f/html5/thumbnails/54.jpg)
Manual deployments
Sleep well. Forget 2.00 AM deployments.
![Page 55: Continuous Delivery](https://reader037.vdocuments.site/reader037/viewer/2022102721/54b715034a7959af718b459f/html5/thumbnails/55.jpg)
Hard to track
![Page 56: Continuous Delivery](https://reader037.vdocuments.site/reader037/viewer/2022102721/54b715034a7959af718b459f/html5/thumbnails/56.jpg)
Adoption
![Page 57: Continuous Delivery](https://reader037.vdocuments.site/reader037/viewer/2022102721/54b715034a7959af718b459f/html5/thumbnails/57.jpg)
Forget special «Continuous Delivery» projects
![Page 58: Continuous Delivery](https://reader037.vdocuments.site/reader037/viewer/2022102721/54b715034a7959af718b459f/html5/thumbnails/58.jpg)
noun
1 a feeling of fear or agitation about something that may happen: the men set off in fear and trepidation.
2 trembling motion.
Embrace change
trepidation | trep·i·da·tion
![Page 59: Continuous Delivery](https://reader037.vdocuments.site/reader037/viewer/2022102721/54b715034a7959af718b459f/html5/thumbnails/59.jpg)
Raise confidence that
Change can be safe enough.
![Page 60: Continuous Delivery](https://reader037.vdocuments.site/reader037/viewer/2022102721/54b715034a7959af718b459f/html5/thumbnails/60.jpg)
Do not be afraid to fail.
Learn what doesn’t work first, then see how to make it better.
![Page 61: Continuous Delivery](https://reader037.vdocuments.site/reader037/viewer/2022102721/54b715034a7959af718b459f/html5/thumbnails/61.jpg)
Continuously improve
Japanese for "improvement", or "change for the better"
Refers to philosophy or practices that focus upon continuous improvement of processes in manufacturing, engineering, and business management.
Kaizen | 改善
![Page 62: Continuous Delivery](https://reader037.vdocuments.site/reader037/viewer/2022102721/54b715034a7959af718b459f/html5/thumbnails/62.jpg)
Find the right team and start kicking ass.
![Page 63: Continuous Delivery](https://reader037.vdocuments.site/reader037/viewer/2022102721/54b715034a7959af718b459f/html5/thumbnails/63.jpg)
Tools
![Page 64: Continuous Delivery](https://reader037.vdocuments.site/reader037/viewer/2022102721/54b715034a7959af718b459f/html5/thumbnails/64.jpg)
Versioning
![Page 65: Continuous Delivery](https://reader037.vdocuments.site/reader037/viewer/2022102721/54b715034a7959af718b459f/html5/thumbnails/65.jpg)
Build & dependency management
![Page 66: Continuous Delivery](https://reader037.vdocuments.site/reader037/viewer/2022102721/54b715034a7959af718b459f/html5/thumbnails/66.jpg)
CI + Pipelining
![Page 67: Continuous Delivery](https://reader037.vdocuments.site/reader037/viewer/2022102721/54b715034a7959af718b459f/html5/thumbnails/67.jpg)
Automation
Infrastructure Script streamlining
Glu Capistrano
DB migrations
![Page 68: Continuous Delivery](https://reader037.vdocuments.site/reader037/viewer/2022102721/54b715034a7959af718b459f/html5/thumbnails/68.jpg)
ATDD + Living documentation
![Page 69: Continuous Delivery](https://reader037.vdocuments.site/reader037/viewer/2022102721/54b715034a7959af718b459f/html5/thumbnails/69.jpg)
Monitoring
![Page 70: Continuous Delivery](https://reader037.vdocuments.site/reader037/viewer/2022102721/54b715034a7959af718b459f/html5/thumbnails/70.jpg)
Micro-services?
![Page 71: Continuous Delivery](https://reader037.vdocuments.site/reader037/viewer/2022102721/54b715034a7959af718b459f/html5/thumbnails/71.jpg)
Conclusion
![Page 72: Continuous Delivery](https://reader037.vdocuments.site/reader037/viewer/2022102721/54b715034a7959af718b459f/html5/thumbnails/72.jpg)
Continuous Delivery challenges your engineering skills.
Are you ready to accept the challenge?
![Page 73: Continuous Delivery](https://reader037.vdocuments.site/reader037/viewer/2022102721/54b715034a7959af718b459f/html5/thumbnails/73.jpg)
Thank you!