Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Enabling continuous delivery for your webapp

Enabling continuous delivery for your webapp

An experience report from various client gigs while enabling CD

Ranjib Dey

April 18, 2012
Tweet

More Decks by Ranjib Dey

Other Decks in Programming

Transcript

  1. Enabling Continuous
    Delivery for your WebApp
    Ranjib Dey, ThoughtWorks
    @RanjibDey
    http://ranjib.posterous.com

    View Slide

  2. Can you release your latest green
    build on demand at the push of a
    button while relaxing on the beach in
    Goa?

    View Slide

  3. Why?

    View Slide

  4. Time to market

    View Slide

  5. Affordable risks

    View Slide

  6. No more work of art

    View Slide

  7. Let business decide

    View Slide

  8. Myths

    View Slide

  9. Upfront design

    View Slide

  10. Legacy code running in production

    View Slide

  11. My stack does not support

    View Slide

  12. My Domain does not require

    View Slide

  13. Principles

    View Slide

  14. Component based architecture

    View Slide

  15. Deployment pipeline

    View Slide

  16. Infrastructure as code

    View Slide

  17. Automate as much as possible

    View Slide

  18. Bring the pain froward

    View Slide

  19. Extend CI

    View Slide

  20. Execution

    View Slide

  21. Automated testing

    View Slide

  22. Feature branching

    View Slide

  23. Branch by abstraction

    View Slide

  24. Team organization

    View Slide

  25. Have customized release strategies

    View Slide

  26. Blue – Green deployments

    View Slide

  27. Canary releases

    View Slide

  28. Dark launching

    View Slide

  29. Mitigating DB issues

    View Slide

  30. Data is persistent

    View Slide

  31. Not all changes can be rolled back

    View Slide

  32. Don’t integrate late

    View Slide

  33. Version control db migration scripts

    View Slide

  34. Embrace DevOps

    View Slide

  35. Adopt a configuration management tool

    View Slide

  36. Test infrastructures with monitoring
    tools

    View Slide

  37. Virtualization and Cloud helps

    View Slide

  38. Phoenix servers

    View Slide

  39. View Slide

  40. View Slide

  41. Maintaining CD projects

    View Slide

  42. Collaboration is key

    View Slide

  43. View Slide

  44. Enable faster smaller feed back loops

    View Slide

  45. Set up comprehensive dashboard

    View Slide

  46. View Slide

  47. View Slide

  48. View Slide

  49. Churn out cross cutting analytics

    View Slide

  50. Exercise MVP principle at component level

    View Slide

  51. Questions?
    Suggestion?
    Violent disagreements?

    View Slide

  52. Thank you

    View Slide