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

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

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

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

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

ΠŸΡƒΡΠ½Π΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅ΠΎΡ‚ΠΎ

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

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

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

  • 15 Ρ†Π΅Π½Ρ‚Ρ€ΠΎΠ²Π΅ Π·Π° Π΄Π°Π½Π½ΠΈ ΠΏΠΎ цСлия свят;
  • 500 ΡƒΠ½ΠΈΠΊΠ°Π»Π½ΠΈ услуги Π² Сксплоатация;
  • 2500 инстанции Π½Π° услуги, ΠΊΠΎΠ΅Ρ‚ΠΎ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΎΡ‚ броя Π½Π° Π΅ΠΊΠΈΠΏΠΈΡ‚Π΅;
  • 4,5 Π’Π±Π°ΠΉΡ‚ мСсСчСн Ρ‚Ρ€Π°Ρ„ΠΈΠΊ;
  • 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-Ρ€Π΅Π»ΠΈΠ·ΠΈΡ‚Π΅.

ΠŸΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°Ρ‚Π°, ΠΏΠΎΠ΄ΠΎΠ±Π½Π° Π½Π° Ρ‚Π°Π·ΠΈ, ΠΊΠ°ΠΊΠ²Π°Ρ‚ΠΎ ΠΌΠΈΠ½ΡŒΠΎΡ€ΠΈΡ‚Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π»ΠΈ ΠΊΠ°Π½Π°Ρ€ΠΊΠΈ Π·Π° индикация Π½Π° Π½ΠΈΠ²Π°Ρ‚Π° Π½Π° Π³Π°Π·, Π½Π°ΠΌΠ΅Ρ€ΠΈ своя ΠΈΠ·Ρ€Π°Π· ΠΈ Π² IT. ΠŸΡƒΡΠΊΠ°ΠΌΠ΅ ΠΌΠ°Π»ΠΊΠΎ истински производствСн Ρ‚Ρ€Π°Ρ„ΠΈΠΊ Π½Π° Π½ΠΎΠ²Π°Ρ‚Π° вСрсия, ΠΊΠ°Ρ‚ΠΎ сС ΠΎΠΏΠΈΡ‚Π²Π°ΠΌΠ΅ Π΄Π° спазим Service Level Agreement (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. Π’Π°Π·ΠΈ Π½ΠΎΠ΄Π° Π²ΠΈΠ½Π°Π³ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π° ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ ΠΈ Π·Π°ΠΏΠΎΡ‡Π²Π°ΠΌΠ΅ внСдряванСто ΠΎΡ‚ нСя. Π’ случай Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ Ρ‰Π΅ сравним Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° ΠΉ ΠΏΡ€Π΅Π΄ΠΈ внСдряванСто ΠΈ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° Π½Π΅Π³ΠΎ. НапримСр, Π°ΠΊΠΎ Π³Ρ€Π΅ΡˆΠΊΠΈΡ‚Π΅ сС ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Ρ‚ Π΄Π²Π° ΠΏΡŠΡ‚ΠΈ, Π·Π½Π°Ρ‡ΠΈ ΠΈ Ρ‰Π΅Ρ‚ΠΈΡ‚Π΅ са нараснали Π΄Π²Π° ΠΏΡŠΡ‚ΠΈ.

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