ВСст Π½Π° продукция: Canary Deployment

ΠšΠ°Π½Π°Ρ€Π΅ΠΉΠΊΠ° Π΅ ΠΌΠ°Π»ΠΊΠ° ΠΏΡ‚ΠΈΡ†Π°, която постоянно ΠΏΠ΅Π΅. Π’Π΅Π·ΠΈ ΠΏΡ‚ΠΈΡ†ΠΈ са чувствитСлни към ΠΌΠ΅Ρ‚Π°Π½ ΠΈ Π²ΡŠΠ³Π»Π΅Ρ€ΠΎΠ΄Π΅Π½ оксид. Π”ΠΎΡ€ΠΈ ΠΎΡ‚ ΠΌΠ°Π»ΠΊΠ° концСнтрация Π½Π° Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ Π³Π°Π·ΠΎΠ²Π΅ във Π²ΡŠΠ·Π΄ΡƒΡ…Π° Ρ‚Π΅ губят съзнаниС ΠΈΠ»ΠΈ ΡƒΠΌΠΈΡ€Π°Ρ‚. Π—Π»Π°Ρ‚ΠΎΡ‚ΡŠΡ€ΡΠ°Ρ‡ΠΈ ΠΈ ΠΌΠΈΠ½ΡŒΠΎΡ€ΠΈ носСли ΠΏΡ‚ΠΈΡ‡ΠΈΡ†ΠΈ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°: Π΄ΠΎΠΊΠ°Ρ‚ΠΎ ΠΊΠ°Π½Π°Ρ€Π΅ΠΉΠΊΠΈΡ‚Π΅ пСят, ΠΌΠΎΠΆΠ΅ Π΄Π° сС Ρ€Π°Π±ΠΎΡ‚ΠΈ, Π°ΠΊΠΎ Π·Π°ΠΌΡŠΠ»Ρ‡Π°Ρ‚ β€” Π² ΠΌΠΈΠ½Π°Ρ‚Π° ΠΈΠΌΠ° Π³Π°Π· ΠΈ Π΅ Π²Ρ€Π΅ΠΌΠ΅ Π΄Π° сС напуснС. ΠœΠΈΠ½ΡŒΠΎΡ€ΠΈΡ‚Π΅ ΠΆΠ΅Ρ€Ρ‚Π²Π°Π»ΠΈ ΠΌΠ°Π»ΠΊΠ°Ρ‚Π° ΠΏΡ‚ΠΈΡ†Π°, Π·Π° Π΄Π° излязат ΠΎΡ‚ ΠΌΠΈΠ½ΠΈΡ‚Π΅ ΠΆΠΈΠ²ΠΈ.

ВСст Π½Π° продукция: Canary Deployment

Подобна ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° сС Π΅ Π½Π°Π»ΠΎΠΆΠΈΠ»Π° ΠΈ Π² ИВ. НапримСр, Π² стандартна Π·Π°Π΄Π°Ρ‡Π° Π·Π° Ρ€Π°Π·Π³Ρ€ΡŠΡ‰Π°Π½Π΅ Π½Π° Π½ΠΎΠ²Π° вСрсия Π½Π° услуга ΠΈΠ»ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² продукция с ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½ΠΎ тСстванС. ВСстовото ΠΎΠ±ΠΊΡ€ΡŠΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС Ρ‚Π²ΡŠΡ€Π΄Π΅ скъпо, Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€Π°Π½ΠΈΡ‚Π΅ тСстовС Π½Π΅ ΠΏΠΎΠΊΡ€ΠΈΠ²Π°Ρ‚ всичко, ΠΊΠΎΠ΅Ρ‚ΠΎ Π±ΠΈΡ…ΠΌΠ΅ искали, Π° нСнастройванСто ΠΈ ΠΆΠ΅Ρ€Ρ‚Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° качСството Π΅ рисковано. Π’ Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊΠΈΠ²Π° случаи ΠΏΠΎΠΌΠ°Π³Π° ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΡŠΡ‚ Canary Deployment, ΠΏΡ€ΠΈ ΠΊΠΎΠΉΡ‚ΠΎ ΠΌΠ°Π»ΠΊΠΎ Ρ€Π΅Π°Π»Π΅Π½ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ†ΠΈΠΎΠ½Π΅Π½ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ сС пуска Π½Π° Π½ΠΎΠ²Π°Ρ‚Π° вСрсия. ΠŸΠΎΠ΄Ρ…ΠΎΠ΄ΡŠΡ‚ ΠΏΠΎΠΌΠ°Π³Π° бСзопасно Π΄Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚Π΅ Π½ΠΎΠ²Π°Ρ‚Π° вСрсия Π² продукция, ΠΆΠ΅Ρ€Ρ‚Π²Π°ΠΉΠΊΠΈ ΠΌΠ°Π»ΠΊΠΎ Π·Π° голямата Ρ†Π΅Π». ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ Π·Π° Ρ‚ΠΎΠ²Π° ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΡŠΡ‚, ΠΊΠ°ΠΊΠ²Π° ΠΏΠΎΠ»Π·Π° носи ΠΈ ΠΊΠ°ΠΊ Π΄Π° Π³ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Ρ‚Π΅, Ρ€Π°Π·ΠΊΠ°Π·Π²Π° АндрСй ΠœΠ°Ρ€ΠΊΠ΅Π»ΠΎΠ² (Andrey_V_Markelov), Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π½Π° рСализацията Π² компанията Infobip.

АндрСй ΠœΠ°Ρ€ΠΊΠ΅Π»ΠΎΠ² β€” Π²ΠΎΠ΄Π΅Ρ‰ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€-програмист Π² Infobip, ΠΊΠΎΠΉΡ‚ΠΎ Π²Π΅Ρ‡Π΅ 11 Π³ΠΎΠ΄ΠΈΠ½ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π° прилоТСния Π½Π° Java Π² областта Π½Π° финанситС ΠΈ Ρ‚Π΅Π»Π΅ΠΊΠΎΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΈΡ‚Π΅. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π° Open Source ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈ, Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ участва Π² Atlassian Community ΠΈ пишС плъгини Π·Π° ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΡ‚Π΅ Π½Π° Atlassian. ЕвангСлист Π½Π° Prometheus, Docker ΠΈ Redis.

Π’ΡŠΠ·ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄ΠΈ Π²ΠΈΠ΄Π΅ΠΎ

Π—Π° компанията Infobip

Π’ΠΎΠ²Π° Π΅ Π³Π»ΠΎΠ±Π°Π»Π½Π° Ρ‚Π΅Π»Π΅ΠΊΠΎΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°, която позволява Π½Π° Π±Π°Π½ΠΊΠΈ, Ρ‚ΡŠΡ€Π³ΠΎΠ²Ρ†ΠΈ Π½Π° Π΄Ρ€Π΅Π±Π½ΠΎ, ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ ΠΌΠ°Π³Π°Π·ΠΈΠ½ΠΈ ΠΈ транспортни ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Π΄Π° ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Ρ‚ ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡ Π½Π° своитС ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ Ρ‡Ρ€Π΅Π· SMS, push извСстия, ΠΈΠΌΠ΅ΠΉΠ»ΠΈ ΠΈ гласови ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡ. Π’ Ρ‚Π°ΠΊΡŠΠ² бизнСс Π΅ Π²Π°ΠΆΠ½Π° стабилността ΠΈ надСТдността, Π·Π° Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Ρ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈΡ‚Π΅ ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡΡ‚Π° Π½Π°Π²Ρ€Π΅ΠΌΠ΅.

ИВ инфраструктурата Π½Π° Infobip Π² Ρ†ΠΈΡ„Ρ€ΠΈ:

  • 15 Π΄Π°Ρ‚Π° Ρ†Π΅Π½Ρ‚Ρ€ΠΎΠ²ΠΈ Π² цял свят;
  • 500 ΡƒΠ½ΠΈΠΊΠ°Π»Π½ΠΈ услуги Π² Сксплоатация;
  • 2500 копия Π½Π° услуги, ΠΊΠΎΠ΅Ρ‚ΠΎ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΎΡ‚ броя Π½Π° Π΅ΠΊΠΈΠΏΠΈΡ‚Π΅;
  • 4,5 TB мСсСчСн Ρ‚Ρ€Π°Ρ„ΠΈΠΊ;
  • 4,5 ΠΌΠΈΠ»ΠΈΠ°Ρ€Π΄Π° Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π½ΠΈ Π½ΠΎΠΌΠ΅Ρ€Π°;

Π‘ΠΈΠ·Π½Π΅ΡΡŠΡ‚ растС, Π° с Π½Π΅Π³ΠΎ ΠΈ броят Π½Π° Ρ€Π΅Π»ΠΈΠ·ΠΈΡ‚Π΅. Π˜Π·Π²ΡŠΡ€ΡˆΠ²Π°ΠΌΠ΅ ΠΎΠΊΠΎΠ»ΠΎ 60 Ρ€Π΅Π»ΠΈΠ·Π° Π½Π° Π΄Π΅Π½, Π·Π°Ρ‰ΠΎΡ‚ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈΡ‚Π΅ искат ΠΏΠΎΠ²Π΅Ρ‡Π΅ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ ΠΈ ΠΊΠ°ΠΏΠ°Ρ†ΠΈΡ‚Π΅Ρ‚ΠΈ. Но Ρ‚ΠΎΠ²Π° Π΅ слоТно β€” услугитС са ΠΌΠ½ΠΎΠ³ΠΎ, Π° Π΅ΠΊΠΈΠΏΠΈΡ‚Π΅ ΠΌΠ°Π»ΠΊΠΎ. ΠŸΡ€ΠΈΡ…ΠΎΠ΄ΠΈ Π΄Π° ΠΏΠΈΡˆΠ΅Ρ‚Π΅ Π±ΡŠΡ€Π·ΠΎ ΠΊΠΎΠ΄, ΠΊΠΎΠΉΡ‚ΠΎ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ Π² продукция Π±Π΅Π· Π³Ρ€Π΅ΡˆΠΊΠΈ.

