ΠœΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠ° развёртывания ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², примСняСмая Π² Slack

Π’Ρ‹Π²ΠΎΠ΄ Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ€Π΅Π»ΠΈΠ·Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ½ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ соблюдСния баланса ΠΌΠ΅ΠΆΠ΄Ρƒ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ развёртывания ΠΈ Π½Π°Π΄Ρ‘ΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ. Π’ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Slack цСнят быстрыС ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠ΅ Ρ†ΠΈΠΊΠ»Ρ‹ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ связи, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΡƒΡŽ Ρ€Π΅Π°ΠΊΡ†ΠΈΡŽ Π½Π° обращСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ сотни программистов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ стрСмятся ΠΊ максимально Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠΉ продуктивности.

ΠœΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠ° развёртывания ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², примСняСмая Π² Slack

Авторы ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π°, ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΡ‹ сСгодня ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ΅ΠΌ, говорят, Ρ‡Ρ‚ΠΎ компания, которая стрСмится ΠΏΡ€ΠΈΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… цСнностСй ΠΈ ΠΏΡ€ΠΈ этом растёт, Π΄ΠΎΠ»ΠΆΠ½Π° постоянно ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ свою систСму развёртывания ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ². Компании Π½ΡƒΠΆΠ½ΠΎ Π²ΠΊΠ»Π°Π΄Ρ‹Π²Π°Ρ‚ΡŒ силы Π² ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ ΠΈ Π½Π°Π΄Ρ‘ΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… процСссов, дСлая это для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ эти процСссы соотвСтствовали Π±Ρ‹ ΠΌΠ°ΡΡˆΡ‚Π°Π±Π°ΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Π—Π΄Π΅ΡΡŒ Ρ€Π΅Ρ‡ΡŒ ΠΏΠΎΠΉΠ΄Ρ‘Ρ‚ ΠΎ Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… процСссах, ΡΠ»ΠΎΠΆΠΈΠ²ΡˆΠΈΡ…ΡΡ Π² Slack, ΠΈ ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΡ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠ²Π΅Π»ΠΈ компанию ΠΊ использованию Π² Π½Π΅ΠΉ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ сСгодня систСмы развёртывания ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ².

Как процСссы развёртывания ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ сСгодня

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ PR (pull request) Π² Slack Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ΄Π²Π΅Ρ€Π³Π½ΡƒΡ‚ ΠΊΠΎΠ΄-Ρ€Π΅Π²ΡŒΡŽ ΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΏΡ€ΠΎΠΉΡ‚ΠΈ всС тСсты. Волько послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Ρ‹ эти условия, программист ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ слияниС своСго ΠΊΠΎΠ΄Π° с Π²Π΅Ρ‚ΠΊΠΎΠΉ master ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Однако Ρ€Π°Π·Π²Ρ‘Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° выполняСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ часы ΠΏΠΎ сСвСроамСриканскому Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΌΡ‹, Π·Π° счёт Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ наши сотрудники находятся Π½Π° Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… мСстах, ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΊ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡŽ Π»ΡŽΠ±Ρ‹Ρ… Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ.

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ дСнь ΠΌΡ‹ выполняСм ΠΎΠΊΠΎΠ»ΠΎ 12 Π·Π°ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Ρ€Π°Π·Π²Ρ‘Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠΉ. Π’ процСссС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ развёртывания программист, Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΉ Π³Π»Π°Π²Π½Ρ‹ΠΌ ΠΏΠΎ Ρ€Π°Π·Π²Ρ‘Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΡŽ, ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° Π²Ρ‹Π²ΠΎΠ΄ Π½ΠΎΠ²ΠΎΠΉ сборки Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ½. Π­Ρ‚ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΡˆΠ°Π³ΠΎΠ²Ρ‹ΠΉ процСсс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ обСспСчиваСт ΠΏΠ»Π°Π²Π½Ρ‹ΠΉ Π²Ρ‹Π²ΠΎΠ΄ сборки Π² Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ Ρ€Π΅ΠΆΠΈΠΌ. Благодаря Ρ‚Π°ΠΊΠΎΠΌΡƒ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρƒ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°Ρ‚ΡŒ ошибки Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π·Π°Ρ‚Ρ€ΠΎΠ½ΡƒΡ‚ всСх Π½Π°ΡˆΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. Если ошибок окаТСтся слишком ΠΌΠ½ΠΎΠ³ΠΎ β€” Ρ€Π°Π·Π²Ρ‘Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ сборки ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΠ°Ρ‚ΠΈΡ‚ΡŒ. Если ΠΆΠ΅ нСкая ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Π°Ρ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½Π° послС Ρ€Π΅Π»ΠΈΠ·Π°, для Π½Π΅Ρ‘ Π»Π΅Π³ΠΊΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ исправлСниС.

ΠœΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠ° развёртывания ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², примСняСмая Π² Slack
Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ систСмы Checkpoint, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² Slack для развёртывания ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ²

ΠŸΡ€ΠΎΡ†Π΅ΡΡ развёртывания Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ€Π΅Π»ΠΈΠ·Π° Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ½Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ состоящим ΠΈΠ· Ρ‡Π΅Ρ‚Ρ‹Ρ€Ρ‘Ρ… шагов.

▍1. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π²Π΅Ρ‚ΠΊΠΈ Ρ€Π΅Π»ΠΈΠ·Π°

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π΅Π»ΠΈΠ· начинаСтся с Π½ΠΎΠ²ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ Ρ€Π΅Π»ΠΈΠ·Π°, с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π² нашСй Git-истории. Π­Ρ‚ΠΎ позволяСт Π½Π°Π·Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π΅Π»ΠΈΠ·Ρƒ Ρ‚Π΅Π³ΠΈ ΠΈ Π΄Π°Ρ‘Ρ‚ мСсто, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π²Π½ΠΎΡΠΈΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ исправлСния для ошибок, Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹Ρ… Π² процСссС ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ Ρ€Π΅Π»ΠΈΠ·Π° ΠΊ выпуску Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ½.

▍2. Π Π°Π·Π²Ρ‘Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ Π² ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠΌ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ шаг Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ€Π°Π·Π²Ρ‘Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠΈ сборки Π½Π° ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Ρ… (staging) сСрвСрах ΠΈ Π² запускС автоматичСского тСста Π½Π° ΠΎΠ±Ρ‰ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚ΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° (smoke test). ΠŸΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠ΅ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ β€” это ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ½-ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π΅ ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ‚ внСшний Ρ‚Ρ€Π°Ρ„ΠΈΠΊ. Π’ этом ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ ΠΌΡ‹ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΠΌ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Ρ€ΡƒΡ‡Π½ΠΎΠ΅ тСстированиС. Π­Ρ‚ΠΎ Π΄Π°Ρ‘Ρ‚ Π½Π°ΠΌ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΡƒΠ²Π΅Ρ€Π΅Π½Π½ΠΎΡΡ‚ΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΈΠ·ΠΌΠ΅Π½Ρ‘Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ. ΠžΠ΄Π½ΠΈΡ… лишь Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… тСстов для обрСтСния ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ увСрСнности нСдостаточно.

▍3. Π Π°Π·Π²Ρ‘Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ Π² dogfood- ΠΈ canary-окруТСниях

Π Π°Π·Π²Ρ‘Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ½Π΅ начинаСтся с dogfood-окруТСния, прСдставлСнного Π½Π°Π±ΠΎΡ€ΠΎΠΌ хостов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°ΡŽΡ‚ наши Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ пространства Slack. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ‹ β€” вСсьма Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Slack, ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° ΠΏΠΎΠΌΠΎΠ³Π»ΠΎ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ мноТСство ошибок Π½Π° Ρ€Π°Π½Π½ΠΈΡ… стадиях развёртывания. ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΡ‹ ΡƒΠ΄ΠΎΡΡ‚ΠΎΠ²Π΅Ρ€ΠΈΠ»ΠΈΡΡŒ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» систСмы Π½Π΅ Π½Π°Ρ€ΡƒΡˆΠ΅Π½, выполняСтся Ρ€Π°Π·Π²Ρ‘Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ сборки Π² canary-ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ. Оно прСдставляСт собой систСмы, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ΄Ρ‘Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ 2% ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ½-Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°.

