Frequent Releases & Major Changes

Frequent Releases & Major Changes

At Vinted, we deploy our code hundreds of times per day into production. While offering a lot of advantages, continuous deployment also introduces its own set of challenges. Release of major changes, like big features or considerable refactorings, is one of them. How to release a sizeable improvement without stopping deploying continuously?

B5009f255a6f0c386d40d6143948df8e?s=128

Mindaugas Mozūras

May 26, 2016
Tweet

Transcript

  1. frequent releases & major changes

  2. codingfearlessly.com mmozuras mmozuras

  3. None
  4. VINTED

  5. MAKE SECOND-HAND THE FIRST CHOICE WORLDWIDE

  6. None
  7. team evolution

  8. everyone together BE Web BE BE

  9. functional BE BE BE BE Web Web iOS And And

    And iOS iOS backend web mobile
  10. cross-functional gem yo secret ▪pants might magic

  11. cross-functional

  12. people with all skills

  13. people with all skills

  14. people with all skills

  15. backend web design iOS android analysis

  16. backend web design iOS android analysis operations

  17. teamwork

  18. releases

  19. releases in the old days by another department

  20. None
  21. releases today by the team

  22. releases today at Vinted hundreds per day

  23. releases today at Vinted hundreds per day

  24. +19 -2

  25. how to release major changes?

  26. +2000 -42

  27. how to release major changes?

  28. piece by piece?

  29. piece by piece?

  30. long release cycles?

  31. long release cycles?

  32. long-lived branches?

  33. long-lived branches?

  34. separate release from deployment?

  35. release make feature/code available for users

  36. deploy put feature/code in production

  37. separate release from deployment!

  38. science & feature flags & ab tests

  39. science

  40. None
  41. None
  42. sphinx -> elasticsearch

  43. major refactoring

  44. trust the tests?

  45. trust the tests?

  46. run old & new code

  47. run old & new code log differences

  48. run old & new code log differences remove differences

  49. github/scientist

  50. None
  51. None
  52. duration matches mismatches

  53. None
  54. sphinx -> elasticsearch

  55. feature flags

  56. None
  57. feature flags/toggles/switches/flippers

  58. glorified if statement

  59. None
  60. None
  61. None
  62. just turn it on?

  63. None
  64. ab tests

  65. None
  66. None
  67. None
  68. admin svc-ab svc-1 svc-2 svc-3 data

  69. admin svc-ab svc-1 svc-2 svc-3 data write ab config

  70. admin svc-ab svc-1 svc-2 svc-3 data read ab config

  71. admin svc-ab svc-1 svc-2 svc-3 data write events

  72. admin svc-ab svc-1 svc-2 svc-3 data

  73. svc-ab svc-1 svc-2 svc-3 android iOS

  74. vinted/ab vinted/ab-ios vinted/ab-java

  75. release a feature to a percentage

  76. release a feature to half of a city

  77. release to everyone

  78. None
  79. major changes

  80. science & feature flags & ab tests

  81. separate release from deployment

  82. thanks! mmozuras mmozuras