Continuous Delivery

  • 2,204 views
Uploaded on

 

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
2,204
On Slideshare
0
From Embeds
0
Number of Embeds
6

Actions

Shares
Downloads
0
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide
  • When business come to you and say you’re releasing too frequently – you’re on the right way.
  • Short Lead time  fasterFeedbackCD is expensive. Leanisabout WASTE not COST. High long-term ROI.Increases motivation, as you get things done faster, less stress
  • Большинство– тормозы. Неэффективность процесса и ОПАСНОСТЬ.
  • The most complex task is push button.
  • Create environment where people get responsible for consequence of their action and they will care (DevOpsphylosophy)
  • - Modules / services / entities / staticcontent
  • Whybranches? Parallelization. Multipleversionsoftheapp.Unability to keepapplicationstableduringdevelopment.Onegoal, extracare. No merges. Oneversion, pushupteamsforsynchronizationBringspainforward, raisesprofessionalismIsolationillusion
  • If people have to use feature branch, something is wrong with your architecture.
  • 3WReduce TTD (Time to detect), TTR (Time to recover)
  • Practice makes perfect. Toyota way.
  • CD is hard. Process flaws become visible.

Transcript

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