▍4. ΠŸΠΎΡΡ‚Π΅ΠΏΠ΅Π½Π½Ρ‹ΠΉ Π²Ρ‹Π²ΠΎΠ΄ Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ½

Если ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ€Π΅Π»ΠΈΠ·Π° ΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Ρ‹ΠΌΠΈ, ΠΈ Ссли послС развёртывания ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² canary-ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ ΠΌΡ‹ Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ ΠΆΠ°Π»ΠΎΠ±, ΠΌΡ‹ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ постСпСнный ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ½-сСрвСров Π½Π° Π½ΠΎΠ²Ρ‹ΠΉ Ρ€Π΅Π»ΠΈΠ·. ΠŸΡ€ΠΎΡ†Π΅ΡΡ развёртывания Ρ€Π°Π·Π±ΠΈΡ‚ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ этапы: 10%, 25%, 50%, 75% ΠΈ 100%. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ½-Ρ‚Ρ€Π°Ρ„ΠΈΠΊ Π½ΠΎΠ²ΠΎΠΌΡƒ Ρ€Π΅Π»ΠΈΠ·Ρƒ систСмы. ΠŸΡ€ΠΈ этом Ρƒ нас Π΅ΡΡ‚ΡŒ врСмя Π½Π° исслСдованиС ситуации Π² случаС выявлСния Π½Π΅ΠΊΠΈΡ… Π°Π½ΠΎΠΌΠ°Π»ΠΈΠΉ.

β–ΠšΠ°ΠΊ Π±Ρ‹Ρ‚ΡŒ, Ссли Π² Ρ…ΠΎΠ΄Π΅ развёртывания Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ пошло Π½Π΅ Ρ‚Π°ΠΊ?

ВнСсСниС ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΉ Π² ΠΊΠΎΠ΄ β€” это всСгда риск. Но ΠΌΡ‹ справляСмся с этим благодаря Π½Π°Π»ΠΈΡ‡ΠΈΡŽ Ρƒ нас Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½Ρ‹Ρ… Β«Π³Π»Π°Π²Π½Ρ‹Ρ… ΠΏΠΎ Ρ€Π°Π·Π²Ρ‘Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΡŽΒ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ руководят процСссом Π²Ρ‹Π²ΠΎΠ΄Π° Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ€Π΅Π»ΠΈΠ·Π° Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ½, Π½Π°Π±Π»ΡŽΠ΄Π°ΡŽΡ‚ Π·Π° показатСлями ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° ΠΈ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½ΠΈΡ€ΡƒΡŽΡ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ программистов, Π²Ρ‹ΠΏΡƒΡΠΊΠ°ΡŽΡ‰ΠΈΡ… ΠΊΠΎΠ΄.

Π’ Ρ‚ΠΎΠΌ случаС, Ссли Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΈ ΠΏΡ€Π°Π²Π΄Π° пошло Π½Π΅ Ρ‚Π°ΠΊ, ΠΌΡ‹ стараСмся ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π½ΡŒΡˆΠ΅. ΠœΡ‹ исслСдуСм ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, Π½Π°Ρ…ΠΎΠ΄ΠΈΠΌ PR, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ошибки, ΠΎΡ‚ΠΊΠ°Ρ‚Ρ‹Π²Π°Π΅ΠΌ Π΅Π³ΠΎ, Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ ΠΈ создаём Π½ΠΎΠ²ΡƒΡŽ сборку. ΠŸΡ€Π°Π²Π΄Π°, ΠΈΠ½ΠΎΠ³Π΄Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° оказываСтся Π½Π΅Π·Π°ΠΌΠ΅Ρ‡Π΅Π½Π½ΠΎΠΉ Π΄ΠΎ Π²Ρ‹Π²ΠΎΠ΄Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ½. Π’ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ ситуации самоС Π²Π°ΠΆΠ½ΠΎΠ΅ β€” это Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ сСрвиса. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΌΡ‹, Π΄ΠΎ Π½Π°Ρ‡Π°Π»Π° исслСдования ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ откатываСмся Π΄ΠΎ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΉ сборки.

Π‘Ρ‚Ρ€ΠΎΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ систСмы развёртывания

Рассмотрим Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, Π»Π΅ΠΆΠ°Ρ‰ΠΈΠ΅ Π² основС нашСй систСмы развёртывания ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ².

▍БыстрыС развёртывания

Π’Ρ‹ΡˆΠ΅ΠΎΠΏΠΈΡΠ°Π½Π½Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ процСсс ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ, Π² рСтроспСктивС, Ρ‡Π΅ΠΌ-Ρ‚ΠΎ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹ΠΌ. Но наша систСма развёртывания стала Ρ‚Π°ΠΊΠΎΠΉ Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ сразу.

Когда компания Π±Ρ‹Π»Π° Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ мСньшС, всё нашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠ³Π»ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° 10 Amazon EC2-инстансах. Π Π°Π·Π²Ρ‘Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² Ρ‚Π°ΠΊΠΎΠΉ ситуации ΠΎΠ·Π½Π°Ρ‡Π°Π»ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ rsync для быстрой синхронизации всСх сСрвСров. РаньшС Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΎΡ‚ ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ½Π° отдСлял всСго ΠΎΠ΄ΠΈΠ½ шаг, прСдставлСнный ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹ΠΌ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ΠΌ. Π‘Π±ΠΎΡ€ΠΊΠΈ создавались ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΠ»ΠΈΡΡŒ Π² Ρ‚Π°ΠΊΠΎΠΌ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ, Π° ΠΏΠΎΡ‚ΠΎΠΌ шли сразу Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ½. Π Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π² Ρ‚Π°ΠΊΠΎΠΉ систСмС Π±Ρ‹Π»ΠΎ ΠΎΡ‡Π΅Π½ΡŒ просто, ΠΎΠ½Π° позволяла Π»ΡŽΠ±ΠΎΠΌΡƒ программисту Π² любоС врСмя Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ написанный ΠΈΠΌ ΠΊΠΎΠ΄.

Но ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ росло количСство Π½Π°ΡˆΠΈΡ… ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ², росли ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±Ρ‹ инфраструктуры, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠΉ для обСспСчСния Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Π‘ΠΊΠΎΡ€ΠΎ, учитывая постоянный рост систСмы, наша модСль развёртывания, основанная Π½Π° ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π½Π° сСрвСры, пСрСстала ΡΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒΡΡ со своСй Π·Π°Π΄Π°Ρ‡Π΅ΠΉ. А ΠΈΠΌΠ΅Π½Π½ΠΎ, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ сСрвСра ΠΎΠ·Π½Π°Ρ‡Π°Π»ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ развёртывания. Π”Π°ΠΆΠ΅ стратСгии, основанныС Π½Π° ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ rsync, ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Π΅ ограничСния.

Π’ ΠΈΡ‚ΠΎΠ³Π΅ ΠΌΡ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, пСрСйдя Π½Π° ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΡƒΡŽ систСму развёртывания, ΡƒΡΡ‚Ρ€ΠΎΠ΅Π½Π½ΡƒΡŽ Π½Π΅ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ старая систСма. А ΠΈΠΌΠ΅Π½Π½ΠΎ, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ Π½Π΅ отправляли ΠΊΠΎΠ΄ Π½Π° сСрвСры, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ скрипт синхронизации. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ сСрвСр ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π°Π³Ρ€ΡƒΠΆΠ°Π» Π½ΠΎΠ²ΡƒΡŽ сборку, узнавая ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ это Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, благодаря наблюдСнию Π·Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠ»ΡŽΡ‡Π° Consul. Π‘Π΅Ρ€Π²Π΅Ρ€Ρ‹ Π·Π°Π³Ρ€ΡƒΠΆΠ°Π»ΠΈ ΠΊΠΎΠ΄ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ. Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ Π½Π°ΠΌ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π²Ρ‹ΡΠΎΠΊΡƒΡŽ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ развёртывания Π΄Π°ΠΆΠ΅ Π² обстановкС постоянного роста систСмы.

ΠœΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠ° развёртывания ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², примСняСмая Π² Slack
1. ΠŸΡ€ΠΎΠ΄Π°ΠΊΡˆΠ½-сСрвСры Π½Π°Π±Π»ΡŽΠ΄Π°ΡŽΡ‚ Π·Π° ΠΊΠ»ΡŽΡ‡ΠΎΠΌ Consul. 2. ΠšΠ»ΡŽΡ‡ мСняСтся, это сообщаСт сСрвСрам ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΈΠΌ Π½Π°Π΄ΠΎ Π½Π°Ρ‡Π°Ρ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. 3. Π‘Π΅Ρ€Π²Π΅Ρ€Ρ‹ Π·Π°Π³Ρ€ΡƒΠΆΠ°ΡŽΡ‚ tarball-Ρ„Π°ΠΉΠ»Ρ‹ с ΠΊΠΎΠ΄ΠΎΠΌ прилоТСния

▍АтомарныС развёртывания

Π•Ρ‰Ρ‘ ΠΎΠ΄Π½ΠΈΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΠΎΠΌΠΎΠ³Π»ΠΎ Π½Π°ΠΌ Π΄ΠΎΠΉΡ‚ΠΈ Π΄ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΉ систСмы развёртывания, стало Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½ΠΎΠ΅ Ρ€Π°Π·Π²Ρ‘Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅.

Π”ΠΎ использования Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½Ρ‹Ρ… Ρ€Π°Π·Π²Ρ‘Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠΉ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ Ρ€Π°Π·Π²Ρ‘Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ³Π»ΠΎ привСсти ΠΊ появлСнию большого количСства сообщСний ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ…. Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ процСсс копирования Π½ΠΎΠ²Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² Π½Π° ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ½-сСрвСры Π½Π΅ Π±Ρ‹Π» Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½Ρ‹ΠΌ. Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΠ»ΠΎ ΠΊ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Π½ΠΈΡŽ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΎΡ‚Ρ€Π΅Π·ΠΊΠ°, ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠ΄, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π²Ρ‹Π·Ρ‹Π²Π°Π»ΠΈΡΡŒ Π½ΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, оказывался доступным Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠΊΠ°Π·Ρ‹Π²Π°Π»ΠΈΡΡŒ доступными сами эти Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Когда Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ вызывался, это ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΠ»ΠΎ ΠΊ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Ρƒ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… ошибок. Π­Ρ‚ΠΎ ΠΏΡ€ΠΎΡΠ²Π»ΡΠ»ΠΎΡΡŒ Π² Π½Π΅ΡƒΠ΄Π°Ρ‡Π½Ρ‹Ρ… запросах ΠΊ API ΠΈ Π² Β«ΠΏΠΎΠ»ΠΎΠΌΠ°Π½Π½Ρ‹Ρ…Β» Π²Π΅Π±-страницах.

Команда, которая занималась этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ, Ρ€Π΅ΡˆΠΈΠ»Π° Π΅Ρ‘, ввСдя понятиС «горячих» (hot) ΠΈ Β«Ρ…ΠΎΠ»ΠΎΠ΄Π½Ρ‹Ρ…Β» (cold) Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ. Код Π² «горячСй» Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ½-Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°. А Π² Β«Ρ…ΠΎΠ»ΠΎΠ΄Π½Ρ‹Ρ…Β» дирСкториях ΠΊΠΎΠ΄, Π²ΠΎ врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ систСмы, лишь готовится ΠΊ использованию. Π’ Ρ…ΠΎΠ΄Π΅ развёртывания Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ΄ копируСтся Π² Π½Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡƒΡŽ Β«Ρ…ΠΎΠ»ΠΎΠ΄Π½ΡƒΡŽΒ» Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ. Π—Π°Ρ‚Π΅ΠΌ, ΠΊΠΎΠ³Π΄Π° Π½Π° сСрвСрС Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… процСссов, производится ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎΠ΅ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ.

ΠœΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠ° развёртывания ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², примСняСмая Π² Slack
1. Распаковка ΠΊΠΎΠ΄Π° прилоТСния Π² Β«Ρ…ΠΎΠ»ΠΎΠ΄Π½ΡƒΡŽΒ» Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ. 2. ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ систСмы Π½Π° Β«Ρ…ΠΎΠ»ΠΎΠ΄Π½ΡƒΡŽΒ» Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ, которая становится «горячСй» (атомарная опСрация)

Π˜Ρ‚ΠΎΠ³ΠΈ: сдвиг Π°ΠΊΡ†Π΅Π½Ρ‚Π° Π½Π° Π½Π°Π΄Ρ‘ΠΆΠ½ΠΎΡΡ‚ΡŒ

Π’ 2018 Π³ΠΎΠ΄Ρƒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ дорос Π΄ΠΎ Ρ‚Π°ΠΊΠΈΡ… ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΎΠ², ΠΊΠΎΠ³Π΄Π° ΠΎΡ‡Π΅Π½ΡŒ быстроС Ρ€Π°Π·Π²Ρ‘Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ стало Π²Ρ€Π΅Π΄ΠΈΡ‚ΡŒ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°. Π£ нас Π±Ρ‹Π»Π° вСсьма продвинутая систСма развёртывания, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ Π²Π»ΠΎΠΆΠΈΠ»ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ сил ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Нам Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ лишь ΠΏΠ΅Ρ€Π΅ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΈ ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ процСссы ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ развёртывания. ΠœΡ‹ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΠ»ΠΈΡΡŒ Π² достаточно ΠΊΡ€ΡƒΠΏΠ½ΡƒΡŽ компанию, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ использовались Π²ΠΎ всём ΠΌΠΈΡ€Π΅ для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ бСспСрСбойной связи ΠΈ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π²Π°ΠΆΠ½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π² Ρ†Π΅Π½Ρ‚Ρ€Π΅ нашСго внимания оказалась Π½Π°Π΄Ρ‘ΠΆΠ½ΠΎΡΡ‚ΡŒ.

Нам Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ процСсс развёртывания Π½ΠΎΠ²Ρ‹Ρ… Ρ€Π΅Π»ΠΈΠ·ΠΎΠ² Slack Π±ΠΎΠ»Π΅Π΅ бСзопасным. Π­Ρ‚Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΈ ΠΏΡ€ΠΈΠ²Π΅Π»Π° нас ΠΊ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½ΠΈΡŽ нашСй систСмы развёртывания. БобствСнно говоря, Π²Ρ‹ΡˆΠ΅ ΠΌΡ‹ ΠΈ обсуТдали эту Π²ΠΎΡ‚ ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½Π½ΡƒΡŽ систСму. Π’ Π½Π΅Π΄Ρ€Π°Ρ… систСмы ΠΌΡ‹ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ тСхнологиями быстрого ΠΈ Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½ΠΎΠ³ΠΎ развёртывания. ИзмСнилось Ρ‚ΠΎ, ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ выполняСтся Ρ€Π°Π·Π²Ρ‘Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅. Наша новая систСма ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для постСпСнного выполнСния развёртывания Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… уровнях, Π² Ρ€Π°Π·Π½Ρ‹Ρ… срСдах. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π±ΠΎΠ»Π΅Π΅ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½Ρ‹Π΅, Ρ‡Π΅ΠΌ Ρ€Π°Π½ΡŒΡˆΠ΅, Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ инструмСнты ΠΈ срСдства для ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° систСмы. Π­Ρ‚ΠΎ Π΄Π°Ρ‘Ρ‚ Π½Π°ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ‚Π»Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΈ ΡƒΡΡ‚Ρ€Π°Π½ΡΡ‚ΡŒ ошибки Π·Π°Π΄ΠΎΠ»Π³ΠΎ Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ шанс Π΄ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π΄ΠΎ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

Но ΠΌΡ‹ Π½Π΅ собираСмся ΠΎΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π½Π° достигнутом. ΠœΡ‹ постоянно ΡƒΠ»ΡƒΡ‡ΡˆΠ°Π΅ΠΌ эту систСму, примСняя Π±ΠΎΠ»Π΅Π΅ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½Ρ‹Π΅ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ инструмСнты ΠΈ срСдства Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹.

Π£Π²Π°ΠΆΠ°Π΅ΠΌΡ‹Π΅ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΠΈ! Как устроСн процСсс развёртывания Π½ΠΎΠ²Ρ‹Ρ… Ρ€Π΅Π»ΠΈΠ·ΠΎΠ² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Ρ‚Π°ΠΌ, Π³Π΄Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ Π²Ρ‹?

ΠœΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠ° развёртывания ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², примСняСмая Π² Slack

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com