ΠΠ°Π½Π°ΡΠ΅ΠΉΠΊΠ° β ΠΌΠ°Π»Π΅Π½ΡΠΊΠ°Ρ ΠΏΡΠΈΡΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΠΏΠΎΠ΅Ρ. ΠΡΠΈ ΠΏΡΠΈΡΠΊΠΈ ΡΡΠ²ΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½Ρ ΠΊ ΠΌΠ΅ΡΠ°Π½Ρ ΠΈ ΡΠ³Π°ΡΠ½ΠΎΠΌΡ Π³Π°Π·Ρ. ΠΠ°ΠΆΠ΅ ΠΎΡ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΊΠΎΠ½ΡΠ΅Π½ΡΡΠ°ΡΠΈΠΈ Π»ΠΈΡΠ½ΠΈΡ Π³Π°Π·ΠΎΠ² Π² Π²ΠΎΠ·Π΄ΡΡ Π΅ ΠΎΠ½ΠΈ ΡΠ΅ΡΡΡΡ ΡΠΎΠ·Π½Π°Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΡΠΌΠΈΡΠ°ΡΡ. ΠΠΎΠ»ΠΎΡΠΎΠΈΡΠΊΠ°ΡΠ΅Π»ΠΈ ΠΈ ΡΠ°Ρ ΡΠ΅ΡΡ Π±ΡΠ°Π»ΠΈ ΠΏΡΠΈΡΠ΅ΠΊ Π½Π° Π΄ΠΎΠ±ΡΡΡ: ΠΏΠΎΠΊΠ° ΠΊΠ°Π½Π°ΡΠ΅ΠΉΠΊΠΈ ΠΏΠΎΡΡ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ, Π΅ΡΠ»ΠΈ Π·Π°ΠΌΠΎΠ»ΡΠ°Π»ΠΈ β Π² ΡΠ°Ρ ΡΠ΅ Π³Π°Π· ΠΈ ΠΏΠΎΡΠ° ΡΡ ΠΎΠ΄ΠΈΡΡ. Π¨Π°Ρ ΡΠ΅ΡΡ ΠΆΠ΅ΡΡΠ²ΠΎΠ²Π°Π»ΠΈ ΠΌΠ°Π»Π΅Π½ΡΠΊΠΎΠΉ ΠΏΡΠΈΡΠΊΠΎΠΉ, ΡΡΠΎΠ±Ρ Π²ΡΠ±ΠΈΡΠ°ΡΡΡΡ ΠΈΠ· ΡΠ°Ρ Ρ ΠΆΠΈΠ²ΡΠΌΠΈ.
ΠΠΎΠ΄ΠΎΠ±Π½Π°Ρ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ° Π½Π°ΡΠ»Π° ΡΠ΅Π±Ρ ΠΈ Π² IT. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅ Π΄Π΅ΠΏΠ»ΠΎΡ Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΡΠ΅ΡΠ²ΠΈΡΠ° ΠΈΠ»ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° ΠΏΡΠΎΠ΄Π°ΠΊΡΠ½ Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠ΅ΡΠ΅Π΄ ΡΡΠΈΠΌ. Π’Π΅ΡΡΠΎΠ²ΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π΄ΠΎΡΠΎΠ³ΠΈΠΌ, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ΅ΡΡΡ Π½Π΅ ΠΏΠΎΠΊΡΡΠ²Π°ΡΡ Π²ΡΠ΅, ΡΡΠΎ Ρ
ΠΎΡΠ΅Π»ΠΎΡΡ Π±Ρ, Π° Π½Π΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈ ΠΆΠ΅ΡΡΠ²ΠΎΠ²Π°ΡΡ ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎΠΌ ΡΠΈΡΠΊΠΎΠ²Π°Π½Π½ΠΎ. ΠΠ°ΠΊ ΡΠ°Π· Π² ΡΠ°ΠΊΠΈΡ
ΡΠ»ΡΡΠ°ΡΡ
ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ Canary Deployment, ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π½Π°ΡΡΠΎΡΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΄Π°ΠΊΡΠ½-ΡΡΠ°ΡΠΈΠΊΠ° ΠΏΡΡΠΊΠ°Π΅ΡΡΡ Π½Π° Π½ΠΎΠ²ΡΡ Π²Π΅ΡΡΠΈΡ. ΠΠΎΠ΄Ρ
ΠΎΠ΄ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΡΠΈΡ Π½Π° ΠΏΡΠΎΠ΄Π°ΠΊΡΠ½, ΠΆΠ΅ΡΡΠ²ΡΡ ΠΌΠ°Π»ΡΠΌ ΡΠ°Π΄ΠΈ Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΠ΅Π»ΠΈ. ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄, ΡΠ΅ΠΌ ΠΏΠΎΠ»Π΅Π·Π΅Π½ ΠΈ ΠΊΠ°ΠΊ Π΅Π³ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ, ΡΠ°ΡΡΠΊΠ°ΠΆΠ΅Ρ ΠΠ½Π΄ΡΠ΅ΠΉ ΠΠ°ΡΠΊΠ΅Π»ΠΎΠ² (
ΠΠ½Π΄ΡΠ΅ΠΉ ΠΠ°ΡΠΊΠ΅Π»ΠΎΠ² β Π²Π΅Π΄ΡΡΠΈΠΉ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ Π² Infobip, ΡΠΆΠ΅ 11 Π»Π΅Ρ Π·Π°Π½ΠΈΠΌΠ°Π΅ΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Java Π² ΠΎΠ±Π»Π°ΡΡΠΈ ΡΠΈΠ½Π°Π½ΡΠΎΠ² ΠΈ ΡΠ΅Π»Π΅ΠΊΠΎΠΌΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΠΉ. Π Π°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ Open Source ΠΏΡΠΎΠ΄ΡΠΊΡΡ, Π°ΠΊΡΠΈΠ²Π½ΠΎ ΡΡΠ°ΡΡΠ²ΡΠ΅Ρ Π² Atlassian Community ΠΈ ΠΏΠΈΡΠ΅Ρ ΠΏΠ»Π°Π³ΠΈΠ½Ρ Π΄Π»Ρ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ² Atlassian. ΠΠ²Π°Π½Π³Π΅Π»ΠΈΡΡ Prometheus, Docker ΠΈ Redis.
Π ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Infobip
ΠΡΠΎ Π³Π»ΠΎΠ±Π°Π»ΡΠ½Π°Ρ ΡΠ΅Π»Π΅ΠΊΠΎΠΌΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π±Π°Π½ΠΊΠ°ΠΌ, ΡΠ΅ΡΠ΅ΠΉΠ»Ρ, ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ-ΠΌΠ°Π³Π°Π·ΠΈΠ½Π°ΠΌ ΠΈ ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ½ΡΠΌ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΠΌ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΡΠ²ΠΎΠΈΠΌ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°ΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ SMS, push, ΠΏΠΈΡΠ΅ΠΌ ΠΈ Π³ΠΎΠ»ΠΎΡΠΎΠ²ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ. Π ΡΠ°ΠΊΠΎΠΌ Π±ΠΈΠ·Π½Π΅ΡΠ΅ Π²Π°ΠΆΠ½Π° ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΡΡΡ ΠΈ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡΡ, ΡΡΠΎΠ±Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΡ Π²ΠΎΠ²ΡΠ΅ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π»ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ.
IT-ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° Infobip Π² ΡΠΈΡΡΠ°Ρ :
- 15 Π΄Π°ΡΠ°-ΡΠ΅Π½ΡΡΠΎΠ² ΠΏΠΎ Π²ΡΠ΅ΠΌΡ ΠΌΠΈΡΡ;
- 500 ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΡ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² Π² ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΠΈ;
- 2500 ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠΎΠ² ΡΠ΅ΡΠ²ΠΈΡΠΎΠ², ΡΡΠΎ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄;
- 4,5 TΠ±Π°ΠΉΡ ΠΌΠ΅ΡΡΡΠ½ΠΎΠ³ΠΎ ΡΡΠ°ΡΠΈΠΊΠ°;
- 4,5 ΠΌΠΈΠ»Π»ΠΈΠ°ΡΠ΄Π° ΡΠ΅Π»Π΅ΡΠΎΠ½Π½ΡΡ Π½ΠΎΠΌΠ΅ΡΠΎΠ²;
ΠΠΈΠ·Π½Π΅Ρ ΡΠ°ΡΡΠ΅Ρ, Π° Ρ Π½ΠΈΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ΅Π»ΠΈΠ·ΠΎΠ². ΠΡ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΠΌ ΠΏΠΎ 60 ΡΠ΅Π»ΠΈΠ·ΠΎΠ² Π² Π΄Π΅Π½Ρ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΡ Ρ ΠΎΡΡΡ Π±ΠΎΠ»ΡΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΠΈ ΠΌΠΎΡΠ½ΠΎΡΡΠ΅ΠΉ. ΠΠΎ ΡΡΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎ β ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² ΠΌΠ½ΠΎΠ³ΠΎ, Π° ΠΊΠΎΠΌΠ°Π½Π΄ ΠΌΠ°Π»ΠΎ. ΠΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ Π±ΡΡΡΡΠΎ ΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² ΠΏΡΠΎΠ΄Π°ΠΊΡΠ½ Π±Π΅Π· ΠΎΡΠΈΠ±ΠΎΠΊ.
Π Π΅Π»ΠΈΠ·Ρ
Π’ΠΈΠΏΠΈΡΠ½ΡΠΉ ΡΠ΅Π»ΠΈΠ· Ρ Π½Π°Ρ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡ ΡΠ°ΠΊ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΡΡ ΡΠ΅ΡΠ²ΠΈΡΡ A, B, C, D ΠΈ E, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· Π½ΠΈΡ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ.
Π ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΠ΅ΡΠ²ΠΈΡΠ° Π ΡΠ΅ΡΠ°Π΅Ρ Π·Π°Π΄Π΅ΠΏΠ»ΠΎΠΈΡΡ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΡΠΈΡ, Π½ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² B, C, D ΠΈ E ΠΎΠ± ΡΡΠΎΠΌ Π½Π΅ Π·Π½Π°ΡΡ. ΠΠ°ΡΠΈΠ°Π½ΡΠΎΠ², ΠΊΠ°ΠΊ ΠΏΠΎΡΡΡΠΏΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΠ΅ΡΠ²ΠΈΡΠ° Π, Π΄Π²Π°.
ΠΡΠΎΠ²Π΅Π΄Π΅Ρ ΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΠΉ ΡΠ΅Π»ΠΈΠ·: ΡΠ½Π°ΡΠ°Π»Π° Π·Π°ΠΌΠ΅Π½ΠΈΡ ΠΎΠ΄Π½Ρ Π²Π΅ΡΡΠΈΡ, Π° ΠΏΠΎΡΠΎΠΌ Π²ΡΠΎΡΡΡ.
ΠΠΎ Π΅ΡΡΡ Π²ΡΠΎΡΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ: ΠΊΠΎΠΌΠ°Π½Π΄Π° Π½Π°ΠΉΠ΄Π΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΌΠΎΡΠ½ΠΎΡΡΠΈ ΠΈ ΠΌΠ°ΡΠΈΠ½Ρ, Π·Π°Π΄Π΅ΠΏΠ»ΠΎΠΈΡ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΡΠΈΡ, Π° ΠΏΠΎΡΠΎΠΌ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡ ΡΠΎΡΡΠ΅Ρ, ΠΈ Π²Π΅ΡΡΠΈΡ Π½Π°ΡΠ½Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π° ΠΏΡΠΎΠ΄Π°ΠΊΡΠ½.
Π Π»ΡΠ±ΠΎΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠ΅ ΠΏΠΎΡΠ»Π΅ Π΄Π΅ΠΏΠ»ΠΎΡ ΠΏΠΎΡΡΠΈ Π²ΡΠ΅Π³Π΄Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π²Π΅ΡΡΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½Π°. Π’Π΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠΊΠ°ΠΌΠΈ, ΠΌΠΎΠΆΠ½ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ β ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡ Π² Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅. Π‘Π°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΠΈ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΈΡ
ΡΠ΅ΡΠΈΡΡ β ΠΎΡΠΊΠ°ΡΠΈΡΡΡΡ Π½Π°Π·Π°Π΄ Π½Π° ΡΠ°Π±ΠΎΡΠ°ΡΡΡΡ Π²Π΅ΡΡΠΈΡ. Π£ΠΆΠ΅ ΠΏΠΎΡΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡΡΡ Ρ ΡΡΠ΅ΡΠ±ΠΎΠΌ, Ρ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌΠΈ ΠΈ ΠΈΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΈΡ
.
ΠΡΠ°ΠΊ, ΡΡΠΎ ΠΌΡ Ρ ΠΎΡΠΈΠΌ?
ΠΡΠΎΠ±Π»Π΅ΠΌΡ Π½Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ½Ρ. ΠΡΠ»ΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΡ ΠΎΠ±Π½Π°ΡΡΠΆΠ°Ρ ΠΈΡ Π±ΡΡΡΡΠ΅Π΅ Π½Π°Ρ, ΡΡΠΎ ΡΠ΄Π°ΡΠΈΡ ΠΏΠΎ ΡΠ΅ΠΏΡΡΠ°ΡΠΈΠΈ. ΠΠΎΡΡΠΎΠΌΡ ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π±ΡΡΡΡΠ΅Π΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ². Π Π°Π±ΠΎΡΠ°Ρ Π½Π° ΠΎΠΏΠ΅ΡΠ΅ΠΆΠ΅Π½ΠΈΠ΅, ΠΌΡ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΡΠ΅ΠΌ ΡΡΠ΅ΡΠ±.
Π ΡΠΎ ΠΆΠ΅ Π²ΡΠ΅ΠΌΡ, ΠΌΡ Ρ ΠΎΡΠΈΠΌ ΡΡΠΊΠΎΡΠΈΡΡ Π΄Π΅ΠΏΠ»ΠΎΠΉ, ΡΡΠΎΠ±Ρ ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΠ»ΠΎ Π±ΡΡΡΡΠΎ, Π»Π΅Π³ΠΊΠΎ, ΡΠ°ΠΌΠΎ ΡΠΎΠ±ΠΎΠΉ ΠΈ Π±Π΅Π· Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΡ ΡΠΎ ΡΡΠΎΡΠΎΠ½Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ. ΠΠ½ΠΆΠ΅Π½Π΅ΡΠΎΠ², DevOps-ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠΎΠ² ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ² Π½Π°Π΄ΠΎ Π±Π΅ΡΠ΅ΡΡ β ΡΠ΅Π»ΠΈΠ· Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΡΡΠΎ ΡΡΡΠ΅ΡΡ. ΠΠΎΠΌΠ°Π½Π΄Π° ΡΡΠΎ Π½Π΅ ΡΠ°ΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π», ΠΌΡ ΡΡΡΠ΅ΠΌΠΈΠΌΡΡ ΡΠ°ΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅Π»ΠΎΠ²Π΅ΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ΅ΡΡΡΡΡ.
ΠΡΠΎΠ±Π»Π΅ΠΌΡ Π΄Π΅ΠΏΠ»ΠΎΡ
ΠΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΠΉ ΡΡΠ°ΡΠΈΠΊ Π½Π΅ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌ. ΠΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·Π°ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΠΉ ΡΡΠ°ΡΠΈΠΊ Π±ΡΠ΄Π΅Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ. ΠΡ Π½Π΅ Π·Π½Π°Π΅ΠΌ, Π³Π΄Π΅ ΠΈ ΠΊΠΎΠ³Π΄Π° ΠΊΠ»ΠΈΠ΅Π½ΡΡ Π½Π°ΡΠ½ΡΡ ΡΠ²ΠΎΠΈ ΠΊΠ°ΠΌΠΏΠ°Π½ΠΈΠΈ β ΠΌΠΎΠΆΠ΅Ρ, ΡΠ΅Π³ΠΎΠ΄Π½Ρ Π½ΠΎΡΡΡ Π² ΠΠ½Π΄ΠΈΠΈ, Π° Π·Π°Π²ΡΡΠ° Π² ΠΠΎΠ½ΠΊΠΎΠ½Π³Π΅. Π‘ ΡΡΠ΅ΡΠΎΠΌ Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΠ°Π·Π½ΠΈΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, Π΄Π΅ΠΏΠ»ΠΎΠΉ Π΄Π°ΠΆΠ΅ Π² 2 ΡΠ°ΡΠ° Π½ΠΎΡΠΈ Π½Π΅ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ, ΡΡΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΡ Π½Π΅ ΠΏΠΎΡΡΡΠ°Π΄Π°ΡΡ.
ΠΡΠΎΠ±Π»Π΅ΠΌΡ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΠΎΠ². ΠΠ΅ΡΡΠ΅Π½Π΄ΠΆΠ΅ΡΡ ΠΈ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΡ β Π½Π°ΡΠΈ ΠΏΠ°ΡΡΠ½Π΅ΡΡ. ΠΠ½ΠΎΠ³Π΄Π° Ρ Π½ΠΈΡ Π±ΡΠ²Π°ΡΡ ΡΠ±ΠΎΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠ·ΡΠ²Π°ΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π΄Π΅ΠΏΠ»ΠΎΡ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΡΠΈΠΉ.
Π Π°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ. ΠΠΎΠΌΠ°Π½Π΄Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΡΡ ΡΠ°ΡΡΡ ΠΈ Π±ΡΠΊΠ΅Π½Π΄, Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² ΡΠ°Π·Π½ΡΡ ΡΠ°ΡΠΎΠ²ΡΡ ΠΏΠΎΡΡΠ°Ρ . ΠΠ·-Π·Π° ΡΡΠΎΠ³ΠΎ ΠΎΠ½ΠΈ ΡΠ°ΡΡΠΎ Π½Π΅ ΠΌΠΎΠ³ΡΡ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠΈΡΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΠ±ΠΎΠΉ.
ΠΠ°ΡΠ°-ΡΠ΅Π½ΡΡΡ Π½Π΅Π»ΡΠ·Ρ ΠΏΠΎΠ²ΡΠΎΡΠΈΡΡ Π½Π° ΡΡΠ΅ΠΉΠ΄ΠΆΠ΅. Π ΠΎΠ΄Π½ΠΎΠΌ Π΄Π°ΡΠ°-ΡΠ΅Π½ΡΡΠ΅ 200 ΡΡΠΎΠ΅ΠΊ β ΠΏΠΎΠ²ΡΠΎΡΠΈΡΡ ΡΡΠΎ Π² ΠΏΠ΅ΡΠΎΡΠ½ΠΈΡΠ΅ Π΄Π°ΠΆΠ΅ ΠΏΡΠΈΠ±Π»ΠΈΠ·ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π½Π΅ ΠΏΠΎΠ»ΡΡΠΈΡΡΡ.
ΠΠ°ΡΠ½ΡΠ°ΠΉΠΌΡΠ½Π΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΡ! Π£ Π½Π°Ρ Π΅ΡΡΡ Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠΉ ΡΡΠΎΠ²Π΅Π½Ρ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΠΈ (Error Budget), ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ 99,99% Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π° ΠΎΡΡΠ°Π²ΡΠΈΠ΅ΡΡ ΠΏΡΠΎΡΠ΅Π½ΡΡ ΡΡΠΎ Β«ΠΏΡΠ°Π²ΠΎ Π½Π° ΠΎΡΠΈΠ±ΠΊΡΒ». ΠΠΎΡΡΠΈΡΡ 100% Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡΠΈ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½ΠΎ Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΡΠ»Π΅Π΄ΠΈΡΡ Π·Π° ΠΏΠ°Π΄Π΅Π½ΠΈΡΠΌΠΈ ΠΈ ΠΏΡΠΎΡΡΠΎΡΠΌΠΈ.
ΠΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΡ
ΠΠΈΡΠ°ΡΡ ΠΊΠΎΠ΄ Π±Π΅Π· Π±Π°Π³ΠΎΠ². ΠΠΎΠ³Π΄Π° Ρ Π±ΡΠ» ΠΌΠΎΠ»ΠΎΠ΄ΡΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌ, ΠΊΠΎ ΠΌΠ½Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΠ»ΠΈ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅ΡΡ Ρ ΠΏΡΠΎΡΡΠ±ΠΎΠΉ ΠΏΡΠΎΠ²Π΅ΡΡΠΈ ΡΠ΅Π»ΠΈΠ· Π±Π΅Π· Π±Π°Π³ΠΎΠ², Π½ΠΎ ΡΡΠΎ Π½Π΅ Π²ΡΠ΅Π³Π΄Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.
ΠΠΈΡΠ°ΡΡ ΡΠ΅ΡΡΡ. Π’Π΅ΡΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ, Π½ΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° ΡΠΎΠ²ΡΠ΅ΠΌ Π½Π΅ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ Ρ ΠΎΡΠ΅Ρ Π±ΠΈΠ·Π½Π΅Ρ. ΠΠ°ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π΄Π΅Π½ΡΠ³ΠΈ β ΡΡΠΎ Π½Π΅ Π·Π°Π΄Π°ΡΠ° ΡΠ΅ΡΡΠΎΠ².
Π’Π΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ Π½Π° ΡΡΠ΅ΠΉΠ΄ΠΆΠ΅. ΠΠ° 3,5 Π³ΠΎΠ΄Π° ΠΌΠΎΠ΅ΠΉ ΡΠ°Π±ΠΎΡΡ Π² Infobip Ρ Π½ΠΈ ΡΠ°Π·Ρ Π½Π΅ Π²ΠΈΠ΄Π΅Π», ΡΡΠΎΠ±Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΡΠ΅ΠΉΠ΄ΠΆΠ° Ρ ΠΎΡΡ Π±Ρ ΡΠ°ΡΡΠΈΡΠ½ΠΎ ΡΠΎΠ²ΠΏΠ°Π΄Π°Π»ΠΎ Ρ ΠΏΡΠΎΠ΄Π°ΠΊΡΠ½.
ΠΡ Π΄Π°ΠΆΠ΅ ΠΏΡΡΠ°Π»ΠΈΡΡ ΡΠ°Π·Π²ΠΈΡΡ ΡΡΡ ΠΈΠ΄Π΅Ρ: ΡΠ½Π°ΡΠ°Π»Π° Ρ Π½Π°Ρ Π±ΡΠ» ΡΡΠ΅ΠΉΠ΄ΠΆ, ΠΏΠΎΡΠΎΠΌ ΠΏΡΠ΅ΠΏΡΠΎΠ΄Π°ΠΊΡΠ½, Π° ΠΏΠΎΡΠΎΠΌ ΠΏΡΠ΅ΠΏΡΠΎΠ΄Π°ΠΊΡΠ½ ΠΏΡΠ΅ΠΏΡΠΎΠ΄Π°ΠΊΡΠ½Π°. ΠΠΎ ΠΈ ΡΡΠΎ Π½Π΅ ΠΏΠΎΠΌΠΎΠ³Π»ΠΎ β ΠΎΠ½ΠΈ Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°Π»ΠΈ Π΄Π°ΠΆΠ΅ ΠΏΠΎ ΠΌΠΎΡΠ½ΠΎΡΡΠΈ. Π‘ΠΎ ΡΡΠ΅ΠΉΠ΄ΠΆΠ΅ΠΌ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°ΡΡ Π±Π°Π·ΠΎΠ²ΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ, Π½ΠΎ Π½Π΅ Π·Π½Π°Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΎΠ½Π° Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΡΠΈ Π½Π°Π³ΡΡΠ·ΠΊΠ°Ρ
.
Π Π΅Π»ΠΈΠ· Π΄Π΅Π»Π°Π΅Ρ ΡΠΎΡ, ΠΊΡΠΎ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π». ΠΡΠΎ Ρ ΠΎΡΠΎΡΠ°Ρ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ°: Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΊΡΠΎ-ΡΠΎ ΠΌΠ΅Π½ΡΠ΅Ρ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡ, ΡΡΠ°Π·Ρ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ Π² ΠΏΡΠΎΠ΄Π°ΠΊΡΠ½. ΠΡΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΡΠ°Π·Π²ΠΈΠ²Π°ΡΡ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΡ ΠΈ Π½Π΅ Π·Π°Π±ΡΠ²Π°ΡΡ ΠΎ Π²Π½Π΅ΡΠ΅Π½Π½ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΡ .
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠΎΠΆΠ΅ Π΅ΡΡΡ. ΠΠ»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΡΡΠΎ ΡΡΡΠ΅ΡΡ β ΡΡΠ°ΡΠΈΡΡ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΡΡΠΎΠ±Ρ Π²ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π²ΡΡΡΠ½ΡΡ.
Π‘ΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ΅Π»ΠΈΠ·Ρ. ΠΡΠΎΡ Π²Π°ΡΠΈΠ°Π½Ρ ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΠΌΠ΅Π½Π΅Π΄ΠΆΠΌΠ΅Π½Ρ: Β«ΠΠ°Π²Π°ΠΉΡΠ΅ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌΡΡ, ΡΡΠΎ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π΄Π΅Π½Ρ Π±ΡΠ΄Π΅ΡΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ Π½ΠΎΠ²ΡΠ΅ Π²Π΅ΡΡΠΈΠΈΒ». ΠΡΠΎ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ: Π²ΡΠ΅Π³Π΄Π° Π΅ΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΆΠ΄Π΅Ρ Π²ΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΡ ΠΈΠ»ΠΈ Π½Π°ΠΎΠ±ΠΎΡΠΎΡ.
Smoke-ΡΠ΅ΡΡΡ
ΠΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΡΠΏΠΎΡΠΎΠ± ΡΠ΅ΡΠΈΡΡ Π½Π°ΡΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ Π΄Π΅ΠΏΠ»ΠΎΠ΅ΠΌ. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ smoke-ΡΠ΅ΡΡΡ Π½Π° ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅, ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° A Ρ ΠΎΡΠ΅Ρ Π·Π°Π΄Π΅ΠΏΠ»ΠΎΠΈΡΡ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΡΠΈΡ.
Π‘Π½Π°ΡΠ°Π»Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π΄Π΅ΠΏΠ»ΠΎΠΈΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ½ΡΡΠ°Π½Ρ Π½Π° ΠΏΡΠΎΠ΄Π°ΠΊΡΠ½. Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡΠΌΠΈ Π² ΠΈΠ½ΡΡΠ°Π½Ρ ΠΎΡ ΠΌΠΎΠΊΠΎΠ² ΠΈΠΌΠΈΡΠΈΡΡΠ΅ΡΡΡ ΡΠ΅Π°Π»ΡΠ½ΡΠΉ ΡΡΠ°ΡΠΈΠΊ, ΡΡΠΎΠ±Ρ ΠΎΠ½ ΡΠΎΠ²ΠΏΠ°Π΄Π°Π» Ρ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΡΠΌ Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΡΠΌ ΡΡΠ°ΡΠΈΠΊΠΎΠΌ. ΠΡΠ»ΠΈ Π²ΡΠ΅ Ρ ΠΎΡΠΎΡΠΎ, ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°Π΅Ρ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΡΠΈΡ Π½Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΡΡΠ°ΡΠΈΠΊ.
ΠΡΠΎΡΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ β Π΄Π΅ΠΏΠ»ΠΎΠΈΡΡ Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΌ ΠΆΠ΅Π»Π΅Π·ΠΎΠΌ. ΠΠΎΠΌΠ°Π½Π΄Π° ΡΠ΅ΡΡΠΈΡΡΠ΅Ρ Π΅Π³ΠΎ Π½Π° ΠΏΡΠΎΠ΄Π°ΠΊΡΠ½, ΠΏΠΎΡΠΎΠΌ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°Π΅Ρ, ΠΈ Π²ΡΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ.
ΠΠ΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ smoke-ΡΠ΅ΡΡΠΎΠ²:
- Π’Π΅ΡΡΠ°ΠΌ Π½Π΅Π»ΡΠ·Ρ Π΄ΠΎΠ²Π΅ΡΡΡΡ. ΠΠ΄Π΅ Π²Π·ΡΡΡ ΡΠΎΡ ΠΆΠ΅ ΡΡΠ°ΡΠΈΠΊ, ΡΡΠΎ ΠΈ Π½Π° ΠΏΡΠΎΠ΄Π°ΠΊΡΠ½? ΠΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΡΠ΅ΡΠ°ΡΠ½ΠΈΠΉ ΠΈΠ»ΠΈ Π½Π΅Π΄Π΅Π»ΡΠ½ΠΎΠΉ Π΄Π°Π²Π½ΠΎΡΡΠΈ, Π½ΠΎ ΠΎΠ½ Π½Π΅ Π²ΡΠ΅Π³Π΄Π° ΡΠΎΠ²ΠΏΠ°Π΄Π°Π΅Ρ Ρ ΡΠ΅ΠΊΡΡΠΈΠΌ.
- Π‘Π»ΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ. ΠΡΠΈΠ΄Π΅ΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΠ΅ΡΡΠΎΠ²ΡΠ΅ Π°ΠΊΠΊΠ°ΡΠ½ΡΡ, ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΠΈΡ ΡΠ±ΡΠ°ΡΡΠ²Π°ΡΡ ΠΏΠ΅ΡΠ΅Π΄ ΠΊΠ°ΠΆΠ΄ΡΠΌ Π΄Π΅ΠΏΠ»ΠΎΠ΅ΠΌ, ΠΊΠΎΠ³Π΄Π° Π² Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡΡΡ Π°ΠΊΡΠΈΠ²Π½ΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ. ΠΡΠΎ ΡΠ»ΠΎΠΆΠ½Π΅Π΅, ΡΠ΅ΠΌ ΠΏΠΈΡΠ°ΡΡ ΡΠ΅ΡΡ Π² ΡΠ²ΠΎΠ΅ΠΉ ΠΏΠ΅ΡΠΎΡΠ½ΠΈΡΠ΅.
ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ Π±ΠΎΠ½ΡΡ Π·Π΄Π΅ΡΡ β ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ.
Canary-ΡΠ΅Π»ΠΈΠ·Ρ
ΠΠ·-Π·Π° Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΎΠ² smoke-ΡΠ΅ΡΡΠΎΠ² ΠΌΡ Π½Π°ΡΠ°Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ canary-ΡΠ΅Π»ΠΈΠ·Ρ.
ΠΡΠ°ΠΊΡΠΈΠΊΠ°, ΠΏΠΎΠ΄ΠΎΠ±Π½Π°Ρ ΡΠΎΠΌΡ, ΠΊΠ°ΠΊ ΡΠ°Ρ ΡΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ ΠΊΠ°Π½Π°ΡΠ΅Π΅ΠΊ Π΄Π»Ρ ΠΈΠ½Π΄ΠΈΠΊΠ°ΡΠΈΠΈ ΡΡΠΎΠ²Π½Ρ Π³Π°Π·ΠΎΠ², Π½Π°ΡΠ»Π° ΡΠ΅Π±Ρ ΠΈ Π² IT. ΠΡ ΠΏΡΡΠΊΠ°Π΅ΠΌ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π½Π°ΡΡΠΎΡΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΄Π°ΠΊΡΠ½-ΡΡΠ°ΡΠΈΠΊΠ° Π½Π° Π½ΠΎΠ²ΡΡ Π²Π΅ΡΡΠΈΡ, ΠΏΡΠΈ ΡΡΠΎΠΌ ΡΡΠ°ΡΠ°Π΅ΠΌΡΡ ΡΠ»ΠΎΠΆΠΈΡΡΡΡ Π² Service Level Agreement (SLA). SLA β ΡΡΠΎ Π½Π°ΡΠ΅ Β«ΠΏΡΠ°Π²ΠΎ Π½Π° ΠΎΡΠΈΠ±ΠΊΡΒ», ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°Π· Π² Π³ΠΎΠ΄ (ΠΈΠ»ΠΈ Π·Π° ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ Π΄ΡΡΠ³ΠΎΠΉ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΠΊ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ). ΠΡΠ»ΠΈ Π²ΡΠ΅ Π±ΡΠ΄Π΅Ρ Ρ ΠΎΡΠΎΡΠΎ, Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π±ΠΎΠ»ΡΡΠ΅ ΡΡΠ°ΡΠΈΠΊΠ°. ΠΡΠ»ΠΈ Π½Π΅Ρ β Π²Π΅ΡΠ½Π΅ΠΌ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠ΅ Π²Π΅ΡΡΠΈΠΈ.
Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈ Π½ΡΠ°Π½ΡΡ
ΠΠ°ΠΊ ΠΌΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π»ΠΈ canary-ΡΠ΅Π»ΠΈΠ·Ρ? ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π³ΡΡΠΏΠΏΠ° ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΡΠ΅ΡΠ΅Π· Π½Π°Ρ ΡΠ΅ΡΠ²ΠΈΡ.
ΠΠ΅ΠΏΠ»ΠΎΠΉ ΠΏΡΠΎΡ
ΠΎΠ΄ΠΈΡ ΡΠ°ΠΊ: ΡΠ±ΠΈΡΠ°Π΅ΠΌ ΠΎΠ΄ΠΈΠ½ ΡΠ·Π΅Π» ΠΈΠ·-ΠΏΠΎΠ΄ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΡΠΈΠΊΠ° (1), ΠΌΠ΅Π½ΡΠ΅ΠΌ Π²Π΅ΡΡΠΈΡ (2) ΠΈ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎ ΠΏΡΡΠΊΠ°Π΅ΠΌ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΡΠ°ΡΠΈΠΊΠ° (3).
Π ΡΠ΅Π»ΠΎΠΌ, Π² Π³ΡΡΠΏΠΏΠ΅ Π±ΡΠ΄ΡΡ ΡΡΠ°ΡΡΠ»ΠΈΠ²Ρ Π²ΡΠ΅, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π±ΡΠ΄Π΅Ρ Π½Π΅Π΄ΠΎΠ²ΠΎΠ»Π΅Π½. ΠΡΠ»ΠΈ Π²ΡΠ΅ Ρ
ΠΎΡΠΎΡΠΎ β ΠΌΠ΅Π½ΡΠ΅ΠΌ Π²ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ.
ΠΠΎΠΊΠ°ΠΆΡ ΡΡ
Π΅ΠΌΠ°ΡΠΈΡΠ½ΠΎ, ΠΊΠ°ΠΊ ΡΡΠΎ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π΄Π»Ρ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΎΠ² Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π².
ΠΡΡΡ Service Discovery ΠΈ Π΅ΡΠ΅ Π΄Π²Π° ΡΠ΅ΡΠ²ΠΈΡΠ°: S1N1 ΠΈ S2. ΠΠ΅ΡΠ²ΡΠΉ ΡΠ΅ΡΠ²ΠΈΡ (S1N1) ΠΎΠΏΠΎΠ²Π΅ΡΠ°Π΅Ρ Service Discovery, ΠΊΠΎΠ³Π΄Π° ΡΡΠ°ΡΡΡΠ΅Ρ, Π° Service Discovery Π΅Π³ΠΎ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ. ΠΡΠΎΡΠΎΠΉ ΡΠ΅ΡΠ²ΠΈΡ Ρ Π΄Π²ΡΠΌΡ ΡΠ·Π»Π°ΠΌΠΈ (S2N1 ΠΈ S2N2) ΡΠΎΠΆΠ΅ ΠΎΠΏΠΎΠ²Π΅ΡΠ°Π΅Ρ Service Discovery ΠΏΡΠΈ ΡΡΠ°ΡΡΠ΅.
ΠΡΠΎΡΠΎΠΉ ΡΠ΅ΡΠ²ΠΈΡ Π΄Π»Ρ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΊΠ°ΠΊ ΡΠ΅ΡΠ²Π΅Ρ. ΠΠ΅ΡΠ²ΡΠΉ Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°Π΅Ρ Ρ Service Discovery ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠ²ΠΎΠΈΡ
ΡΠ΅ΡΠ²Π΅ΡΠ°Ρ
, Π° ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ β ΠΈΡΠ΅Ρ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ ΠΈΡ
(Β«health checkΒ»). ΠΠΎΠ³Π΄Π° ΠΏΡΠΎΠ²Π΅ΡΠΈΡ, ΡΠΎ ΠΎΡΠΏΡΠ°Π²ΠΈΡ ΠΈΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ.
ΠΠΎΠ³Π΄Π° ΠΊΡΠΎ-ΡΠΎ Ρ ΠΎΡΠ΅Ρ Π·Π°Π΄Π΅ΠΏΠ»ΠΎΠΈΡΡ Π½ΠΎΠ²ΡΡ Π²Π΅ΡΡΠΈΡ Π²ΡΠΎΡΠΎΠ³ΠΎ ΡΠ΅ΡΠ²ΠΈΡΠ°, ΠΎΠ½ ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ Service Discovery, ΡΡΠΎ Π²ΡΠΎΡΠ°Ρ Π½ΠΎΠ΄Π° Π±ΡΠ΄Π΅Ρ canary-Π½ΠΎΠ΄ΠΎΠΉ: Π½Π° Π½Π΅Π΅ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡΡΡ ΠΌΠ΅Π½ΡΡΠ΅ ΡΡΠ°ΡΠΈΠΊΠ°, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΡΠ΅ΠΉΡΠ°Ρ ΠΏΡΠΎΠΉΠ΄Π΅Ρ Π΄Π΅ΠΏΠ»ΠΎΠΉ. Π£Π±ΠΈΡΠ°Π΅ΠΌ canary-Π½ΠΎΠ΄Ρ ΠΈΠ·-ΠΏΠΎΠ΄ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΡΠΈΠΊΠ° ΠΈ ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠ΅ΡΠ²ΠΈΡ Π½Π΅ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ Π² Π½Π΅Π΅ ΡΡΠ°ΡΠΈΠΊ.
ΠΠ΅Π½ΡΠ΅ΠΌ Π²Π΅ΡΡΠΈΡ ΠΈ Service Discovery Π·Π½Π°Π΅Ρ, ΡΡΠΎ Π²ΡΠΎΡΠ°Ρ Π½ΠΎΠ΄Π° ΡΠ΅ΠΏΠ΅ΡΡ canary β ΠΌΠΎΠΆΠ½ΠΎ Π΄Π°Π²Π°ΡΡ Π΅ΠΉ ΠΌΠ΅Π½ΡΡΠ΅ Π½Π°Π³ΡΡΠ·ΠΊΠΈ (5%). ΠΡΠ»ΠΈ Π²ΡΠ΅ Ρ
ΠΎΡΠΎΡΠΎ, ΠΌΠ΅Π½ΡΠ΅ΠΌ Π²Π΅ΡΡΠΈΡ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌ Π½Π°Π³ΡΡΠ·ΠΊΠΈ ΠΈ ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ Π΄Π°Π»ΡΡΠ΅.
Π§ΡΠΎΠ±Ρ Π²ΡΠ΅ ΡΡΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ, Π½Π°ΠΌ Π½ΡΠΆΠ½Ρ:
- Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΠΊΠ°;
- ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π²Π°ΠΆΠ½ΠΎ Π·Π½Π°ΡΡ, ΡΡΠΎ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΠΈ ΠΊΠ°ΠΊ Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π°ΡΠΈ ΡΠ΅ΡΠ²ΠΈΡΡ;
- Π°Π½Π°Π»ΠΈΠ· Π²Π΅ΡΡΠΈΠΉ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ Ρ ΠΎΡΠΎΡΠΎ Π½ΠΎΠ²Π°Ρ Π²Π΅ΡΡΠΈΡ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² ΠΏΡΠΎΠ΄Π°ΠΊΡΠ½;
- Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ β ΠΏΠΈΡΠ΅ΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ (deployment pipeline).
ΠΠ°Π»Π°Π½ΡΠΈΡΠΎΠ²ΠΊΠ°
ΠΡΠΎ ΠΏΠ΅ΡΠ²ΠΎΠ΅, ΠΎ ΡΠ΅ΠΌ ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π·Π°Π΄ΡΠΌΠ°ΡΡΡΡ. ΠΡΡΡ Π΄Π²Π΅ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ Π±Π°Π»Π°Π½ΡΠΈΡΠΎΠ²ΠΊΠΈ.
ΠΡΠΎΡΡΠ΅ΠΉΡΠΈΠΉ Π²Π°ΡΠΈΠ°Π½Ρ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ΄Π½Π° Π½ΠΎΠ΄Π° Π²ΡΠ΅Π³Π΄Π° canary. ΠΡΠ° Π½ΠΎΠ΄Π° Π²ΡΠ΅Π³Π΄Π° ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΠΌΠ΅Π½ΡΡΠ΅ ΡΡΠ°ΡΠΈΠΊΠ° ΠΈ ΠΌΡ Π½Π°ΡΠΈΠ½Π°Π΅ΠΌ Π΄Π΅ΠΏΠ»ΠΎΠΉ Ρ Π½Π΅Π΅. Π ΡΠ»ΡΡΠ°Π΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΠΌΡ ΡΡΠ°Π²Π½ΠΈΠΌ Π΅Π΅ ΡΠ°Π±ΠΎΡΡ Π΄ΠΎ Π΄Π΅ΠΏΠ»ΠΎΡ ΠΈ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π½Π΅Π³ΠΎ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ ΡΡΠ°Π»ΠΎ Π² 2 ΡΠ°Π·Π° Π±ΠΎΠ»ΡΡΠ΅, Π·Π½Π°ΡΠΈΡ ΠΈ ΡΡΠ΅ΡΠ± Π²ΡΡΠΎΡ Π² 2 ΡΠ°Π·Π°.
Canary-Π½ΠΎΠ΄Π° Π·Π°Π΄Π°Π΅ΡΡΡ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ Π΄Π΅ΠΏΠ»ΠΎΡ. ΠΠΎΠ³Π΄Π° Π΄Π΅ΠΏΠ»ΠΎΠΉ Π·Π°ΠΊΠΎΠ½ΡΠΈΡΡΡ ΠΈ ΠΌΡ ΡΠ½ΠΈΠΌΠ΅ΠΌ Ρ Π½Π΅Π΅ ΡΡΠ°ΡΡΡ canary-Π½ΠΎΠ΄Ρ, Π±Π°Π»Π°Π½Ρ ΡΡΠ°ΡΠΈΠΊΠ° Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ. Π‘ ΠΌΠ΅Π½ΡΡΠΈΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΠΌΠ°ΡΠΈΠ½ ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠΌ ΡΠ΅ΡΡΠ½ΠΎΠ΅ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅.
ΠΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³
ΠΡΠ°Π΅ΡΠ³ΠΎΠ»ΡΠ½ΡΠΉ ΠΊΠ°ΠΌΠ΅Π½Ρ canary-ΡΠ΅Π»ΠΈΠ·ΠΎΠ². ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΎΡΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ, Π·Π°ΡΠ΅ΠΌ ΠΌΡ ΡΡΠΎ Π΄Π΅Π»Π°Π΅ΠΌ ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ ΠΌΠ΅ΡΡΠΈΠΊΠΈ Ρ ΠΎΡΠΈΠΌ ΡΠΎΠ±ΠΈΡΠ°ΡΡ.
ΠΡΠΈΠΌΠ΅ΡΡ ΠΌΠ΅ΡΡΠΈΠΊ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ ΡΠΎΠ±ΠΈΡΠ°Π΅ΠΌ Ρ Π½Π°ΡΠΈΡ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ².
- ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΎΡΠΈΠ±ΠΎΠΊ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΈΡΡΡΡΡ Π² Π»ΠΎΠ³ΠΈ. ΠΡΠΎ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΡΠΉ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π²ΡΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΊΠ°ΠΊ Π½Π°Π΄ΠΎ. Π ΡΠ΅Π»ΠΎΠΌ, ΡΡΠΎ Ρ ΠΎΡΠΎΡΠ°Ρ ΠΌΠ΅ΡΡΠΈΠΊΠ°.
- ΠΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°ΠΏΡΠΎΡΠΎΠ² (latency). ΠΡΡ ΠΌΠ΅ΡΡΠΈΠΊΡ ΠΌΠΎΠ½ΠΈΡΠΎΡΡΡ Π²ΡΠ΅, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π²ΡΠ΅ Ρ ΠΎΡΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π±ΡΡΡΡΠΎ.
- Π Π°Π·ΠΌΠ΅Ρ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ (throughput).
- ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΠΏΠ΅ΡΠ½ΡΡ ΠΎΡΠ²Π΅ΡΠΎΠ² Π² ΡΠ΅ΠΊΡΠ½Π΄Ρ.
- ΠΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ 95% Π²ΡΠ΅Ρ Π·Π°ΠΏΡΠΎΡΠΎΠ².
- ΠΠΈΠ·Π½Π΅Ρ-ΠΌΠ΅ΡΡΠΈΠΊΠΈ: ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄Π΅Π½Π΅Π³ Π±ΠΈΠ·Π½Π΅Ρ Π·Π°ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ Π·Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΠΈΠ»ΠΈ ΠΎΡΡΠΎΠΊ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ. ΠΡΠΈ ΠΌΠ΅ΡΡΠΈΠΊΠΈ Π΄Π»Ρ Π½Π°ΡΠ΅ΠΉ Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π²Π°ΠΆΠ½Π΅Π΅, ΡΠ΅ΠΌ ΡΠ΅, ΡΡΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΡ.
ΠΡΠΈΠΌΠ΅ΡΡ ΠΌΠ΅ΡΡΠΈΠΊ Π² Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π°.
Counter. ΠΡΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΠΎΠ·ΡΠ°ΡΡΠ°ΡΡΠ°Ρ Π²Π΅Π»ΠΈΡΠΈΠ½Π°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΎΡΠΈΠ±ΠΎΠΊ. ΠΡΡ ΠΌΠ΅ΡΡΠΈΠΊΡ ΠΏΡΠΎΡΡΠΎ ΠΈΠ½ΡΠ΅ΡΠΏΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΈ ΠΈΠ·ΡΡΠ°ΡΡ Π³ΡΠ°ΡΠΈΠΊ: Π²ΡΠ΅ΡΠ° Π±ΡΠ»ΠΎ 2 ΠΎΡΠΈΠ±ΠΊΠΈ, Π° ΡΠ΅Π³ΠΎΠ΄Π½Ρ 500, Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ-ΡΠΎ ΠΏΠΎΡΠ»ΠΎ Π½Π΅ ΡΠ°ΠΊ.
ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΎΡΠΈΠ±ΠΎΠΊ Π² ΠΌΠΈΠ½ΡΡΡ ΠΈΠ»ΠΈ Π² ΡΠ΅ΠΊΡΠ½Π΄Ρ, ΡΡΠΎ Π²Π°ΠΆΠ½Π΅ΠΉΡΠΈΠΉ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡΠΈΡΠ»ΠΈΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Counter. ΠΡΠΈ Π΄Π°Π½Π½ΡΠ΅ Π΄Π°ΡΡ ΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎ ΡΠ°Π±ΠΎΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ Π½Π° Π΄ΠΈΡΡΠ°Π½ΡΠΈΠΈ. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π³ΡΠ°ΡΠΈΠΊΠ° ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΠΎΡΠΈΠ±ΠΎΠΊ Π² ΡΠ΅ΠΊΡΠ½Π΄Ρ Π΄Π»Ρ Π΄Π²ΡΡ Π²Π΅ΡΡΠΈΠΉ ΠΏΡΠΎΠ΄Π°ΠΊΡΠ½-ΡΠΈΡΡΠ΅ΠΌΡ.
Π ΠΏΠ΅ΡΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ Π±ΡΠ»ΠΎ ΠΌΠ°Π»ΠΎ ΠΎΡΠΈΠ±ΠΎΠΊ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π» Π°ΡΠ΄ΠΈΡ. ΠΠΎ Π²ΡΠΎΡΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ Π²ΡΠ΅ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Ρ
ΡΠΆΠ΅. ΠΠΎΠΆΠ½ΠΎ ΡΠΎΡΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ Π΅ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΡΠΊΠ°ΡΠΈΡΡ ΡΡΡ Π²Π΅ΡΡΠΈΡ.
Gauge. ΠΠ΅ΡΡΠΈΠΊΠΈ ΠΏΠΎΡ ΠΎΠΆΠΈ Π½Π° Counter, Π½ΠΎ ΠΌΡ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΊΠ°ΠΊ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°ΡΡΡΡ, ΡΠ°ΠΊ ΠΈ ΡΠΌΠ΅Π½ΡΡΠ°ΡΡΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΈΠ»ΠΈ ΡΠ°Π·ΠΌΠ΅Ρ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ.
ΠΠ° Π³ΡΠ°ΡΠΈΠΊΠ΅ ΠΏΡΠΈΠΌΠ΅Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΎΡΠΊΠ»ΠΈΠΊΠ° (latency). ΠΠΎ Π³ΡΠ°ΡΠΈΠΊΡ Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ Π²Π΅ΡΡΠΈΠΈ ΠΏΠΎΡ ΠΎΠΆΠΈ, Ρ Π½ΠΈΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ. ΠΠΎ Π΅ΡΠ»ΠΈ ΠΏΡΠΈΠ³Π»ΡΠ΄Π΅ΡΡΡΡ, ΡΠΎ Π·Π°ΠΌΠ΅ΡΠ½ΠΎ, ΠΊΠ°ΠΊ ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π²Π΅Π»ΠΈΡΠΈΠ½Π°. ΠΡΠ»ΠΈ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ ΠΏΡΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, ΡΠΎ ΡΡΠ°Π·Ρ ΠΏΠΎΠ½ΡΡΠ½ΠΎ, ΡΡΠΎ Π΅ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ β ΡΠ°Π½ΡΡΠ΅ ΡΠ°ΠΊΠΎΠ³ΠΎ Π½Π΅ Π±ΡΠ»ΠΎ.
Summary. ΠΠ΄ΠΈΠ½ ΠΈΠ· Π²Π°ΠΆΠ½Π΅ΠΉΡΠΈΡ
ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ Π΄Π»Ρ Π±ΠΈΠ·Π½Π΅ΡΠ° β ΠΏΠ΅ΡΡΠ΅Π½ΡΠΈΠ»ΠΈ. ΠΠ΅ΡΡΠΈΠΊΠ° ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ Π² 95% ΡΠ»ΡΡΠ°Π΅Π² Π½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ ΠΌΡ Ρ
ΠΎΡΠΈΠΌ. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΌΠΈΡΠΈΡΡΡΡ, Π΅ΡΠ»ΠΈ Π³Π΄Π΅-ΡΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΠΌ ΠΎΠ±ΡΡΡ ΡΠ΅Π½Π΄Π΅Π½ΡΠΈΡ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²ΡΠ΅ Ρ
ΠΎΡΠΎΡΠΎ ΠΈΠ»ΠΈ ΠΏΠ»ΠΎΡ
ΠΎ.
ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ
ELK Stack. Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ canary ΠΌΠΎΠΆΠ½ΠΎ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Elasticsearch β Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΠΌ Π² Π½Π΅Π³ΠΎ ΠΎΡΠΈΠ±ΠΊΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΡΡ ΡΠΎΠ±ΡΡΠΈΡ. ΠΡΠΎΡΡΠ΅ΠΉΡΠΈΠΌ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ API ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΎΡΠΈΠ±ΠΎΠΊ Π² Π»ΡΠ±ΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΈ ΡΡΠ°Π²Π½ΠΈΡΡ Ρ ΠΏΡΠΎΡΠ»ΡΠΌΠΈ ΠΎΡΡΠ΅Π·ΠΊΠ°ΠΌΠΈ: GET /applg/_cunt?q=level:errr
.
Prometheus. Π₯ΠΎΡΠΎΡΠΎ ΡΠ΅Π±Ρ ΠΏΡΠΎΡΠ²ΠΈΠ» Π² Infobip. ΠΠ½ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅ΡΠ½ΡΠ΅ ΠΌΠ΅ΡΡΠΈΠΊΠΈ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π»Π΅ΠΉΠ±Π»Ρ.
ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ level
, instance
, service
, ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡ
Π² ΠΎΠ΄Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅. C ΠΏΠΎΠΌΠΎΡΡΡ 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-Π½ΠΎΠ΄Ρ;
- Π²ΠΊΠ»ΡΡΠ°Π΅ΠΌ Π±Π°Π»Π°Π½ΡΠ΅Ρ ΡΠΆΠ΅ Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΡΡΠ°ΡΠΈΠΊΠ°;
- ΡΡΠ°Π²Π½ΠΈΠ²Π°Π΅ΠΌ.
ΠΠ° ΡΡΠΎΠΌ ΡΡΠ°ΠΏΠ΅ ΠΌΡ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΠΌ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅. ΠΠ°ΠΊ ΠΎΠ½ΠΎ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΠΈ ΠΏΠΎΡΠ΅ΠΌΡ Π»ΡΡΡΠ΅, ΡΠ΅ΠΌ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΠΏΠΎΡΠ»Π΅ Π΄Π΅ΠΏΠ»ΠΎΡ, ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΈΠ· Jenkins.
ΠΡΠΎ pipeline ΠΊ Groovy.
while (System.currentTimeMillis() < endCanaryTs) {
def isOk = compare(srv, canary, time, base, offset, metrics)
if (isOk) {
sleep DEFAULT SLEEP
} else {
echo "Canary failed, need to revert"
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-Π½ΠΎΠ΄Ρ, ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ Π½Π° ΠΏΡΠΎΡΠ»ΡΡ
Π²Π΅ΡΡΠΈΡΡ
ΠΈ ΠΈΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌ ΠΎΡΠΈΠ±ΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°ΡΠ»ΠΈ. ΠΠΎ ΠΌΠ΅ΡΡΠΈΠΊΠ°ΠΌ ΠΈΡ
Π»Π΅Π³ΠΊΠΎ Π½Π°ΠΉΡΠΈ ΠΈ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΡΠ΅ΡΠ± ΠΎΡ Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ.
ΠΡΠ΅ΠΏΡΡΡΡΠ²ΠΈΡ
Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, Π½Π΅ΠΏΡΠΎΡΡΠΎ. ΠΡΠ΅ΠΆΠ΄Π΅ Π²ΡΠ΅Π³ΠΎ Π½ΡΠΆΠ½Π° ΠΎΠ±ΡΠ°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π°. Π£ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠΎΠ² ΡΠ²ΠΎΠΈ ΠΌΠ΅ΡΡΠΈΠΊΠΈ, Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΠΈ Π°Π½Π°Π»ΠΈΡΠΈΠΊΠΎΠ² β Π΄ΡΡΠ³ΠΈΠ΅, Ρ Π±ΠΈΠ·Π½Π΅ΡΠ° ΡΡΠ΅ΡΡΠΈ. ΠΠ±ΡΠ°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° β ΡΡΠΎ ΠΎΠ±ΡΠΈΠΉ ΡΠ·ΡΠΊ, Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠ°Π·Π³ΠΎΠ²Π°ΡΠΈΠ²Π°ΡΡ Π±ΠΈΠ·Π½Π΅Ρ ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°.
ΠΡΠΆΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΡΡΡ ΠΌΠ΅ΡΡΠΈΠΊ. ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΠΏΠΎΠ½ΡΡΡ, ΠΊΠ°ΠΊΠΎΠΉ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ Π½Π°Π±ΠΎΡ ΠΌΠ΅ΡΡΠΈΠΊ Π½ΡΠΆΠ΅Π½, ΡΡΠΎΠ±Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎ.
ΠΠ°ΠΊ ΡΡΠΎΠ³ΠΎ Π΄ΠΎΡΡΠΈΡΡ? ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ canary-ΡΠ΅ΡΠ²ΠΈΡ Π½Π΅ Π² ΠΌΠΎΠΌΠ΅Π½Ρ Π΄Π΅ΠΏΠ»ΠΎΡ. ΠΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ Π½Π° ΡΡΠ°ΡΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ Π½Π΅ΠΊΠΈΠΉ ΡΠ΅ΡΠ²ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π² Π»ΡΠ±ΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΠΌΠΎΠΆΠ΅Ρ Π²Π·ΡΡΡ Π»ΡΠ±ΡΡ Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΡΡ Π½ΠΎΠ΄Ρ, ΡΠΌΠ΅Π½ΡΡΠΈΡΡ ΡΡΠ°ΡΠΈΠΊ Π±Π΅Π· Π΄Π΅ΠΏΠ»ΠΎΡ. ΠΠΎΡΠ»Π΅ ΡΡΠ°Π²Π½ΠΈΠ²Π°Π΅ΠΌ: ΠΈΠ·ΡΡΠ°Π΅ΠΌ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΈ ΠΈΡΠ΅ΠΌ ΡΡ Π³ΡΠ°Π½Ρ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ Π΄ΠΎΡΡΠΈΠ³Π°Π΅ΠΌ ΠΊΠ°ΡΠ΅ΡΡΠ²Π°.
ΠΠ°ΠΊΡΡ ΠΏΠΎΠ»ΡΠ·Ρ ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΠΎΡ canary-ΡΠ΅Π»ΠΈΠ·ΠΎΠ²
ΠΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π»ΠΈ ΠΏΡΠΎΡΠ΅Π½Ρ ΡΡΠ΅ΡΠ±Π° ΠΎΡ Π±Π°Π³ΠΎΠ². ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΎΡΠΈΠ±ΠΎΠΊ Π΄Π΅ΠΏΠ»ΠΎΡ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΈΠ·-Π·Π° Π½Π΅ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡΠΈ ΠΊΠ°ΠΊΠΈΡ -ΡΠΎ Π΄Π°Π½Π½ΡΡ ΠΈΠ»ΠΈ ΠΏΡΠΈΠΎΡΠΈΡΠ΅ΡΠ°. Π’Π°ΠΊΠΈΡ ΠΎΡΠΈΠ±ΠΎΠΊ ΡΡΠ°Π»ΠΎ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Π½ΡΡΠ΅, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ΅ΡΠΈΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π² ΠΏΠ΅ΡΠ²ΡΠ΅ ΡΠ΅ΠΊΡΠ½Π΄Ρ.
ΠΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π»ΠΈ ΡΠ°Π±ΠΎΡΡ ΠΊΠΎΠΌΠ°Π½Π΄. Π£ Π½ΠΎΠ²ΠΈΡΠΊΠΎΠ² Π΅ΡΡΡ Β«ΠΏΡΠ°Π²ΠΎ Π½Π° ΠΎΡΠΈΠ±ΠΊΡΒ»: ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ Π΄Π΅ΠΏΠ»ΠΎΠΈΡΡ Π² ΠΏΡΠΎΠ΄Π°ΠΊΡΠ½ Π±Π΅Π· ΡΡΡΠ°Ρ Π° ΠΎΡΠΈΠ±ΠΈΡΡΡΡ, ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΠΈΠ½ΠΈΡΠΈΠ°ΡΠΈΠ²Π°, ΡΡΠΈΠΌΡΠ» ΡΠ°Π±ΠΎΡΠ°ΡΡ. ΠΡΠ»ΠΈ ΠΎΠ½ΠΈ ΡΡΠΎ-ΡΠΎ ΡΠ»ΠΎΠΌΠ°ΡΡ, ΡΠΎ ΡΡΠΎ Π±ΡΠ΄Π΅Ρ Π½Π΅ ΠΊΡΠΈΡΠΈΡΠ½ΠΎ, Π° ΠΎΡΠΈΠ±ΠΈΠ²ΡΠ΅Π³ΠΎΡΡ Π½Π΅ ΡΠ²ΠΎΠ»ΡΡ.
ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π»ΠΈ Π΄Π΅ΠΏΠ»ΠΎΠΉ. ΠΡΠΎ ΡΠΆΠ΅ Π½Π΅ ΡΡΡΠ½ΠΎΠΉ ΠΏΡΠΎΡΠ΅ΡΡ, ΠΊΠ°ΠΊ ΡΠ°Π½ΡΡΠ΅, Π° Π½Π°ΡΡΠΎΡΡΠΈΠΉ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ. ΠΠΎ ΠΎΠ½ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡ Π΄ΠΎΠ»ΡΡΠ΅.
ΠΡΠ΄Π΅Π»ΠΈΠ»ΠΈ Π²Π°ΠΆΠ½ΡΠ΅ ΠΌΠ΅ΡΡΠΈΠΊΠΈ. ΠΡΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ, Π½Π°ΡΠΈΠ½Π°Ρ ΠΎΡ Π±ΠΈΠ·Π½Π΅ΡΠ° ΠΈ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠΎΠ², ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ, ΡΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π²Π°ΠΆΠ½ΠΎ Π² Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΎΠ΄ΡΠΊΡΠ΅, ΠΊΠ°ΠΊΠΈΠ΅ ΠΌΠ΅ΡΡΠΈΠΊΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΡΡΠΎΠΊ ΠΈ ΠΏΡΠΈΡΠΎΠΊ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ. ΠΡ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΠ΅ΠΌ ΠΏΡΠΎΡΠ΅ΡΡ: ΡΠ΅ΡΡΠΈΡΡΠ΅ΠΌ ΠΌΠ΅ΡΡΠΈΠΊΠΈ, Π²Π²ΠΎΠ΄ΠΈΠΌ Π½ΠΎΠ²ΡΠ΅, ΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΡΠ°ΡΡΠ΅, ΡΡΠΎΠ±Ρ ΡΡΡΠΎΠΈΡΡ ΡΠΈΡΡΠ΅ΠΌΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ Π·Π°ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π΄Π΅Π½ΡΠ³ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½Π΅Π΅.
Π£ Π½Π°Ρ ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ½ΡΡ ΠΏΡΠ°ΠΊΡΠΈΠΊ ΠΈ ΡΠΈΡΡΠ΅ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°ΠΌ ΠΏΠΎΠΌΠΎΠ³Π°ΡΡ. ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΡΠΎ, ΠΌΡ ΡΡΡΠ΅ΠΌΠΈΠΌΡΡ Π±ΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»Π°ΠΌΠΈ ΠΈ Π΄Π΅Π»Π°ΡΡ ΡΠ²ΠΎΡ ΡΠ°Π±ΠΎΡΡ ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ, Π²Π½Π΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΎΠ³ΠΎ, Π΅ΡΡΡ Ρ Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π°ΠΌ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ, ΠΈΠ»ΠΈ Π½Π΅Ρ.
ΠΠ½ΠΆΠ΅Π½Π΅ΡΠ½ΡΠ΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Ρ ΠΈ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ β
ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠΎΠΊΡΡ ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΠΈ TechLead Conf . ΠΡΠ»ΠΈ Π²Ρ Π΄ΠΎΡΡΠΈΠ³Π»ΠΈ ΡΡΠΏΠ΅Ρ ΠΎΠ² Π½Π° ΠΏΡΡΠΈ ΠΊ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠΌΡ ΡΠΎΠ²Π΅ΡΡΠ΅Π½ΡΡΠ²Ρ ΠΈ Π³ΠΎΡΠΎΠ²Ρ ΡΠ°ΡΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ Π²Π°ΠΌ Π² ΡΡΠΎΠΌ ΠΏΠΎΠΌΠΎΠ³Π»ΠΎ, βΠΏΠΎΠ΄Π°Π²Π°ΠΉΡΠ΅ Π·Π°ΡΠ²ΠΊΡ Π½Π° Π΄ΠΎΠΊΠ»Π°Π΄ .ΠΡ ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΠΌ ΠΏΡΠΎΠ²Π΅ΡΡΠΈ
TechLead Conf 8 ΠΈΡΠ½Ρ. ΠΡ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΠΌ, ΡΡΠΎ ΡΠ΅ΠΉΡΠ°Ρ ΡΡΡΠ΄Π½ΠΎ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΎΠ± ΡΡΠ°ΡΡΠΈΠΈ Π² ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΠΈ. ΠΠΎ Π² ΡΠΎ ΠΆΠ΅ Π²ΡΠ΅ΠΌΡ ΡΡΠΈΡΠ°Π΅ΠΌ, ΡΡΠΎ ΠΊΠ°ΡΠ°Π½ΡΠΈΠ½ Π½Π΅ ΠΏΠΎΠ²ΠΎΠ΄ ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ΅ ΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΈ ΡΠ°Π·Π²ΠΈΡΠΈΠ΅. ΠΠΎΡΡΠΎΠΌΡ ΠΌΡ Π² Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π°ΠΉΠ΄Π΅ΠΌ ΡΠΏΠΎΡΠΎΠ± ΠΎΠ±ΡΡΠ΄ΠΈΡΡ Π·Π°Π΄Π°ΡΠΈ ΡΠ΅Ρ Π»ΠΈΠ΄Π° ΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Ρ ΠΊ ΠΈΡ ΡΠ΅ΡΠ΅Π½ΠΈΡ β Π΅ΡΠ»ΠΈ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ, ΡΠΉΠ΄ΡΠΌ Π² ΠΎΠ½Π»Π°ΠΉΠ½ ΠΈ ΡΠ°Π·Π²Π΅ΡΠ½Π΅ΠΌ Π½Π΅ΡΠ²ΠΎΡΠΊΠΈΠ½Π³ ΡΠ°ΠΌ!
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com