O slideshow foi denunciado.
Seu SlideShare está sendo baixado. ×

Continuous Delivery

Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Carregando em…3
×

Confira estes a seguir

1 de 73 Anúncio

Mais Conteúdo rRelacionado

Diapositivos para si (20)

Semelhante a Continuous Delivery (20)

Anúncio

Continuous Delivery

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

Notas do Editor

  • When business come to you and say you’re releasing too frequently – you’re on the right way.
  • Short Lead time  fasterFeedbackIncreases 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.

×