Β«Walking in my shoesΒ» β€” стоп, Π° ΠΎΠ½ΠΈ ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅?

Π‘ 2019 Π³ΠΎΠ΄Π° Π² России дСйствуСт Π·Π°ΠΊΠΎΠ½ ΠΎΠ± ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²ΠΊΠ΅. Π—Π°ΠΊΠΎΠ½ распространяСтся Π½Π΅ Π½Π° всС Π³Ρ€ΡƒΠΏΠΏΡ‹ Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ², ΠΈ сроки вступлСния Π² силу ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ для Ρ‚ΠΎΠ²Π°Ρ€Π½Ρ‹Ρ… Π³Ρ€ΡƒΠΏΠΏ Ρ€Π°Π·Π½Ρ‹Π΅. ΠŸΠ΅Ρ€Π²Ρ‹ΠΌΠΈ ΠΏΠΎΠ΄ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²ΠΊΡƒ ΠΏΠΎΠΏΠ°Π΄Π°ΡŽΡ‚ Ρ‚Π°Π±Π°ΠΊ, ΠΎΠ±ΡƒΠ²ΡŒ, лСкарства, ΠΏΠΎΠ·Π΄Π½Π΅Π΅ добавятся ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ‚ΠΎΠ²Π°Ρ€Ρ‹, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΄ΡƒΡ…ΠΈ, Ρ‚Π΅ΠΊΡΡ‚ΠΈΠ»ΡŒ, ΠΌΠΎΠ»ΠΎΠΊΠΎ. Π­Ρ‚ΠΎ Π·Π°ΠΊΠΎΠ½ΠΎΠ΄Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π½ΠΎΠ²ΠΎΠ²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ±ΡƒΠ΄ΠΈΠ»ΠΎ ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π½ΠΎΠ²Ρ‹Ρ… ИВ-Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ позволят ΠΎΡ‚ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ всю Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ ΠΆΠΈΠ·Π½ΠΈ Ρ‚ΠΎΠ²Π°Ρ€Π° с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° производства Π΄ΠΎ ΠΏΠΎΠΊΡƒΠΏΠΊΠΈ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΌ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»Π΅ΠΌ, всСм участникам процСсса: ΠΊΠ°ΠΊ само государство, Ρ‚Π°ΠΊ ΠΈ всС ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠ΅ Ρ‚ΠΎΠ²Π°Ρ€Ρ‹ с ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²ΠΊΠΎΠΉ.

Π’ Π₯5 систСма, которая Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ²Π°Ρ€Ρ‹ с ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²ΠΊΠΎΠΉ ΠΈ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ с государством ΠΈ поставщиками, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»Π° Π½Π°Π·Π²Π°Π½ΠΈΠ΅ β€œΠœΠ°Ρ€ΠΊΡƒΡβ€. РасскаТСм ΠΏΠΎ порядку ΠΊΠ°ΠΊ ΠΈ ΠΊΡ‚ΠΎ Π΅Π΅ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π», ΠΊΠ°ΠΊΠΎΠΉ Ρƒ Π½Π΅Π΅ стСк Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ, ΠΈ ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π½Π°ΠΌ Π΅ΡΡ‚ΡŒ Ρ‡Π΅ΠΌ Π³ΠΎΡ€Π΄ΠΈΡ‚ΡŒΡΡ.

«Walking in my shoes» — стоп, Π° ΠΎΠ½ΠΈ ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅?

Настоящий HighLoad