Π Π΅Π»ΠΈΠ·Π°

Π’ΠΈΠΏΠΈΡ‡Π΅Π½ Ρ€Π΅Π»ΠΈΠ· Π·Π° нас ΠΏΡ€ΠΎΡ‚ΠΈΡ‡Π° Ρ‚Π°ΠΊΠ°. НапримСр, ΠΈΠΌΠ°ΠΌΠ΅ услуги A, B, C, D ΠΈ E, всяка ΠΎΡ‚ ΠΊΠΎΠΈΡ‚ΠΎ сС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π° ΠΎΡ‚ ΠΎΡ‚Π΄Π΅Π»Π΅Π½ Π΅ΠΊΠΈΠΏ.

ВСст Π½Π° продукция: Canary Deployment

Π’ някакъв ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π΅ΠΊΠΈΠΏΡŠΡ‚ Π½Π° услугата A Ρ€Π΅ΡˆΠ°Π²Π° Π΄Π° Π²Π½Π΅Π΄Ρ€ΠΈ Π½ΠΎΠ²Π° вСрсия, Π½ΠΎ Π΅ΠΊΠΈΠΏΠΈΡ‚Π΅ Π½Π° услугитС B, C, D ΠΈ E Π½Π΅ знаят Π·Π° Ρ‚ΠΎΠ²Π°. Има Π΄Π²Π° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°, ΠΊΠ°ΠΊ Ρ‰Π΅ ΠΏΠΎΡΡ‚ΡŠΠΏΠΈ Π΅ΠΊΠΈΠΏΡŠΡ‚ Π½Π° услугата A.

Π©Π΅ ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅ ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π°Π»Π΅Π½ Ρ€Π΅Π»ΠΈΠ·: ΠΏΡŠΡ€Π²ΠΎ Ρ‰Π΅ Π·Π°ΠΌΠ΅Π½ΠΈ Π΅Π΄Π½Π° вСрсия, Π° слСд Ρ‚ΠΎΠ²Π° Π΄Ρ€ΡƒΠ³Π°Ρ‚Π°.

ВСст Π½Π° продукция: Canary Deployment

Но ΠΈΠΌΠ° ΠΈ Π²Ρ‚ΠΎΡ€ΠΈ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚: Π΅ΠΊΠΈΠΏΡŠΡ‚ Ρ‰Π΅ Π½Π°ΠΌΠ΅Ρ€ΠΈ Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ рСсурси ΠΈ машини, Ρ‰Π΅ Π²Π½Π΅Π΄Ρ€ΠΈ Π½ΠΎΠ²Π°Ρ‚Π° вСрсия, Π° слСд Ρ‚ΠΎΠ²Π° Ρ‰Π΅ ΠΏΡ€Π΅Π²ΠΊΠ»ΡŽΡ‡ΠΈ Ρ€ΡƒΡ‚Π΅Ρ€Π°, ΠΈ вСрсията Ρ‰Π΅ Π·Π°ΠΏΠΎΡ‡Π½Π΅ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ Π² продукция.

ВСст Π½Π° продукция: Canary Deployment

Π’ΡŠΠ² всСки Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ слСд внСдряванСто ΠΏΠΎΡ‡Ρ‚ΠΈ Π²ΠΈΠ½Π°Π³ΠΈ Π²ΡŠΠ·Π½ΠΈΠΊΠ²Π°Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ, Π΄ΠΎΡ€ΠΈ вСрсията Π΄Π° Π΅ тСствана. МоТС Π΄Π° сС тСства Ρ€ΡŠΡ‡Π½ΠΎ, ΠΌΠΎΠΆΠ΅ Π΄Π° сС тСстира Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€Π°Π½ΠΎ, ΠΌΠΎΠΆΠ΅ ΠΈ Π΄Π° Π½Π΅ сС тСстира β€” ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈΡ‚Π΅ Ρ‰Π΅ Π²ΡŠΠ·Π½ΠΈΠΊΠ½Π°Ρ‚ ΠΏΡ€ΠΈ всички случаи. Най-простият ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»Π΅Π½ Π½Π°Ρ‡ΠΈΠ½ Π΄Π° Π³ΠΈ Ρ€Π΅ΡˆΠΈΠΌ β€” Π΅ Π΄Π° сС Π²ΡŠΡ€Π½Π΅ΠΌ към Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰Π°Ρ‚Π° вСрсия. Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° сС Π·Π°Π½ΠΈΠΌΠ°Π²Π°ΠΌΠ΅ с Ρ‰Π΅Ρ‚ΠΈΡ‚Π΅, ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΈΡ‚Π΅ ΠΈ Π΄Π° Π³ΠΈ поправямС.

И Ρ‚Π°ΠΊΠ°, ΠΊΠ°ΠΊΠ²ΠΎ искамС?

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ Π½Π΅ Π½ΠΈ трябват. Ако ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈΡ‚Π΅ Π³ΠΈ открият ΠΏΡ€Π΅Π΄ΠΈ нас, Ρ‚ΠΎΠ²Π° Ρ‰Π΅ ΡƒΠ΄Π°Ρ€ΠΈ Π½Π°ΡˆΠ°Ρ‚Π° рСпутация. Π—Π°Ρ‚ΠΎΠ²Π° трябва Π΄Π° Π½Π°ΠΌΠΈΡ€Π°ΠΌΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈΡ‚Π΅ ΠΏΠΎ-Π±ΡŠΡ€Π·ΠΎ ΠΎΡ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈΡ‚Π΅.. Π Π°Π±ΠΎΡ‚Π΅ΠΉΠΊΠΈ Π½Π°ΠΏΡ€Π΅Π΄, ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΠΈΠ·ΠΈΡ€Π°ΠΌΠ΅ Ρ‰Π΅Ρ‚ΠΈΡ‚Π΅.

Π’ ΡΡŠΡ‰ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ искамС Π΄Π° ускорим внСдряванСто, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Ρ‚ΠΎ Π΄Π° ΠΏΡ€ΠΎΡ‚ΠΈΡ‡Π° Π±ΡŠΡ€Π·ΠΎ, лСсно, СстСствСно ΠΈ Π±Π΅Π· Π½Π°ΠΏΡ€Π΅ΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡ‚ страна Π½Π° Π΅ΠΊΠΈΠΏΠ°. Π˜Π½ΠΆΠ΅Π½Π΅Ρ€ΠΈΡ‚Π΅, DevOps-ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΈΡ‚Π΅ ΠΈ програмиститС трябва Π΄Π° сС пазят β€” Ρ€Π΅Π»ΠΈΠ·ΡŠΡ‚ Π½Π° Π½ΠΎΠ²Π° вСрсия Π΅ стрСс. Π•ΠΊΠΈΠΏΡŠΡ‚ Π½Π΅ Π΅ консуматив, стрСмим сС Ρ€Π°Ρ†ΠΈΠΎΠ½Π°Π»Π½ΠΎ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Ρ‡ΠΎΠ²Π΅ΡˆΠΊΠΈΡ‚Π΅ рСсурси..

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ ΠΏΡ€ΠΈ внСдряванС

ΠšΠ»ΠΈΠ΅Π½Ρ‚ΡΠΊΠΈΡΡ‚ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ Π΅ нСпрСдсказуСм. НСвъзмоТно Π΅ Π΄Π° сС ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄ΠΈ, ΠΊΠΎΠ³Π° клиСнтският Ρ‚Ρ€Π°Ρ„ΠΈΠΊ Ρ‰Π΅ бъдС ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π΅Π½. НС Π·Π½Π°Π΅ΠΌ къдС ΠΈ ΠΊΠΎΠ³Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈΡ‚Π΅ Ρ‰Π΅ Π·Π°ΠΏΠΎΡ‡Π½Π°Ρ‚ своитС ΠΊΠ°ΠΌΠΏΠ°Π½ΠΈΠΈ β€” ΠΌΠΎΠΆΠ΅ Π±ΠΈ днСс ΠΏΡ€Π΅Π· Π½ΠΎΡ‰Ρ‚Π° Π² Индия, Π° ΡƒΡ‚Ρ€Π΅ Π² Π₯ΠΎΠ½ΠΊΠΎΠ½Π³. Π‘ ΠΎΠ³Π»Π΅Π΄ Π½Π° голямата Ρ€Π°Π·Π»ΠΈΠΊΠ° във Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ, внСдряванСто Π΄ΠΎΡ€ΠΈ Π² 2 часа ΠΏΡ€Π΅Π· Π½ΠΎΡ‰Ρ‚Π° Π½Π΅ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€Π°, Ρ‡Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈΡ‚Π΅ няма Π΄Π° пострадат.

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ Π½Π° доставчицитС. ΠœΠ΅ΡΠΈΠ½Π΄ΠΆΡŠΡ€ΠΈΡ‚Π΅ ΠΈ доставчицитС β€” Π½Π°ΡˆΠΈΡ‚Π΅ ΠΏΠ°Ρ€Ρ‚Π½ΡŒΠΎΡ€ΠΈ. Понякога Ρ‚Π΅ ΠΈΠΌΠ°Ρ‚ сривовС, ΠΊΠΎΠΈΡ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΈΠ·Π²ΠΈΠΊΠ²Π°Ρ‚ Π³Ρ€Π΅ΡˆΠΊΠΈ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° внСдряванС Π½Π° Π½ΠΎΠ²ΠΈ вСрсии.

