Autonomous deployments in modern distributed systems

Autonomous deployments in modern distributed systems

13962ee99d2c07e7b7a7776222532f1d?s=128

Jakub Kubryński

October 16, 2019
Tweet

Transcript

  1. @jkubrynski @jkubrynski AUTONOMOUS AUTONOMOUS DEPLOYMENTS DEPLOYMENTS IN MODERN DISTRIBUTED SYSTEMS

    IN MODERN DISTRIBUTED SYSTEMS JAKUB KUBRYNSKI JAKUB KUBRYNSKI jakub@devskiller.com / @jkubrynski jakub@devskiller.com / @jkubrynski
  2. $ WHOAMI $ WHOAMI 15+ PROFESSIONAL EXPERIENCE 15+ PROFESSIONAL EXPERIENCE

    DEVSKILLER CO-FOUNDER DEVSKILLER CO-FOUNDER CONSULTANT & TRAINER CONSULTANT & TRAINER SPRING CLOUD CONTRACT CO-AUTHOR SPRING CLOUD CONTRACT CO-AUTHOR
  3. WHY DISTRIBUTED WHY DISTRIBUTED SYSTEMS? SYSTEMS? SCALABILITY SCALABILITY POLYGLOT POLYGLOT

    PARALLEL DEVELOPMENT PARALLEL DEVELOPMENT
  4. DISTRIBUTED DISTRIBUTED SYSTEMS SYSTEMS VS VS MICROSERVICES MICROSERVICES

  5. MICROSERVICES MICROSERVICES BRING BRING AUTONOMY AUTONOMY DYNAMIC SCALABILITY DYNAMIC SCALABILITY

  6. WHO NEEDS WHO NEEDS AUTONOMY? AUTONOMY?

  7. WHO NEEDS WHO NEEDS AUTONOMY? AUTONOMY? BUSINESS - FOR THE

    REAL AGILE BUSINESS - FOR THE REAL AGILE
  8. AUTONOMY IS HARD AUTONOMY IS HARD BECAUSE WE NEED TO

    COORDINATE BECAUSE WE NEED TO COORDINATE DEPENDENCIES DEPENDENCIES
  9. DISTRIBUTED SYSTEMS DISTRIBUTED SYSTEMS ALL ABOUT ALL ABOUT COMMUNICATION COMMUNICATION

  10. COORDINATION COORDINATION WITHOUT RELEASES WITHOUT RELEASES IS IT POSSIBLE? IS

    IT POSSIBLE?
  11. BACKWARD BACKWARD COMPATIBILITY COMPATIBILITY OVER OVER RELEASES RELEASES

  12. DEFERRED CHANGE DEFERRED CHANGE IT'S ABOUT SPLITTING ONE BREAKING IT'S

    ABOUT SPLITTING ONE BREAKING CHANGE INTO A SET OF BACKWARD CHANGE INTO A SET OF BACKWARD COMPATIBLE CHANGES COMPATIBLE CHANGES
  13. LET'S TALK ABOUT LET'S TALK ABOUT ROLLING UPDATES ROLLING UPDATES

  14. None
  15. None
  16. None
  17. None
  18. None
  19. None
  20. None
  21. None
  22. None
  23. None
  24. HOW TO MIGRATE COLUMN TYPE? HOW TO MIGRATE COLUMN TYPE?

    DATE -> DATETIME DATE -> DATETIME
  25. MIGRATION 1/2 MIGRATION 1/2 1. ADD 1. ADD datetime datetime

    COLUMN COLUMN 2. DEPLOY VERSION 2.0 2. DEPLOY VERSION 2.0 - READ FROM - READ FROM date date - WRITE TO - WRITE TO date+datetime date+datetime 3. MIGRATE DATA 3. MIGRATE DATA date => datetime date => datetime
  26. MIGRATION 2/2 MIGRATION 2/2 4. DEPLOY VERSION 3.0 4. DEPLOY

    VERSION 3.0 - READ FROM - READ FROM datetime datetime - WRITE TO - WRITE TO date+datetime date+datetime 5. DEPLOY VERSION 4.0 5. DEPLOY VERSION 4.0 - READ FROM - READ FROM datetime datetime - WRITE TO - WRITE TO datetime datetime 6. REMOVE COLUMN 6. REMOVE COLUMN date date
  27. DEFERRED CHANGES DEFERRED CHANGES IN THE API IN THE API

    Step Server Client 1 date date 2 date+datetime date 3 date+datetime datetime 4 datetime datetime
  28. LET'S TALK ABOUT LET'S TALK ABOUT CONTRACT TESTS CONTRACT TESTS

  29. CONTRACT CONTRACT Request ======= Method: GET URL: /courses/dna Headers: -

    Accept: application/json Response ======== Status: 200 OK Headers: - Content-Type: application/json Body: {"name":"DNA", "status":"ACTIVE"}
  30. None
  31. TALK IS CHEAP ;-) TALK IS CHEAP ;-) LET'S SEE

    THE CODE LET'S SEE THE CODE
  32. QUESTIONS? QUESTIONS?

  33. THANKS THANKS