β€œΠœΠ°Ρ€ΠΊΡƒΡβ€ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ мноТСство Π·Π°Π΄Π°Ρ‡, главная ΠΈΠ· Π½ΠΈΡ… β€” ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ΅ взаимодСйствиС ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌΠΈ систСмами Π₯5 ΠΈ государствСнной ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмой ΠΌΠ°Ρ€ΠΊΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΉ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ†ΠΈΠΈ (Π“Π˜Π‘ МП) для прослСТивания двиТСния ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ†ΠΈΠΈ. Π’Π°ΠΊΠΆΠ΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Ρ…Ρ€Π°Π½ΠΈΡ‚ всС ΠΏΠΎΡΡ‚ΡƒΠΏΠΈΠ²ΡˆΠΈΠ΅ ΠΊ Π½Π°ΠΌ ΠΊΠΎΠ΄Ρ‹ ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΈ всю ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ двиТСния этих ΠΊΠΎΠ΄ΠΎΠ² ΠΏΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ, ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΡƒΡΡ‚Ρ€Π°Π½ΠΈΡ‚ΡŒ пСрСсорт ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ†ΠΈΠΈ. На ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Ρ‚Π°Π±Π°Ρ‡Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ†ΠΈΠΈ, которая вошла Π² ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ², Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Π° Ρ„ΡƒΡ€Π° сигарСт содСрТит порядка 600 000 ΠΏΠ°Ρ‡Π΅ΠΊ, каТдая ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΠΌΠ΅Π΅Ρ‚ свой ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄. И Π·Π°Π΄Π°Ρ‡Π° нашСй систСмы ΠΎΡ‚ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π»Π΅Π³Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΉ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠ°Ρ‡ΠΊΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ складами ΠΈ ΠΌΠ°Π³Π°Π·ΠΈΠ½Π°ΠΌΠΈ, ΠΈ Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ счСтС ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π΄ΠΎΠΏΡƒΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΈΡ… Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌΡƒ ΠΏΠΎΠΊΡƒΠΏΠ°Ρ‚Π΅Π»ΡŽ. А кассовых ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΌΡ‹ фиксируСм порядка 125 000 Π² час, ΠΈ Π΅Ρ‰Ρ‘ Π½Π°Π΄ΠΎ Π·Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ каТдая такая ΠΏΠ°Ρ‡ΠΊΠ° ΠΏΠΎΠΏΠ°Π»Π° Π² ΠΌΠ°Π³Π°Π·ΠΈΠ½. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ всСх ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ ΠΌΡ‹ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌ дСсятки ΠΌΠΈΠ»Π»ΠΈΠ°Ρ€Π΄ΠΎΠ² записСй Π² Π³ΠΎΠ΄.

Команда М

НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Β«ΠœΠ°Ρ€ΠΊΡƒΡΒ» считаСтся Π² Ρ€Π°ΠΌΠΊΠ°Ρ… Π₯5 ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ, рСализуСтся ΠΎΠ½ ΠΏΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ²ΠΎΠΌΡƒ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρƒ. Команда Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΠΎ Scrum. Π‘Ρ‚Π°Ρ€Ρ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π±Ρ‹Π» Π»Π΅Ρ‚ΠΎΠΌ ΠΏΡ€ΠΎΡˆΠ»ΠΎΠ³ΠΎ Π³ΠΎΠ΄Π°, Π½ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΏΡ€ΠΈΡˆΠ»ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² октябрС β€” Π±Ρ‹Π»Π° ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ собрана собствСнная ΠΊΠΎΠΌΠ°Π½Π΄Π°, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° систСмы ΠΈ ΠΊΡƒΠΏΠ»Π΅Π½ΠΎ ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅. БСйчас Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ 16 Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ, ΡˆΠ΅ΡΡ‚ΡŒ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ backend ΠΈ frontend, Ρ‚Ρ€ΠΎΠ΅ систСмным Π°Π½Π°Π»ΠΈΠ·ΠΎΠΌ. Π ΡƒΡ‡Π½Ρ‹ΠΌ, Π½Π°Π³Ρ€ΡƒΠ·ΠΎΡ‡Π½Ρ‹ΠΌ, Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ тСстированиСм, ΠΈ сопровоТдСниСм ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ Π΅Ρ‰Π΅ ΡˆΠ΅ΡΡ‚ΡŒ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ. Помимо этого Ρƒ нас Π΅ΡΡ‚ΡŒ SRE-спСциалист.