Π Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ Π΅ΠΊΠΈΠΏΠΈ. Π•ΠΊΠΈΠΏΠΈΡ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Ρ‚ клиСнтската част ΠΈ Π±Π΅ΠΊΠ΅Π½Π΄Π°, сС Π½Π°ΠΌΠΈΡ€Π°Ρ‚ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈ Π·ΠΎΠ½ΠΈ. ΠŸΠΎΡ€Π°Π΄ΠΈ Ρ‚ΠΎΠ²Π° Ρ‚Π΅ чСсто Π½Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС споразумСят ΠΏΠΎΠΌΠ΅ΠΆΠ΄Ρƒ си.

Π¦Π΅Π½Ρ‚Ρ€ΠΎΠ²Π΅Ρ‚Π΅ Π·Π° Π΄Π°Π½Π½ΠΈ Π½Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС повторят Π² стСйдТ. Π’ Π΅Π΄ΠΈΠ½ Ρ†Π΅Π½Ρ‚ΡŠΡ€ Π·Π° Π΄Π°Π½Π½ΠΈ ΠΈΠΌΠ° 200 Ρ€Π°Ρ„Ρ‚Π° β€” Π΄Π° ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΠΌ Ρ‚ΠΎΠ²Π° Π² ΠΏΡΡΡŠΡ‡Π½ΠΈΠΊΠ° Π΄ΠΎΡ€ΠΈ ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠΈΡ‚Π΅Π»Π½ΠΎ Π½Π΅ Π΅ възмоТно.

НСобходима наличностнСприСмлСми! ИмамС допустимо Π½ΠΈΠ²ΠΎ Π½Π° Π΄ΠΎΡΡ‚ΡŠΠΏΠ½ΠΎΡΡ‚ (Error Budget), ΠΊΠΎΠ³Π°Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚ΠΈΠΌ 99,99% ΠΎΡ‚ Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ, Π° останалитС ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ΠΈ прСдставляват "ΠΏΡ€Π°Π²ΠΎΡ‚ΠΎ Π½Π° Π³Ρ€Π΅ΡˆΠΊΠ°". ΠŸΠΎΡΡ‚ΠΈΠ³Π°Π½Π΅Ρ‚ΠΎ Π½Π° 100% надСТдност Π΅ нСвъзмоТно, Π½ΠΎ Π΅ Π²Π°ΠΆΠ½ΠΎ постоянно Π΄Π° слСдим Π·Π° сривовС ΠΈ прСстои.

ΠšΠ»Π°ΡΠΈΡ‡Π΅ΡΠΊΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ

ΠŸΠΈΡΠ°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΊΠΎΠ΄ Π±Π΅Π· бъговС. ΠšΠΎΠ³Π°Ρ‚ΠΎ бях ΠΌΠ»Π°Π΄ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ, ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡŠΡ€ΠΈΡ‚Π΅ ΠΈΠ΄Π²Π°Ρ…Π° ΠΏΡ€ΠΈ ΠΌΠ΅Π½ с исканСто Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌ продукция Π±Π΅Π· бъговС, Π½ΠΎ Ρ‚ΠΎΠ²Π° Π½Π΅ Π²ΠΈΠ½Π°Π³ΠΈ Π΅ възмоТно.

ΠŸΠΈΡΠ°Π½Π΅Ρ‚ΠΎ Π½Π° тСстовС. ВСстовСтС работят, Π½ΠΎ понякога ΠΏΠΎ Π½Π°Ρ‡ΠΈΠ½, ΠΊΠΎΠΉΡ‚ΠΎ Π±ΠΈΠ·Π½Π΅ΡΡŠΡ‚ Π½Π΅ ΠΎΡ‡Π°ΠΊΠ²Π°. Π˜Π·ΠΊΠ°Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΏΠ°Ρ€ΠΈ Π½Π΅ Π΅ Π·Π°Π΄Π°Ρ‡Π° само Π½Π° тСстовСтС.

ВСстванС Π½Π° стСйдТ. ΠŸΡ€Π΅Π· 3,5 Π³ΠΎΠ΄ΠΈΠ½ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° Π² Infobip Π½Π΅ съм Π²ΠΈΠΆΠ΄Π°Π» ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅ Π½Π° стСйдТа, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΏΠΎΠ½Π΅ частично Π΄Π° съвпада с продукцията.

ВСст Π½Π° продукция: Canary Deployment

ΠžΠΏΠΈΡ‚Π°Ρ…ΠΌΠ΅ Π΄Π° Ρ€Π°Π·Π²ΠΈΠ΅ΠΌ Ρ‚Π°Π·ΠΈ идСя: ΠΏΡŠΡ€Π²ΠΎ ΠΈΠΌΠ°Ρ…ΠΌΠ΅ стСйдТ, послС ΠΏΡ€Π΅ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΡŠΠ½ ΠΈ накрая ΠΏΡ€Π΅ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΡŠΠ½ Π½Π° ΠΏΡ€Π΅ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΡŠΠ½. Но ΠΈ Ρ‚ΠΎΠ²Π° Π½Π΅ ΠΏΠΎΠΌΠΎΠ³Π½Π° - Ρ‚Π΅ Π½Π΅ ΡΡŠΠ²ΠΏΠ°Π΄Π°Ρ…Π° Π΄ΠΎΡ€ΠΈ ΠΏΠΎ мощност. Бъс стСйдТа ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€Π°ΠΌΠ΅ основна функционалност, Π½ΠΎ Π½Π΅ Π·Π½Π°Π΅ΠΌ ΠΊΠ°ΠΊ тя Ρ‰Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€Π° ΠΏΠΎΠ΄ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅.

Π Π΅Π»ΠΈΠ·Π° ΠΏΡ€Π°Π²ΠΈ Ρ‚ΠΎΠ·ΠΈ, ΠΊΠΎΠΉΡ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°. Π’ΠΎΠ²Π° Π΅ Π΄ΠΎΠ±Ρ€Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°: Π΄ΠΎΡ€ΠΈ ΠΊΠΎΠ³Π°Ρ‚ΠΎ някой промСня ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€Π°, Π²Π΅Π΄Π½Π°Π³Π° Π³ΠΎ добавя Π² продукцията. Π’ΠΎΠ²Π° ΠΏΠΎΠΌΠ°Π³Π° Π΄Π° сС Ρ€Π°Π·Π²ΠΈΠ΅ отговорност ΠΈ Π΄Π° Π½Π΅ сС забравят Π½Π°ΠΏΡ€Π°Π²Π΅Π½ΠΈΡ‚Π΅ измСнСния.

ИмамС ΠΈ Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ слоТности. Π—Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Π΅ стрСс - Π΄Π° ΠΎΡ‚Π΄Π΅Π»ΡΡˆ ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅, Π·Π° Π΄Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡˆ всичко Ρ€ΡŠΡ‡Π½ΠΎ.

Π‘ΡŠΠ³Π»Π°ΡΡƒΠ²Π°Π½ΠΈ Ρ€Π΅Π»ΠΈΠ·ΠΈ. Π’ΠΎΠ·ΠΈ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΠΏΡ€Π΅Π΄Π»Π°Π³Π° ΠΌΠ΅Π½ΠΈΠ΄ΠΆΠΌΡŠΠ½Ρ‚ΡŠΡ‚: "НСка сС споразумССм, Ρ‡Π΅ всСки Π΄Π΅Π½ Ρ‰Π΅ тСстватС ΠΈ добавятС Π½ΠΎΠ²ΠΈ вСрсии". Π’ΠΎΠ²Π° Π½Π΅ Ρ€Π°Π±ΠΎΡ‚ΠΈ: Π²ΠΈΠ½Π°Π³ΠΈ ΠΈΠΌΠ° Π΅ΠΊΠΈΠΏ, ΠΊΠΎΠΉΡ‚ΠΎ Ρ‡Π°ΠΊΠ° Π΄Ρ€ΡƒΠ³ΠΈΡ‚Π΅ ΠΈΠ»ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΡ‚ΠΎ.

Smoke тСстовС

ΠžΡ‰Π΅ Π΅Π΄ΠΈΠ½ Π½Π°Ρ‡ΠΈΠ½ Π΄Π° Ρ€Π΅ΡˆΠΈΠΌ Π½Π°ΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ с дСплоя. НСка Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΊΠ°ΠΊ работят smoke тСстовСтС Π½Π° ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½ΠΈΡ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Π΅ΠΊΠΈΠΏ A иска Π΄Π° Π΄Π΅ΠΏΠ»ΠΎΠΉΠ½Π΅ Π½ΠΎΠ²Π° вСрсия.

ΠŸΡŠΡ€Π²ΠΎ, Π΅ΠΊΠΈΠΏΡŠΡ‚ Π΄Π΅ΠΏΠ»ΠΎΠΉΠ²Π° Π΅Π΄ΠΈΠ½ инстанс Π½Π° продукцията. Π‘ΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡΡ‚Π° Π² инстанса ΠΎΡ‚ ΠΌΠΎΠΊΠΎΠ²Π΅Ρ‚Π΅ ΠΈΠΌΠΈΡ‚ΠΈΡ€Π°Ρ‚ Ρ€Π΅Π°Π»Π΅Π½ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ, Π·Π° Π΄Π° съвпаднС с нормалния Π΄Π½Π΅Π²Π΅Π½ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ. Ако всичко Π΅ Π½Π°Ρ€Π΅Π΄, Π΅ΠΊΠΈΠΏΡŠΡ‚ ΠΏΡ€Π΅Π²ΠΊΠ»ΡŽΡ‡Π²Π° Π½ΠΎΠ²Π°Ρ‚Π° вСрсия Π½Π° потрСбитСлския Ρ‚Ρ€Π°Ρ„ΠΈΠΊ.

ВСст Π½Π° продукция: Canary Deployment

