~/talk

The art of the live upgrade - 10 yrs of evolving a live system

Talkat Code BEAM SF 2019 · 2019-02-28..03-01· [devops-and-delivery]
links:none on file
slides:none on file

Klarna’s main payment system runs 24/7 for over a decade with no scheduled downtime, evolving via frequent live upgrades that push 2–12 tickets per day, handle 250 apps and about 4,000 modules, and keep ~99.982% yearly availability. The pipeline uses git/Bitbucket, Jira, Jenkins, Docker, Ansible, AWS, RPMs and Artifactory, nightly 4–5 hour system tests, dynamic MD5-based module detection, atomic load and purge actions, shadowing and gradual traffic shifts, and code migration via qualified tail calls — a working, battle-tested workflow.

AI-written summary · about

  1. 0:00Intro
  2. 2:37Kred system vital stats
  3. 3:53Pipeline and Branching model
  4. 5:32Problems in the pipeline
  5. 6:35Quick fixes and configuration changes
  6. 7:44Keeping developers happy/productive
  7. 12:06Splitting up bad supervision trees
  8. 13:04Reducing coupling
  9. 16:39Enable small changes without stopping
  10. 17:44We don't use OTP releases...
  11. 19:31Fundamental Design Decisions of Erlang
  12. 20:26Loading an Erlang module
  13. 20:55Loading a new version (atomic)
  14. 21:13New callers will use the new version
  15. 21:59Code pointers
  16. 23:14The Code Server: code:(...)
  17. 23:57Basic code operations
  18. 25:41Fully purging a module
  19. 25:53Detecting modified modules
  20. 26:46The Code Primitives: erlang: (...)
  21. 28:39Atomic load of multiple modules
  22. 30:27Beam code and Erlang VM compatibility
  23. 32:26Traditional software code scenarios
  24. 33:00Live upgrade code scenarios
  25. 33:40Beware systematic failure on all nodes
  26. 35:30Sanity Checks
  27. 35:48Separate releasing from activating
  28. 36:24Separate may-crash from must-not-crash
  29. 37:48Temporary Dirty Hacks
  30. 38:30Full upgrade testing
  31. 39:30Remember to enable code migration
  32. 40:30Remember to update settings everywhere
  33. 41:07Advantages and disadvantages
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.