ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы

Π Π°Π·Π±ΠΈΠ²Π°Π΅ΠΌ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚ Π½Π° микросСрвисы

Π’ настоящСС врСмя, Π·Π°Π΄Π°Ρ‡Π° Ρ€Π°Π·Π±ΠΈΠ²ΠΊΠΈ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π° Π½Π° микросСрвисы ΠΏΡ€ΠΈΠΎΠ±Ρ€Π΅Π»Π° поистинС ΠΎΠ³Ρ€ΠΎΠΌΠ½ΡƒΡŽ ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ Π² бизнСс срСдС. Как Π±ΡƒΠ΄Ρ‚ΠΎ всС ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ†ΠΈΠΈ России Π²Π΄Ρ€ΡƒΠ³ осознали всС пСрспСктивы β€œΠ½ΠΎΠ²ΠΎΠΉβ€ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ этом ΠΏΠΈΠ½ΠΎΠΊ ΠΎΡ‚ Π½Π°Ρ‡Π°Π»ΡŒΡΡ‚Π²Π° ΠΈ Π±Ρ€ΠΎΡΠΈΠ»ΠΈΡΡŒ Π±Ρ€Π°Ρ‚ΡŒ ΠΏΠΎΠ΄ ΠΊΠΎΠ·Ρ‹Ρ€Π΅ΠΊ.

Π Π΅Ρ‚ΠΈΠ²ΠΎΡΡ‚ΡŒ ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ‡ΠΈΠ½ΠΎΠ²Π½ΠΈΠΊΠΎΠ², ΠΊΠ°ΠΊ всСгда, Π±Π΅Π·ΡƒΠΌΠ½Π° ΠΈ бСспощадна. И Π²ΠΎΡ‚ ΠΎΠΏΡΡ‚ΡŒ, ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹Π΅ дСньги, Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π½Π° ΠΏΠΈΠ»ΠΎΡ‚Ρ‹, Π±Π΅Π·Π΄Π°Ρ€Π½ΠΎ тратятся Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π² Π»ΡƒΡ‡ΡˆΠ΅ΠΌ случаС Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π²Π·Π»Π΅Ρ‚ΠΈΡ‚, Π° Π² Ρ…ΡƒΠ΄ΡˆΠ΅ΠΌ случаС Π±ΡƒΠ΄Π΅Ρ‚ Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΎ, нСвзирая Π½Π° всС ошибки. И, Π΄Π°ΠΌΡ‹ ΠΈ господа, ΡƒΠ΄Ρ€ΡƒΡ‡Π°Π΅Ρ‚ большС всСго Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ это явлСниС ΠΎΡ‚Π½ΡŽΠ΄ΡŒ Π½Π΅ Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½ΠΎΠ΅. Оно Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½ΠΎ для всСй ИВ-отрасли России.

ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы

Π’ настоящСй ΡΡ‚Π°Ρ‚ΡŒΠ΅ я ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ ΠΎΠ±ΡΡƒΠ΄ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ ошибки ΠΏΡ€ΠΈ Ρ€Π°Π·Π±ΠΈΠ²ΠΊΠ΅ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π° Π½Π° ΠΌΠΈΠΊΡ€ΠΎΡΠ΅Ρ€Π²ΠΈΡΠ½ΡƒΡŽ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ (МБА), ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΎΠ½ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚, ΠΊ Ρ‡Π΅ΠΌΡƒ приводят. Ну Π° Π² ΠΊΠΎΠ½Ρ†Π΅ я ΠΎΠΏΠΈΡˆΡƒ ΠΊΠ°ΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½ эффСктивный ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ процСсс ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° Π½Π° МБА ΠΈ ΠΊΠ°ΠΊΠΎΠΉ Π΄ΠΎΠ»ΠΆΠ½Π° ΡΡ‚Π°Ρ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° микросСрвисной систСмы.

Π˜Ρ‚Π°ΠΊ, ваша организация Ρ€Π΅ΡˆΠΈΠ»Π° Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ старый, Π΄ΠΎΠ±Ρ€Ρ‹ΠΉ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚ Π½Π° микросСрвисы. ΠŸΠΎΡ‡Π΅ΠΌΡƒ? Ясного ΠΎΡ‚Π²Π΅Ρ‚Π° Π½ΠΈΠΊΡ‚ΠΎ Π΄Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚, Π½ΠΎ Π² Ρ†Π΅Π»ΠΎΠΌ всС Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΈΠΌ ΠΏΠ»ΠΎΡ…ΠΎ ТивСтся с ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚ΠΎΠΌ. Π”Π°, Ρ€Π΅Π»ΠΈΠ·Π½Ρ‹Π΅ Ρ†ΠΈΠΊΠ»Ρ‹ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‡Π΅Π½ΡŒ Π·Π°Ρ†Π΅ΠΏΠ»Π΅Π½Ρ‹ Π·Π° Ρ€Π°Π·Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. А ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π²Ρ‹ Π΄ΡƒΠΌΠ°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ Π² МБА ΠΏΠΎ-Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ? ΠšΡ‚ΠΎ-Ρ‚ΠΎ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚, Ρ‡Ρ‚ΠΎ микросСрвисы Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΡŽΡ‚ΡΡ. Ну ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈ Ρ‚Π°ΠΊ, Π° Π²Π°ΠΌ Π·Π°Ρ‡Π΅ΠΌ это? НСт, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈ Π½Π°Π΄ΠΎ, Π½ΠΎ Π²Ρ‹ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚Π΅ Π·Π°Ρ‡Π΅ΠΌ ΠΈΠ»ΠΈ просто ΠΏΠΎΠ΄ΡΠΌΠΎΡ‚Ρ€Π΅Π½Π½ΡƒΡŽ Ρ„Ρ€Π°Π·Ρƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅? Говорят, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ микросСрвис Π³ΠΎΡ€Π°Π·Π΄ΠΎ ΠΌΠ΅Π½Π΅Π΅ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚Π΅Π»Π΅Π½ ΠΊ рСсурсам: памяти, Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Ρ‚.Π΄. Ну ΠΈ Ρ‡Ρ‚ΠΎ? Π£ вас дСньги Π½Π° сСрвСра иссякли? БизнСс Ρ†Π΅Π½Π½ΠΎΡΡ‚ΡŒ-Ρ‚ΠΎ Π² Ρ‡Π΅ΠΌ?

КоллСги, я Π½Π΅ Ρ…ΠΎΡ‡Ρƒ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρƒ МБА Π½Π΅Ρ‚ прСимущСств. Π­Ρ‚ΠΈ прСимущСства Π΅ΡΡ‚ΡŒ. Но я Ρ…ΠΎΡ‡Ρƒ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅ Π±Ρ‹ Ρ†Π΅Π»ΠΈ Π²Ρ‹ Π½ΠΈ ставили ΠΏΡ€ΠΈ стартС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Ρ€Π°Π·Π±ΠΈΠ²ΠΊΠΈ, Π²Ρ‹ ΠΈΡ… скорСС всСго ставитС Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΈ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ достигнитС. НС достигнитС просто ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Ρƒ вас Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ Ρ‚Π΅ люди, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ²Π΅Π»ΠΈ Π΄ΠΎ состояния Π±Π΅Π·Π΄Π°Ρ€Π½ΠΎ написанного ΠΊΠΎΠ΄Π° ваш ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. ΠŸΡ€ΠΈ этом всС ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹ ΠΏΡ€ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ МБА Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ ΠΎΡ‚ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½ΠΎΠΉ, насколько тСлСфонная лапша 20-Π³ΠΎ Π²Π΅ΠΊΠ° отличаСтся ΠΎΡ‚ сСтСвых Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ Π½Ρ‹Π½Π΅ΡˆΠ½Π΅Π³ΠΎ 21-Π³ΠΎ Π²Π΅ΠΊΠ°. И аналогия здСсь Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‡Π΅Π½ΡŒ удачная. ВЀоП доставляСт Π² ΠΊΠ²Π°Ρ€Ρ‚ΠΈΡ€Ρƒ ΠΎΠ΄Π½Ρƒ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π½ΡƒΡŽ линию. ΠžΠ±Ρ€Ρ‹Π² Π½Π° любом участкС Π»ΠΈΠ½ΠΈΠΈ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Π²Ρ‹Ρ…ΠΎΠ΄Ρƒ Π΅Π΅ ΠΈΠ· строя. Π‘Π΅Ρ‚Π΅Π²Ρ‹Π΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½Ρ‹ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Ρ‹. Π”Π°ΠΆΠ΅ Π²Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· строя 60% всСй сСтСвой инфраструктуры страны Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ядСрной Π²ΠΎΠΉΠ½Ρ‹, Π½Π΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ΠΎΡ‚ΠΊΠ°Π·Ρƒ ΠΎΡΡ‚Π°Π²ΡˆΠΈΡ…ΡΡ сСтСй.

Π’.Π΅., Π³Π»Π°Π²Π½ΠΎΠ΅ прСимущСство МБА ΠΏΠ΅Ρ€Π΅Π΄ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚ΠΎΠΌ β€” это Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½ΠΎΡΡ‚ΡŒ, которая способна ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ Ρ‡Ρ€Π΅Π·Π²Ρ‹Ρ‡Π°ΠΉΠ½ΠΎΠΉ надСТности систСмы. Π’ΡƒΡ‚ Π½Π°Π΄ΠΎ ΠΏΠΎΡΡΠ½ΠΈΡ‚ΡŒ: ΠΈΠ· самой МБА Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ слСдуСт, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Π΄Π΅ΠΆΠ½Π°. МБА лишь Π΄Π°Π΅Ρ‚ Π²Π°ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π½Π°Π΄Π΅ΠΆΠ½Ρ‹Π΅ систСмы. Но это ваша ΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π΅Π½Π½ΠΎΡΡ‚ΡŒ Π·Π°Π»ΠΎΠΆΠΈΡ‚ΡŒ Π² Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ вашСй систСмы Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈ Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π°.

А сСйчас Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ повсСмСстно Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‰ΠΈΠ΅ΡΡ ошибки ΠΏΡ€ΠΈ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠΈ микросСрвисной систСмы прСдприятия.

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

А сСйчас я Ρ…ΠΎΡ‡Ρƒ Ρ€Π°ΡΡΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ Π½Π°Π΄ΠΎ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΌΠΈΠΊΡ€ΠΎΡΠ΅Ρ€Π²ΠΈΡΠ½ΡƒΡŽ систСму.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

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

Напротив, Ρ€Π°Π·ΡƒΠΌΠ½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ ваши сСрвисы ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΡ… Ρ‡Ρ€Π΅Π·Π²Ρ‹Ρ‡Π°ΠΉΠ½ΠΎ устойчивыми. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΎΡ‡Π΅Π½ΡŒ Ρ…ΠΎΡ‡Ρƒ ΠΏΠΎΠΆΠ΅Π»Π°Ρ‚ΡŒ мудрости всСм, ΠΊΡ‚ΠΎ занимаСтся Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ΠΌ ИВ Π² компаниях.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Microservices. Как ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΈ ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ?

ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы

Автор: ВячСслав ΠœΠΈΡ…Π°ΠΉΠ»ΠΎΠ²

ΠœΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½Ρ‹Π΅ прилоТСния ΠΈ ΠΈΡ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹

ВсС прСкрасно Π·Π½Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅: всС ΠΌΡ‹ Π΄Π΅Π»Π°Π»ΠΈ Ρ‚Π°ΠΊΠΈΠ΅ Π΄Π²ΡƒΡ…- ΠΈΠ»ΠΈ трСхслойныС прилоТСния с классичСской Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΎΠΉ:

ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы

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

ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы

Π’Π°ΠΊ ΠΈΠ»ΠΈ ΠΈΠ½Π°Ρ‡Π΅, ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ роста ΠΈ развития прилоТСния, Π²Ρ‹ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Π΅Ρ‚Π΅ΡΡŒ с ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½Ρ‹Ρ… Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€:

Π Π°Π½ΠΎ ΠΈΠ»ΠΈ ΠΏΠΎΠ·Π΄Π½ΠΎ Π²Ρ‹ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ ΡƒΠΆΠ΅ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ со своСй ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½ΠΎΠΉ систСмой. Π—Π°ΠΊΠ°Π·Ρ‡ΠΈΠΊ, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, Ρ€Π°Π·ΠΎΡ‡Π°Ρ€ΠΎΠ²Π°Π½: ΠΎΠ½ Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚, ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠ΅ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… нСдСль Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Π° Π·Π°Ρ‚Π΅ΠΌ стабилизации, тСстирования ΠΈ Ρ‚. Π΄. НавСрняка ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π·Π½Π°ΠΊΠΎΠΌΡ‹ с этими ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ.

Π Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ систСмы

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΊΠ°ΠΊΠΈΠΌ-Ρ‚ΠΎ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ смогли ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Π²Ρ‹ΡˆΠ΅ΠΎΠ·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΈ всС Π΅Ρ‰Π΅ ΡΠΏΡ€Π°Π²Π»ΡΠ΅Ρ‚Π΅ΡΡŒ со своСй систСмой, Π½ΠΎ вСдь Π²Π°ΠΌ навСрняка Π½ΡƒΠΆΠ½ΠΎ Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ΡŒ ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π΅, особСнно Ссли ΠΎΠ½Π° приносит Π² компанию ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹Π΅ дСньги. Как это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ?

Π’Ρ€ΠΈ измСрСния ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ

Π’ ΠΊΠ½ΠΈΠ³Π΅ β€œThe Art of Scalability” Π΅ΡΡ‚ΡŒ понятиС Β«ΠΊΡƒΠ± ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡΒ» (scale cube) β€” ΠΈΠ· ΠΊΠ½ΠΈΠ³ΠΈ β€œThe Art of Scalability”. По этому ΠΊΡƒΠ±Ρƒ ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ сущСствуСт Ρ‚Ρ€ΠΈ ΠΎΡ€Ρ‚ΠΎΠ³ΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… способа увСличСния ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ прилоТСния: sharding, mirrorring ΠΈ microservices.

ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы

Π’Π΅ΠΎΡ€Π΅ΠΌΠ° CAP

Π’ΠΎΠΎΠ±Ρ‰Π΅ говоря, Ссли ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ΡŒ систСму, придСтся Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ вопросы:

Π­Ρ‚ΠΈ вопросы приводят нас ΠΊ CAP-Ρ‚Π΅ΠΎΡ€Π΅ΠΌΠ΅, сформулированной Π‘Ρ€ΡŽΠ΅Ρ€ΠΎΠΌ Π² 2000 Π³.

ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы

Π’Π΅ΠΎΡ€Π΅ΠΌΠ° это состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹, тСорСтичСски, Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ систСмС ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΈ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ (consistency), ΠΈ Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ (availability), ΠΈ Ρ€Π°Π·Π΄Π΅Π»ΡΠ΅ΠΌΠΎΡΡ‚ΡŒ (partitioning). ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ приходится ΠΆΠ΅Ρ€Ρ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Ρ‚Ρ€Π΅Ρ… свойств Π² ΠΏΠΎΠ»ΡŒΠ·Ρƒ Π΄Π²ΡƒΡ… Π΄Ρ€ΡƒΠ³ΠΈΡ…. Π’Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΏΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ ΠΈΠ· «быстро, дСшСво ΠΈ качСствСнно» приходится Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π²Π° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°. Π’Π΅ΠΏΠ΅Ρ€ΡŒ рассмотрим Ρ€Π°Π·Π½Ρ‹Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρƒ нас Π΅ΡΡ‚ΡŒ согласно Ρ‚Π΅ΠΎΡ€Π΅ΠΌΠ΅ CAP.

CA β€” consistency + availability

ΠŸΡ€ΠΈ Ρ‚Π°ΠΊΠΎΠΌ раскладС Π΄Π°Π½Π½Ρ‹Π΅ Π²ΠΎ всСх ΡƒΠ·Π»Π°Ρ… Ρƒ нас согласованы ΠΈ доступны. Π”ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ здСсь ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ ΠΎΡ‚ΠΊΠ»ΠΈΠΊ Π·Π° прСдсказуСмоС врСмя. Π­Ρ‚ΠΎ врСмя Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ малСнькоС (это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΌΠΈΠ½ΡƒΡ‚Π° ΠΈΠ»ΠΈ большС), Π½ΠΎ ΠΌΡ‹ это Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ. Π£Π²Ρ‹, ΠΏΡ€ΠΈ этом ΠΌΡ‹ ΠΆΠ΅Ρ€Ρ‚Π²ΡƒΠ΅ΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ Π½Π° сСкции β€” Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ 300 Ρ‚Π°ΠΊΠΈΡ… хостов ΠΈ Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ всСх ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΏΠΎ этим хостам. Π’Π°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ систСма Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ согласованности Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ.

Π―Ρ€ΠΊΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ CA β€” ACID-Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ, ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π² классичСских ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π°Ρ….

