How do you implement Continuous Delivery? Part 2: Code Management

6,138 views

Published on

'How do I manage my codebase? How do I release incomplete work?' Explore ways in Part 2 in our series of putting CD into practice - Code Management

Published in: Technology, Education

How do you implement Continuous Delivery? Part 2: Code Management

  1. 1. HOW DO YOU IMPLEMENT CONTINUOUS DELIVERY? Part 2: Code Management Share this ebook. PERSPECTIVES
  2. 2. HOW DO I MANAGE MY CODEBASE? 2
  3. 3. Reliable delivery of software Faster time to market How do different development streams… Trunk Team Pink Team Green How do I manage my codebase?
  4. 4. Reliable delivery of software Faster time to market How do different development streams…integrate… Trunk Merging Team Pink’s Repository Branch Merging Team Green’s Repository Branch 1 1 1 111 2 2 2 2 2 3 3 3 4 4 5 1 2 3 4 1 2 3 1 2 1 How do I manage my codebase?
  5. 5. Reliable delivery of software Faster time to market Without the merge conflicts of feature- branching? Trunk 1 1 1 111 2 2 2 2 2 3 3 3 4 4 5 1 2 3 4 1 2 3 1 2 1 2 3 4 1 1 23 4 5 How do I manage my codebase?
  6. 6. Reliable delivery of software By Continuously Integrating Trunk Faster time to market 3 4 5 2 1 1 2 3 4 2 3 41 1 2 3 4 5 How do I manage my codebase?
  7. 7. Some key CI practicesHow do I manage my codebase? Everyone commits to trunk at least daily Automated tests are run for every commit Avoid branches http://martinfowler.com/articles/continuousIntegration.html
  8. 8. What about large codebases?How do I manage my codebase?
  9. 9. What about large codebases?How do I manage my codebase? Modularization Micro-services
  10. 10. HOW DO I RELEASE INCOMPLETE WORK? 10
  11. 11. Using Feature TogglesHow do I release incomplete work? [featureToggles] wobblyFoobars: true flightyForkHandles: false <toggle name=wobblyFoobars> ... various UI elements </toggle> forkHandle = (featureConfig.isOn(‘flightlyForkHandles)) ? new FlightyForkHander(aCandle) : new ForkHandler(aCandle) Config File some.jsp other.java
  12. 12. Using Branch by AbstractionHow do I release incomplete work? Application Library New Library http://paulhammant.com/blog/branch_by_abstraction.html/
  13. 13. Using Branch by AbstractionHow do I release incomplete work? Application Library New Library Interface
  14. 14. Using Branch by AbstractionHow do I release incomplete work? Application Library New Library Interface Implements
  15. 15. Using Branch by AbstractionHow do I release incomplete work? Application New Library Interface Implements
  16. 16. Using Branch by AbstractionHow do I release incomplete work? Application New Library
  17. 17. ALL ABOUT PIPELINES 17 Stay tuned for Part 3…
  18. 18. LEARN MORE Deploy a great product faster. Agile teams deliver working software early and often. Go automates and streamlines the build-test- release cycle for worry-free, continuous delivery of your product. Share this ebook. Visit our Continuous Delivery Channel for more posts like this.

×