Код Π² нашСй ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΠΏΠΈΡˆΡƒΡ‚ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ, практичСски всС рСбята ΡƒΠΌΠ΅ΡŽΡ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΏΠΈΡˆΡƒΡ‚ автотСсты, Π½Π°Π³Ρ€ΡƒΠ·ΠΎΡ‡Π½Ρ‹Π΅ скрипты ΠΈ скрипты Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ. ΠœΡ‹ удСляСм этому особоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π΄Π°ΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ высокого уровня Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ. КоллСгам, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π½ΡŒΡˆΠ΅ Π½Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π»ΠΈ, всСгда стараСмся ΠΏΠΎΠ΄ΡΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΈ ΠΏΠΎΠΌΠΎΡ‡ΡŒ, Π΄Π°Ρ‚ΡŒ Π² Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ нСбольшиС Π·Π°Π΄Π°Ρ‡ΠΈ.

Π’ связи с ΠΏΠ°Π½Π΄Π΅ΠΌΠΈΠ΅ΠΉ коронавирусной ΠΈΠ½Ρ„Π΅ΠΊΡ†ΠΈΠΈ ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π²Π΅Π»ΠΈ всю ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ, Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ всСх инструмСнтов для управлСния Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ, построСнный workflow Π² Jira ΠΈ GitLab ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΈ Π»Π΅Π³ΠΊΠΎ ΠΏΡ€ΠΎΠΉΡ‚ΠΈ этот этап. ΠŸΡ€ΠΎΠ²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ Π½Π° ΡƒΠ΄Π°Π»Π΅Π½ΠΊΠ΅ мСсяцы ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΈ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΎΡ‚ этого Π½Π΅ пострадала, для ΠΌΠ½ΠΎΠ³ΠΈΡ… повысился ΠΊΠΎΠΌΡ„ΠΎΡ€Ρ‚ Π² Ρ€Π°Π±ΠΎΡ‚Π΅, СдинствСнноС, Π½Π΅ Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚ ΠΆΠΈΠ²ΠΎΠ³ΠΎ общСния.

ВстрСча ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π΄ΠΎ ΡƒΠ΄Π°Π»Ρ‘Π½ΠΊΠΈ

«Walking in my shoes» — стоп, Π° ΠΎΠ½ΠΈ ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅?

ВстрСчи Π²ΠΎ врСмя ΡƒΠ΄Π°Π»Ρ‘Π½ΠΊΠΈ

«Walking in my shoes» — стоп, Π° ΠΎΠ½ΠΈ ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅?

ВСхнологичСский стСк Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ

Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹ΠΌ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΌ ΠΈ инструмСнтом CI/CD для Π₯5 являСтся GitLab. ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π΅Π³ΠΎ для хранСния ΠΊΠΎΠ΄Π°, Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠ³ΠΎ тСстирования, развСртывания Π½Π° тСстовых ΠΈ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… сСрвСрах. Π’Π°ΠΊΠΆΠ΅ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΡƒ code review, ΠΊΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ 2 ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌΠΈ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ΄ΠΎΠ±Ρ€ΠΈΡ‚ΡŒ вносимыС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ измСнСния Π² ΠΊΠΎΠ΄. БтатичСскиС Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Ρ‹ ΠΊΠΎΠ΄Π° SonarQube ΠΈ JaCoCo ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ Π½Π°ΠΌ Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ чистым ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ покрытия unit-тСстами. ВсС измСнСния Π² ΠΊΠΎΠ΄Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€ΠΎΠΉΡ‚ΠΈ Ρ‡Π΅Ρ€Π΅Π· эти ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ. ВсС тСстовыС сцСнарии, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΎΠ³ΠΎΠ½ΡΡŽΡ‚ΡΡ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ, впослСдствии Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ΡΡ.

Для ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ выполнСния бизнСс-процСссов β€œΠœΠ°Ρ€ΠΊΡƒΡΠΎΠΌβ€ Π½Π°ΠΌ ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ряд тСхнологичСских Π·Π°Π΄Π°Ρ‡, ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠΎ порядку.

Π—Π°Π΄Π°Ρ‡Π° 1. ΠΠ΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΠΈ систСмы