Вторият Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π΅ Π΄Π° сС Π΄Π΅ΠΏΠ»ΠΎΠΉΠ²Π° с Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΎΠ±ΠΎΡ€ΡƒΠ΄Π²Π°Π½Π΅. Π•ΠΊΠΈΠΏΡŠΡ‚ Π³ΠΎ тСства Π½Π° продукция, слСд ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΏΡ€Π΅Π²ΠΊΠ»ΡŽΡ‡Π²Π° ΠΈ всичко Ρ€Π°Π±ΠΎΡ‚ΠΈ.

ВСст Π½Π° продукция: Canary Deployment

ΠΠ΅Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ†ΠΈ Π½Π° smoke тСстовСтС:

  • НС Π±ΠΈΠ²Π° Π΄Π° сС довСрявайтС Π½Π° тСстовСтС. ΠžΡ‚ΠΊΡŠΠ΄Π΅ Π΄Π° Π²Π·Π΅ΠΌΠ΅Ρ‚Π΅ ΡΡŠΡ‰ΠΈΡ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ, ΠΊΠ°ΠΊ Π½Π° ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π½Π° вСрсия? ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° ΠΎΡ‚ Π²Ρ‡Π΅Ρ€Π° ΠΈΠ»ΠΈ ΠΎΡ‚ ΠΌΠΈΠ½Π°Π»Π°Ρ‚Π° сСдмица, Π½ΠΎ Ρ‚ΠΎΠΉ Π½Π΅ Π²ΠΈΠ½Π°Π³ΠΈ съвпада с тСкущия.
  • Π’Ρ€ΡƒΠ΄Π½ΠΎ Π΅ Π·Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°. Π©Π΅ трябва Π΄Π° ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Ρ‚Π΅ тСстови Π°ΠΊΠ°ΡƒΠ½Ρ‚ΠΈ, постоянно Π΄Π° Π³ΠΈ Π½ΡƒΠ»ΠΈΡ€Π°Ρ‚Π΅ ΠΏΡ€Π΅Π΄ΠΈ всяко внСдряванС, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΈΡ‚Π΅ записи сС ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Ρ‚ Π² Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅Ρ‚ΠΎ. Π’ΠΎΠ²Π° Π΅ ΠΏΠΎ-слоТно ΠΎΡ‚ Ρ‚ΠΎΠ²Π° Π΄Π° Π½Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ тСст Π² собствСна пСсСнца.

ЕдинствСният бонус Ρ‚ΡƒΠΊ Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈ производитСлността.

Canary Ρ€Π΅Π»ΠΈΠ·ΠΈ

ΠŸΠΎΡ€Π°Π΄ΠΈ Π½Π΅Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ†ΠΈΡ‚Π΅ Π½Π° smoke тСстовСтС, Π·Π°ΠΏΠΎΡ‡Π½Π°Ρ…ΠΌΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ canary Ρ€Π΅Π»ΠΈΠ·ΠΈΡ‚Π΅.

ΠŸΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°, ΠΏΠΎΠ΄ΠΎΠ±Π½Π° Π½Π° Ρ‚ΠΎΠ²Π° ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΡŒΠΎΡ€ΠΈΡ‚Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π»ΠΈ ΠΊΠ°Π½Π°Ρ€ΠΈΡ‚Π΅ Π·Π° индикация Π½Π° Π½ΠΈΠ²ΠΎΡ‚ΠΎ Π½Π° Π³Π°Π·ΠΎΠ²Π΅Ρ‚Π΅, Π½Π°ΠΌΠ΅Ρ€ΠΈ своСто място ΠΈ Π² ИВ. ΠŸΡƒΡΠΊΠ°ΠΌΠ΅ ΠΌΠ°Π»ΠΊΠΎ истински ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π΅Π½ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ Π½Π° Π½ΠΎΠ²Π°Ρ‚Π° вСрсия, ΠΊΠ°Ρ‚ΠΎ сС ΠΎΠΏΠΈΡ‚Π²Π°ΠΌΠ΅ Π΄Π° сС вмСстим Π² Π‘ΠΏΠΎΡ€Π°Π·ΡƒΠΌΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π·Π° Π½ΠΈΠ²ΠΎ Π½Π° услуга (SLA). SLA Π΅ Π½Π°ΡˆΠ΅Ρ‚ΠΎ "ΠΏΡ€Π°Π²ΠΎ Π½Π° Π³Ρ€Π΅ΡˆΠΊΠ°", ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ вСднъТ годишно (ΠΈΠ»ΠΈ Π·Π° някакъв Π΄Ρ€ΡƒΠ³ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄). Ако всичко Π΅ Π½Π°Ρ€Π΅Π΄, Ρ‰Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΏΠΎΠ²Π΅Ρ‡Π΅ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ. Ако Π½Π΅ β€” Ρ‰Π΅ Π²ΡŠΡ€Π½Π΅ΠΌ ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½ΠΈΡ‚Π΅ вСрсии.

ВСст Π½Π° продукция: Canary Deployment

РСализация ΠΈ нюанси

Как Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Ρ…ΠΌΠ΅ canary Ρ€Π΅Π»ΠΈΠ·ΠΈΡ‚Π΅? НапримСр, Π³Ρ€ΡƒΠΏΠ° ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ ΠΈΠ·ΠΏΡ€Π°Ρ‰Π° ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡ ΠΏΡ€Π΅Π· нашия сСрвис.

ВСст Π½Π° продукция: Canary Deployment

ВнСдряванСто ΠΏΡ€ΠΎΡ‚ΠΈΡ‡Π° ΠΏΠΎ слСдния Π½Π°Ρ‡ΠΈΠ½: ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π²Π°ΠΌΠ΅ Π΅Π΄ΠΈΠ½ ΡƒΠ·Π΅Π» ΠΎΡ‚ балансировчика (1), смСнямС вСрсията (2) ΠΈ ΠΎΡ‚Π΄Π΅Π»Π½ΠΎ пускамС ΠΌΠ°Π»ΠΊΠΎ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ (3).

ВСст Π½Π° продукция: Canary Deployment

Π’ ΠΎΠ±Ρ‰ΠΈ Π»ΠΈΠ½ΠΈΠΈ, Π² Π³Ρ€ΡƒΠΏΠ°Ρ‚Π° всички Ρ‰Π΅ Π±ΡŠΠ΄Π°Ρ‚ Π΄ΠΎΠ²ΠΎΠ»Π½ΠΈ, Π΄ΠΎΡ€ΠΈ Π°ΠΊΠΎ Π΅Π΄ΠΈΠ½ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π» Π΅ Π½Π΅Π΄ΠΎΠ²ΠΎΠ»Π΅Π½. Ако всичко Π΅ Π½Π°Ρ€Π΅Π΄ β€” смСнямС всички вСрсии.

ВСст Π½Π° продукция: Canary Deployment

Π©Π΅ ΠΏΠΎΠΊΠ°ΠΆΠ° схСматично ΠΊΠ°ΠΊ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° Ρ‚ΠΎΠ²Π° Π·Π° микросСрвиситС Π² ΠΏΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ случаи.

Има Service Discovery ΠΈ ΠΎΡ‰Π΅ Π΄Π²Π΅ услуги: S1N1 ΠΈ S2. ΠŸΡŠΡ€Π²Π°Ρ‚Π° услуга (S1N1) увСдомява Service Discovery ΠΊΠΎΠ³Π°Ρ‚ΠΎ стартира, Π° Service Discovery я запомня. Π’Ρ‚ΠΎΡ€Π°Ρ‚Π° услуга с Π΄Π²Π° ΡƒΠ·Π»Π° (S2N1 ΠΈ S2N2) ΡΡŠΡ‰ΠΎ увСдомява Service Discovery ΠΏΡ€ΠΈ стартиранС.

ВСст Π½Π° продукция: Canary Deployment

Π’Ρ‚ΠΎΡ€Π°Ρ‚Π° услуга Π·Π° ΠΏΡŠΡ€Π²Π°Ρ‚Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΊΠ°Ρ‚ΠΎ ΡΡŠΡ€Π²ΡŠΡ€. ΠŸΡŠΡ€Π²Π°Ρ‚Π° отправя Π·Π°ΠΏΠΈΡ‚Π²Π°Π½Π΅ Π΄ΠΎ Service Discovery Π·Π° информация относно своитС ΡΡŠΡ€Π²ΡŠΡ€ΠΈ, Π° ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈ β€” Π³ΠΈ Ρ‚ΡŠΡ€ΡΠΈ ΠΈ провСрява (β€žhealth checkβ€œ). ΠšΠΎΠ³Π°Ρ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈ, тя ΠΈΠ·ΠΏΡ€Π°Ρ‰Π° ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡ Π΄ΠΎ тях.

ΠšΠΎΠ³Π°Ρ‚ΠΎ някой иска Π΄Π° Π²Π½Π΅Π΄Ρ€ΠΈ Π½ΠΎΠ²Π° вСрсия Π½Π° Π²Ρ‚ΠΎΡ€Π°Ρ‚Π° услуга, Ρ‚ΠΎΠΉ увСдомява Service Discovery, Ρ‡Π΅ вторият ΡƒΠ·Π΅Π» Ρ‰Π΅ бъдС canary ΡƒΠ·Π΅Π»: Π½Π° Π½Π΅Π³ΠΎ Ρ‰Π΅ сС ΠΈΠ·ΠΏΡ€Π°Ρ‰Π° ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ, Π·Π°Ρ‰ΠΎΡ‚ΠΎ сСга прСдстои внСдряванС. ΠŸΡ€Π΅ΠΌΠ°Ρ…Π²Π°ΠΌΠ΅ canary ΡƒΠ·Π΅Π»Π° ΠΎΡ‚ балансировчика ΠΈ ΠΏΡŠΡ€Π²Π°Ρ‚Π° услуга Π½Π΅ ΠΈΠ·ΠΏΡ€Π°Ρ‰Π° Ρ‚Ρ€Π°Ρ„ΠΈΠΊ към Π½Π΅Π³ΠΎ.

