$30 off During Our Annual Pro Sale. View Details »

Stress-free software releases

Stress-free software releases

Tosho Trajanov

November 10, 2019
Tweet

More Decks by Tosho Trajanov

Other Decks in Technology

Transcript

  1. Stress-free software
    releases
    BGPHP 2019, Sofia

    View Slide

  2. @TsTrv
    CTO Adeva - An Exclusive
    Developers Network
    Fully-distributed network
    Worked with startups and Fortune
    500 companies

    View Slide

  3. @TsTrv
    Building strong
    engineering
    processes

    View Slide

  4. @TsTrv
    Nirvana in software
    engineering

    View Slide

  5. @TsTrv
    State of the application
    ー Legacy, enterprise application built in PHP
    ー Being developed for over 10 years
    ー 0% test coverage
    ー 10 engineers - to keep it alive

    View Slide

  6. @TsTrv
    The problems
    ー Unable to ship as fast as we needed
    ー Never ending bug fixing cycles
    ー Full-regression testing took 3-4 weeks
    ー Releases once monthly
    ー Scheduled on weekends

    View Slide

  7. @TsTrv
    Formula for stress and
    burnout

    View Slide

  8. @TsTrv
    Continuous
    Everything

    View Slide

  9. @TsTrv

    View Slide

  10. @TsTrv
    Objections
    ー Complexity
    ー Risk
    ー Control
    ー Habit

    View Slide

  11. @TsTrv
    Continuous Everything

    View Slide

  12. @TsTrv
    Continuous Everything… Nirvana

    View Slide

  13. @TsTrv
    Continuous Everything… Nirvana

    View Slide

  14. @TsTrv
    Continuous Everything… Nirvana

    View Slide

  15. @TsTrv
    Continuous Everything
    ー If you fail, you fail small
    ー If something breaks, you know to fix immediately
    ー Fewer bugs
    ー Release new features faster
    ー Reduce Costs

    View Slide

  16. @TsTrv
    What could
    potentially go
    wrong?

    View Slide

  17. @TsTrv
    What could
    potentially go
    wrong right?

    View Slide

  18. @TsTrv
    Legacy code
    ー Strangler Pattern
    ー Branch By Abstraction Technique

    View Slide

  19. @TsTrv
    Strangler Pattern

    View Slide

  20. @TsTrv
    Branch By Abstraction

    View Slide

  21. @TsTrv
    Automated Tests

    View Slide

  22. @TsTrv
    Automated tests
    ー Assume legacy works flawlessly ?!
    ー Utilize new modules to Increase the code
    coverage

    View Slide

  23. @TsTrv
    Pipeline

    View Slide

  24. @TsTrv
    Deployment vs Release
    ー Decoupling
    ー Feature Toggles
    – Dark Launching
    – Phased rollout

    View Slide

  25. @TsTrv

    View Slide

  26. @TsTrv
    Deployment Strategy
    ー Blue Green
    ー Canary deployment

    View Slide

  27. @TsTrv
    Blue Green Deployment

    View Slide

  28. @TsTrv
    Blue Green Deployment

    View Slide

  29. @TsTrv
    Canary Deployment

    View Slide

  30. @TsTrv
    Mindset
    ー Everyone should participate
    ー Not a DevOps work only
    ー Continuous improvement, day by day

    View Slide

  31. @TsTrv
    Actions
    ー Wrapped up the legacy code
    ー Faked automated tests for the legacy
    ー Identified pipeline
    ー Decoupled releases from deployment
    ー Created a culture of continuous improvement

    View Slide

  32. @TsTrv
    Wins
    ー Release code to production multiple times daily.
    ー Production bugs lowered by 80%
    ー From bug report to deploy < 30 mins
    ー No more weekends work

    View Slide

  33. @TsTrv
    Always strive for continuous
    improvement, instead of
    perfection.

    View Slide

  34. @TsTrv
    Thank you

    View Slide