Для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ этой Π·Π°Π΄Π°Ρ‡ΠΈ ΠΌΡ‹ Π²Ρ‹Π±Ρ€Π°Π»ΠΈ микросСрвисный ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅. ΠŸΡ€ΠΈ этом Π±Ρ‹Π»ΠΎ ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ области отвСтствСнности сСрвисов. ΠœΡ‹ ΠΏΠΎΡΡ‚Π°Ρ€Π°Π»ΠΈΡΡŒ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΈΡ… ΠΏΠΎ бизнСс-опСрациям с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ спСцифики процСссов. НапримСр, ΠΏΡ€ΠΈΠ΅ΠΌΠΊΠ° Π½Π° складС β€” это Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ частая, Π½ΠΎ ΠΎΡ‡Π΅Π½ΡŒ объСмная опСрация, Π² Ρ…ΠΎΠ΄Π΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π½Π°Π΄ΠΎ максимально быстро ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρƒ госрСгулятора ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅ΠΌΡ‹Ρ… Π΅Π΄ΠΈΠ½ΠΈΡ†Π°Ρ… Ρ‚ΠΎΠ²Π°Ρ€Π°, количСство ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π² ΠΎΠ΄Π½ΠΎΠΉ поставкС Π΄ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Π΄ΠΎ 600000, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π΄ΠΎΠΏΡƒΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ΅ΠΌΠ° этого Ρ‚ΠΎΠ²Π°Ρ€Π° Π½Π° склад ΠΈ ΠΎΡ‚Π΄Π°Ρ‚ΡŒ всю Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ систСмС Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ склада. А Π²ΠΎΡ‚ ΠΎΡ‚Π³Ρ€ΡƒΠ·ΠΊΠ° со складов ΠΈΠΌΠ΅Π΅Ρ‚ Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ ΠΈΠ½Ρ‚Π΅Π½ΡΠΈΠ²Π½ΠΎΡΡ‚ΡŒ, Π½ΠΎ ΠΏΡ€ΠΈ этом ΠΎΠΏΠ΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ нСбольшими объСмами Π΄Π°Π½Π½Ρ‹Ρ….

ВсС сСрвисы ΠΌΡ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌ ΠΏΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ stateless ΠΈ Π΄Π°ΠΆΠ΅ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ стараСмся Ρ€Π°Π·Π΄Π΅Π»ΡΡ‚ΡŒ Π½Π° шаги, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ, ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΈΡ… Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌ, self-Ρ‚ΠΎΠΏΠΈΠΊΠΈ Kafka. Π­Ρ‚ΠΎ ΠΊΠΎΠ³Π΄Π° микросСрвис отправляСт сообщСниС сам сСбС, Ρ‡Ρ‚ΠΎ позволяСт ΡΠ±Π°Π»Π°Π½ΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ ΠΏΠΎ Π±ΠΎΠ»Π΅Π΅ рСсурсоСмким опСрациям ΠΈ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ сопровоТдСниС ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°, Π½ΠΎ ΠΎΠ± этом ΠΏΠΎΠ·ΠΆΠ΅.

ΠœΡ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ сСрвисы ΠΌΠΎΠ΄ΡƒΠ»ΠΈ взаимодСйствия с внСшними систСмами. Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ часто ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΡ…ΡΡ API Π²Π½Π΅ΡˆΠ½ΠΈΡ… систСм, практичСски Π±Π΅Π· влияния Π½Π° сСрвисы с бизнСс-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΠΎΠΌ.

«Walking in my shoes» — стоп, Π° ΠΎΠ½ΠΈ ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅?

ВсС микросСрвисы Ρ€Π°Π·Π²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π² кластСрС OpenShift, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ микросСрвиса, Ρ‚Π°ΠΊ ΠΈ позволяСт Π½Π°ΠΌ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ сторонниС инструмСнты Service Discovery.

Π—Π°Π΄Π°Ρ‡Π° 2. ΠΠ΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ поддСрТания высокой Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈ ΠΎΡ‡Π΅Π½ΡŒ интСнсивного ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ сСрвисами ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹: Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° Ρ„Π°Π·Π΅ запуска ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° выполняСтся порядка 600 ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π² сСкунду. ΠœΡ‹ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ этого значСния Π΄ΠΎ 5000 ΠΎΠΏ/сСк ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Ρ‚ΠΎΡ€Π³ΠΎΠ²Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΊ нашСй ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅.