ВСст Π½Π° продукция: Canary Deployment

БмСнямС вСрсията ΠΈ Service Discovery Π·Π½Π°Π΅, Ρ‡Π΅ Π²Ρ‚ΠΎΡ€Π°Ρ‚Π° Π½ΠΎΠ΄Π° Π²Π΅Ρ‡Π΅ Π΅ canary β€” ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ѝ Π΄Π°Π²Π°ΠΌΠ΅ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅ (5%). Ако всичко Π΅ Π½Π°Ρ€Π΅Π΄, смСнямС вСрсията, Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΡΠ²Π°ΠΌΠ΅ Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ ΠΈ ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ°Π²Π°ΠΌΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°.

Π—Π° Π΄Π° Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°ΠΌΠ΅ всичко Ρ‚ΠΎΠ²Π°, Π½ΠΈ трябват:

  • балансировка;
  • ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Π΅ Π²Π°ΠΆΠ½ΠΎ Π΄Π° Π·Π½Π°Π΅ΠΌ ΠΊΠ°ΠΊΠ²ΠΎ ΠΎΡ‡Π°ΠΊΠ²Π° всСки ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π» ΠΈ ΠΊΠ°ΠΊ Ρ‚ΠΎΡ‡Π½ΠΎ работят Π½Π°ΡˆΠΈΡ‚Π΅ услуги;
  • Π°Π½Π°Π»ΠΈΠ· Π½Π° вСрсиитС, Π·Π° Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ ΠΊΠΎΠ»ΠΊΠΎ Π΄ΠΎΠ±Ρ€Π΅ Π½ΠΎΠ²Π°Ρ‚Π° вСрсия Ρ‰Π΅ Ρ€Π°Π±ΠΎΡ‚ΠΈ Π² продукция;
  • автоматизация β€” пишСм послСдоватСлността Π½Π° Ρ€Π°Π·Π³Ρ€ΡŠΡ‰Π°Π½Π΅ (deployment pipeline).

ВСст Π½Π° продукция: Canary Deployment

Балансировка

Π’ΠΎΠ²Π° Π΅ ΠΏΡŠΡ€Π²ΠΎΡ‚ΠΎ, Π·Π° ΠΊΠΎΠ΅Ρ‚ΠΎ трябва Π΄Π° помислим. Има Π΄Π²Π΅ стратСгии Π·Π° балансировка.

Най-простият Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Π΅Π΄Π½Π° Π½ΠΎΠ΄Π° Π²ΠΈΠ½Π°Π³ΠΈ Π΅ canary. Π’Π°Π·ΠΈ Π½ΠΎΠ΄Π° Π²ΠΈΠ½Π°Π³ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π° ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ ΠΈ Π·Π°ΠΏΠΎΡ‡Π²Π°ΠΌΠ΅ дСплоя с нСя. ΠŸΡ€ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ Ρ‰Π΅ сравним Π½Π΅ΠΉΠ½Π°Ρ‚Π° Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΡ€Π΅Π΄ΠΈ дСплоя ΠΈ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° Π½Π΅Π³ΠΎ. НапримСр, Π°ΠΊΠΎ Π³Ρ€Π΅ΡˆΠΊΠΈΡ‚Π΅ са сС ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ»ΠΈ 2 ΠΏΡŠΡ‚ΠΈ, Π·Π½Π°Ρ‡ΠΈ ΠΈ Ρ‰Π΅Ρ‚Π°Ρ‚Π° Π΅ нараснала 2 ΠΏΡŠΡ‚ΠΈ.

Canary-Π½ΠΎΠ΄Π° сС Π·Π°Π΄Π°Π²Π° Π² процСса Π½Π° Π΄Π΅ΠΏΠ»ΠΎΠΉ. ΠšΠΎΠ³Π°Ρ‚ΠΎ Π΄Π΅ΠΏΠ»ΠΎΠΉΡŠΡ‚ ΠΏΡ€ΠΈΠΊΠ»ΡŽΡ‡ΠΈ ΠΈ Π²Π·Π΅ΠΌΠ΅ΠΌ статус canary ΠΎΡ‚ нСя, Π±Π°Π»Π°Π½ΡΡŠΡ‚ Π½Π° Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° Ρ‰Π΅ сС Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΠΈ. Π‘ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ машини Ρ‰Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Ρ€Π΅Π°Π»Π½ΠΎ Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅.

ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³

ΠšΡ€Π°Π΅Π½ камък Π½Π° canary-Ρ€Π΅Π»ΠΈΠ·ΠΈΡ‚Π΅. Врябва Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ Ρ‚ΠΎΡ‡Π½ΠΎ Π·Π°Ρ‰ΠΎ Π³ΠΎ ΠΏΡ€Π°Π²ΠΈΠΌ ΠΈ ΠΊΠ°ΠΊΠ²ΠΈ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ искамС Π΄Π° ΡΡŠΠ±ΠΈΡ€Π°ΠΌΠ΅.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ΠΈ Π·Π° ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΡΡŠΠ±ΠΈΡ€Π°ΠΌΠ΅ ΠΎΡ‚ Π½Π°ΡˆΠΈΡ‚Π΅ услуги.

  • Π‘Ρ€ΠΎΠΉ Π³Ρ€Π΅ΡˆΠΊΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ сС записват Π² Π»ΠΎΠ³ΠΎΠ²Π΅Ρ‚Π΅. Π’ΠΎΠ²Π° Π΅ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π΅Π½ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π», Ρ‡Π΅ всичко Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΊΠ°ΠΊΡ‚ΠΎ трябва. ΠšΠ°Ρ‚ΠΎ цяло, Ρ‚ΠΎΠ²Π° Π΅ Π΄ΠΎΠ±Ρ€Π° ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠ°.
  • Π’Ρ€Π΅ΠΌΠ΅ Π·Π° изпълнСниС Π½Π° заявкитС (latency). Π’Π°Π·ΠΈ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠ° я Π½Π°Π±Π»ΡŽΠ΄Π°Π²Π°Ρ‚ всички, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ всички искат Π΄Π° работят Π±ΡŠΡ€Π·ΠΎ.
  • Π Π°Π·ΠΌΠ΅Ρ€ Π½Π° ΠΎΠΏΠ°ΡˆΠΊΠ°Ρ‚Π° (throughput).
  • Π‘Ρ€ΠΎΠΉ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΈ ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ΠΈ Π² сСкунда.
  • Π’Ρ€Π΅ΠΌΠ΅ Π·Π° изпълнСниС Π½Π° 95% ΠΎΡ‚ всички заявки.
  • БизнСс-ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ: ΠΊΠΎΠ»ΠΊΠΎ ΠΏΠ°Ρ€ΠΈ Π±ΠΈΠ·Π½Π΅ΡΡŠΡ‚ ΠΏΠ΅Ρ‡Π΅Π»ΠΈ Π·Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ Π²Ρ€Π΅ΠΌΠ΅ ΠΈΠ»ΠΈ ΠΎΡ‚Π»ΠΈΠ² Π½Π° ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ. Π’Π΅Π·ΠΈ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ Π·Π° Π½Π°ΡˆΠ°Ρ‚Π° Π½ΠΎΠ²Π° вСрсия ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΏΠΎ-Π²Π°ΠΆΠ½ΠΈ ΠΎΡ‚ Ρ‚Π΅Π·ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ добавят ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΈΡ‚Π΅.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ΠΈ Π·Π° ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ Π² ΠΏΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ популярни систСми Π·Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³.

Counter. Π’ΠΎΠ²Π° Π΅ някаква растяща Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π±Ρ€ΠΎΠΉ Π³Ρ€Π΅ΡˆΠΊΠΈ. Π’Π°Π·ΠΈ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠ° лСсно сС ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΠΎΠ»ΠΈΡ€Π° ΠΈ сС ΠΈΠ·ΡƒΡ‡Π°Π²Π° Π³Ρ€Π°Ρ„ΠΈΠΊ: Π²Ρ‡Π΅Ρ€Π° имашС 2 Π³Ρ€Π΅ΡˆΠΊΠΈ, Π° днСс 500, Π·Π½Π°Ρ‡ΠΈ Π½Π΅Ρ‰ΠΎ Π΅ Ρ‚Ρ€ΡŠΠ³Π½Π°Π»ΠΎ Π½Π°ΠΎΠΏΠ°ΠΊΠΈ.

Π‘Ρ€ΠΎΠΉ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² ΠΌΠΈΠ½ΡƒΡ‚Π° ΠΈΠ»ΠΈ Π² сСкунда, Ρ‚ΠΎΠ²Π° Π΅ Π΅Π΄ΠΈΠ½ ΠΎΡ‚ Π½Π°ΠΉ-Π²Π°ΠΆΠ½ΠΈΡ‚Π΅ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС изчислят с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Counter. Π’Π΅Π·ΠΈ Π΄Π°Π½Π½ΠΈ Π΄Π°Π²Π°Ρ‚ ясна прСдстава Π·Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° систСмата Π² Π΄ΡŠΠ»Π³ΠΎΡΡ€ΠΎΡ‡Π΅Π½ ΠΏΠ»Π°Π½. НСка Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π½Π° Π³Ρ€Π°Ρ„ΠΈΠΊΠ° с броя Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈΡ‚Π΅ Π² сСкунда Π·Π° Π΄Π²Π΅ вСрсии Π½Π° производствСната систСма.

ВСст Π½Π° продукция: Canary Deployment

