ΠΡ 2019 Π³ΠΎΠ΄ΠΈΠ½Π° Π² Π ΡΡΠΈΡ Π²Π»ΠΈΠ·Π° Π² ΡΠΈΠ»Π° Π·Π°ΠΊΠΎΠ½ Π·Π° Π·Π°Π΄ΡΠ»ΠΆΠΈΡΠ΅Π»Π½Π°ΡΠ° ΠΌΠ°ΡΠΊΠΈΡΠΎΠ²ΠΊΠ°. ΠΠ°ΠΊΠΎΠ½ΡΡ Π½Π΅ ΠΎΠ±Ρ Π²Π°ΡΠ° Π²ΡΠΈΡΠΊΠΈ Π³ΡΡΠΏΠΈ ΡΡΠΎΠΊΠΈ ΠΈ ΡΡΠΎΠΊΠΎΠ²Π΅ΡΠ΅ Π·Π° Π·Π°Π΄ΡΠ»ΠΆΠΈΡΠ΅Π»Π½Π° ΠΌΠ°ΡΠΊΠΈΡΠΎΠ²ΠΊΠ° Π·Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈΡΠ΅ Π³ΡΡΠΏΠΈ ΡΡΠΎΠΊΠΈ ΡΠ° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ. ΠΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΎ Π·Π°Π΄ΡΠ»ΠΆΠΈΡΠ΅Π»Π½Π°ΡΠ° ΠΌΠ°ΡΠΊΠΈΡΠΎΠ²ΠΊΠ° ΡΠ΅ ΠΎΠ±Ρ Π²Π°Π½Π΅ ΡΡΡΡΠ½, ΠΎΠ±ΡΠ²ΠΊΠΈ, Π»Π΅ΠΊΠ°ΡΡΡΠ²Π°, Π° ΠΏΠΎ-ΠΊΡΡΠ½ΠΎ ΡΠ΅ Π±ΡΠ΄Π°Ρ Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ ΠΈ Π΄ΡΡΠ³ΠΈ ΡΡΠΎΠΊΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΠ°ΡΡΡΠΌΠΈ, ΡΠ΅ΠΊΡΡΠΈΠ» ΠΈ ΠΌΠ»ΡΠΊΠΎ. Π’ΠΎΠ²Π° Π·Π°ΠΊΠΎΠ½ΠΎΠ΄Π°ΡΠ΅Π»Π½ΠΎ Π½ΠΎΠ²ΠΎΠ²ΡΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΡΠ΅Π΄ΠΈΠ·Π²ΠΈΠΊΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° Π½ΠΎΠ²ΠΈ ΠΠ’ ΡΠ΅ΡΠ΅Π½ΠΈΡ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ΅Π»ΠΈΡ ΠΆΠΈΠ·Π½Π΅Π½ ΡΠΈΠΊΡΠ» Π½Π° ΡΡΠΎΠΊΠ°ΡΠ° ΠΎΡ ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²ΠΎ Π΄ΠΎ ΠΏΠΎΠΊΡΠΏΠΊΠ°ΡΠ° ΠΎΡ ΠΊΡΠ°ΠΉΠ½ΠΈΡ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π», ΠΊΠ°ΡΠΎ Π²ΠΊΠ»ΡΡΠ²Π° Π²ΡΠΈΡΠΊΠΈ ΡΡΠ°ΡΡΠ½ΠΈΡΠΈ Π² ΠΏΡΠΎΡΠ΅ΡΠ°: ΠΊΠ°ΠΊΡΠΎ ΡΠ°ΠΌΠ°ΡΠ° Π΄ΡΡΠΆΠ°Π²Π°, ΡΠ°ΠΊΠ° ΠΈ Π²ΡΠΈΡΠΊΠΈ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Ρ ΡΡΠΎΠΊΠΈ Ρ Π·Π°Π΄ΡΠ»ΠΆΠΈΡΠ΅Π»Π½Π° ΠΌΠ°ΡΠΊΠΈΡΠΎΠ²ΠΊΠ°.
Π Π₯5 ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°, ΠΊΠΎΡΡΠΎ ΡΠ΅ ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π° ΡΡΠΎΠΊΠΈΡΠ΅ Ρ ΠΌΠ°ΡΠΊΠΈΡΠΎΠ²ΠΊΠ° ΠΈ ΡΠ΅ ΠΎΠ±ΠΌΠ΅Π½Ρ Π΄Π°Π½Π½ΠΈ Ρ Π΄ΡΡΠΆΠ°Π²Π°ΡΠ° ΠΈ Π΄ΠΎΡΡΠ°Π²ΡΠΈΡΠΈΡΠ΅, ΠΏΠΎΠ»ΡΡΠΈ ΠΈΠΌΠ΅ΡΠΎ "ΠΠ°ΡΠΊΡΡ". ΠΠ΅ΠΊΠ° Π΄Π° ΡΠ°Π·ΠΊΠ°ΠΆΠ΅ΠΌ ΠΏΠΎ ΡΠ΅Π΄ ΠΊΠ°ΠΊ ΠΈ ΠΊΠΎΠΉ Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°, ΠΊΠ°ΠΊΠ²ΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΏΡΠΈΡΠ΅ΠΆΠ°Π²Π° ΠΈ Ρ ΠΊΠ°ΠΊΠ²ΠΎ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΡΠ΅ Π³ΠΎΡΠ΄Π΅Π΅ΠΌ.

ΠΡΡΠΈΠ½ΡΠΊΠΈ HighLoad
"ΠΠ°ΡΠΊΡΡ" ΡΠ΅ΡΠ°Π²Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π·Π°Π΄Π°ΡΠΈ, Π½Π°ΠΉ-Π²Π°ΠΆΠ½Π°ΡΠ° ΠΎΡ ΠΊΠΎΠΈΡΠΎ Π΅ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΡΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΠΈΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠΈ Π½Π° Π₯5 ΠΈ Π΄ΡΡΠΆΠ°Π²Π½Π°ΡΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° ΠΌΠ°ΡΠΊΠΈΡΠ°Π½Π°ΡΠ° ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΡ (ΠΠΠ‘ ΠΠ) Π·Π° ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅ Π½Π° Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΌΠ°ΡΠΊΠΈΡΠ°Π½Π°ΡΠ° ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΡ. ΠΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΡΡΡ ΡΠ°Π½ΡΠ²Π° Π²ΡΠΈΡΠΊΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈ ΠΎΡ Π½Π°Ρ ΠΊΠΎΠ΄ΠΎΠ²Π΅ Π·Π° ΠΌΠ°ΡΠΊΠΈΡΠΎΠ²ΠΊΠ° ΠΈ ΡΡΠ»Π°ΡΠ° ΠΈΡΡΠΎΡΠΈΡ Π½Π° Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠ΅Π·ΠΈ ΠΊΠΎΠ΄ΠΎΠ²Π΅ ΠΏΠΎ ΠΎΠ±Π΅ΠΊΡΠΈ, ΠΏΠΎΠΌΠ°Π³Π° Π΄Π° ΡΠ΅ ΠΈΠ·Π±Π΅Π³Π½Π΅ ΠΏΠΎΠΏΠ°Π΄Π°Π½Π΅ΡΠΎ Π½Π° Π½Π΅ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ ΠΌΠ°ΡΠΊΠΈΡΠ°Π½ΠΈ ΡΡΠΎΠΊΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΡΠ»ΡΡΠ°Ρ Ρ ΡΡΡΡΠ½Π΅Π²ΠΈΡΠ΅ ΠΈΠ·Π΄Π΅Π»ΠΈΡ, ΠΊΠΎΠΈΡΠΎ Π²Π»ΡΠ·ΠΎΡ Π° Π² ΠΏΡΡΠ²ΠΈΡΠ΅ ΠΌΠ°ΡΠΊΠΈΡΠ°Π½ΠΈ ΡΡΠΎΠΊΠΈ, ΡΠ°ΠΌΠΎ Π΅Π΄ΠΈΠ½ ΠΊΠ°ΠΌΠΈΠΎΠ½ ΡΠΈΠ³Π°ΡΠΈ ΡΡΠ΄ΡΡΠΆΠ° ΠΎΠΊΠΎΠ»ΠΎ 600 000 ΠΊΡΡΠΈΠΈ, Π²ΡΡΠΊΠ° ΠΎΡ ΠΊΠΎΠΈΡΠΎ ΠΈΠΌΠ° ΡΠ²ΠΎΠΉ ΡΠ½ΠΈΠΊΠ°Π»Π΅Π½ ΠΊΠΎΠ΄. ΠΠ°Π΄Π°ΡΠ°ΡΠ° Π½Π° Π½Π°ΡΠ°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° Π΅ Π΄Π° ΠΏΡΠΎΡΠ»Π΅Π΄ΠΈ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΈ Π»Π΅Π³Π°Π»Π½ΠΎΡΡΡΠ° Π½Π° Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Π²ΡΡΠΊΠ° ΡΠ°ΠΊΠ°Π²Π° ΠΊΡΡΠΈΠΉΠΊΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΊΠ»Π°Π΄ΠΎΠ²Π΅ΡΠ΅ ΠΈ ΠΌΠ°Π³Π°Π·ΠΈΠ½ΠΈΡΠ΅ ΠΈ Π² ΠΊΡΠ°ΠΉΠ½Π° ΡΠΌΠ΅ΡΠΊΠ° Π΄Π° ΠΏΡΠΎΠ²Π΅ΡΠΈ Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎΡΡΡΠ° Π½Π° ΡΡΡ Π½Π°ΡΠ° ΠΏΡΠΎΠ΄Π°ΠΆΠ±Π° Π½Π° ΠΊΡΠ°ΠΉΠ½ΠΈΡ ΠΊΡΠΏΡΠ²Π°Ρ. ΠΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅, ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ°ΠΌΠ΅ ΠΎΠΊΠΎΠ»ΠΎ 125 000 ΠΊΠ°ΡΠΎΠ²ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π½Π° ΡΠ°Ρ, Π° ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ°ΠΌΠ΅ ΠΊΠ°ΠΊ Π²ΡΡΠΊΠ° ΡΠ°ΠΊΠ°Π²Π° ΠΊΡΡΠΈΠΉΠΊΠ° Π΅ ΠΏΠΎΠΏΠ°Π΄Π½Π°Π»Π° Π² ΠΌΠ°Π³Π°Π·ΠΈΠ½Π°. Π£ΡΠΈΡΡΠ²Π°ΠΉΠΊΠΈ Π²ΡΠΈΡΠΊΠΈ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΠΎΠ±Π΅ΠΊΡΠΈΡΠ΅, ΠΎΡΠ°ΠΊΠ²Π°ΠΌΠ΅ Π΄Π΅ΡΠ΅ΡΠΊΠΈ ΠΌΠΈΠ»ΠΈΠ°ΡΠ΄ΠΈ Π·Π°ΠΏΠΈΡΠΈ Π½Π° Π³ΠΎΠ΄ΠΈΠ½Π°.
ΠΠΊΠΈΠΏΡΡ Π½Π° Π
ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠ΅ "ΠΠ°ΡΠΊΡΡ" ΡΠ΅ ΡΡΠΈΡΠ° Π·Π° ΠΏΡΠΎΠ΅ΠΊΡ Π² ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° Π₯5, ΡΠΎΠΉ ΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ° ΠΏΠΎ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ²ΠΈΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄. ΠΠΊΠΈΠΏΡΡ ΡΠ°Π±ΠΎΡΠΈ ΠΏΠΎ Scrum. Π‘ΡΠ°ΡΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° Π±Π΅ΡΠ΅ ΠΏΡΠ΅Π· Π»ΡΡΠΎΡΠΎ Π½Π° ΠΌΠΈΠ½Π°Π»Π°ΡΠ° Π³ΠΎΠ΄ΠΈΠ½Π°, Π½ΠΎ ΠΏΡΡΠ²ΠΈΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈ ΠΏΡΠΈΡΡΠΈΠ³Π½Π°Ρ Π° Π΅Π΄Π²Π° ΠΏΡΠ΅Π· ΠΎΠΊΡΠΎΠΌΠ²ΡΠΈ - Π±Π΅ΡΠ΅ ΡΡΠ±ΡΠ°Π½ΠΈΡΡ Π΅ΠΊΠΈΠΏ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ΅Π½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° ΠΈ Π·Π°ΠΊΡΠΏΠ΅Π½ΠΎ ΠΎΠ±ΠΎΡΡΠ΄Π²Π°Π½Π΅. Π ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π΅ΠΊΠΈΠΏΡΡ ΡΠ΅ ΡΡΡΡΠΎΠΈ ΠΎΡ 16 Π΄ΡΡΠΈ, ΡΠ΅ΡΡ ΠΎΡ ΠΊΠΎΠΈΡΠΎ ΡΠ΅ Π·Π°Π½ΠΈΠΌΠ°Π²Π°Ρ Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° backend ΠΈ frontend, ΡΡΠΈ Ρ ΡΠΈΡΡΠ΅ΠΌΠ΅Π½ Π°Π½Π°Π»ΠΈΠ·. ΠΡΠ΅ ΡΠ΅ΡΡ ΡΠΎΠ²Π΅ΠΊΠ° ΡΠ°Π±ΠΎΡΡΡ ΠΏΠΎ ΡΡΡΠ½ΠΎ, Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°ΡΠΎ ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠ°Π½ΠΎ ΡΠ΅ΡΡΠ²Π°Π½Π΅ ΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΠΏΡΠΎΠ΄ΡΠΊΡΠ°. ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π° ΡΠ°Π·ΠΏΠΎΠ»Π°Π³Π°ΠΌΠ΅ Ρ SRE ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡ.
ΠΠΎΠ΄ Π² Π½Π°ΡΠΈΡ Π΅ΠΊΠΈΠΏ ΠΏΠΈΡΠ°Ρ Π½Π΅ ΡΠ°ΠΌΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅, Π° ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠΈΡΠΊΠΈ ΠΊΠΎΠ»Π΅Π³ΠΈ ΡΠΌΠ΅ΡΡ Π΄Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Ρ ΠΈ ΠΏΠΈΡΠ°Ρ Π°Π²ΡΠΎΡΠ΅ΡΡΠΎΠ²Π΅, Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°ΡΠΈ ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅ ΠΈ ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅ Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ. ΠΠΈΠ΅ ΠΎΡΠ΄Π΅Π»ΡΠΌΠ΅ ΠΎΡΠΎΠ±Π΅Π½ΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠΎΠ²Π°, ΡΡΠΉ ΠΊΠ°ΡΠΎ Π΄ΠΎΡΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° ΠΏΡΠΎΠ΄ΡΠΊΡΠ° ΠΈΠ·ΠΈΡΠΊΠ²Π° Π²ΠΈΡΠΎΠΊ ΡΡΠΎΠ²Π΅Π½Ρ Π½Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ. ΠΠ° ΠΊΠΎΠ»Π΅Π³ΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΠΏΡΠ΅Π΄ΠΈ Π½Π΅ ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π»ΠΈ, Π²ΠΈΠ½Π°Π³ΠΈ ΡΠ΅ ΠΎΠΏΠΈΡΠ²Π°ΠΌΠ΅ Π΄Π° ΠΏΠΎΠΌΠΎΠ³Π½Π΅ΠΌ ΠΈ Π΄Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΠΌ Π½ΡΠΊΠ°ΠΊΠ²ΠΈ ΠΌΠ°Π»ΠΊΠΈ Π·Π°Π΄Π°ΡΠΈ.
ΠΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅ Π½Π° ΠΏΠ°Π½Π΄Π΅ΠΌΠΈΡΡΠ° ΠΎΡ ΠΊΠΎΡΠΎΠ½Π°Π²ΠΈΡΡΡ, Π½ΠΈΠ΅ ΠΏΡΠ΅ΠΌΠ΅ΡΡΠΈΡ ΠΌΠ΅ ΡΠ΅Π»ΠΈΡ Π΅ΠΊΠΈΠΏ Π½Π° Π΄ΠΈΡΡΠ°Π½ΡΠΈΠΎΠ½Π½Π° ΡΠ°Π±ΠΎΡΠ°, Π½Π°Π»ΠΈΡΠΈΠ΅ΡΠΎ Π½Π° Π²ΡΠΈΡΠΊΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ°, ΠΈΠ·Π³ΡΠ°Π΄Π΅Π½ΠΈΡΠ΅ ΡΠ°Π±ΠΎΡΠ½ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΈ Π² Jira ΠΈ GitLab Π½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π° Π΄Π° ΠΏΡΠ΅ΠΌΠΈΠ½Π΅ΠΌ Π»Π΅ΡΠ½ΠΎ ΠΏΡΠ΅Π· ΡΠΎΠ·ΠΈ Π΅ΡΠ°ΠΏ. ΠΡΠ΅ΠΌΠΈΠ½Π°ΡΠΈΡΠ΅ ΠΌΠ΅ΡΠ΅ΡΠΈ Π½Π° Π΄ΠΈΡΡΠ°Π½ΡΠΈΠΎΠ½Π½Π° ΡΠ°Π±ΠΎΡΠ° ΠΏΠΎΠΊΠ°Π·Π°Ρ Π°, ΡΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° Π΅ΠΊΠΈΠΏΠ° Π½Π΅ Π΅ ΠΏΠΎΡΡΡΠ°Π΄Π°Π»Π°, Π·Π° ΠΌΠ½ΠΎΠ³ΠΎ Ρ ΠΎΡΠ° ΠΊΠΎΠΌΡΠΎΡΡΡΡ Π² ΡΠ°Π±ΠΎΡΠ°ΡΠ° ΡΠ΅ ΡΠ²Π΅Π»ΠΈΡΠΈ, Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½ΠΎ Π½Π΅ Π΄ΠΎΡΡΠΈΠ³Π°ΡΠ΅ ΠΆΠΈΠ²ΠΎΡΠΎ ΠΎΠ±ΡΡΠ²Π°Π½Π΅.
Π‘ΡΠ΅ΡΠ° Π½Π° Π΅ΠΊΠΈΠΏΠ° ΠΏΡΠ΅Π΄ΠΈ Π΄ΠΈΡΡΠ°Π½ΡΠΈΠΎΠ½Π½Π°ΡΠ° ΡΠ°Π±ΠΎΡΠ°

Π‘ΡΠ΅ΡΠΈ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° Π΄ΠΈΡΡΠ°Π½ΡΠΈΠΎΠ½Π½Π°ΡΠ° ΡΠ°Π±ΠΎΡΠ°

Π’Π΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠ΅Π½ ΡΡΠ΅ΠΊ Π½Π° ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΡΠΎ
Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡΠΌ ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π·Π° CI/CD Π·Π° Π₯5 Π΅ GitLab. ΠΠΈΠ΅ Π³ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Π·Π° ΡΡΡ ΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ΄Π°, Π½Π΅ΠΏΡΠ΅ΠΊΡΡΠ½Π°ΡΠΎ ΡΠ΅ΡΡΠ²Π°Π½Π΅, ΡΠ°Π·Π³ΡΡΡΠ°Π½Π΅ Π½Π° ΡΠ΅ΡΡΠΎΠ²ΠΈ ΠΈ ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠ²Π½ΠΈ ΡΡΡΠ²ΡΡΠΈ. Π‘ΡΡΠΎ ΡΠ°ΠΊΠ° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΠΏΡΠ°ΠΊΡΠΈΠΊΠ°ΡΠ° Π½Π° code review, ΠΊΠΎΠ³Π°ΡΠΎ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ 2 ΠΊΠΎΠ»Π΅Π³ΠΈ ΡΡΡΠ±Π²Π° Π΄Π° ΠΎΠ΄ΠΎΠ±ΡΡΡ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ Π² ΠΊΠΎΠ΄Π°, Π½Π°ΠΏΡΠ°Π²Π΅Π½ΠΈ ΠΎΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°. Π‘ΡΠ°ΡΠΈΡΠ½ΠΈΡΠ΅ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΠΈ Π½Π° ΠΊΠΎΠ΄Π° SonarQube ΠΈ JaCoCo Π½ΠΈ ΠΏΠΎΠΌΠ°Π³Π°Ρ Π΄Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°ΠΌΠ΅ ΠΊΠΎΠ΄Π° ΡΠΈΡΡ ΠΈ Π΄Π° ΠΎΡΠΈΠ³ΡΡΠΈΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΠΎ Π½ΠΈΠ²ΠΎ Π½Π° ΠΏΠΎΠΊΡΠΈΡΠΈΠ΅ Ρ unit ΡΠ΅ΡΡΠΎΠ²Π΅. ΠΡΠΈΡΠΊΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² ΠΊΠΎΠ΄Π° Π·Π°Π΄ΡΠ»ΠΆΠΈΡΠ΅Π»Π½ΠΎ ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π°Ρ ΠΏΡΠ΅Π· ΡΠ΅Π·ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ. ΠΡΠΈΡΠΊΠΈ ΡΠ΅ΡΡΠΎΠ²ΠΈ ΡΡΠ΅Π½Π°ΡΠΈΠΈ, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Ρ ΡΡΡΠ½ΠΎ, Π²ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅ ΡΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠ°Ρ.
ΠΠ° ΡΡΠΏΠ΅ΡΠ½ΠΎΡΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° Π±ΠΈΠ·Π½Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΠΈΡΠ΅ Ρ "ΠΠ°ΡΠΊΡΡ" ΡΡΡΠ±Π²Π°ΡΠ΅ Π΄Π° ΡΠ΅ΡΠΈΠΌ ΡΠ΅Π΄ΠΈΡΠ° ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠ½ΠΈ Π·Π°Π΄Π°ΡΠΈ, Π·Π° Π²ΡΡΠΊΠ° ΠΎΡ ΠΊΠΎΠΈΡΠΎ ΠΏΠΎ ΡΠ΅Π΄.
ΠΠ°Π΄Π°ΡΠ° 1. ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡ ΠΎΡ Ρ ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»Π½ΠΎ ΠΌΠ°ΡΠ°Π±ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°
ΠΠ° ΡΠ΅ΡΠ°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ°Π·ΠΈ Π·Π°Π΄Π°ΡΠ° ΠΈΠ·Π±ΡΠ°Ρ ΠΌΠ΅ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΠ·Π΅Π½ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΊΡΠΌ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ°. ΠΡΠΈ ΡΠΎΠ²Π° Π±Π΅ΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ Π²Π°ΠΆΠ½ΠΎ Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ ΠΎΠ±Π»Π°ΡΡΠΈΡΠ΅ Π½Π° ΠΎΡΠ³ΠΎΠ²ΠΎΡΠ½ΠΎΡΡ Π½Π° ΡΠ΅ΡΠ²ΠΈΡΠΈΡΠ΅. ΠΠΏΠΈΡΠ°Ρ ΠΌΠ΅ ΡΠ΅ Π΄Π° Π³ΠΈ ΡΠ°Π·Π΄Π΅Π»ΠΈΠΌ ΠΏΠΎ Π±ΠΈΠ·Π½Π΅Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΠΊΠ°ΡΠΎ Π²Π·Π΅Ρ ΠΌΠ΅ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠ° Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΈΡΠ΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈΠ΅ΠΌΠ°Π½Π΅ΡΠΎ Π½Π° ΡΡΠΎΠΊΠΈ Π² ΡΠΊΠ»Π°Π΄Π° Π΅ Π½Π΅ ΡΠΎΠ»ΠΊΠΎΠ²Π° ΡΠ΅ΡΡΠ°, Π½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΠΌΠ½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ, ΠΏΡΠΈ ΠΊΠΎΡΡΠΎ ΡΡΡΠ±Π²Π° ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»Π½ΠΎ Π±ΡΡΠ·ΠΎ Π΄Π° ΠΏΠΎΠ»ΡΡΠΈΠΌ ΠΎΡ Π΄ΡΡΠΆΠ°Π²Π½ΠΈΡ ΡΠ΅Π³ΡΠ»Π°ΡΠΎΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° ΠΏΡΠΈΠ΅ΠΌΠ°Π½ΠΈΡΠ΅ Π΅Π΄ΠΈΠ½ΠΈΡΠΈ ΡΡΠΎΠΊΠ°, ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π°ΡΠ° ΠΎΡ ΠΊΠΎΠΈΡΠΎ Π² Π΅Π΄Π½Π° Π΄ΠΎΡΡΠ°Π²ΠΊΠ° Π΄ΠΎΡΡΠΈΠ³Π°Ρ Π΄ΠΎ 600000, Π΄Π° ΠΏΡΠΎΠ²Π΅ΡΠΈΠΌ Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎΡΡΡΠ° Π½Π° ΠΏΡΠΈΠ΅ΠΌΠ°Π½Π΅ΡΠΎ Π½Π° ΡΠ°Π·ΠΈ ΡΡΠΎΠΊΠ° Π² ΡΠΊΠ»Π°Π΄Π° ΠΈ Π΄Π° ΠΏΡΠ΅Π΄Π°Π΄Π΅ΠΌ ΡΡΠ»Π°ΡΠ° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ Π½Π° ΡΠΊΠ»Π°Π΄Π°. Π ΠΎΡΠ³ΡΡΠ·ΠΊΠ°ΡΠ° ΠΎΡ ΡΠΊΠ»Π°Π΄ΠΎΠ²Π΅ΡΠ΅ ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-Π³ΠΎΠ»ΡΠΌΠ° ΠΈΠ½ΡΠ΅Π½Π·ΠΈΠ²Π½ΠΎΡΡ, Π½ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π° ΠΌΠ°Π»ΠΊΠΈ ΠΎΠ±Π΅ΠΌΠΈ Π΄Π°Π½Π½ΠΈ.
ΠΡΠΈΡΠΊΠΈ ΡΡΠ»ΡΠ³ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°ΠΌΠ΅ ΠΏΠΎ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ° stateless ΠΈ Π΄ΠΎΡΠΈ Π²ΡΡΡΠ΅ΡΠ½ΠΈΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΠ΅ ΠΎΠΏΠΈΡΠ²Π°ΠΌΠ΅ Π΄Π° ΡΠ°Π·Π΄Π΅Π»ΠΈΠΌ Π½Π° ΡΡΡΠΏΠΊΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ, ΠΊΠ°ΠΊ Π³ΠΈ Π½Π°ΡΠΈΡΠ°ΠΌΠ΅, self-ΡΠΎΠΏΠΈΡΠΈ Kafka. Π’ΠΎΠ²Π° Π΅ ΠΊΠΎΠ³Π°ΡΠΎ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡ ΠΈΠ·ΠΏΡΠ°ΡΠ° ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΌ Π½Π° ΡΠ΅Π±Π΅ ΡΠΈ, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° Π±Π°Π»Π°Π½ΡΠΈΡΠ°ΠΌΠ΅ Π½Π°ΡΠΎΠ²Π°ΡΠ²Π°Π½Π΅ΡΠΎ ΠΏΡΠΈ ΠΏΠΎ-ΡΠ΅ΡΡΡΡΠΎΠ΅ΠΌΠΊΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΈ ΡΠ»Π΅ΡΠ½ΡΠ²Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° ΠΏΡΠΎΠ΄ΡΠΊΡΠ°, Π½ΠΎ Π·Π° ΡΠΎΠ²Π° ΠΏΠΎ-ΠΊΡΡΠ½ΠΎ.
Π Π΅ΡΠΈΡ ΠΌΠ΅ Π΄Π° ΠΈΠ·ΠΎΠ»ΠΈΡΠ°ΠΌΠ΅ Π² ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΡΡΠ»ΡΠ³ΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈΡΠ΅ Π·Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ Π²ΡΠ½ΡΠ½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ. Π’ΠΎΠ²Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ Π΄Π° ΡΠ΅ΡΠΈΠΌ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ ΡΠ΅ΡΡΠΎ ΠΏΡΠΎΠΌΠ΅Π½ΡΡΠΈΡΠ΅ ΡΠ΅ API Π½Π° Π²ΡΠ½ΡΠ½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ, ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π±Π΅Π· Π²Π»ΠΈΡΠ½ΠΈΠ΅ Π²ΡΡΡ Ρ ΡΡΠ»ΡΠ³ΠΈΡΠ΅ Ρ Π±ΠΈΠ·Π½Π΅Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ.

ΠΡΠΈΡΠΊΠΈ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΠ·ΠΈ ΡΠ΅ ΡΠ°Π·Π²ΠΈΠ²Π°Ρ Π² ΠΊΠ»Π°ΡΡΠ΅ΡΠ° 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. ΠΠΎΠ²ΡΠΎΡΠ½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΎΠΏΠ°ΡΠΊΠΈΡΠ΅ ΠΈ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³:
Π ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠΈ Π½Π΅ΠΈΠ·Π±Π΅ΠΆΠ½ΠΎ Π²ΡΠ·Π½ΠΈΠΊΠ²Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΠΈ Π³ΡΠ΅ΡΠΊΠΈ Ρ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΡΠ° Π½Π° Π±Π°Π·ΠΈ Π΄Π°Π½Π½ΠΈ, ΠΎΠΏΠ°ΡΠΊΠΈ ΠΈ Π²ΡΠ½ΡΠ½ΠΈ ΠΈΠ·ΡΠΎΡΠ½ΠΈΡΠΈ Π½Π° Π΄Π°Π½Π½ΠΈ. Π ΡΠ»ΡΡΠ°Ρ Ρ βΠΠ°ΡΠΊΡΡβ, ΠΈΠ·ΡΠΎΡΠ½ΠΈΠΊ Π½Π° ΡΠ΅Π·ΠΈ Π³ΡΠ΅ΡΠΊΠΈ Π΅ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡΡΠ° Ρ Π²ΡΠ½ΡΠ½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ. ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π±Π΅ΡΠ΅ Π΄Π° Π½Π°ΠΌΠ΅ΡΠΈΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°ΡΠΎ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΈ Π·Π°ΡΠ²ΠΊΠΈ ΠΏΡΠΈ Π³ΡΠ΅ΡΠ½ΠΈ ΠΎΡΠ³ΠΎΠ²ΠΎΡΠΈ Ρ Π·Π°Π΄Π°Π΄Π΅Π½ ΡΠ°ΠΉΠΌΠ°ΡΡ, Π±Π΅Π· Π΄Π° ΠΏΡΠ΅ΠΊΡΡΠ²Π°ΠΌΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° ΡΡΠΏΠ΅ΡΠ½ΠΈ Π·Π°ΡΠ²ΠΊΠΈ Π² ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΠΎΠΏΠ°ΡΠΊΠ°. ΠΠ° ΡΠ°Π·ΠΈ ΡΠ΅Π» Π±Π΅ΡΠ΅ ΠΈΠ·Π±ΡΠ°Π½Π° Ρ. Π½Π°Ρ. ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ βretry Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° ΡΠ΅ΠΌΠΈβ. ΠΠ° Π²ΡΠ΅ΠΊΠΈ ΠΎΡΠ½ΠΎΠ²Π΅Π½ ΡΠ΅ΠΌΠΏ ΡΠ΅ ΡΡΠ·Π΄Π°Π²Π° Π΅Π΄Π½Π° ΠΈΠ»ΠΈ ΠΏΠΎΠ²Π΅ΡΠ΅ retry ΡΠ΅ΠΌΠΈ, Π² ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΎΡΠΏΡΠ°Π²ΡΡ Π³ΡΠ΅ΡΠ½ΠΈ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ, Π±Π΅Π· Π΄Π° ΡΠ΅ Π·Π°Π±Π°Π²Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡ ΡΠ΅ΠΌΠΏ. Π‘Ρ Π΅ΠΌΠ°ΡΠ° Π½Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ β

ΠΠ° ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ°ΠΊΠ°Π²Π° ΡΡ
Π΅ΠΌΠ° Π½ΠΈ Π±Π΅ΡΠ΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ»Π΅Π΄Π½ΠΎΡΠΎ β Π΄Π° ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ°ΠΌΠ΅ ΡΠΎΠ²Π° ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Ρ Spring ΠΈ Π΄Π° ΠΈΠ·Π±Π΅Π³Π½Π΅ΠΌ Π΄ΡΠ±Π»ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΊΠΎΠ΄Π°. Π ΠΌΡΠ΅ΠΆΠ°ΡΠ° ΡΠ΅ Π½Π°ΡΡΠΊΠ½Π°Ρ
ΠΌΠ΅ Π½Π° ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, Π±Π°Π·ΠΈΡΠ°Π½ΠΎ Π½Π° Spring BeanPostProcessor, Π½ΠΎ ΡΠΎ Π½ΠΈ ΡΠ΅ ΡΡΠΎΡΠΈ ΠΈΠ·Π»ΠΈΡΠ½ΠΎ ΠΎΠ±Π΅ΠΌΠΈΡΡΠΎ. ΠΠ°ΡΠΈΡΡ Π΅ΠΊΠΈΠΏ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈ ΠΏΠΎ-ΠΏΡΠΎΡΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΡΠ΅ Π²Π³ΡΠ°Π΄ΠΈ Π² ΡΠΈΠΊΡΠ»Π° Π½Π° Spring Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ ΠΈ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΎ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈ Retry Consumer-ΠΈ. ΠΡΠΎΡΠΎΡΠΈΠΏΡΡ Π½Π° Π½Π°ΡΠ΅ΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡ
ΠΌΠ΅ Π½Π° Π΅ΠΊΠΈΠΏΠ° Π½Π° Spring, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π³ΠΎ Π²ΠΈΠ΄ΠΈΡΠ΅ . ΠΡΠΎΡΡ Π½Π° Retry Consumer-ΠΈΡΠ΅ ΠΈ Π±ΡΠΎΡΡ Π½Π° ΠΎΠΏΠΈΡΠΈΡΠ΅ Π½Π° Π²ΡΠ΅ΠΊΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π» ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠ²Π°Ρ ΡΡΠ΅Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ ΠΎΡ Π½ΡΠΆΠ΄ΠΈΡΠ΅ Π½Π° Π±ΠΈΠ·Π½Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΠ°, ΠΈ, Π·Π° Π΄Π° Π²ΡΠΈΡΠΊΠΎ Π·Π°ΡΠ°Π±ΠΎΡΠΈ, ΠΎΡΡΠ°Π²Π° ΡΠ°ΠΌΠΎ Π΄Π° ΡΠ΅ ΠΏΠΎΡΡΠ°Π²ΠΈ ΠΏΠΎΠ·Π½Π°ΡΠ°ΡΠ° Π½Π° Π²ΡΠΈΡΠΊΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ Π½Π° Spring Π°Π½ΠΎΡΠ°ΡΠΈΡ org.springframework.kafka.annotation.KafkaListener.
Π ΡΠ»ΡΡΠ°ΠΉ ΡΠ΅ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΡΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ΅Π½ΠΎ ΡΠ»Π΅Π΄ Π²ΡΠΈΡΠΊΠΈ ΠΎΠΏΠΈΡΠΈ Π·Π° ΠΏΠΎΠ²ΡΠΎΡΠ΅Π½ΠΈΠ΅, ΡΠΎ ΠΏΠΎΠΏΠ°Π΄Π° Π² DLT (dead letter topic) Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° Spring DeadLetterPublishingRecoverer. ΠΠΎ ΠΈΡΠΊΠ°Π½Π΅ Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ°, ΡΠ°Π·ΡΠΈΡΠΈΡ ΠΌΠ΅ ΡΠ°Π·ΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ ΠΈ Π½Π°ΠΏΡΠ°Π²ΠΈΡ ΠΌΠ΅ ΠΎΡΠ΄Π΅Π»Π΅Π½ ΡΡΡΠ²ΠΈΡ, ΠΊΠΎΠΉΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΡΠ΅ ΠΏΡΠ΅Π³Π»Π΅ΠΆΠ΄Π°Ρ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡΡΠ°, ΠΏΠΎΠΏΠ°Π΄Π½Π°Π»ΠΈ Π² DLT, stackTrace, traceId ΠΈ Π΄ΡΡΠ³Π° ΠΏΠΎΠ»Π΅Π·Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° ΡΡΡ . ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π°, Π΄ΠΎΠ±Π°Π²ΠΈΡ ΠΌΠ΅ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ ΠΈ Π°Π»Π°ΡΠΌΠΈ Π·Π° Π²ΡΠΈΡΠΊΠΈ DLT ΡΠΎΠΏΠΈΡΠΈ, ΠΈ Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ°, ΠΏΠΎ ΡΡΡΠ΅ΡΡΠ²ΠΎ, ΠΏΠΎΡΠ²Π°ΡΠ° Π½Π° ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π² DLT ΡΠΎΠΏΠΈΠΊΠ° Π΅ ΠΏΠΎΠ²ΠΎΠ΄Π° Π·Π° ΡΠ°Π·Π³Π»Π΅ΠΆΠ΄Π°Π½Π΅ ΠΈ ΡΠΈΠ³Π½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π΅ΡΠ΅ΠΊΡ. Π’ΠΎΠ²Π° Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΄ΠΎΠ±Π½ΠΎ β ΠΏΠΎ ΠΈΠΌΠ΅ΡΠΎ Π½Π° ΡΠΎΠΏΠΈΠΊΠ° Π²Π΅Π΄Π½Π°Π³Π° ΡΠ°Π·Π±ΠΈΡΠ°ΠΌΠ΅ Π½Π° ΠΊΠΎΠΉ Π΅ΡΠ°ΠΏ ΠΎΡ ΠΏΡΠΎΡΠ΅ΡΠ° Π΅ Π²ΡΠ·Π½ΠΈΠΊΠ½Π°Π»Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, ΠΊΠΎΠ΅ΡΠΎ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΡΡΠΊΠΎΡΡΠ²Π° ΡΡΡΡΠ΅Π½Π΅ΡΠΎ Π½Π° ΠΊΠΎΡΠ΅Π½Π½Π°ΡΠ° ΠΏΡΠΈΡΠΈΠ½Π°.

Π‘ΡΠ²ΡΠ΅ΠΌ Π½Π°ΡΠΊΠΎΡΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Ρ
ΠΌΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ Π½Π° ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΡ Π½Π°ΡΠ°ΡΠ° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°, ΡΠ»Π΅Π΄ ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΈΡΠΈΠ½ΠΈΡΠ΅ ΠΈΠΌ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΡΠ·ΡΡΠ°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ Π½Π° ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡΠ° Π½Π° Π²ΡΠ½ΡΠ½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°) ΠΈ, ΡΠ°Π·Π±ΠΈΡΠ° ΡΠ΅, Π·Π°Π²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΈΡ Π΄Π΅ΡΠ΅ΠΊΡ Π·Π° Π°Π½Π°Π»ΠΈΠ·. Π’ΡΠΊ ΡΠ΅ ΠΎΠΊΠ°Π·Π°Ρ
Π° ΠΏΠΎΠ»Π΅Π·Π½ΠΈ Π½Π°ΡΠΈΡΠ΅ self-ΡΠΎΠΏΠΈΡΠΈ, ΡΠ°ΠΊΠ° ΡΠ΅ Π΄Π° Π½Π΅ ΡΠ΅ ΡΠ΅ΡΡΠ°ΡΡΠΈΡΠ° Π΄ΡΠ»Π³Π°ΡΠ° Π²Π΅ΡΠΈΠ³Π° Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°, ΠΌΠΎΠΆΠ΅ Π΄Π° Ρ ΡΠ΅ΡΡΠ°ΡΡΠΈΡΠ°ΠΌΠ΅ ΠΎΡ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΈΡ Π΅ΡΠ°ΠΏ.

ΠΠΊΡΠΏΠ»ΠΎΠ°ΡΠ°ΡΠΈΡ Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ°
ΠΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° Π²Π΅ΡΠ΅ Π΅ Π² ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠ²Π½Π° Π΅ΠΊΡΠΏΠ»ΠΎΠ°ΡΠ°ΡΠΈΡ, Π²ΡΠ΅ΠΊΠΈ Π΄Π΅Π½ ΠΏΡΠ°Π²ΠΈΠΌ Π΄ΠΎΡΡΠ°Π²ΠΊΠΈ ΠΈ ΠΎΡΠ³ΡΡΠ·ΠΊΠΈ, ΡΠ²ΡΡΠ·Π²Π°ΠΌΠ΅ Π½ΠΎΠ²ΠΈ ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΠ΅Π»Π½ΠΈ ΡΠ΅Π½ΡΡΠΎΠ²Π΅ ΠΈ ΠΌΠ°Π³Π°Π·ΠΈΠ½ΠΈ. Π ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° ΠΏΠΈΠ»ΠΎΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° ΡΠ°Π±ΠΎΡΠΈ Ρ Π³ΡΡΠΏΠΈ ΡΡΠΎΠΊΠΈ βΠ’ΡΡΡΠ½β ΠΈ βΠΠ±ΡΠ²ΠΊΠΈβ.
Π¦Π΅Π»ΠΈΡΡ Π½ΠΈ Π΅ΠΊΠΈΠΏ ΡΡΠ°ΡΡΠ²Π° Π² ΠΏΡΠΎΠ²Π΅ΠΆΠ΄Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΠΈΠ»ΠΎΡΠΈ, Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ° Π²ΡΠ·Π½ΠΈΠΊΠ²Π°ΡΠΈΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΠΈ ΠΏΡΠ΅Π΄Π»Π°Π³Π° ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΡ Π½Π° Π½Π°ΡΠΈΡ ΠΏΡΠΎΠ΄ΡΠΊΡ ΠΎΡ ΠΏΠΎΠ΄ΠΎΠ±ΡΡΠ²Π°Π½Π΅ Π½Π° Π»ΠΎΠ³ΠΎΠ²Π΅ΡΠ΅ Π΄ΠΎ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² ΠΏΡΠΎΡΠ΅ΡΠΈΡΠ΅.
ΠΠ° Π΄Π° Π½Π΅ ΠΏΠΎΠ²ΡΠ°ΡΡΠΌΠ΅ Π½Π°ΡΠΈΡΠ΅ Π³ΡΠ΅ΡΠΊΠΈ, Π²ΡΠΈΡΠΊΠΈ ΡΠ»ΡΡΠ°ΠΈ, ΠΎΡΠΊΡΠΈΡΠΈ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΏΠΈΠ»ΠΎΡΠ°, ΡΠ΅ ΠΎΡΡΠ°Π·ΡΠ²Π°Ρ Π² Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠ°Π½ΠΈΡΠ΅ ΡΠ΅ΡΡΠΎΠ²Π΅. ΠΠ°Π»ΠΈΡΠΈΠ΅ΡΠΎ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΈ ΡΠ΅ΡΡΠΎΠ²Π΅ ΠΈ ΡΠ½ΠΈΡ-ΡΠ΅ΡΡΠΎΠ²Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΏΡΠΎΠ²Π΅ΠΆΠ΄Π°ΠΌΠ΅ ΡΠ΅Π³ΡΠ΅ΡΠΈΠΎΠ½Π½ΠΎ ΡΠ΅ΡΡΠ²Π°Π½Π΅ ΠΈ Π΄Π° ΠΏΡΡΠΊΠ°ΠΌΠ΅ Ρ ΠΎΡΡΠΈΠΊΡΠΈ Π±ΡΠΊΠ²Π°Π»Π½ΠΎ Π² ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΠ°ΡΠ°.
Π‘Π΅Π³Π° ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠ°Π²Π°ΠΌΠ΅ Π΄Π° ΡΠ°Π·Π²ΠΈΠ²Π°ΠΌΠ΅ ΠΈ ΡΡΡΠ²ΡΡΡΠ΅Π½ΡΡΠ²Π°ΠΌΠ΅ Π½Π°ΡΠ°ΡΠ° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° ΠΈ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΡΠ΅ ΡΠ±Π»ΡΡΠΊΠ²Π°ΠΌΠ΅ Ρ Π½ΠΎΠ²ΠΈ ΠΏΡΠ΅Π΄ΠΈΠ·Π²ΠΈΠΊΠ°ΡΠ΅Π»ΡΡΠ²Π°. ΠΠΊΠΎ Π²ΠΈ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ²Π°, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΡΠΏΠΎΠ΄Π΅Π»ΠΈΠΌ Π½Π°ΡΠΈΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π² ΡΠ»Π΅Π΄Π²Π°ΡΠΈΡΠ΅ ΡΡΠ°ΡΠΈΠΈ.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: habr.com