Π­Ρ‚Ρƒ Π·Π°Π΄Π°Ρ‡Ρƒ Ρ€Π΅ΡˆΠ°Π»ΠΈ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ΠΌ кластСра Kafka ΠΈ практичСски ΠΏΠΎΠ»Π½Ρ‹ΠΌ ΠΎΡ‚ΠΊΠ°Π·ΠΎΠΌ ΠΎΡ‚ синхронного взаимодСйствия ΠΌΠ΅ΠΆΠ΄Ρƒ микросСрвисами ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. Π­Ρ‚ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊ систСмС, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π½Π΅ всС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ асинхронными. ΠŸΡ€ΠΈ этом, ΠΌΡ‹ Π½Π΅ просто ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅ΠΌ события Ρ‡Π΅Ρ€Π΅Π· Π±Ρ€ΠΎΠΊΠ΅Ρ€, Π½ΠΎ ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅ΠΌ Π² сообщСнии всю Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡƒΡŽ бизнСс-ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ€Π°Π·ΠΌΠ΅Ρ€ сообщСния ΠΌΠΎΠΆΠ΅Ρ‚ Π΄ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π΄ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… сотСн ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡ‚. ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π½Π° объСм сообщСний Π² Kafka Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΎΡ‚ нас Ρ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ прогнозирования Ρ€Π°Π·ΠΌΠ΅Ρ€Π° сообщСний, ΠΈ, ΠΏΡ€ΠΈ нСобходимости, ΠΌΡ‹ ΠΈΡ… Π΄Π΅Π»ΠΈΠΌ, Π½ΠΎ Π΄Π΅Π»Π΅Π½ΠΈΠ΅ это логичСскоС, связанноС с бизнСс-опСрациями.
НапримСр, Ρ‚ΠΎΠ²Π°Ρ€ ΠΏΡ€ΠΈΠ΅Ρ…Π°Π²ΡˆΠΈΠΉ Π² Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»Π΅, ΠΌΡ‹ Π΄Π΅Π»ΠΈΠΌ ΠΏΠΎ ΠΊΠΎΡ€ΠΎΠ±Π°ΠΌ. Для синхронных ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π²Ρ‹Π΄Π΅Π»ΡΡŽΡ‚ΡΡ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ микросСрвисы ΠΈ проводится Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π½Π°Π³Ρ€ΡƒΠ·ΠΎΡ‡Π½ΠΎΠ΅ тСстированиС. ИспользованиС Kafka поставило ΠΏΠ΅Ρ€Π΅Π΄ Π½Π°ΠΌΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π²Ρ‹Π·ΠΎΠ² β€” ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ€Π°Π±ΠΎΡ‚Ρ‹ нашСго сСрвиса с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ Kafka Π΄Π΅Π»Π°Π΅Ρ‚ всС наши unit-тСсты асинхронными. Π­Ρ‚Ρƒ Π·Π°Π΄Π°Ρ‡Ρƒ ΠΌΡ‹ Ρ€Π΅ΡˆΠ°Π»ΠΈ написаниСм собствСнных ΡƒΡ‚ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² с использованиСм Embedded Kafka Broker. Π­Ρ‚ΠΎ Π½Π΅ отмСняСт нСобходимости написания unit-тСстов Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, Π½ΠΎ слоТныС кСйсы ΠΌΡ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Π΅ΠΌ Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с использованиСм Kafka.

ΠžΡ‡Π΅Π½ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ внимания ΡƒΠ΄Π΅Π»ΠΈΠ»ΠΈ трассировкС Π»ΠΎΠ³ΠΎΠ², Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡ… TraceId Π½Π΅ Ρ‚Π΅Ρ€ΡΠ»ΠΈΡΡŒ ΠΏΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ Π² Ρ…ΠΎΠ΄Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ сСрвисов ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Kafka batch. И Ссли с ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ особых вопросов Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΎ, Ρ‚ΠΎ Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ случаС ΠΌΡ‹ Π²Ρ‹Π½ΡƒΠΆΠ΄Π΅Π½Ρ‹ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² Π»ΠΎΠ³ всС TraceId, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΏΡ€ΠΈΡˆΠ΅Π» batch, ΠΈ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ для продолТСния трассировки. Π’ΠΎΠ³Π΄Π° ΠΏΡ€ΠΈ поискС ΠΏΠΎ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΌΡƒ TraceId ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π»Π΅Π³ΠΊΠΎ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ с ΠΊΠ°ΠΊΠΈΠΌ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΠ»Π°ΡΡŒ трассировка.

Π—Π°Π΄Π°Ρ‡Π° 3. ΠΠ΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ хранСния большого количСства Π΄Π°Π½Π½Ρ‹Ρ…: Π±ΠΎΠ»Π΅Π΅ 1 ΠΌΠΈΠ»Π»ΠΈΠ°Ρ€Π΄Π° ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ Π² Π³ΠΎΠ΄ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎ Ρ‚Π°Π±Π°ΠΊΡƒ поступаСт Π² X5. К Π½ΠΈΠΌ трСбуСтся постоянный ΠΈ быстрый доступ. ВсСго систСма Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ порядка 10 ΠΌΠΈΠ»Π»ΠΈΠ°Ρ€Π΄ΠΎΠ² записСй ΠΏΠΎ истории двиТСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ².

Для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ Π±Ρ‹Π»Π° Π²Ρ‹Π±Ρ€Π°Π½Π° NoSQL Π±Π°Π·Π° MongoDB. Π£ нас построСн ΡˆΠ°Ρ€Π΄ ΠΈΠ· 5 Π½ΠΎΠ΄ ΠΈ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π½ΠΎΠ΄Π΅ Replica Set ΠΈΠ· 3 сСрвСров. Π­Ρ‚ΠΎ позволяСт ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ систСму Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎ, добавляя Π½ΠΎΠ²Ρ‹Π΅ сСрвСра Π² кластСр, ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Π΅Ρ‘ ΠΎΡ‚ΠΊΠ°Π·ΠΎΡƒΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²ΠΎΡΡ‚ΡŒ. Π’ΡƒΡ‚ ΠΌΡ‹ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΠ»ΠΈΡΡŒ с Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ β€” обСспСчСниС транзакционности Π² кластСрС mongo с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ использования Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… микросСрвисов. НапримСр, ΠΎΠ΄Π½Π° ΠΈΠ· Π·Π°Π΄Π°Ρ‡ нашСй систСмы β€” Π²Ρ‹ΡΠ²Π»ΡΡ‚ΡŒ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ΄Π°ΠΆΠΈ Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ² с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ ΠΊΠΎΠ΄Π°ΠΌΠΈ ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ. Π’ΡƒΡ‚ ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½Π°ΠΊΠ»Π°Π΄ΠΊΠΈ с ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½Ρ‹ΠΌΠΈ сканированиями Π»ΠΈΠ±ΠΎ с ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½Ρ‹ΠΌΠΈ опСрациями кассиров. ΠœΡ‹ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ»ΠΈ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΈΠ΅ Π΄ΡƒΠ±Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Ρ‚ΡŒ ΠΊΠ°ΠΊ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΠΎΠ³ΠΎ batch Kafka, Ρ‚Π°ΠΊ ΠΈ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π΄Π²ΡƒΡ… ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… batch. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° появлСниС Π΄ΡƒΠ±Π»Π΅ΠΉ ΠΏΡƒΡ‚Π΅ΠΌ запроса ΠΊ Π±Π°Π·Π΅ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π΄Π°Π²Π°Π»Π°. Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· микросСрвисов ΠΌΡ‹ Ρ€Π΅ΡˆΠ°Π»ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ исходя ΠΈΠ· бизнСс-Π»ΠΎΠ³ΠΈΠΊΠΈ этого сСрвиса. НапримСр, для Ρ‡Π΅ΠΊΠΎΠ² Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ Π²Π½ΡƒΡ‚Ρ€ΠΈ batch ΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π½Π° появлСниС Π΄ΡƒΠ±Π»ΠΈΠΊΠ°Ρ‚ΠΎΠ² ΠΏΡ€ΠΈ вставкС.

Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ с историСй ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ влияла Π½Π° самоС Π³Π»Π°Π²Π½ΠΎΠ΅ β€” Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π°ΡˆΠΈΡ… бизнСс-процСссов, всС историчСскиС Π΄Π°Π½Π½Ρ‹Π΅ ΠΌΡ‹ Π²Ρ‹Π΄Π΅Π»ΠΈΠ»ΠΈ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ сСрвис с ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Ρ‡Π΅Ρ€Π΅Π· Kafka. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ с ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ сСрвисом, Π½Π΅ оказывая влияния Π½Π° сСрвисы, ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌ опСрациям.

Π—Π°Π΄Π°Ρ‡Π° 4. ΠŸΠΎΠ²Ρ‚ΠΎΡ€Π½Π°Ρ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΎΡ‡Π΅Ρ€Π΅Π΄Π΅ΠΉ ΠΈ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³:

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

«Walking in my shoes» — стоп, Π° ΠΎΠ½ΠΈ ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅?

Для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ‚Π°ΠΊΠΎΠΉ схСмы Π½Π°ΠΌ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΎΡΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ β€” ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ это Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ со Spring ΠΈ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ дублирования ΠΊΠΎΠ΄Π°. На просторах сСти ΠΌΡ‹ Π½Π°Ρ‚ΠΊΠ½ΡƒΠ»ΠΈΡΡŒ Π½Π° ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, основанноС Π½Π° Spring BeanPostProccessor, Π½ΠΎ ΠΎΠ½ΠΎ показалось Π½Π°ΠΌ излишнС Π³Ρ€ΠΎΠΌΠΎΠ·Π΄ΠΊΠΈΠΌ. НашСй ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Π±Ρ‹Π»ΠΎ сдСлано Π±ΠΎΠ»Π΅Π΅ простоС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π΅ Π²ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒΡΡ Π² Ρ†ΠΈΠΊΠ» Spring ΠΏΠΎ созданию consumer ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Retry Consumer-Ρ‹. ΠŸΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏ нашСго Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΌΡ‹ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Spring, ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Ρ‚ΡƒΡ‚. ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ Retry Consumer-ΠΎΠ² ΠΈ количСство ΠΏΠΎΠΏΡ‹Ρ‚ΠΎΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ consumer-a настраиваСтся Ρ‡Π΅Ρ€Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, Π² зависимости ΠΎΡ‚ потрСбностСй бизнСс-процСсса, ΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ всС Π·Π°Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΎ, остаСтся лишь ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π·Π½Π°ΠΊΠΎΠΌΡƒΡŽ всСм Spring-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Π°Π½Π½ΠΎΡ‚Π°Ρ†ΠΈΡŽ org.springframework.kafka.annotation.KafkaListener.

Π’ случаС Ссли сообщСниС Π½Π΅ ΠΌΠΎΠ³Π»ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½ΠΎ послС всСх retry ΠΏΠΎΠΏΡ‹Ρ‚ΠΎΠΊ, ΠΎΠ½ΠΎ ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ‚ Π² DLT (dead letter topic) с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Spring DeadLetterPublishingRecoverer. По ΠΏΡ€ΠΎΡΡŒΠ±Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ, ΠΌΡ‹ Ρ€Π°ΡΡˆΠΈΡ€ΠΈΠ»ΠΈ Π΄Π°Π½Π½Ρ‹ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» ΠΈ сдСлали ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ сСрвис, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ попавшиС Π² DLT сообщСния, stackTrace, traceId ΠΈ Π΄Ρ€ΡƒΠ³ΡƒΡŽ ΠΏΠΎΠ»Π΅Π·Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΏΠΎ Π½ΠΈΠΌ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π±Ρ‹Π»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ΠΈ ΠΈ Π°Π»Π΅Ρ€Ρ‚Ρ‹ Π½Π° всС DLT Ρ‚ΠΎΠΏΠΈΠΊΠΈ, ΠΈ сСйчас, ΠΏΠΎ сути, появлСниС сообщСния Π² DLT Ρ‚ΠΎΠΏΠΈΠΊΠ΅ являСтся ΠΏΠΎΠ²ΠΎΠ΄ΠΎΠΌ для Ρ€Π°Π·Π±ΠΎΡ€Π° ΠΈ завСдСния Π΄Π΅Ρ„Π΅ΠΊΡ‚Π°. Π­Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½ΠΎ β€” ΠΏΠΎ названию Ρ‚ΠΎΠΏΠΈΠΊΠ° ΠΌΡ‹ сразу ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΠΌ, Π½Π° ΠΊΠ°ΠΊΠΎΠΌ шагС процСсса Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ускоряСт поиск Π΅Π΅ ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹.