Π’ ΠΏΡŠΡ€Π²Π°Ρ‚Π° вСрсия имашС ΠΌΠ°Π»ΠΊΠΎ Π³Ρ€Π΅ΡˆΠΊΠΈ, вСроятно Π°ΡƒΠ΄ΠΈΡ‚ΡŠΡ‚ Π½Π΅ Π΅ Ρ€Π°Π±ΠΎΡ‚ΠΈΠ». Π’ΡŠΠ² Π²Ρ‚ΠΎΡ€Π°Ρ‚Π° вСрсия всичко Π΅ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΏΠΎ-лошо. МоТСм Π΄Π° ΠΊΠ°ΠΆΠ΅ΠΌ със сигурност, Ρ‡Π΅ ΠΈΠΌΠ° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ, Π·Π°Ρ‚ΠΎΠ²Π° трябва Π΄Π° Π²ΡŠΡ€Π½Π΅ΠΌ Ρ‚Π°Π·ΠΈ вСрсия.

Gauge. ΠœΠ΅Ρ‚Ρ€ΠΈΠΊΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠ»ΠΈΡ‡Π°Ρ‚ Π½Π° Counter, Π½ΠΎ записвамС стойности, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠ³Π°Ρ‚ ΠΊΠ°ΠΊΡ‚ΠΎ Π΄Π° сС ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Π²Π°Ρ‚, Ρ‚Π°ΠΊΠ° ΠΈ Π΄Π° намаляват. НапримСр, Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π·Π° изпълнСниС Π½Π° заявки ΠΈΠ»ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€ΡŠΡ‚ Π½Π° ΠΎΠΏΠ°ΡˆΠΊΠ°Ρ‚Π°.

На Π³Ρ€Π°Ρ„ΠΈΠΊΠ° Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π·Π° Π²Ρ€Π΅ΠΌΠ΅ Π½Π° ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ (latency). По Π³Ρ€Π°Ρ„ΠΈΠΊΠ° сС Π²ΠΈΠΆΠ΄Π°, Ρ‡Π΅ вСрсиитС са ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ, с тях ΠΌΠΎΠΆΠ΅ Π΄Π° сС Ρ€Π°Π±ΠΎΡ‚ΠΈ. Но Π°ΠΊΠΎ сС Π²Π³Π»Π΅Π΄Π°Ρ‚Π΅ ΠΏΠΎ-Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»Π½ΠΎ, Ρ‰Π΅ Π·Π°Π±Π΅Π»Π΅ΠΆΠΈΡ‚Π΅ ΠΊΠ°ΠΊ сС промСня Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π°Ρ‚Π°. Ако Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π·Π° изпълнСниС Π½Π° заявки нараства с добавянСто Π½Π° ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ, Π²Π΅Π΄Π½Π°Π³Π° става ясно, Ρ‡Π΅ ΠΈΠΌΠ° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ β€” ΠΏΡ€Π΅Π΄ΠΈ Ρ‚Π°ΠΊΠΎΠ²Π° Π½Π΅Ρ‰ΠΎ нямашС.

ВСст Π½Π° продукция: Canary Deployment

Summary. Π•Π΄ΠΈΠ½ ΠΎΡ‚ Π½Π°ΠΉ-Π²Π°ΠΆΠ½ΠΈΡ‚Π΅ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ Π·Π° бизнСса са ΠΏΠ΅Ρ€Ρ†Π΅Π½Ρ‚ΠΈΠ»ΠΈΡ‚Π΅. ΠœΠ΅Ρ‚Ρ€ΠΈΠΊΠ°Ρ‚Π° ΠΏΠΎΠΊΠ°Π·Π²Π°, Ρ‡Π΅ Π² 95% ΠΎΡ‚ случаитС Π½Π°ΡˆΠ°Ρ‚Π° систСма Ρ€Π°Π±ΠΎΡ‚ΠΈ Ρ‚Π°ΠΊΠ°, ΠΊΠ°ΠΊΡ‚ΠΎ Π½ΠΈΠ΅ искамС. МоТСм Π΄Π° ΠΏΡ€ΠΈΠ΅ΠΌΠ΅ΠΌ, Π°ΠΊΠΎ някъдС ΠΈΠΌΠ° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ, Π·Π°Ρ‰ΠΎΡ‚ΠΎ Ρ€Π°Π·Π±ΠΈΡ€Π°ΠΌΠ΅ ΠΎΠ±Ρ‰Π°Ρ‚Π° тСндСнция, ΠΊΠΎΠ»ΠΊΠΎ Π΄ΠΎΠ±Ρ€Π΅ ΠΈΠ»ΠΈ Π·Π»Π΅ Π΅ всичко.

Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ΠΈ

ELK Stack. МоТСм Π΄Π° Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°ΠΌΠ΅ canary с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Elasticsearch β€” записвамС Π² Π½Π΅Π³ΠΎ Π³Ρ€Π΅ΡˆΠΊΠΈ, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Π½Π°ΡΡ‚ΡŠΠΏΠ²Π°Ρ‚ ΡΡŠΠ±ΠΈΡ‚ΠΈΡ. Π‘ прост API ΠΏΠΎΠ²ΠΈΠΊΠ²Π°Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ броя Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈΡ‚Π΅ във всСки ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΎΡ‚ Π²Ρ€Π΅ΠΌΠ΅ ΠΈ Π΄Π° Π³ΠΎ сравним с ΠΌΠΈΠ½Π°Π»ΠΈ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ΠΈ: GET /applg/_cunt?q=level:errr.

Prometheus. Показал Π΅ Π΄ΠΎΠ±Ρ€ΠΈ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ Π² Infobip. Позволява Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½ΠΈ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚ΠΈ.

МоТСм Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ level, instance, service, ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€Π°ΠΉΠΊΠΈ Π³ΠΈ Π² Π΅Π΄Π½Π° систСма. Π‘ ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° offset ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, стойността Π½Π° Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π°Ρ‚Π° ΠΎΡ‚ ΠΌΠΈΠ½Π°Π»Π°Ρ‚Π° сСдмица с Π΅Π΄Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° GET /api/v1/query?query={query}, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ {query}:

rate(logback_appender_total{ 
    level="error",  
    instance=~"$instance" 
}[5m] offset $offset_value)

Анализ Π½Π° вСрсиитС

Има няколко стратСгии Π·Π° Π°Π½Π°Π»ΠΈΠ· Π½Π° вСрсиитС.

Π”Π° сС Π½Π°Π±Π»ΡŽΠ΄Π°Π²Π°Ρ‚ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈΡ‚Π΅ само Π½Π° canary Π½ΠΎΠ΄Π°. Π•Π΄ΠΈΠ½ ΠΎΡ‚ Π½Π°ΠΉ-проститС Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΈ: Ρ€Π°Π·ΠΏΠΎΠ»ΠΎΠΆΠΈΠ»ΠΈ смС Π½ΠΎΠ²Π° вСрсия ΠΈ ΠΈΠ·ΡƒΡ‡Π°Π²Π°ΠΌΠ΅ само Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° ѝ. Но Π°ΠΊΠΎ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΡŠΡ‚ Π² Ρ‚ΠΎΠ²Π° Π²Ρ€Π΅ΠΌΠ΅ Π·Π°ΠΏΠΎΡ‡Π½Π΅ Π΄Π° Ρ€Π°Π·Π³Π»Π΅ΠΆΠ΄Π° Π»ΠΎΠ³ΠΎΠ²Π΅Ρ‚Π΅, постоянно Π½Π΅Ρ€Π²Π½ΠΎ ΠΏΡ€Π΅Π·Π°Ρ€Π΅ΠΆΠ΄Π°ΠΉΠΊΠΈ страницитС, Ρ‚ΠΎ Ρ‚ΠΎΠ²Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π½Π΅ сС Ρ€Π°Π·Π»ΠΈΡ‡Π°Π²Π° ΠΎΡ‚ останалитС.

Canary Π½ΠΎΠ΄Π° сС сравнява с всяка Π΄Ρ€ΡƒΠ³Π° Π½ΠΎΠ΄Π°.. Π’ΠΎΠ²Π° сравнСниС с Π΄Ρ€ΡƒΠ³ΠΈ инстанции, ΠΊΠΎΠΈΡ‚ΠΎ работят Π½Π° пълСн Ρ‚Ρ€Π°Ρ„ΠΈΠΊ. НапримСр, Π°ΠΊΠΎ с малък Ρ‚Ρ€Π°Ρ„ΠΈΠΊ Π½Π΅Ρ‰Π°Ρ‚Π° Π½Π΅ са ΠΏΠΎ-Π΄ΠΎΠ±Ρ€ΠΈ ΠΈΠ»ΠΈ са ΠΏΠΎ-лоши ΠΎΡ‚ Ρ€Π΅Π°Π»Π½ΠΈΡ‚Π΅ инстанции, Π½Π΅Ρ‰ΠΎ Π½Π΅ Π΅ Π½Π°Ρ€Π΅Π΄.

Canary-Π½ΠΎΠ΄Π° сС сравнява със сСбС си Π² ΠΌΠΈΠ½Π°Π»ΠΎΡ‚ΠΎ. НодитС, посвСтСни Π½Π° canary, ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС сравняват с историчСскитС Π΄Π°Π½Π½ΠΈ. НапримСр, Π°ΠΊΠΎ всичко Π΅ Π±ΠΈΠ»ΠΎ Π½Π°Ρ€Π΅Π΄ ΠΏΡ€Π΅Π΄ΠΈ сСдмица, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° сС ΠΎΠΏΡ€Π΅ΠΌ Π½Π° Ρ‚Π΅Π·ΠΈ Π΄Π°Π½Π½ΠΈ, Π·Π° Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ Ρ‚Π΅ΠΊΡƒΡ‰Π°Ρ‚Π° ситуация.

Автоматизация

