Π‘ 2019 Π³ΠΎΠ΄Π° Π² Π ΠΎΡΡΠΈΠΈ Π΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ Π·Π°ΠΊΠΎΠ½ ΠΎΠ± ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΊΠΈΡΠΎΠ²ΠΊΠ΅. ΠΠ°ΠΊΠΎΠ½ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅ΡΡΡ Π½Π΅ Π½Π° Π²ΡΠ΅ Π³ΡΡΠΏΠΏΡ ΡΠΎΠ²Π°ΡΠΎΠ², ΠΈ ΡΡΠΎΠΊΠΈ Π²ΡΡΡΠΏΠ»Π΅Π½ΠΈΡ Π² ΡΠΈΠ»Ρ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΊΠΈΡΠΎΠ²ΠΊΠΈ Π΄Π»Ρ ΡΠΎΠ²Π°ΡΠ½ΡΡ Π³ΡΡΠΏΠΏ ΡΠ°Π·Π½ΡΠ΅. ΠΠ΅ΡΠ²ΡΠΌΠΈ ΠΏΠΎΠ΄ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΊΠΈΡΠΎΠ²ΠΊΡ ΠΏΠΎΠΏΠ°Π΄Π°ΡΡ ΡΠ°Π±Π°ΠΊ, ΠΎΠ±ΡΠ²Ρ, Π»Π΅ΠΊΠ°ΡΡΡΠ²Π°, ΠΏΠΎΠ·Π΄Π½Π΅Π΅ Π΄ΠΎΠ±Π°Π²ΡΡΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠΎΠ²Π°ΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄ΡΡ ΠΈ, ΡΠ΅ΠΊΡΡΠΈΠ»Ρ, ΠΌΠΎΠ»ΠΎΠΊΠΎ. ΠΡΠΎ Π·Π°ΠΊΠΎΠ½ΠΎΠ΄Π°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π½ΠΎΠ²ΠΎΠ²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ±ΡΠ΄ΠΈΠ»ΠΎ ΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ Π½ΠΎΠ²ΡΡ ΠΠ’-ΡΠ΅ΡΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ ΠΎΡΡΠ»Π΅Π΄ΠΈΡΡ Π²ΡΡ ΡΠ΅ΠΏΠΎΡΠΊΡ ΠΆΠΈΠ·Π½ΠΈ ΡΠΎΠ²Π°ΡΠ° Ρ ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π° Π΄ΠΎ ΠΏΠΎΠΊΡΠΏΠΊΠΈ ΠΊΠΎΠ½Π΅ΡΠ½ΡΠΌ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Π΅ΠΌ, Π²ΡΠ΅ΠΌ ΡΡΠ°ΡΡΠ½ΠΈΠΊΠ°ΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠ°: ΠΊΠ°ΠΊ ΡΠ°ΠΌΠΎ Π³ΠΎΡΡΠ΄Π°ΡΡΡΠ²ΠΎ, ΡΠ°ΠΊ ΠΈ Π²ΡΠ΅ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ, ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠΈΠ΅ ΡΠΎΠ²Π°ΡΡ Ρ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΌΠ°ΡΠΊΠΈΡΠΎΠ²ΠΊΠΎΠΉ.
Π Π₯5 ΡΠΈΡΡΠ΅ΠΌΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ΄Π΅Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ ΡΠΎΠ²Π°ΡΡ Ρ ΠΌΠ°ΡΠΊΠΈΡΠΎΠ²ΠΊΠΎΠΉ ΠΈ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°ΡΡΡΡ Π΄Π°Π½Π½ΡΠΌΠΈ Ρ Π³ΠΎΡΡΠ΄Π°ΡΡΡΠ²ΠΎΠΌ ΠΈ ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊΠ°ΠΌΠΈ, ΠΏΠΎΠ»ΡΡΠΈΠ»Π° Π½Π°Π·Π²Π°Π½ΠΈΠ΅ βΠΠ°ΡΠΊΡΡβ. Π Π°ΡΡΠΊΠ°ΠΆΠ΅ΠΌ ΠΏΠΎ ΠΏΠΎΡΡΠ΄ΠΊΡ ΠΊΠ°ΠΊ ΠΈ ΠΊΡΠΎ Π΅Π΅ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π», ΠΊΠ°ΠΊΠΎΠΉ Ρ Π½Π΅Π΅ ΡΡΠ΅ΠΊ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ, ΠΈ ΠΏΠΎΡΠ΅ΠΌΡ Π½Π°ΠΌ Π΅ΡΡΡ ΡΠ΅ΠΌ Π³ΠΎΡΠ΄ΠΈΡΡΡΡ.
ΠΠ°ΡΡΠΎΡΡΠΈΠΉ HighLoad
βΠΠ°ΡΠΊΡΡβ ΡΠ΅ΡΠ°Π΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π·Π°Π΄Π°Ρ, Π³Π»Π°Π²Π½Π°Ρ ΠΈΠ· Π½ΠΈΡ β ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΡΠΌΠΈ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ Π₯5 ΠΈ Π³ΠΎΡΡΠ΄Π°ΡΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΠΌΠ°ΡΠΊΠΈΡΡΠ΅ΠΌΠΎΠΉ ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠΈ (ΠΠΠ‘ ΠΠ) Π΄Π»Ρ ΠΏΡΠΎΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ ΠΌΠ°ΡΠΊΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠΈ. Π’Π°ΠΊΠΆΠ΅ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Ρ ΡΠ°Π½ΠΈΡ Π²ΡΠ΅ ΠΏΠΎΡΡΡΠΏΠΈΠ²ΡΠΈΠ΅ ΠΊ Π½Π°ΠΌ ΠΊΠΎΠ΄Ρ ΠΌΠ°ΡΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΠΈ Π²ΡΡ ΠΈΡΡΠΎΡΠΈΡ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ ΡΡΠΈΡ ΠΊΠΎΠ΄ΠΎΠ² ΠΏΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ, ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΡΡΡΡΠ°Π½ΠΈΡΡ ΠΏΠ΅ΡΠ΅ΡΠΎΡΡ ΠΌΠ°ΡΠΊΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠΈ. ΠΠ° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΠ°Π±Π°ΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΠΎΡΠ»Π° Π² ΠΏΠ΅ΡΠ²ΡΠ΅ Π³ΡΡΠΏΠΏΡ ΠΌΠ°ΡΠΊΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠΎΠ²Π°ΡΠΎΠ², ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½Π° ΡΡΡΠ° ΡΠΈΠ³Π°ΡΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΏΠΎΡΡΠ΄ΠΊΠ° 600 000 ΠΏΠ°ΡΠ΅ΠΊ, ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΠΈΠΌΠ΅Π΅Ρ ΡΠ²ΠΎΠΉ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ΄. Π Π·Π°Π΄Π°ΡΠ° Π½Π°ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΎΡΡΠ»Π΅Π΄ΠΈΡΡ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π»Π΅Π³Π°Π»ΡΠ½ΠΎΡΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠΉ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΠ°ΠΊΠΎΠΉ ΠΏΠ°ΡΠΊΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΊΠ»Π°Π΄Π°ΠΌΠΈ ΠΈ ΠΌΠ°Π³Π°Π·ΠΈΠ½Π°ΠΌΠΈ, ΠΈ Π² ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΌ ΡΡΠ΅ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎΡΡΡ ΠΈΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΌΡ ΠΏΠΎΠΊΡΠΏΠ°ΡΠ΅Π»Ρ. Π ΠΊΠ°ΡΡΠΎΠ²ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΠΌΡ ΡΠΈΠΊΡΠΈΡΡΠ΅ΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ° 125 000 Π² ΡΠ°Ρ, ΠΈ Π΅ΡΡ Π½Π°Π΄ΠΎ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΠΊΠ°ΠΆΠ΄Π°Ρ ΡΠ°ΠΊΠ°Ρ ΠΏΠ°ΡΠΊΠ° ΠΏΠΎΠΏΠ°Π»Π° Π² ΠΌΠ°Π³Π°Π·ΠΈΠ½. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Ρ ΡΡΠ΅ΡΠΎΠΌ Π²ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ ΠΌΡ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌ Π΄Π΅ΡΡΡΠΊΠΈ ΠΌΠΈΠ»Π»ΠΈΠ°ΡΠ΄ΠΎΠ² Π·Π°ΠΏΠΈΡΠ΅ΠΉ Π² Π³ΠΎΠ΄.
ΠΠΎΠΌΠ°Π½Π΄Π° Π
ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ Β«ΠΠ°ΡΠΊΡΡΒ» ΡΡΠΈΡΠ°Π΅ΡΡΡ Π² ΡΠ°ΠΌΠΊΠ°Ρ Π₯5 ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ, ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΡΡΡ ΠΎΠ½ ΠΏΠΎ ΠΏΡΠΎΠ΄ΡΠΊΡΠΎΠ²ΠΎΠΌΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Ρ. ΠΠΎΠΌΠ°Π½Π΄Π° ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΠΎ Scrum. Π‘ΡΠ°ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π±ΡΠ» Π»Π΅ΡΠΎΠΌ ΠΏΡΠΎΡΠ»ΠΎΠ³ΠΎ Π³ΠΎΠ΄Π°, Π½ΠΎ ΠΏΠ΅ΡΠ²ΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΏΡΠΈΡΠ»ΠΈ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΎΠΊΡΡΠ±ΡΠ΅ β Π±ΡΠ»Π° ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠΎΠ±ΡΠ°Π½Π° ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ ΠΊΡΠΏΠ»Π΅Π½ΠΎ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅. Π‘Π΅ΠΉΡΠ°Ρ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ 16 ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ, ΡΠ΅ΡΡΡ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ Π·Π°Π½ΠΈΠΌΠ°ΡΡΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ backend ΠΈ frontend, ΡΡΠΎΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΌ Π°Π½Π°Π»ΠΈΠ·ΠΎΠΌ. Π ΡΡΠ½ΡΠΌ, Π½Π°Π³ΡΡΠ·ΠΎΡΠ½ΡΠΌ, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ, ΠΈ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ ΠΏΡΠΎΠ΄ΡΠΊΡΠ° Π·Π°Π½ΠΈΠΌΠ°ΡΡΡΡ Π΅ΡΠ΅ ΡΠ΅ΡΡΡ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ. ΠΠΎΠΌΠΈΠΌΠΎ ΡΡΠΎΠ³ΠΎ Ρ Π½Π°Ρ Π΅ΡΡΡ SRE-ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡ.
ΠΠΎΠ΄ Π² Π½Π°ΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΠΏΠΈΡΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ, ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ΅ ΡΠ΅Π±ΡΡΠ° ΡΠΌΠ΅ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°ΡΡ ΠΈ ΠΏΠΈΡΡΡ Π°Π²ΡΠΎΡΠ΅ΡΡΡ, Π½Π°Π³ΡΡΠ·ΠΎΡΠ½ΡΠ΅ ΡΠΊΡΠΈΠΏΡΡ ΠΈ ΡΠΊΡΠΈΠΏΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ. ΠΡ ΡΠ΄Π΅Π»ΡΠ΅ΠΌ ΡΡΠΎΠΌΡ ΠΎΡΠΎΠ±ΠΎΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π΄Π°ΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΏΡΠΎΠ΄ΡΠΊΡΠ° ΡΡΠ΅Π±ΡΠ΅Ρ Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ. ΠΠΎΠ»Π»Π΅Π³Π°ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°Π½ΡΡΠ΅ Π½Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π»ΠΈ, Π²ΡΠ΅Π³Π΄Π° ΡΡΠ°ΡΠ°Π΅ΠΌΡΡ ΠΏΠΎΠ΄ΡΠΊΠ°Π·Π°ΡΡ ΠΈ ΠΏΠΎΠΌΠΎΡΡ, Π΄Π°ΡΡ Π² ΡΠ°Π±ΠΎΡΡ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ.
Π ΡΠ²ΡΠ·ΠΈ Ρ ΠΏΠ°Π½Π΄Π΅ΠΌΠΈΠ΅ΠΉ ΠΊΠΎΡΠΎΠ½Π°Π²ΠΈΡΡΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠ΅ΠΊΡΠΈΠΈ ΠΌΡ ΠΏΠ΅ΡΠ΅Π²Π΅Π»ΠΈ Π²ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π½Π° ΡΠ΄Π°Π»Π΅Π½Π½ΡΡ ΡΠ°Π±ΠΎΡΡ, Π½Π°Π»ΠΈΡΠΈΠ΅ Π²ΡΠ΅Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ, ΠΏΠΎΡΡΡΠΎΠ΅Π½Π½ΡΠΉ workflow Π² 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. ΠΠΎΠ²ΡΠΎΡΠ½Π°Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΎΡΠ΅ΡΠ΅Π΄Π΅ΠΉ ΠΈ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³:
Π ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ Π½Π΅ΠΈΠ·Π±Π΅ΠΆΠ½ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΈ ΠΎΡΠΈΠ±ΠΊΠΈ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΠΈ Π±Π°Π· Π΄Π°Π½Π½ΡΡ , ΠΎΡΠ΅ΡΠ΅Π΄Π΅ΠΉ, Π²Π½Π΅ΡΠ½ΠΈΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ² Π΄Π°Π½Π½ΡΡ . Π ΡΠ»ΡΡΠ°Π΅ Β«ΠΠ°ΡΠΊΡΡΠ°Β» ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠΌ ΡΠ°ΠΊΠΈΡ ΠΎΡΠΈΠ±ΠΎΠΊ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ Π²Π½Π΅ΡΠ½ΠΈΠΌΠΈ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ. ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π±ΡΠ»ΠΎ Π½Π°ΠΉΡΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ΅Π΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ ΠΏΠΎ ΠΎΡΠΈΠ±ΠΎΡΠ½ΡΠΌ ΠΎΡΠ²Π΅ΡΠ°ΠΌ Ρ ΠΊΠ°ΠΊΠΈΠΌ-ΡΠΎ Π·Π°Π΄Π°Π½Π½ΡΠΌ ΡΠ°ΠΉΠΌΠ°ΡΡΠΎΠΌ, Π½ΠΎ ΠΏΡΠΈ ΡΡΠΎΠΌ Π½Π΅ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ°ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΡΡΠΏΠ΅ΡΠ½ΡΡ Π·Π°ΠΏΡΠΎΡΠΎΠ² Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΎΡΠ΅ΡΠ΅Π΄ΠΈ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π±ΡΠ»Π° Π²ΡΠ±ΡΠ°Π½Π° ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠ°Ρ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ βtopic based retryβ. ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΡΠΎΠΏΠΈΠΊΠ° ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ retry ΡΠΎΠΏΠΈΠΊΠΎΠ², Π² ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°ΠΏΡΠ°Π²Π»ΡΡΡΡΡ ΠΎΡΠΈΠ±ΠΎΡΠ½ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΈ ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΈΡΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π·Π°Π΄Π΅ΡΠΆΠΊΠ° Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΈΠ· ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ ΡΠΎΠΏΠΈΠΊΠ°. Π‘Ρ Π΅ΠΌΠ° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ β
ΠΠ»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°ΠΊΠΎΠΉ ΡΡ
Π΅ΠΌΡ Π½Π°ΠΌ ΡΡΠ΅Π±ΠΎΠ²Π°Π»ΠΎΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ β ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠΎ Spring ΠΈ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ Π΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ΄Π°. ΠΠ° ΠΏΡΠΎΡΡΠΎΡΠ°Ρ
ΡΠ΅ΡΠΈ ΠΌΡ Π½Π°ΡΠΊΠ½ΡΠ»ΠΈΡΡ Π½Π° ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π½Π° Spring BeanPostProccessor, Π½ΠΎ ΠΎΠ½ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΎΡΡ Π½Π°ΠΌ ΠΈΠ·Π»ΠΈΡΠ½Π΅ Π³ΡΠΎΠΌΠΎΠ·Π΄ΠΊΠΈΠΌ. ΠΠ°ΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Π±ΡΠ»ΠΎ ΡΠ΄Π΅Π»Π°Π½ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΡΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ΅Π΅ Π²ΡΡΡΠΎΠΈΡΡΡΡ Π² ΡΠΈΠΊΠ» Spring ΠΏΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ consumer ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ Retry Consumer-Ρ. ΠΡΠΎΡΠΎΡΠΈΠΏ Π½Π°ΡΠ΅Π³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΌΡ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Spring, ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ
Π ΡΠ»ΡΡΠ°Π΅ Π΅ΡΠ»ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ ΠΌΠΎΠ³Π»ΠΎ Π±ΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½ΠΎ ΠΏΠΎΡΠ»Π΅ Π²ΡΠ΅Ρ retry ΠΏΠΎΠΏΡΡΠΎΠΊ, ΠΎΠ½ΠΎ ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ Π² DLT (dead letter topic) Ρ ΠΏΠΎΠΌΠΎΡΡΡ Spring DeadLetterPublishingRecoverer. ΠΠΎ ΠΏΡΠΎΡΡΠ±Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ, ΠΌΡ ΡΠ°ΡΡΠΈΡΠΈΠ»ΠΈ Π΄Π°Π½Π½ΡΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» ΠΈ ΡΠ΄Π΅Π»Π°Π»ΠΈ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΡΠ΅ΡΠ²ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΠΏΠΎΠΏΠ°Π²ΡΠΈΠ΅ Π² DLT ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, stackTrace, traceId ΠΈ Π΄ΡΡΠ³ΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΏΠΎ Π½ΠΈΠΌ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π±ΡΠ»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³ΠΈ ΠΈ Π°Π»Π΅ΡΡΡ Π½Π° Π²ΡΠ΅ DLT ΡΠΎΠΏΠΈΠΊΠΈ, ΠΈ ΡΠ΅ΠΉΡΠ°Ρ, ΠΏΠΎ ΡΡΡΠΈ, ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π² DLT ΡΠΎΠΏΠΈΠΊΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠ²ΠΎΠ΄ΠΎΠΌ Π΄Π»Ρ ΡΠ°Π·Π±ΠΎΡΠ° ΠΈ Π·Π°Π²Π΅Π΄Π΅Π½ΠΈΡ Π΄Π΅ΡΠ΅ΠΊΡΠ°. ΠΡΠΎ ΠΎΡΠ΅Π½Ρ ΡΠ΄ΠΎΠ±Π½ΠΎ β ΠΏΠΎ Π½Π°Π·Π²Π°Π½ΠΈΡ ΡΠΎΠΏΠΈΠΊΠ° ΠΌΡ ΡΡΠ°Π·Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΠΌ, Π½Π° ΠΊΠ°ΠΊΠΎΠΌ ΡΠ°Π³Π΅ ΠΏΡΠΎΡΠ΅ΡΡΠ° Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, ΡΡΠΎ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΡΠΊΠΎΡΡΠ΅Ρ ΠΏΠΎΠΈΡΠΊ Π΅Π΅ ΠΊΠΎΡΠ½Π΅Π²ΠΎΠΉ ΠΏΡΠΈΡΠΈΠ½Ρ.
Π‘ΠΎΠ²ΡΠ΅ΠΌ Π½Π΅Π΄Π°Π²Π½ΠΎ ΠΌΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π»ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΡΠΈΠ»Π°ΠΌΠΈ Π½Π°ΡΠ΅ΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ, ΠΏΠΎΡΠ»Π΅ ΡΡΡΡΠ°Π½Π΅Π½ΠΈΡ ΠΈΡ
ΠΏΡΠΈΡΠΈΠ½ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ Π²Π½Π΅ΡΠ½Π΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΡ) ΠΈ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, Π·Π°Π²Π΅Π΄Π΅Π½ΠΈΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ Π΄Π΅ΡΠ΅ΠΊΡΠ° Π΄Π»Ρ Π°Π½Π°Π»ΠΈΠ·Π°. Π’ΡΡ ΠΈ ΠΏΡΠΈΠ³ΠΎΠ΄ΠΈΠ»ΠΈΡΡ Π½Π°ΡΠΈ self-ΡΠΎΠΏΠΈΠΊΠΈ, ΡΡΠΎΠ±Ρ Π½Π΅ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊΠ°ΡΡ Π΄Π»ΠΈΠ½Π½ΡΡ ΡΠ΅ΠΏΠΎΡΠΊΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΡΠΈΡΡ Π΅Π΅ Ρ Π½ΡΠΆΠ½ΠΎΠ³ΠΎ ΡΠ°Π³Π°.
ΠΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ
ΠΠ»Π°ΡΡΠΎΡΠΌΠ° ΡΠΆΠ΅ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠ²Π½ΠΎΠΉ ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΠΈ, ΠΊΠ°ΠΆΠ΄ΡΠΉ Π΄Π΅Π½Ρ ΠΌΡ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΠΌ ΠΏΠΎΡΡΠ°Π²ΠΊΠΈ ΠΈ ΠΎΡΠ³ΡΡΠ·ΠΊΠΈ, ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌ Π½ΠΎΠ²ΡΠ΅ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ΅Π½ΡΡΡ ΠΈ ΠΌΠ°Π³Π°Π·ΠΈΠ½Ρ. Π ΡΠ°ΠΌΠΊΠ°Ρ ΠΏΠΈΠ»ΠΎΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ Π³ΡΡΠΏΠΏΠ°ΠΌΠΈ ΡΠΎΠ²Π°ΡΠΎΠ² βΠ’Π°Π±Π°ΠΊβ ΠΈ βΠΠ±ΡΠ²Ρβ.
ΠΡΡ Π½Π°ΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΡΠ°ΡΡΠ²ΡΠ΅Ρ Π² ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΈ ΠΏΠΈΠ»ΠΎΡΠΎΠ², Π°Π½Π°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΈ Π²Π½ΠΎΡΠΈΡ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΡΠΎΠ²Π΅ΡΡΠ΅Π½ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΡ Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΄ΡΠΊΡΠ° ΠΎΡ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ Π»ΠΎΠ³ΠΎΠ² Π΄ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ°Ρ .
Π§ΡΠΎΠ±Ρ Π½Π΅ ΠΏΠΎΠ²ΡΠΎΡΡΡΡ ΡΠ²ΠΎΠΈΡ ΠΎΡΠΈΠ±ΠΎΠΊ, Π²ΡΠ΅ ΠΊΠ΅ΠΉΡΡ Π½Π°ΠΉΠ΄Π΅Π½Π½ΡΠ΅ Π² Ρ ΠΎΠ΄Π΅ ΠΏΠΈΠ»ΠΎΡΠ° Π½Π°Ρ ΠΎΠ΄ΡΡ ΡΠ²ΠΎΠ΅ ΠΎΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π² Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠ΅ΡΡΠ°Ρ . ΠΠ°Π»ΠΈΡΠΈΠ΅ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° Π°Π²ΡΠΎΡΠ΅ΡΡΠΎΠ² ΠΈ unit-ΡΠ΅ΡΡΠΎΠ² ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡΡ ΡΠ΅Π³ΡΠ΅ΡΡΠΈΠΎΠ½Π½ΠΎΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΡΡΠ°Π²ΠΈΡΡ Ρ ΠΎΡΡΠΈΠΊΡ Π±ΡΠΊΠ²Π°Π»ΡΠ½ΠΎ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠ°ΡΠΎΠ².
Π‘Π΅ΠΉΡΠ°Ρ ΠΌΡ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ ΡΠ°Π·Π²ΠΈΠ²Π°ΡΡ ΠΈ ΡΠΎΠ²Π΅ΡΡΠ΅Π½ΡΡΠ²ΠΎΠ²Π°ΡΡ Π½Π°ΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ, ΠΈ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΡΡΠ°Π»ΠΊΠΈΠ²Π°Π΅ΠΌΡΡ Ρ Π½ΠΎΠ²ΡΠΌΠΈ Π²ΡΠ·ΠΎΠ²Π°ΠΌΠΈ. ΠΡΠ»ΠΈ Π²Π°ΠΌ Π±ΡΠ΄Π΅Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ, ΡΠΎ ΠΌΡ ΡΠ°ΡΡΠΊΠ°ΠΆΠ΅ΠΌ ΠΎ Π½Π°ΡΠΈΡ
ΡΠ΅ΡΠ΅Π½ΠΈΡΡ
Π² ΡΠ»Π΅Π΄ΡΡΡΠΈΡ
ΡΡΠ°ΡΡΡΡ
.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com