«Walking in my shoes» — стоп, Π° ΠΎΠ½ΠΈ ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅?

БовсСм Π½Π΅Π΄Π°Π²Π½ΠΎ ΠΌΡ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π»ΠΈ интСрфСйс, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ сообщСния силами нашСй ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ, послС устранСния ΠΈΡ… ΠΏΡ€ΠΈΡ‡ΠΈΠ½ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, восстановлСниС работоспособности внСшнСй систСмы) ΠΈ, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, завСдСния ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Π΄Π΅Ρ„Π΅ΠΊΡ‚Π° для Π°Π½Π°Π»ΠΈΠ·Π°. Π’ΡƒΡ‚ ΠΈ ΠΏΡ€ΠΈΠ³ΠΎΠ΄ΠΈΠ»ΠΈΡΡŒ наши self-Ρ‚ΠΎΠΏΠΈΠΊΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Π΄Π»ΠΈΠ½Π½ΡƒΡŽ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π΅Π΅ с Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ шага.

«Walking in my shoes» — стоп, Π° ΠΎΠ½ΠΈ ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅?

Эксплуатация ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹

ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° ΡƒΠΆΠ΅ находится Π² ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ эксплуатации, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ дСнь ΠΌΡ‹ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΠΌ поставки ΠΈ ΠΎΡ‚Π³Ρ€ΡƒΠ·ΠΊΠΈ, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Π½ΠΎΠ²Ρ‹Π΅ Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ†Π΅Π½Ρ‚Ρ€Ρ‹ ΠΈ ΠΌΠ°Π³Π°Π·ΠΈΠ½Ρ‹. Π’ Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΏΠΈΠ»ΠΎΡ‚Π° систСма Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с Π³Ρ€ΡƒΠΏΠΏΠ°ΠΌΠΈ Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ² β€œΠ’Π°Π±Π°ΠΊβ€ ΠΈ β€œΠžΠ±ΡƒΠ²ΡŒβ€.

Вся наша ΠΊΠΎΠΌΠ°Π½Π΄Π° участвуСт Π² ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΈ ΠΏΠΈΠ»ΠΎΡ‚ΠΎΠ², Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΈ вносит прСдлоТСния ΠΏΠΎ ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½ΠΈΡŽ нашСго ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° ΠΎΡ‚ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ Π»ΠΎΠ³ΠΎΠ² Π΄ΠΎ измСнСния Π² процСссах.

Π§Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡ‚ΡŒ своих ошибок, всС кСйсы Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹Π΅ Π² Ρ…ΠΎΠ΄Π΅ ΠΏΠΈΠ»ΠΎΡ‚Π° находят своС ΠΎΡ‚Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… тСстах. НаличиС большого количСства автотСстов ΠΈ unit-тСстов ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ рСгрСссионноС тСстированиС ΠΈ ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ хотфикс Π±ΡƒΠΊΠ²Π°Π»ΡŒΠ½ΠΎ Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… часов.

БСйчас ΠΌΡ‹ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ΡŒ ΠΈ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π½Π°ΡˆΡƒ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ, ΠΈ постоянно сталкиваСмся с Π½ΠΎΠ²Ρ‹ΠΌΠΈ Π²Ρ‹Π·ΠΎΠ²Π°ΠΌΠΈ. Если Π²Π°ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ интСрСсно, Ρ‚ΠΎ ΠΌΡ‹ расскаТСм ΠΎ Π½Π°ΡˆΠΈΡ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΡ… Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΡΡ‚Π°Ρ‚ΡŒΡΡ….

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

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