CP – consistency + partitioning

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ β€” ΠΊΠΎΠ³Π΄Π° Π΄Π°Π½Π½Ρ‹Π΅ Π²ΠΎ всСх ΡƒΠ·Π»Π°Ρ… согласованы ΠΈ распрСдСлСны Π½Π° нСзависимыС сСкции. ΠŸΡ€ΠΈ этом ΠΌΡ‹ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΏΠΎΠΆΠ΅Ρ€Ρ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ трСбуСтся Π½Π° согласованиС всСх Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ β€” ΠΎΡ‚ΠΊΠ»ΠΈΠΊ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ Π΄ΠΎΠ»Π³ΠΈΠΌ. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ, Ссли Π΄Π²Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΈ ΠΈ Ρ‚Π΅ ΠΆΠ΅ Π΄Π°Π½Π½Ρ‹Π΅, нСизвСстно, ΠΊΠ°ΠΊ Π΄ΠΎΠ»Π³ΠΎ Π±ΡƒΠ΄ΡƒΡ‚ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒΡΡ Π΄Π°Π½Π½Ρ‹Π΅ для Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

Π’Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½ΠΎ для Ρ‚Π΅Ρ… ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ, нСсмотря Π½Π° Π΄Ρ€Π΅Π²Π½ΠΎΡΡ‚ΡŒ.

AP β€” availability + partitioning

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

Π―Ρ€ΠΊΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ β€” классичСскиС DNS-систСмы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ΡΡ с Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ Π΄ΠΎ Π΄Π½Π΅ΠΉ (Π²ΠΎ всяком случаС, Ρ€Π°Π½ΡŒΡˆΠ΅).

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ознакомившись с Ρ‚Π΅ΠΎΡ€ΠΈΠ΅ΠΉ CAP, ΠΌΡ‹ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ΅ΠΌ Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ΡŒ систСму Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½Π° Π±Ρ‹Π»Π° быстрой, доступной ΠΈ распрСдСлСнной. Π”Π° Π½ΠΈΠΊΠ°ΠΊ! ΠŸΡ€ΠΈΠ΄Π΅Ρ‚ΡΡ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π²Π° свойства ΠΈΠ· Ρ‚Ρ€Π΅Ρ….

ΠœΠΈΠΊΡ€ΠΎΡΠ΅Ρ€Π²ΠΈΡΠ½Π°Ρ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°

Π§Ρ‚ΠΎ ΠΆΠ΅ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ? Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Π²Ρ‹Π±ΠΎΡ€, Π½ΡƒΠΆΠ½ΠΎ, ΠΏΡ€Π΅ΠΆΠ΄Π΅ всСго, Π·Π°Π΄ΡƒΠΌΠ°Ρ‚ΡŒΡΡ, Π·Π°Ρ‡Π΅ΠΌ всС это Π½ΡƒΠΆΠ½ΠΎ, β€” Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ‡Π΅Ρ‚ΠΊΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ бизнСс-Π·Π°Π΄Π°Ρ‡ΠΈ. Π’Π΅Π΄ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π² ΠΏΠΎΠ»ΡŒΠ·Ρƒ микросСрвисов β€” ΠΎΡ‡Π΅Π½ΡŒ отвСтствСнный шаг. Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π² микросСрвисах всС Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ слоТнСС, Ρ‡Π΅ΠΌ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ, Ρ‚. Ρ‡. ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΡ‚ΡŒΡΡ с Ρ‚Π°ΠΊΠΎΠΉ ситуациСй:

Π’ΠΎΡ‚ нСльзя просто Π²Π·ΡΡ‚ΡŒ ΠΈ Ρ€Π°ΡΠΏΠΈΠ»ΠΈΡ‚ΡŒ всС Π½Π° ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ куски ΠΈ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ это Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ β€” микросСрвисы. Π˜Π½Π°Ρ‡Π΅ Π²Π°ΠΌ придСтся ΠΎΡ‡Π΅Π½ΡŒ нСсладко.

Microservices & SOA

А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ Π΅Ρ‰Π΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎ Ρ‚Π΅ΠΎΡ€ΠΈΠΈ. Π’Ρ‹ всС прСкрасно Π·Π½Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ SOA β€” сСрвисно-ориСнтированная Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°. И Ρ‚ΡƒΡ‚ Ρƒ вас навСрняка Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚ вопрос, ΠΊΠ°ΠΊ ΠΆΠ΅ SOA соотносится с микросСрвисной Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΎΠΉ? Π’Π΅Π΄ΡŒ, казалось Π±Ρ‹, SOA β€” Ρ‚ΠΎ ΠΆΠ΅ самоС, ΠΎ это Π½Π΅ совсСм Ρ‚Π°ΠΊ. На самом Π΄Π΅Π»Π΅, микросСрвисная Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° β€” частный случай SOA:

ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы

Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, микросСрвисная Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° β€” всСго лишь Π½Π°Π±ΠΎΡ€ Π±ΠΎΠ»Π΅Π΅ строгих ΠΏΡ€Π°Π²ΠΈΠ» ΠΈ соглашСний, ΠΊΠ°ΠΊ ΠΏΠΈΡΠ°Ρ‚ΡŒ всС Ρ‚Π΅ ΠΆΠ΅ сСрвисы SOA.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ микросСрвисы?

Π­Ρ‚ΠΎ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½Ρ‹ΠΉ шаблон, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ сСрвисы:

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ эти понятия ΠΏΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

Π§Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚ «малСнький» сСрвис? Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ сСрвис Π² микросСрвисной Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒΡΡ большС Ρ‡Π΅ΠΌ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΠ΄Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ Π³Π΄Π΅-Ρ‚ΠΎ 5 – 6 сСрвисов. ΠŸΡ€ΠΈ это ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ сСрвис Ρ€Π΅ΡˆΠ°Π΅Ρ‚ ΠΎΠ΄Π½Ρƒ бизнСс-Π·Π°Π΄Π°Ρ‡Ρƒ, ΠΈ Π΅Π³ΠΎ способСн ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ. Если ΠΆΠ΅ Π½Π΅ способСн, сСрвис ΠΏΠΎΡ€Π° ΠΏΠΈΠ»ΠΈΡ‚ΡŒ. ΠŸΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ, Ссли ΠΎΠ΄ΠΈΠ½ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ способСн ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ всю бизнСс-Π»ΠΎΠ³ΠΈΠΊΡƒ ΠΎΠ΄Π½ΠΎΠ³ΠΎ сСрвиса, ΠΎΠ½ построит Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ эффСктивноС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅. Π’Π΅Π΄ΡŒ Π±Ρ‹Π²Π°Π΅Ρ‚ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ Π·Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ люди, принимая Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π² процСссС написания ΠΊΠΎΠ΄Π°, просто-напросто Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ Π΄Π΅Π»Π°ΡŽΡ‚ β€” Π½Π΅ Π·Π½Π°ΡŽΡ‚, ΠΊΠ°ΠΊ Π²Π΅Π΄Π΅Ρ‚ сСбя систСма Π² Ρ†Π΅Π»ΠΎΠΌ. А Ссли сСрвис малСнький, всС Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΡ‰Π΅. Π­Ρ‚ΠΎΡ‚ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄, кстати, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ, Π΄Π°ΠΆΠ΅ Π½Π΅ слСдуя микросСрвисной Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ Π² Ρ†Π΅Π»ΠΎΠΌ.

Π§Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚ «сфокусированный» сСрвис? Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ сСрвис Ρ€Π΅ΡˆΠ°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Ρƒ бизнСс-Π·Π°Π΄Π°Ρ‡Ρƒ, ΠΈ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ Π΅Π΅ Ρ…ΠΎΡ€ΠΎΡˆΠΎ. Π’Π°ΠΊΠΎΠΉ сСрвис ΠΈΠΌΠ΅Π΅Ρ‚ смысл Π² ΠΎΡ‚Ρ€Ρ‹Π²Π΅ ΠΎΡ‚ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… сСрвисов. Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, Π²Ρ‹ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π»ΠΎΠΆΠΈΡ‚ΡŒ Π² ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚, дописав security-ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΡƒ, ΠΈ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΎΡΠΈΡ‚ΡŒ людям ΠΏΠΎΠ»ΡŒΠ·Ρƒ.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ «слабосвязанный» сСрвис? Π­Ρ‚ΠΎ ΠΊΠΎΠ³Π΄Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ сСрвиса Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ. Π’Ρ‹ связаны посрСдством интСрфСйсов, Ρƒ вас Π΅ΡΡ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Ρ‡Π΅Ρ€Π΅Π· DI ΠΈ IoC β€” это сСйчас стандартная ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°, ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π·Π½Π°ΡŽΡ‚, ΠΏΠΎΡ‡Π΅ΠΌΡƒ πŸ™‚

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ «высокосогласованный» сСрвис? Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ класс ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ содСрТит всС Π½ΡƒΠΆΠ½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ поставлСнной Π·Π°Π΄Π°Ρ‡ΠΈ. Однако Ρ‚ΡƒΡ‚ часто Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ вопрос, Ρ‡Π΅ΠΌ высокая ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ (high cohesion) отличаСтся ΠΎΡ‚ SRP? Допустим, Ρƒ нас Π΅ΡΡ‚ΡŒ класс, ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰ΠΈΠΉ Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΡƒΡ…Π½Π΅ΠΉ. Π’ случаС SRP Ρ‚Π°ΠΊΠΎΠΉ класс Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с ΠΊΡƒΡ…Π½Π΅ΠΉ ΠΈ большС Π½ΠΈ с Ρ‡Π΅ΠΌ, Π½ΠΎ ΠΏΡ€ΠΈ этом ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π½Π΅ всС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΏΠΎ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡŽ ΠΊΡƒΡ…Π½Π΅ΠΉ. Π’ случаС ΠΆΠ΅ высокой согласованности, всС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΏΠΎ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡŽ ΠΊΡƒΡ…Π½Π΅ΠΉ содСрТатся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² этом классС, ΠΈ большС Π½ΠΈΠ³Π΄Π΅. Π­Ρ‚ΠΎ Π²Π°ΠΆΠ½ΠΎΠ΅ Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠ΅.

Π₯арактСристики микросСрвисов

Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ (сСрвисы)

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π±Ρ‹Π²Π°ΡŽΡ‚ Π΄Π²ΡƒΡ… Π²ΠΈΠ΄ΠΎΠ²: Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ сСрвисы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ ΠΏΠΎ сСти. ΠœΠ°Ρ€Ρ‚ΠΈΠ½ Π€Π°ΡƒΠ»Π΅Ρ€ опрСдСляСт ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΊΠ°ΠΊ нСзависимо замСняСмыС ΠΈ нСзависимо Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅. Π’. Π΅., Ссли Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Π·ΡΡ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΈ спокойно Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π½Π° Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ, β€” это ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚. А Ссли Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ связано с Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΈ ΠΈΡ… нСзависимо Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ нСльзя (Π½ΡƒΠΆΠ½ΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Ρ‹, сборки, вСрсии…) β€”- ΠΎΠ½ΠΈ вмСстС ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‚ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚. Если Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ нСльзя Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ нСзависимо, ΠΈ трСбуСтся Π»ΠΎΠ³ΠΈΠΊΠ° ΠΎΡ‚ΠΊΡƒΠ΄Π°-Ρ‚ΠΎ Π΅Ρ‰Π΅, это Ρ‚ΠΎΠΆΠ΅ Π½Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚.

Π“Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΏΠΎ бизнСс-Π·Π°Π΄Π°Ρ‡Π°ΠΌ (сСрвисы ΠΈΠΌΠ΅ΡŽΡ‚ бизнСс-смысл)

Π’ΠΎΡ‚ стандартная ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠ° ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π°:

ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы

Для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ эффСктивности Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ Π·Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ Π²Ρ‹Π½ΡƒΠΆΠ΄Π΅Π½Ρ‹ Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΠΎ этим слоям ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹: Π΅ΡΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Π°, которая занимаСтся UI, Π΅ΡΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Π°, которая занимаСтся ядром, ΠΈ Π΅ΡΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Π°, которая разбираСтся Π² Π‘Π”.

Если ΠΆΠ΅ Π²Ρ‹ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ ΠΊ микросСрвисной Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅, сСрвисы ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ дСлятся ΠΏΠΎ бизнСс-Π·Π°Π΄Π°Ρ‡Π°ΠΌ:

ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы

НапримСр, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π³Ρ€ΡƒΠΏΠΏΠ°, которая занимаСтся ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π·Π°ΠΊΠ°Π·Π°ΠΌΠΈ, β€” ΠΎΠ½Π° Π³Ρ€ΡƒΠΏΠΏΠ° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ, Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΠΎ Π½ΠΈΠΌ ΠΎΡ‚Ρ‡Π΅Ρ‚Ρ‹ ΠΈ Ρ‚. Π΄. Вакая Π³Ρ€ΡƒΠΏΠΏΠ° Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ Π‘Π”, ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ, ΠΈ, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ, Π΄Π°ΠΆΠ΅ UI. Π’ΠΏΡ€ΠΎΡ‡Π΅ΠΌ, Π² ΠΌΠΎΠ΅ΠΌ ΠΎΠΏΡ‹Ρ‚Π΅ UI Ρ€Π°ΡΠΏΠΈΠ»ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠΊΠ° Π½Π΅ ΡƒΠ΄Π°Π²Π°Π»ΠΎΡΡŒ β€” Π΅Π³ΠΎ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½Ρ‹ΠΌ. ΠœΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ, Π½Π°ΠΌ удастся ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ, Ρ‚ΠΎΠ³Π΄Π° ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ расскаТитС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΊΠ°ΠΊ Π²Ρ‹ этого добились. Как Π±Ρ‹ Ρ‚ΠΎ Π½ΠΈ Π±Ρ‹Π»ΠΎ, Π΄Π°ΠΆΠ΅ Ссли UI остаСтся ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½Ρ‹ΠΌ, всС Ρ€Π°Π²Π½ΠΎ Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π»ΡƒΡ‡ΡˆΠ΅, ΠΊΠΎΠ³Π΄Π° ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ΅ Ρ€Π°Π·Π±ΠΈΡ‚ΠΎ Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡŽΡΡŒ, ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Π—ΠΠ§Π•Πœ Π²Ρ‹ это Π΄Π΅Π»Π°Π΅Ρ‚Π΅ β€” ΠΈΠ½Π°Ρ‡Π΅ ΠΎΠ΄Π½Π°ΠΆΠ΄Ρ‹ придСтся всС ΠΏΠ΅Ρ€Π΅Π΄Π΅Π»Ρ‹Π²Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ.

Π£ΠΌΠ½Ρ‹Π΅ сСрвисы ΠΈ простыС ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΈ

Π•ΡΡ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ взаимодСйствия сСрвисов. Π‘Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π±Π΅Ρ€ΡƒΡ‚ ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠΌΠ½ΡƒΡŽ ΡˆΠΈΠ½Ρƒ, которая Π·Π½Π°Π΅Ρ‚ ΠΈ ΠΏΡ€ΠΎ Ρ€ΠΎΡƒΡ‚ΠΈΠ½Π³, ΠΈ ΠΏΡ€ΠΎ бизнСс-ΠΏΡ€Π°Π²ΠΈΠ»Π° (допустим, ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ BizTalk), ΠΈ ΠΊ сСрвисам ΠΏΡ€ΠΈΠ»Π΅Ρ‚Π°ΡŽΡ‚ ΡƒΠΆΠ΅ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹. Π’ΠΎΠ³Π΄Π° получаСтся ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠΌΠ½Ρ‹ΠΉ middleware ΠΈ Π³Π»ΡƒΠΏΡ‹Π΅ endpoint’ы. Π­Ρ‚ΠΎ, Π½Π° самом Π΄Π΅Π»Π΅, β€” Π°Π½Ρ‚ΠΈΡˆΠ°Π±Π»ΠΎΠ½. Как ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΎ врСмя (Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π°), Ρƒ нас ΠΎΡ‡Π΅Π½ΡŒ простая ΠΈ нСзатСйливая срСда ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… β€” Π΅ΠΉ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ всС Ρ€Π°Π²Π½ΠΎ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚Π΅, ΠΎΠ½Π° Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π·Π½Π°Π΅Ρ‚ ΠΏΡ€ΠΎ ваш бизнСс. ВсС ΠΌΠΎΠ·Π³ΠΈ ΠΆΠ΅ сидят Π² сСрвисах. Π­Ρ‚ΠΎ Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ. Если ΠΆΠ΅ Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ всС ΡΠΊΠ»Π°Π΄Ρ‹Π²Π°Ρ‚ΡŒ Π² срСду ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ, Ρƒ вас получится ΡƒΠΌΠ½Ρ‹ΠΉ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚ ΠΈ Ρ‚ΡƒΠΏΡ‹Π΅ сСрвисы-ΠΎΠ±Π΅Ρ€Ρ‚ΠΊΠΈ Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ….

Π”Π΅Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ΅ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅

Π‘ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния сСрвисно-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ ΠΈ, Π² частности, микросСрвисов, Π΄Π΅Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ΅ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ β€” ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚. Π”Π΅Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ΅ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ сСрвис ΠΈΠΌΠ΅Π΅Ρ‚ свою ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ свою Π‘Π”. ЕдинствСнный случай, ΠΊΠΎΠ³Π΄Π° Ρ€Π°Π·Π½Ρ‹Π΅ слуТбы ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅, β€” Ссли эти слуТбы ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой Ρ‚ΠΎΡ‡Π½Ρ‹Π΅ ΠΊΠΎΠΏΠΈΠΈ Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Π°. Π‘Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ Π½Π΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚:

ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы

ЕдинствСнный Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ взаимодСйствия β€” сСтСвоС взаимодСйствиС ΠΌΠ΅ΠΆΠ΄Ρƒ сСрвисами:

ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы

Middleware здСсь ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹ΠΉ β€” ΠΌΡ‹ ΠΎΠ± этом Π΅Ρ‰Π΅ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ. ΠžΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ сСрвисов ΠΈ взаимодСйствиС ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ просто Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ, Ρ‡Π΅Ρ€Π΅Π· Π²Ρ‹Π·ΠΎΠ² RPC, Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈ Ρ‡Π΅Ρ€Π΅Π· ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ESB.

Автоматизация развСртывания ΠΈ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°

Автоматизация развСртывания ΠΈ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° β€” Ρ‚ΠΎ, Π±Π΅Π· Ρ‡Π΅Π³ΠΎ ΠΊ микросСрвисной Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ Π»ΡƒΡ‡ΡˆΠ΅ Π΄Π°ΠΆΠ΅ Π½Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ. Π’. Ρ‡. Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ Π² это ΠΈΠ½Π²Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Π½Π°Π½ΡΡ‚ΡŒ DevOps-ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π°. Π’Π°ΠΌ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ понадобится автоматичСскоС Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅, нСпрСрывная интСграция ΠΈ поставка. Π’Π°ΠΊΠΆΠ΅ Π²Π°ΠΌ понадобится Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½Ρ‹ΠΉ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³, ΠΈΠ½Π°Ρ‡Π΅ Π²Ρ‹ просто Π½Π΅ смоТСтС ΡƒΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π·Π° всСми многочислСнными сСрвисами, ΠΈ всС прСвратится Π² ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ Π°Π΄. Π—Π΄Π΅ΡΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ всякиС ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ ΡˆΡ‚ΡƒΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π»ΠΎΠ³Π³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, β€” ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ ΠΏΠΈΡΠ°Ρ‚ΡŒ, Ρ‚. ΠΊ. Π΅ΡΡ‚ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠ΅ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π²Ρ€ΠΎΠ΄Π΅ ELK ΠΈΠ»ΠΈ Amazon CloudWatch.

Design for Failure (Chaos Monkey)

Π‘ самого ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ этапа, начиная ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΌΠΈΠΊΡ€ΠΎΡΠ΅Ρ€Π²ΠΈΡΠ½ΡƒΡŽ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΈΠ· прСдполоТСния, Ρ‡Ρ‚ΠΎ ваши сСрвисы Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚. Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, ваш сСрвис Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΅ΠΌΡƒ ΠΌΠΎΠ³ΡƒΡ‚ Π½Π΅ ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ΡŒ Π½ΠΈΠΊΠΎΠ³Π΄Π°, Ссли ΠΎΠ½ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ ΠΊΠ°ΠΊΠΈΡ…-Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹Ρ…. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π²Ρ‹ сразу Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΈΠ· ситуации, Ρ‡Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Ρƒ вас ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ.

НапримСр, для этого компания Netflix Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π»Π° Chaos Monkey β€” инструмСнт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π»ΠΎΠΌΠ°Π΅Ρ‚ сСрвисы, хаотичСски ΠΈΡ… Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΈ Ρ€Π²Π΅Ρ‚ соСдинСния. Π­Ρ‚ΠΎΡ‚ Π½ΡƒΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ систСмы.

Как сСрвисы Π±ΡƒΠ΄ΡƒΡ‚ Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ?

Π’ΠΎΠ·ΡŒΠΌΠ΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ простого прилоТСния. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ Π½ΠΈΠΆΠ΅, я взял ΠΈΠ· Π±Π»ΠΎΠ³Π° ΠšΡ€ΠΈΡΠ° Ричардсона Π½Π° NGINX β€” Ρ‚Π°ΠΌ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎ рассказываСтся, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ микросСрвисы.

Π˜Ρ‚Π°ΠΊ, допустим, Ρƒ нас Π΅ΡΡ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ (Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄Π°ΠΆΠ΅ UI-Π½Ρ‹ΠΉ), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΡƒ-Ρ‚ΠΎ Π½ΡƒΠΆΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, взаимодСйствуСт с ΡΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒΡŽ Π΄Ρ€ΡƒΠ³ΠΈΡ… сСрвисов.

ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы

Казалось Π±Ρ‹, всС просто β€” ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊΠΎ всСм этим сСрвисам. Но Π½Π° Π΄Π΅Π»Π΅ это выливаСтся Π² Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ конфигурация ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° становится ΠΎΡ‡Π΅Π½ΡŒ большой. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ сущСствуСт ΠΎΡ‡Π΅Π½ΡŒ простой шаблон API Gateway:

ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы

API Gateway β€” ΠΏΠ΅Ρ€Π²ΠΎΠ΅, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π΄Π΅Π»Π°Π΅Ρ‚Π΅ ΠΌΠΈΠΊΡ€ΠΎΡΠ΅Ρ€Π²ΠΈΡΠ½ΡƒΡŽ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ. Если Ρƒ вас Π² бэкСндС Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ количСство сСрвисов, ΠΏΠΎΡΡ‚Π°Π²ΡŒΡ‚Π΅ ΠΏΠ΅Ρ€Π΅Π΄ Π½ΠΈΠΌΠΈ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠΉ сСрвис, Π·Π°Π΄Π°Ρ‡Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ β€” ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ бизнСс-Π²Ρ‹Π·ΠΎΠ²Ρ‹ ΠΊ Ρ†Π΅Π»Π΅Π²Ρ‹ΠΌ сСрвисам. Π’ΠΎΠ³Π΄Π° Π²Ρ‹ смоТСтС ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒ ΠΌΠ°ΠΏΠΏΠΈΠ½Π³ транспорта (транспорт Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ REST API, ΠΊΠ°ΠΊ Π½Π° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ΅, Π° ΠΊΠ°ΠΊΠΈΠΌ ΡƒΠ³ΠΎΠ΄Π½ΠΎ). API Gateway прСдоставляСт Π΄Π°Π½Π½Ρ‹Π΅ Π² Ρ‚ΠΎΠΌ Π²ΠΈΠ΄Π΅, Π² ΠΊΠ°ΠΊΠΎΠΌ ΠΎΠ½ΠΈ Π½ΡƒΠΆΠ½Ρ‹ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ этому Ρ‚ΠΈΠΏΡƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. НапримСр, Ссли Π±ΡƒΠ΄Π΅Ρ‚ Π²Π΅Π±- ΠΈ мобильноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Ρƒ вас Π±ΡƒΠ΄Π΅Ρ‚ Π΄Π²Π° API Gateway, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· сСрвисов ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΈΡ… Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ. API Gateway Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½ΠΈ Π² ΠΊΠΎΠ΅ΠΌ случаС ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½ΠΎΠΉ бизнСс-Π»ΠΎΠ³ΠΈΠΊΠΈ, ΠΈΠ½Π°Ρ‡Π΅ Π±Ρ‹ эта Π»ΠΎΠ³ΠΈΠΊΠ° Π²Π΅Π·Π΄Π΅ Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π»Π°ΡΡŒ, ΠΈ Π΅Π΅ слоТно Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ. API Gateway Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅, ΠΈ всС.

Π Π°Π·Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ микросСрвисной Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹

Π˜Ρ‚Π°ΠΊ, допустим, Ρƒ нас Π΅ΡΡ‚ΡŒ UI, API Gateway ΠΈ дСсяток сСрвисов Π·Π° Π½ΠΈΠΌ, Π½ΠΎ этого ΠΌΠ°Π»ΠΎ β€” Ρ‚Π°ΠΊ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡˆΡŒ. Π’Π΅Π΄ΡŒ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ сСрвисы ΠΊΠ°ΠΊ-Ρ‚ΠΎ взаимосвязаны. Π― Π²ΠΈΠΆΡƒ Ρ‚Ρ€ΠΈ способа ΡΠ²ΡΠ·Π°Ρ‚ΡŒ сСрвисы:

Service Discovery

Service Discovery (RPC Style)

Π’ΠΎΡ‚ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Service Discovery:

ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы

Π—Π΄Π΅ΡΡŒ Ρƒ нас Π΅ΡΡ‚ΡŒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ обращаСтся ΠΊ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ сСрвисам. Однако, Ссли Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΡˆΠΈΡ‚ адрСс ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ сСрвиса, ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ связаны ΠΏΠΎ Ρ€ΡƒΠΊΠ°ΠΌ ΠΈ Π½ΠΎΠ³Π°ΠΌ, вСдь Π½Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Ρ…ΠΎΡ‚Π΅Ρ‚ΡŒΡΡ Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ всС Π·Π°Π½ΠΎΠ²ΠΎ, ΠΈΠ»ΠΈ ΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ экзСмпляр сСрвиса. И Ρ‚ΡƒΡ‚ Π½Π°ΠΌ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Server-Side Service Discovery.

Server-Side Service Discovery

ΠŸΡ€ΠΈ Server-Side Service Discovery ваш ΠΊΠ»ΠΈΠ΅Π½Ρ‚ взаимодСйствуСт Π½Π΅ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ с ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌ сСрвисом, Π° с Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ (load balancer):

ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы

Load balancer сущСствуСт ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ: ΠΎΠ½ΠΈ Π΅ΡΡ‚ΡŒ Ρƒ Amazon, Ρƒ Azure ΠΈ Ρ‚. Π΄. Load balancer Π½Π° основании собствСнных ΠΏΡ€Π°Π²ΠΈΠ» Ρ€Π΅ΡˆΠ°Π΅Ρ‚, ΠΊΠΎΠΌΡƒ ΠΎΡ‚Π΄Π°Ρ‚ΡŒ Π²Ρ‹Π·ΠΎΠ², Ссли сСрвисов большС ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ нСясно, Π³Π΄Π΅ находится сСрвис.

Π’ΡƒΡ‚ Π΅ΡΡ‚ΡŒ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ сСрвис, service registry, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚Π°ΠΊΠΆΠ΅ Π±Ρ‹Π²Π°Π΅Ρ‚ Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² β€” Π² зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΡ‚ΠΎ, ΠΊΠ°ΠΊ ΠΈ Π³Π΄Π΅ Ρƒ Π½Π΅Π³ΠΎ рСгистрируСтся. МоТно ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ service registry рСгистрировал всС Ρ‚ΠΈΠΏΡ‹ сСрвисов. Load balancer Π±Π΅Ρ€Π΅Ρ‚ всС Π΄Π°Π½Π½Ρ‹Π΅ Ρƒ service registry. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π·Π°Π΄Π°Ρ‡Π° load balancer β€” просто Π±Ρ€Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ мСстополоТСнии сСрвисов ΠΈΠ· service registry ΠΈ Ρ€Π°ΡΠΊΠΈΠ΄Ρ‹Π²Π°Ρ‚ΡŒ запросы ΠΊ Π½ΠΈΠΌ. А Π·Π°Π΄Π°Ρ‡Π° service registry β€” Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ рСгистрационныС Π΄Π°Π½Π½Ρ‹Π΅ сСрвисов, ΠΈ ΠΎΠ½ это Π΄Π΅Π»Π°Π΅Ρ‚ ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ: ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΏΡ€Π°ΡˆΠΈΠ²Π°Ρ‚ΡŒ сСрвисы сам, Π±Ρ€Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· внСшнСго ΠΊΠΎΠ½Ρ„ΠΈΠ³Π° ΠΈ Ρ‚. Π΄. ΠŸΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡ‚Π²ΠΎ для ΠΌΠ°Π½Π΅Π²Ρ€ΠΎΠ² здСсь видится ΠΎΡ‡Π΅Π½ΡŒ ΡˆΠΈΡ€ΠΎΠΊΠΈΠΌ.

Client-Side Service Discovery

Client-Side Service Discovery β€” Π΄Ρ€ΡƒΠ³ΠΎΠΉ, Ρ€Π°Π΄ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‰ΠΈΠΉΡΡ способ взаимодСйствия.

ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы

Π—Π΄Π΅ΡΡŒ Π½Π΅Ρ‚ load balancer, ΠΈ сСрвис обращаСтся Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΊ service registry, ΠΎΡ‚ΠΊΡƒΠ΄Π° Π±Π΅Ρ€Π΅Ρ‚ адрСс сСрвиса. Π§Π΅ΠΌ это Π»ΡƒΡ‡ΡˆΠ΅? Π’Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π½Π° ΠΎΠ΄ΠΈΠ½ запрос мСньшС β€” Ρ‚Π°ΠΊ всС Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ быстрСС. Π­Ρ‚ΠΎΡ‚ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ β€” Π½ΠΎ ΠΏΡ€ΠΈ условии, Ρ‡Ρ‚ΠΎ Ρƒ вас Π΄ΠΎΠ²Π΅Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ систСма, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ β€” Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ ΠΈ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ΠΎΡ‚ сСрвисов, Π²ΠΎ Π²Ρ€Π΅Π΄ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для DDoS).

Π’ Ρ†Π΅Π»ΠΎΠΌ Π² Service Discovery всС достаточно просто β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ достаточно извСстныС Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ. Однако Ρ‚ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ β€” ΠΊΠ°ΠΊ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅-ΠΌΠ΅Π½Π΅Π΅ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹ΠΉ бизнСс-процСсс? ВсС Ρ€Π°Π²Π½ΠΎ сСрвисы ΠΏΡ€ΠΈ Ρ‚Π°ΠΊΠΎΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π΅ слишком сильно связаны, хотя ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния разворачивания ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ ΠΌΡ‹ Ρ€Π΅ΡˆΠ°Π΅ΠΌ. Service instance A Π·Π½Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π·Π° Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ΄Ρ‚ΠΈ ΠΊ service instance B, Π° Ссли Π·Π°Π²Ρ‚Ρ€Π° Ρƒ вас помСняСтся ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π° прилоТСния ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ service instance B Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠΉ сСрвис, Π²Π°ΠΌ придСтся ΠΌΠ½ΠΎΠ³ΠΎΠ΅ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠΎΠ³Π΄Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ транзакционная ситуация ΠΈ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Ρ‚ΡŒ дСйствия Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… сСрвисов, понадобится Π±Ρ€ΠΎΠΊΠ΅Ρ€ (Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ сСрвис), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ всС ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Ρ‚ΡŒ.

Message Bus

Message Bus Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΌΠ΅Ρ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚ΡŒ ΠΈ Π½ΡƒΠΆΠ½ΠΎ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ это Ρ‚Π°ΠΊΠΎΠ΅. Message Bus ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Π²ΠΏΠΎΠ»Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π΅ Π½Π°Π΄ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΠΎ Message Bus запросы request–reply ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ большиС ΠΎΠ±ΡŠΠ΅ΠΌΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…. Message Bus (ΠΈ Π² ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ Publish/Subscribe) Ρ€Π°Π·Ρ€Ρ‹Π²Π°Π΅Ρ‚ поставщиков ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»Π΅ΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ: поставщики Π½Π΅ Π·Π½Π°ΡŽΡ‚, ΠΊΠΎΠΌΡƒ Π½ΡƒΠΆΠ½Π° информация, Π° ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ Π½Π΅ Π·Π½Π°ΡŽΡ‚, ΠΎΡ‚ΠΊΡƒΠ΄Π° ΠΎΠ½Π° бСрСтся β€” Ρƒ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ тСорСтичСски ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ поставщики ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ.

И, ΠΊΠ°ΠΊ Π½ΠΈ старайся, Π² Ρ‚Π°ΠΊΠΎΠΉ систСмС Ρƒ вас Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ сСтСвой Π²Ρ‹Π·ΠΎΠ² β€” Π±Ρ€ΠΎΠΊΠ΅Ρ€Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ собираСт сообщСния, ΠΈ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ Π²Ρ‹Π·ΠΎΠ², ΠΊΠΎΠ³Π΄Π° эти сообщСния Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ. По ΠΌΠΎΠ΅ΠΌΡƒ ΠΎΠΏΡ‹Ρ‚Ρƒ, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ большиС ΠΎΠ±ΡŠΠ΅ΠΌΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ‚Ρ‹) Ρ‡Π΅Ρ€Π΅Π· Message Bus Π½Π΅ стоит. Message Bus β€” шаблон ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹ΠΉ; ΠΎΠ½ Π½ΡƒΠΆΠ΅Π½, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ΄ΠΈΠ½ сСрвис ΠΌΠΎΠ³ ΡΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Ρƒ Π½Π΅Π³ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ помСнялось, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ сСрвисы ΠΌΠΎΠ³Π»ΠΈ Π½Π° это ΡΡ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.

Π’ Ρ‚Π°ΠΊΠΎΠΉ ситуации Π½Π°ΠΌ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠΌΠΎΠ³Π»Π° Π±Ρ‹ гибридная Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°. Π’ΠΎΠ³Π΄Π° Π²Ρ‹ Π±Π΅Ρ€Π΅Ρ‚Π΅ ΠΈ ΠΊΠΈΠ΄Π°Π΅Ρ‚Π΅ ΠΏΠΎ Message Bus сообщСниС, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ помСнялись. ПослС этого подписчики Ρ€Π΅Π°Π³ΠΈΡ€ΡƒΡŽΡ‚ Π½Π° эти Π΄Π°Π½Π½Ρ‹Π΅, ΠΈΠ΄ΡƒΡ‚ Π² registry, Π·Π°Π±ΠΈΡ€Π°ΡŽΡ‚ ΠΏΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρƒ отправитСля мСсто, ΠΊΡƒΠ΄Π° Π½Π°Π΄ΠΎ ΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π·Π° Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, ΠΈ ΡƒΠΆΠ΅ ΠΈΠ΄ΡƒΡ‚ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ. Π’Π°ΠΊ Π²Ρ‹ ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ экономитС ΠΈ Ρ€Π°Π·Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ Π²Π°ΡˆΡƒ ΡˆΠΈΠ½Ρƒ.

Message Bus: Β«Π·Π°Β» ΠΈ Β«ΠΏΡ€ΠΎΡ‚ΠΈΠ²Β»

ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы

Достоинства Message Bus:

НСдостатки Message Bus:

Event Driven Architecture β€” Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°, управляСмая событиями

Когда наши сСрвисы Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ Π² стилС RPC, всС понятно: Ρƒ нас Π΅ΡΡ‚ΡŒ сСрвис, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ связываСт всю бизнСс-Π»ΠΎΠ³ΠΈΠΊΡƒ, собираСт Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΈΡ… сСрвисов ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΈΡ…, Π½ΠΎ Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ Π² случаС Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹, управляСмой событиями? ΠœΡ‹ Π½Π΅ Π·Π½Π°Π΅ΠΌ, ΠΊΡƒΠ΄Π° ΠΈΠ΄Ρ‚ΠΈ, β€” Ρƒ нас Π΅ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ сообщСния.

Π’ силу Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ сСрвисы Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ со своими Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°ΠΌΠΈ, Ρƒ нас часто Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ситуация, ΠΊΠΎΠ³Π΄Π° измСнСния Π² ΠΎΠ΄Π½ΠΎΠΌ сСрвисС Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ. НапримСр, Ρƒ нас Π΅ΡΡ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ Π·Π°ΠΊΠ°Π· (order), ΠΈ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π»ΠΈΠΌΠΈΡ‚Ρ‹, хранящиСся Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ сСрвисС (customer service):

ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы

Π£ этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π΅ΡΡ‚ΡŒ Π΄Π²Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ.

РСшСниС 1

Когда Π²Ρ‹ ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΡƒΠ΅Ρ‚Π΅ процСсс создания Π·Π°ΠΊΠ°Π·Π°, посылаСтС Π² ΡˆΠΈΠ½Ρƒ сообщСниС ΠΎ создании сущности:

ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы

БСрвис, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ заинтСрСсован Π² этих событиях, подписываСтся Π½Π° Π½ΠΈΡ… ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ:

ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы

Π—Π°Ρ‚Π΅ΠΌ ΠΎΠ½ выполняСт ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π΅ дСйствиС ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΡ‚Π²Π΅Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΌ ΠΏΡ€ΠΈΠ»Π΅Ρ‚Π°Π΅Ρ‚ Π² сСрвис Π·Π°ΠΊΠ°Π·ΠΎΠ², Π² ΡˆΠΈΠ½Ρƒ:

ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы. Π€ΠΎΡ‚ΠΎ ΠΊΠ°ΠΊ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы

ВсС это называСтся ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΉ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒΡŽ (eventual consistency). ΠŸΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ это Π½Π΅ Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½ΠΎ, Π° Π·Π° счСт Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ доставки Message Bus. ΠŸΡ€ΠΈ этом взаимодСйствиС сСрвисов с шиной β€” Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΎΠ½Π½ΠΎΠ΅, ΠΈ шина обСспСчиваСт доставку всСх сообщСний. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹, Ρ‡Ρ‚ΠΎ Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠΎΠ½Ρ†ΠΎΠ² Π΄ΠΎ Π½Π°ΡˆΠΈΡ… сСрвисов всС Π΄ΠΎΠ»Π΅Ρ‚ΠΈΡ‚ (Ссли, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π½Π΅ Ρ€Π΅ΡˆΠΈΠΌ ΠΏΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ сообщСния Π±Ρ€ΠΎΠΊΠ΅Ρ€Π° Ρ‡Π΅Ρ€Π΅Π· консоль администрирования).

Если стандартная модСль называСтся ACID, такая транзакционная модСль называСтся BASE β€” Basically Available, Soft state, Eventual consistency, Ρ‡Ρ‚ΠΎ Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²Ρ‹Π²Π°Π΅Ρ‚ΡΡ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ: состояниС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²Ρ‹ Π² ΠΈΡ‚ΠΎΠ³Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅, называСтся β€œsoft state”, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π½Π΅ Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹, Ρ‡Ρ‚ΠΎ это состояниС Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎ.

РСшСниС 2

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

Π—Π΄Π΅ΡΡŒ снова срабатываСт конСчная ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ: Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π·Π°ΠΊΠ°Π·, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΊΡ€Π΅Π΄ΠΈΡ‚Π½Ρ‹ΠΉ Π»ΠΈΠΌΠΈΡ‚ ΠΈ ΡƒΡ‡Π΅ΡΡ‚ΡŒ Π΅Π³ΠΎ ΠΊΠ°ΠΊ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹ΠΉ. Но Ρ‚. ΠΊ. Π² этот ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΊΡ€Π΅Π΄ΠΈΡ‚Π½Ρ‹ΠΉ Π»ΠΈΠΌΠΈΡ‚ ΠΌΠΎΠ³ ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π½Π΅ соотвСтствуСт Π·Π°ΠΊΠ°Π·Ρƒ, ΠΈ Π²Π°ΠΌ придСтся Π²Ρ‹ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ Π±Π»ΠΎΠΊΠΈ компСнсации β€” ΠΏΠΈΡΠ°Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° Ρ‚Π°ΠΊΠΈΠ΅ Π²Π½Π΅ΡˆΡ‚Π°Ρ‚Π½Ρ‹Π΅ ситуации. Π’ этом вся ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ сСрвисных Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ β€” Π½ΡƒΠΆΠ½ΠΎ Π·Π°Ρ€Π°Π½Π΅Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π²Ρ‹ ΠΎΠΏΠ΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚Π΅, ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΌΠΈ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ дСйствиям.

Π•ΡΡ‚ΡŒ Π΅Ρ‰Π΅ ΠΈ Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ, ΠΎΡ‡Π΅Π½ΡŒ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ β€” Event Sourcing. Π­Ρ‚ΠΎ большая Ρ‚Π΅ΠΌΠ°, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰Π°Ρ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ обсуТдСния. Π’ Event Sourcing Π²Ρ‹ Π½Π΅ Ρ…Ρ€Π°Π½ΠΈΡ‚Π΅ состояния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² β€” Π²Ρ‹ ΠΈΡ… строитС Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Π° Ρ…Ρ€Π°Π½ΠΈΡ‚Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ измСнСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² (фактичСски, намСрСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ). Допустим, происходит Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π² UI, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Ρ…ΠΎΡ‡Π΅Ρ‚ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π·Π°ΠΊΠ°Π·. Π’ΠΎΠ³Π΄Π° Π²Ρ‹ сохраняСтС Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π·Π°ΠΊΠ°Π·Π°, Π½Π΅ Π½ΠΎΠ²ΠΎΠ΅ состояниС, Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ сохраняСтС внСшниС запросы: ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… сСрвисов ΠΈ Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΎΡ‚ΠΊΡƒΠ΄Π° ΡƒΠ³ΠΎΠ΄Π½ΠΎ. Π—Π°Ρ‡Π΅ΠΌ это Π½ΡƒΠΆΠ½ΠΎ? Π­Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ для ситуации компСнсации β€” Ρ‚ΠΎΠ³Π΄Π° Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ΠΊΠ°Ρ‚ΠΈΡ‚ΡŒ состояниС систСмы Π½Π°Π·Π°Π΄ ΠΈ Π΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ½Π°Ρ‡Π΅.

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

ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΎΡ‚ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π° ΠΊ микросСрвисам

Π’Π΅ΠΏΠ΅Ρ€ΡŒ хочСтся ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΎΡ‚ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π° ΠΊ микросСрвисам, Ссли Π²Ρ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ, Ρ‡Ρ‚ΠΎ это Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ. Π˜Ρ‚Π°ΠΊ, Ρƒ вас Π΅ΡΡ‚ΡŒ большой ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚. Как Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π΅Π»ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π½Π° части?

Π’Ρ‹ Π²Ρ‹Π½ΠΈΠΌΠ°Π΅Ρ‚Π΅ Π½Π΅Ρ‡Ρ‚ΠΎ, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠ΅ ΠΏΠΎ бизнСс-Π»ΠΎΠ³ΠΈΠΊΠ΅ (Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ называСтся ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΌ контСкстом Π² DDD). ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, для этого придСтся ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚. НапримСр, Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚ Π½Π° Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ сСрвис β€” Ρ‡Π°ΡΡ‚ΡŒ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π°, которая Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ частых ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ. Благодаря этому, Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ Π½Π΅Π·Π°ΠΌΠ΅Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Π²Ρ‹Π³ΠΎΠ΄Ρƒ ΠΎΡ‚ выдСлСния сСрвсиа β€” Π½Π΅ придСтся Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚ часто. Π’Π°ΠΊΠΆΠ΅ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π²Ρ‹Π΄Π΅Π»ΡΡ‚ΡŒ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ сСрвис Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ доставляСт наибольшСС количСство ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΈ ΠΏΠ»ΠΎΡ…ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚.

Когда Π²Ρ‹ раздСляСтС ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚ Π½Π° сСрвисы, ΠΎΠ±Ρ€Π°Ρ‰Π°ΠΉΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΠΊΠ°ΠΊ Ρƒ вас структурированы ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. Π’Π΅Π΄ΡŒ Π΅ΡΡ‚ΡŒ эмпиричСский Π·Π°ΠΊΠΎΠ½ КонвСя (Conway’s law), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚, Ρ‡Ρ‚ΠΎ структура вашСго прилоТСния повторяСт структуру вашСй ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ. Если ваша организация построСна Π½Π° тСхнологичСских иСрархиях, ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΌΠΈΠΊΡ€ΠΎΡΠ΅Ρ€Π²ΠΈΡΠ½ΡƒΡŽ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ feature-ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π½Π°Π²Ρ‹ΠΊΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½ΡƒΠΆΠ½ΡƒΡŽ Π»ΠΎΠ³ΠΈΠΊΡƒ ΠΎΡ‚ Π½Π°Ρ‡Π°Π»Π° Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π°.

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

Если ΠΆΠ΅ ΠΌΡ‹ Π΄Π΅Π»Π°Π΅ΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ с нуля, Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ β€” ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚ ΠΈΠ»ΠΈ микросСрвисы?

ΠœΠΎΠ½ΠΎΠ»ΠΈΡ‚ Π»ΡƒΡ‡ΡˆΠ΅ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… случаях:

ΠœΠΈΠΊΡ€ΠΎΡΠ΅Ρ€Π²ΠΈΡΡ‹ Π»ΡƒΡ‡ΡˆΠ΅ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ, Ссли:

ΠœΠΈΠΊΡ€ΠΎΡΠ΅Ρ€Π²ΠΈΡΡ‹: Β«Π·Π°Β» ΠΈ Β«ΠΏΡ€ΠΎΡ‚ΠΈΠ²Β»

НСмного ΠΎ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π΅ ΠΈ тСстировании мироксСрвисной систСмы

Π•ΡΡ‚ΡŒ инструмСнты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΡƒΡŽ систСму ΠΈ ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π·Π° Π½Π΅ΠΉ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ZooKeeper, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ конфигурирования Π·Π° нас. Π’Π°ΠΊΠΆΠ΅ Π΅ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ инструмСнты Ρ‚ΠΈΠΏΠ° Logstash, Kibana, Elastic, Serilog, Amazon Cloud Watch. ВсС ΠΎΠ½ΠΈ слСдят Π·Π° вашими сСрвисами.

Как Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΈΠΊΡ€ΠΎΡΠ΅Ρ€Π²ΠΈΡΠ½ΡƒΡŽ систСму? Π― Π²ΠΈΠΆΡƒ это ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. Π£ вас Π΅ΡΡ‚ΡŒ сСрвис, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ ΠΊΠ°ΠΊΡƒΡŽ-Ρ‚ΠΎ бизнСс-Π·Π°Π΄Π°Ρ‡Ρƒ. Π’Π°ΡˆΠ° Ρ†Π΅Π»ΡŒ β€” ΠΏΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ бизнСс-ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Ρ‹. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ тСстов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Π΄Π΅Π»Π°Π΅Ρ‚Π΅ β€” ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ для ΠΊΠΎΠ΄Π°, написанного Π² Ρ€Π°ΠΌΠΊΠ°Ρ… этого сСрвиса. Π­Ρ‚ΠΎ β€” Π½ΠΈΠ· ΠΏΠΈΡ€Π°ΠΌΠΈΠ΄Ρ‹ тСстирования. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ β€” ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ΅ тСстированиС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ провСряСт, ΠΊΠ°ΠΊ этот сСрвис ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π½Π° стандартныС запросы. Π’ΡƒΡ‚ Ρƒ вас ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ пространство для ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ тСстирования ΠΊΠΎΠ΄Π°, написанного ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎ. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ этап β€” использованиС Ρ€Π°Π·Π½Ρ‹Ρ… инструмСнтов, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚ Π½Π΅ помСнялся. Π’ нашСм ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ ΠΌΡ‹ использовали Swagger, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт Π·Π°Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚.

ΠœΠ°Π½ΠΈΡ„Π΅ΡΡ‚ Π”ΠΆΠ΅Ρ„Ρ„Π° БСзоса (Amazon CEO)

НапослСдок ΠΏΡ€ΠΈΠ²Π΅Π΄Ρƒ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΡ€Π°ΠΉΠ½Π΅ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ примСнСния микросСрвисной Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ β€” Amazon.

ВсС Π½Π°Ρ‡Π°Π»ΠΎΡΡŒ с Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π² 2000 Π³. Π”ΠΆΠ΅Ρ„Ρ„ БСзос, Π³Π»Π°Π²Π° Amazon, написал для всСх ΠΎΡ‚Π΄Π΅Π»ΠΎΠ² своСй ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ манифСст:

Π’ΠΊΡ€Π°Ρ‚Ρ†Π΅, ΡΡƒΡ‚ΡŒ манифСста Ρ‚Π°ΠΊΠΎΠ²Π°: «Вся Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ выставляСтся Π½Π°Ρ€ΡƒΠΆΡƒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ посрСдством интСрфСйсов сСрвисов. ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ (Π½Π° самом Π΄Π΅Π»Π΅ β€” сСрвисы ΠΈ ΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹) Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ посрСдством сСтСвых интСрфСйсов: Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ взаимодСйствия с Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΠΎΠ±Ρ‰Π΅ΠΉ памяти ΠΈ Ρ‚. Π΄. β€” Π²Π½Π΅ зависимости ΠΎΡ‚ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ ΠΈ Π±Π΅Π· ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π”ΠΆΠ΅Ρ„Ρ„ обязал всС сСрвисы Π±Ρ‹Ρ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΌΠΈ, Ρ‡Ρ‚ΠΎ ΠΈΡ… выставят Π² ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΉ доступ. Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π»ΠΎ ΠΊ ΡƒΡ€ΠΎΠ²Π½ΡŽ, ΠΊΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Ρ‚ΡŒ услугу ΠΊΠ°ΠΊ сСрвис. Π­Ρ‚ΠΎ стало Π·Π°Π»ΠΎΠ³ΠΎΠΌ успСха ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ. ΠœΡ‹ Π·Π½Π°Π΅ΠΌ, ΠΊ Ρ‡Π΅ΠΌΡƒ Π² ΠΈΡ‚ΠΎΠ³Π΅ ΠΏΡ€ΠΈΠ²Π΅Π» этот манифСст β€” ΠΊ Ρ†Π΅Π»ΠΎΠΉ индустрии Amazon ΠΈ частичноС Π²Ρ‹Ρ€ΠΎΡΡˆΠ΅ΠΉ ΠΈΠ· этого индустрии AWS.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

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

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *