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

Stop Releasing, Start Delivering

Stop Releasing, Start Delivering

Avatar for Christian Mäder

Christian Mäder

March 14, 2019
Tweet

More Decks by Christian Mäder

Other Decks in Technology

Transcript

  1. nxt Engineering GmbH [email protected] https://nxt.engineering +41 44 508 52 45

    Alte Gfennstrasse 72 CH-8600 Dübendorf Stop Releasing, Start Delivering Version 1.0, 14.03.2019
  2. nxt Engineering GmbH [email protected] https://nxt.engineering +41 44 508 52 45

    Alte Gfennstrasse 72 CH-8600 Dübendorf Deploy to Prod on Day 2
  3. nxt Engineering GmbH [email protected] https://nxt.engineering +41 44 508 52 45

    Alte Gfennstrasse 72 CH-8600 Dübendorf Small changes, often
  4. nxt Engineering GmbH [email protected] https://nxt.engineering +41 44 508 52 45

    Alte Gfennstrasse 72 CH-8600 Dübendorf Sarah Wells, Technical Director FT QCon London 2019: Mature microservices and how to operate them 2017: 150 - 300 changes / mo. 2014: < 10 changes / mo.
  5. nxt Engineering GmbH [email protected] https://nxt.engineering +41 44 508 52 45

    Alte Gfennstrasse 72 CH-8600 Dübendorf “Accelerate: State of DevOps 2018”, Page 14
  6. nxt Engineering GmbH [email protected] https://nxt.engineering +41 44 508 52 45

    Alte Gfennstrasse 72 CH-8600 Dübendorf Sample Pipeline for the Master Branch
  7. nxt Engineering GmbH [email protected] https://nxt.engineering +41 44 508 52 45

    Alte Gfennstrasse 72 CH-8600 Dübendorf Trunk Based Development (“Github Style”) Short Lived Feature Branches Big Features: Feature Flags Releases From Trunk Branches Do Not Drift Apart Easy To Refactor Recommendation: Git
  8. nxt Engineering GmbH [email protected] https://nxt.engineering +41 44 508 52 45

    Alte Gfennstrasse 72 CH-8600 Dübendorf Tests! Tests! Tests! Tests!
  9. nxt Engineering GmbH [email protected] https://nxt.engineering +41 44 508 52 45

    Alte Gfennstrasse 72 CH-8600 Dübendorf About Tests Unit Tests must be Quick to run (~10’) Flaky Tests are broken and must be fixed or removed! Separate Test Categories (Unit Tests, Integration Tests, End-to-End Test, …) Additional Tests: License Compatibility, Performance Regression, Dependency Vulnerability Scans, Static Code Analysis, Code Style, ...
  10. nxt Engineering GmbH [email protected] https://nxt.engineering +41 44 508 52 45

    Alte Gfennstrasse 72 CH-8600 Dübendorf CI / CD Tools Want: • Configuration Files (no UI configuration) • Docker Support Other than that: Feel Free to choose Gitlab Logo is used under MIT License. Bamboo Logo is © Atlassian. GoCD Logo is © Thoughtworks. 15:20 - 15:50 Reduce your Toolchain with GitLab Michael Gerber
  11. nxt Engineering GmbH [email protected] https://nxt.engineering +41 44 508 52 45

    Alte Gfennstrasse 72 CH-8600 Dübendorf No Blame No “Broken CI” Shaming. No “Root Cause Analysis”.
  12. nxt Engineering GmbH [email protected] https://nxt.engineering +41 44 508 52 45

    Alte Gfennstrasse 72 CH-8600 Dübendorf Blue Green Deployment Before Deploy Green Deploy Blue Server Bl. app.v1 app.v1 app.v2 Server Gr. app.v1 app.v2 app.v2
  13. nxt Engineering GmbH [email protected] https://nxt.engineering +41 44 508 52 45

    Alte Gfennstrasse 72 CH-8600 Dübendorf Canary Deployment / Staged Rollout Stage 1 Stage 2 Stage 3 Server A (30%) app.v1 app.v1 app.v2 Server B (30%) app.v1 app.v2 app.v2 Server C (30%) app.v2 app.v2 app.v2
  14. nxt Engineering GmbH [email protected] https://nxt.engineering +41 44 508 52 45

    Alte Gfennstrasse 72 CH-8600 Dübendorf A/B Testing ?
  15. nxt Engineering GmbH [email protected] https://nxt.engineering +41 44 508 52 45

    Alte Gfennstrasse 72 CH-8600 Dübendorf Deployments ≠ Releases !
  16. nxt Engineering GmbH [email protected] https://nxt.engineering +41 44 508 52 45

    Alte Gfennstrasse 72 CH-8600 Dübendorf DevOps == CI/CD ?
  17. nxt Engineering GmbH [email protected] https://nxt.engineering +41 44 508 52 45

    Alte Gfennstrasse 72 CH-8600 Dübendorf Image from https://commons.wikimedia.org/wiki/File:Devops-toolchain.svg, under permission of CC-BY-SA 4.0
  18. nxt Engineering GmbH [email protected] https://nxt.engineering +41 44 508 52 45

    Alte Gfennstrasse 72 CH-8600 Dübendorf CI/CD ⊂ DevOps !
  19. nxt Engineering GmbH [email protected] https://nxt.engineering +41 44 508 52 45

    Alte Gfennstrasse 72 CH-8600 Dübendorf 14. / 15. Mai 2019
  20. nxt Engineering GmbH [email protected] https://nxt.engineering +41 44 508 52 45

    Alte Gfennstrasse 72 CH-8600 Dübendorf Automate All The Things ?
  21. nxt Engineering GmbH [email protected] https://nxt.engineering +41 44 508 52 45

    Alte Gfennstrasse 72 CH-8600 Dübendorf How Much You Can Spend On Automation How Often You Do The Task How Much Time You Save (in 5 years) 50 / d 5 / d Daily Weekly Monthly Yearly 1 s 1 d 2 h 30 min 4 min 1 min 5 s 5 s 5 d 12 h 2 h 21 min 5 min 25 s 30 s 4 w 3 d 12 h 2 h 30 min 2 min 1 min 8 w 6 d 1 d 4 h 1 h 5 min 5 min 9 m 4 w 6 d 21 h 5 h 25 min 40 min 6 mo 5 w 5 d 1 d 2 h 1 h 10 mo 2 mo 10 d 2 d 5 h 6 h 2 mo 2 w 1d 1 d 8 w 5 d Inspired by https://xkcd.com/1205/
  22. nxt Engineering GmbH [email protected] https://nxt.engineering +41 44 508 52 45

    Alte Gfennstrasse 72 CH-8600 Dübendorf “We’re not allowed to deploy to Prod” !
  23. nxt Engineering GmbH [email protected] https://nxt.engineering +41 44 508 52 45

    Alte Gfennstrasse 72 CH-8600 Dübendorf nxt Engineering GmbH [email protected] Alte Gfennstrasse 72 CH-8600 Dübendorf “Work it, make it, do it, makes us Harder, better, faster, stronger” Daft Punk
  24. nxt Engineering GmbH [email protected] https://nxt.engineering +41 44 508 52 45

    Alte Gfennstrasse 72 CH-8600 Dübendorf nxt Engineering GmbH [email protected] Alte Gfennstrasse 72 CH-8600 Dübendorf
  25. nxt Engineering GmbH [email protected] https://nxt.engineering +41 44 508 52 45

    Alte Gfennstrasse 72 CH-8600 Dübendorf nxt Engineering GmbH [email protected] Alte Gfennstrasse 72 CH-8600 Dübendorf Christian Mäder Senior Software Architect @cimnine christian.maeder@ 17:30 - 18:00 Offline Microservice Development with docker-compose nxt.engineering