ИскамС Π΄Π° освободим ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΈΡ‚Π΅ ΠΎΡ‚ Ρ€ΡŠΡ‡Π½ΠΎ сравняванС, Π·Π°Ρ‚ΠΎΠ²Π° Π΅ Π²Π°ΠΆΠ½ΠΎ Π΄Π° Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°ΠΌΠ΅ автоматизация. ΠŸΡ€ΠΎΡ†Π΅ΡΡŠΡ‚ Π½Π° Π΄Π΅ΠΏΠ»ΠΎΠΉ (deployment pipeline) ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° Ρ‚Π°ΠΊΠ°:

  • стартирамС;
  • ΠΏΡ€Π΅ΠΌΠ°Ρ…Π²Π°ΠΌΠ΅ Π½ΠΎΠ΄Π° ΠΎΡ‚ балансСра;
  • поставямС canary-Π½ΠΎΠ΄Π°;
  • Π²ΠΊΠ»ΡŽΡ‡Π²Π°ΠΌΠ΅ балансСра с ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΎ количСство Ρ‚Ρ€Π°Ρ„ΠΈΠΊ;
  • сравнявамС.

ВСст Π½Π° продукция: Canary Deployment

На Ρ‚ΠΎΠ·ΠΈ Π΅Ρ‚Π°ΠΏ Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°ΠΌΠ΅ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ сравнСниС. Как ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΠΈ Π·Π°Ρ‰ΠΎ Π΅ ΠΏΠΎ-Π΄ΠΎΠ±Ρ€Π΅ ΠΎΡ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°Ρ‚Π° слСд Π΄Π΅ΠΏΠ»ΠΎΠΉ, Ρ‰Π΅ Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ с ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΎΡ‚ Jenkins.

Π’ΠΎΠ²Π° Π΅ pipeline Π½Π° Groovy.

while (System.currentTimeMillis() < endCanaryTs) {
    def isOk = compare(srv, canary, time, base, offset, metrics)
    if (isOk) {
        sleep DEFAULT SLEEP
    }   else {
        echo "Canary Π½Π΅ Π΅ ΡƒΡΠΏΠ΅ΡˆΠ΅Π½, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΅ Π΄Π° сС Π²ΡŠΡ€Π½Π΅ΠΌ"  
        return false
    }
}

Π’ΡƒΠΊ Π² Ρ†ΠΈΠΊΡŠΠ»Π° Π·Π°Π΄Π°Π²Π°ΠΌΠ΅, Ρ‡Π΅ Ρ‰Π΅ сравнявамС Π½ΠΎΠ²Π°Ρ‚Π° Π½ΠΎΠ΄Π° Π² ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° час. Ако ΠΏΡ€ΠΎΡ†Π΅ΡΡŠΡ‚ canary всС ΠΎΡ‰Π΅ Π½Π΅ Π΅ Π·Π°Π²ΡŠΡ€ΡˆΠ΅Π½ β€” ΠΈΠ·Π²ΠΈΠΊΠ²Π°ΠΌΠ΅ функцията. Вя ΡΡŠΠΎΠ±Ρ‰Π°Π²Π°, Π΄Π°Π»ΠΈ всичко Π΅ Π½Π°Ρ€Π΅Π΄ ΠΈΠ»ΠΈ Π½Π΅: def isOk = compare(srv, canary, time, base, offset, metrics).

Ако всичко Π΅ Π½Π°Ρ€Π΅Π΄ β€” sleep DEFAULT SLEEP, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π·Π° Π΅Π΄Π½Π° сСкунда, ΠΈ ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ°Π²Π°ΠΌΠ΅. Ако Π½Π΅, ΠΈΠ·Π»ΠΈΠ·Π°ΠΌΠ΅ β€” Π΄Π΅ΠΏΠ»ΠΎΠΉ Π½Π΅ Π΅ ΡƒΡΠΏΠ΅ΡˆΠ΅Π½.

ОписаниС Π½Π° ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠ°Ρ‚Π°. НСка Π²ΠΈΠ΄ΠΈΠΌ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° функцията compare Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π½Π° DSL.

metric(
    'errorCounts',
    'rate(errorCounts{node=~"$canaryInst"}[5m] offset $offset)',
    {   baseValue, canaryValue ->
        if (canaryValue > baseValue * 1.3) return false 
        return true
    }
)

Π”Π° ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Π΅ сравнявамС броя Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈΡ‚Π΅ ΠΈ искамС Π΄Π° ΡƒΠ·Π½Π°Π΅ΠΌ ΠΊΠΎΠ»ΠΊΠΎ Π³Ρ€Π΅ΡˆΠΊΠΈ ΠΈΠΌΠ° Π² сСкунда Π·Π° послСднитС 5 ΠΌΠΈΠ½ΡƒΡ‚ΠΈ.

ИмамС Π΄Π²Π΅ стойности: Π±Π°Π·ΠΎΠ²Π° ΠΈ Π½Π° canary-Π½ΠΎΠ΄Π°. Бтойността Π½Π° canary-Π½ΠΎΠ΄Π° β€” Ρ‚Π΅ΠΊΡƒΡ‰Π°. Π‘Π°Π·ΠΎΠ²Π°Ρ‚Π° β€” baseValue β€” Ρ‚ΠΎΠ²Π° Π΅ стойността Π½Π° всяка Π΄Ρ€ΡƒΠ³Π° Π½Π΅ canary-Π½ΠΎΠ΄Π°. БравнявамС стойноститС ΠΏΠΎΠΌΠ΅ΠΆΠ΄Ρƒ ΠΈΠΌ ΠΏΠΎ Ρ„ΠΎΡ€ΠΌΡƒΠ»Π°Ρ‚Π°, която поставямС, Π² зависимост ΠΎΡ‚ ΠΎΠΏΠΈΡ‚Π° ΠΈ Π½Π°Π±Π»ΡŽΠ΄Π΅Π½ΠΈΡΡ‚Π° си. Ако стойността canaryValue Π΅ лоша, Ρ‚ΠΎ Π΄Π΅ΠΏΠ»ΠΎΠΉ Π½Π΅ Π΅ ΡƒΡΠΏΠ΅ΡˆΠ΅Π½ ΠΈ сС Π²Ρ€ΡŠΡ‰Π°ΠΌΠ΅ Π½Π°Π·Π°Π΄.

Π—Π°Ρ‰ΠΎ Π΅ Π½ΡƒΠΆΠ½ΠΎ всичко Ρ‚ΠΎΠ²Π°?

Π§ΠΎΠ²Π΅ΠΊ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈ стотици ΠΈ хиляди ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ., ΠΎΡ‰Π΅ ΠΏΠΎΠ²Π΅Ρ‡Π΅, Ρ‡Π΅ Ρ‚ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π½Π°ΠΏΡ€Π°Π²ΠΈ Π±ΡŠΡ€Π·ΠΎ. Автоматичното сравнСниС ΠΏΠΎΠΌΠ°Π³Π° Π·Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° всички ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ ΠΈ Π±ΡŠΡ€Π·ΠΎ увСдомява Π·Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ. Π’Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π·Π° ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ Π΅ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΎ: Π°ΠΊΠΎ Π½Π΅Ρ‰ΠΎ сС Π΅ случило ΠΏΡ€Π΅Π· послСднитС 2 сСкунди, Ρ‰Π΅Ρ‚ΠΈΡ‚Π΅ Ρ‰Π΅ Π±ΡŠΠ΄Π°Ρ‚ ΠΏΠΎ-Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΈ, ΠΎΡ‚ΠΊΠΎΠ»ΠΊΠΎΡ‚ΠΎ Π°ΠΊΠΎ сС Π΅ случило 15 ΠΌΠΈΠ½ΡƒΡ‚ΠΈ ΠΏΠΎ-Ρ€Π°Π½ΠΎ. Π”ΠΎΠΊΠ°Ρ‚ΠΎ някой Π·Π°Π±Π΅Π»Π΅ΠΆΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, напишС Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π°, Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° нас, Π·Π° Π΄Π° Π²ΡŠΡ€Π½Π΅ΠΌ Π½Π΅Ρ‰Π°Ρ‚Π°, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π·Π°Π³ΡƒΠ±ΠΈΠΌ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ.

Ако ΠΏΡ€ΠΎΡ†Π΅ΡΡŠΡ‚ Π΅ ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π» ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ, Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ внСдрявамС всички останали възли. ΠŸΡ€Π΅Π· Ρ‚ΠΎΠ²Π° Π²Ρ€Π΅ΠΌΠ΅ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΈΡ‚Π΅ Π½Π΅ правят Π½ΠΈΡ‰ΠΎ. Π‘Π°ΠΌΠΎ ΠΊΠΎΠ³Π°Ρ‚ΠΎ стартират canary, Ρ€Π΅ΡˆΠ°Π²Π°Ρ‚ ΠΊΠ°ΠΊΠ²ΠΈ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ Π΄Π° Π²Π·Π΅ΠΌΠ°Ρ‚, ΠΊΠΎΠ»ΠΊΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π΄Π° ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Ρ‚ сравнСниС, ΠΊΠ°ΠΊΠ²Π° стратСгия Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚.

ВСст Π½Π° продукция: Canary Deployment

Ако Π²ΡŠΠ·Π½ΠΈΠΊΠ½Π°Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ β€” Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎΡ‚Π° отмСнямС canary-ΠΏΡ€Π΅Π½ΠΎΠ΄, Ρ€Π°Π±ΠΎΡ‚ΠΈΠΌ с ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½ΠΈ вСрсии ΠΈ поправямС Π³Ρ€Π΅ΡˆΠΊΠΈΡ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ смС ΠΎΡ‚ΠΊΡ€ΠΈΠ»ΠΈ. Π§Ρ€Π΅Π· ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈΡ‚Π΅ Π΅ лСсно Π΄Π° Π³ΠΈ Π½Π°ΠΌΠ΅Ρ€ΠΈΠΌ ΠΈ Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ Ρ‰Π΅Ρ‚ΠΈΡ‚Π΅ ΠΎΡ‚ Π½ΠΎΠ²Π°Ρ‚Π° вСрсия.

ΠŸΡ€Π΅ΠΏΡΡ‚ΡΡ‚Π²ΠΈΡ

Π Π°Π·Π±ΠΈΡ€Π° сС, Π½Π΅ Π΅ лСсно Π΄Π° сС Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°. ΠŸΡŠΡ€Π²ΠΎ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° Π΅ ΠΎΠ±Ρ‰Π° систСма Π·Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³. Π˜Π½ΠΆΠ΅Π½Π΅Ρ€ΠΈΡ‚Π΅ ΠΈΠΌΠ°Ρ‚ свои ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ, ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° ΠΈ Π°Π½Π°Π»ΠΈΡ‚ΠΈΡ†ΠΈΡ‚Π΅ β€” Π΄Ρ€ΡƒΠ³ΠΈ, бизнСса Ρ‚Ρ€Π΅Ρ‚ΠΈ. ΠžΠ±Ρ‰Π°Ρ‚Π° систСма Π΅ общият Π΅Π·ΠΈΠΊ, Π½Π° ΠΊΠΎΠΉΡ‚ΠΎ говорят бизнСса ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π°.

Врябва Π΄Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° стабилността Π½Π° ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈΡ‚Π΅. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΏΠΎΠΌΠ°Π³Π° Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ, ΠΊΠΎΠΉ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π΅Π½ Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ, Π·Π° Π΄Π° сС Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€Π° качСството.

Как Π΄Π° Π³ΠΎ постигнСм? Π˜Π·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ canary-сСрвиз, Π° Π½Π΅ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π½Π° внСдряванС. ДобавямС Π½Π° старата вСрсия нСкакъв сСрвис, ΠΊΠΎΠΉΡ‚ΠΎ ΠΏΠΎ всяко Π²Ρ€Π΅ΠΌΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΠΎΠ΅ΠΌΠ΅ всяка ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° Π½ΠΎΠ΄Π°, Π΄Π° Π½Π°ΠΌΠ°Π»ΠΈ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° Π±Π΅Π· внСдряванС. Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° сравнявамС: ΠΈΠ·ΡƒΡ‡Π°Π²Π°ΠΌΠ΅ Π³Ρ€Π΅ΡˆΠΊΠΈΡ‚Π΅ ΠΈ Ρ‚ΡŠΡ€ΡΠΈΠΌ ΠΎΠ½Π°Π·ΠΈ Π³Ρ€Π°Π½ΠΈΡ†Π°, ΠΏΡ€ΠΈ която достигамС качСството.

ВСст Π½Π° продукция: Canary Deployment

Каква ΠΏΠΎΠ»Π·Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ…ΠΌΠ΅ ΠΎΡ‚ canary-Ρ€Π΅Π»ΠΈΠ·ΠΈΡ‚Π΅

ΠœΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Ρ…ΠΌΠ΅ ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚Π° Π½Π° Ρ‰Π΅Ρ‚ΠΈΡ‚Π΅ ΠΎΡ‚ бъговС. ΠŸΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² внСдряванСто Π²ΡŠΠ·Π½ΠΈΠΊΠ²Π°Ρ‚ ΠΏΠΎΡ€Π°Π΄ΠΈ Π½Π΅ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΈΡ Π² Π΄Π°Π½Π½ΠΈΡ‚Π΅ ΠΈΠ»ΠΈ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π°. Π’Π°ΠΊΠΈΠ²Π° Π³Ρ€Π΅ΡˆΠΊΠΈ стана ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ, Π·Π°Ρ‰ΠΎΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Ρ€Π΅ΡˆΠΈΠΌ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² ΠΏΡŠΡ€Π²ΠΈΡ‚Π΅ сСкунди.

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Ρ…ΠΌΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° Π΅ΠΊΠΈΠΏΠΈΡ‚Π΅. НовицитС ΠΈΠΌΠ°Ρ‚ β€žΠΏΡ€Π°Π²ΠΎ Π½Π° Π³Ρ€Π΅ΡˆΠΊΠ°β€œ: Ρ‚Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° внСдряват Π² продукцията Π±Π΅Π· страх Π΄Π° ΡΠ³Ρ€Π΅ΡˆΠ°Ρ‚, появява сС Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½Π° ΠΈΠ½ΠΈΡ†ΠΈΠ°Ρ‚ΠΈΠ²Π°, стимул Π·Π° Ρ€Π°Π±ΠΎΡ‚Π°. Ако счупят Π½Π΅Ρ‰ΠΎ, няма Π΄Π° Π΅ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΎ, Π° виновният няма Π΄Π° бъдС ΡƒΠ²ΠΎΠ»Π½Π΅Π½.

АвтоматизирахмС внСдряванСто. Π’ΠΎΠ²Π° Π²Π΅Ρ‡Π΅ Π½Π΅ Π΅ Ρ€ΡŠΡ‡Π΅Π½ процСс, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΈ, Π° истински Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€Π°Π½. Но Ρ‚ΠΎΠΉ ΠΎΡ‚Π½Π΅ΠΌΠ° ΠΏΠΎΠ²Π΅Ρ‡Π΅ Π²Ρ€Π΅ΠΌΠ΅.

Π˜Π·ΠΎΠ»ΠΈΡ€Π°Ρ…ΠΌΠ΅ Π²Π°ΠΆΠ½ΠΈ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ. Всяка компания, ΠΎΡ‚ бизнСса Π΄ΠΎ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΈΡ‚Π΅, Ρ€Π°Π·Π±ΠΈΡ€Π° ΠΊΠ°ΠΊΠ²ΠΎ Π΅ истински Π²Π°ΠΆΠ½ΠΎ Π² нашия ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΡ‚Π»ΠΈΠ² ΠΈ ΠΏΡ€ΠΈΡ‚ΠΎΠΊ Π½Π° ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ. НиС слСдим процСса: тСствамС ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈΡ‚Π΅, въвСТдамС Π½ΠΎΠ²ΠΈ, наблюдавамС ΠΊΠ°ΠΊ работят старитС, Π·Π° Π΄Π° ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΠΌ систСма, която Π΄Π° ΠΏΠ΅Ρ‡Π΅Π»ΠΈ ΠΏΠ°Ρ€ΠΈ ΠΏΠΎ-Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎ.

ИмамС ΠΌΠ½ΠΎΠ³ΠΎ страхотни ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ ΠΈ систСми, ΠΊΠΎΠΈΡ‚ΠΎ Π½ΠΈ ΠΏΠΎΠΌΠ°Π³Π°Ρ‚. Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‚ΠΎΠ²Π°, Π½ΠΈΠ΅ сС стрСмим Π΄Π° бъдСм профСсионалисти ΠΈ Π΄Π° Π²ΡŠΡ€ΡˆΠΈΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° си качСствСно, нСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ²Π° Π΄Π°Π»ΠΈ ΠΈΠΌΠ°ΠΌΠ΅ систСма, която Ρ‰Π΅ Π½ΠΈ ΠΏΠΎΠΌΠΎΠ³Π½Π΅, ΠΈΠ»ΠΈ Π½Π΅.

Π˜Π½ΠΆΠ΅Π½Π΅Ρ€Π½ΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈ ΠΈ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ β€” основСн фокус Π½Π° конфСрСнцията TechLead Conf. Ако стС постигнали успСхи Π² стрСмСТа си към тСхничСско ΡƒΡΡŠΠ²ΡŠΡ€ΡˆΠ΅Π½ΡΡ‚Π²Π°Π½Π΅ ΠΈ стС Π³ΠΎΡ‚ΠΎΠ²ΠΈ Π΄Π° Ρ€Π°Π·ΠΊΠ°ΠΆΠ΅Ρ‚Π΅ ΠΊΠ°ΠΊΠ²ΠΎ Π²ΠΈ Π΅ ΠΏΠΎΠΌΠΎΠ³Π½Π°Π»ΠΎ β€” ΠΏΠΎΠ΄Π°ΠΉΡ‚Π΅ заявка Π·Π° Π΄ΠΎΠΊΠ»Π°Π΄.

ΠŸΠ»Π°Π½ΠΈΡ€Π°ΠΌΠ΅ Π΄Π° ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅ΠΌ TechLead Conf Π½Π° 8 юни. Π Π°Π·Π±ΠΈΡ€Π°ΠΌΠ΅, Ρ‡Π΅ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π΅ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Π΄Π° Π²Π·ΠΈΠΌΠ°Ρ‚Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ относно участиСто Π² конфСрСнцията. Но Π² ΡΡŠΡ‰ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ считамС, Ρ‡Π΅ ΠΊΠ°Ρ€Π°Π½Ρ‚ΠΈΠ½Π°Ρ‚Π° Π½Π΅ Π΅ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° Π΄Π° спирамС профСсионалната комуникация ΠΈ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅. Π—Π°Ρ‚ΠΎΠ²Π° ΠΏΠΎ всякакъв Π½Π°Ρ‡ΠΈΠ½ Ρ‰Π΅ Π½Π°ΠΌΠ΅Ρ€ΠΈΠΌ Π½Π°Ρ‡ΠΈΠ½ Π΄Π° обсъдим Π·Π°Π΄Π°Ρ‡ΠΈΡ‚Π΅ Π½Π° тСхничСския Π»ΠΈΠ΄Π΅Ρ€ ΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ към тяхното Ρ€Π΅ΡˆΠ°Π²Π°Π½Π΅ β€” Π°ΠΊΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, Ρ‰Π΅ ΠΏΡ€Π΅ΠΌΠΈΠ½Π΅ΠΌ ΠΎΠ½Π»Π°ΠΉΠ½ ΠΈ Ρ‰Π΅ Ρ€Π°Π·Π²ΠΈΠ΅ΠΌ ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈΡ‚Π΅ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΈ Ρ‚Π°ΠΌ!

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

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster