Php

Php микросСрвисы: Π“ΠΎΡ‚ΠΎΠ²ΠΈΠΌ простой Π±Π»ΠΎΠ³ Π½Π° микросСрвисах, пишСм свой ΠΌΠΈΠΊΡ€ΠΎΡ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ Π½Π° php ΠΈ запускаСм всС Π½Π° Docker с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

ΠœΠΈΠΊΡ€ΠΎΡΠ΅Ρ€Π²ΠΈΡΡ‹ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… / Π₯Π°Π±Ρ€

ΠžΠ³Π»ΡΠ΄Ρ‹Π²Π°ΡΡΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Π½Π° ΠΏΡΡ‚ΡŒ Π»Π΅Ρ‚ Π½Π°Π·Π°Π΄ Π² ΠΏΡ€ΠΎΡˆΠ»ΠΎΠ΅, ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, насколько сильно с Ρ‚Π΅Ρ… ΠΏΠΎΡ€ измСнилось ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ ΠΊ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ микросСрвисов. ΠŸΠΎΠ½Π°Ρ‡Π°Π»Ρƒ ΠΎΠ½ΠΈ Π±Ρ‹Π»ΠΈ Ρ‡Ρ€Π΅Π·Π²Ρ‹Ρ‡Π°ΠΉΠ½ΠΎ популярны. ПослС успСха Netflix, Amazon ΠΈ Gilt.com Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Ρ€Π΅ΡˆΠΈΠ»ΠΈ, Ρ‡Ρ‚ΠΎ Π΄Π΅-Ρ„Π°ΠΊΡ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° микросСрвисов Π½Π΅ отличаСтся ΠΎΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΆΠ΅ всС поняли, Ρ‡Ρ‚ΠΎ микросСрвисы ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΈΠ· сСбя Π½ΠΎΠ²Ρ‹ΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½Ρ‹ΠΉ ΡΡ‚ΠΈΠ»ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ эффСктивСн для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡, ΠΈΠΌΠ΅Π΅Ρ‚ свои ΠΏΠ»ΡŽΡΡ‹ ΠΈ минусы.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ микросСрвисы ΠΈ Π² ΠΊΠ°ΠΊΠΈΡ… случаях ΠΈΡ… слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, ΠΌΡ‹ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΠ»ΠΈΡΡŒ ΠΊ Π”ΠΆΠ΅ΠΉΠΌΠ΅ Π‘ΡƒΡΠ»ΡŒΡ‚Π° (Jaime Buelta), Π°Π²Ρ‚ΠΎΡ€Ρƒ ΠΊΠ½ΠΈΠ³ΠΈ Β«Hands-On Docker for Microservices with PythonΒ». Он рассказал ΠΎ прСимущСствах этой Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹, Π° Ρ‚Π°ΠΊΠΆΠ΅ подСлился рСкомСндациями для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π½Π° Π½Π΅Π΅ с ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚ΠΎΠ².

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° ΠΈ риски

Π’Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎΠ΅ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ всС свои возмоТности Π² Π΅Π΄ΠΈΠ½ΠΎΠΌ связанном ΠΌΠΎΠ΄ΡƒΠ»Π΅. Π’ случаС микросСрвисов всС Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ дСлится Π½Π° Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π»ΠΊΠΈΠ΅ Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½Ρ‹Π΅ слуТбы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ нСзависимо Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ, ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ ΠΈ Π·Π°ΠΌΠ΅Π½ΡΡ‚ΡŒ. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ микросСрвис создаСтся для ΠΎΠ΄Π½ΠΎΠΉ бизнСс-Ρ†Π΅Π»ΠΈ ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ микросСрвисами с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ простых ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ².

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

АрхитСктура микросСрвисов опрСдСляСт Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ создаСтС своС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π½ΠΎ ΠΈ Ρ‚ΠΎ, ΠΊΠ°ΠΊ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π° ваша ΠΊΠΎΠΌΠ°Π½Π΄Π°.

«Одна нСзависимая ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΡ‚Π²Π΅Ρ‡Π°Ρ‚ΡŒ Π·Π° микросСрвис. Π­Ρ‚ΠΎ позволяСт организациям расти, Π½Π΅ сталкивая Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌΒ», β€” ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚ Π‘ΡƒΡΠ»ΡŒΡ‚Π°.

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

На вопрос ΠΎ рисках, связанных с микросСрвисами, Π‘ΡƒΡΠ»ΡŒΡ‚Π° ΠΎΡ‚Π²Π΅Ρ‚ΠΈΠ»: «Главная ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈ Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠΈ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ (особСнно ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π΅ с ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π°) Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² создании Π΄ΠΈΠ·Π°ΠΉΠ½Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ сСрвисы Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π±ΡƒΠ΄ΡƒΡ‚ нСзависимыми. Если этого Π½Π΅ удастся Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ, Ρ‚ΠΎ мСТсСрвисныС связи станут слоТнСС, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ расходам. ΠœΠΈΠΊΡ€ΠΎΡΠ΅Ρ€Π²ΠΈΡΠ°ΠΌ Π½ΡƒΠΆΠ½Ρ‹ профСссионалы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΡŽΡ‚ направлСния развития Π² долгосрочной пСрспСктивС. Π― Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ организациям, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ хотят ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π½Π° Ρ‚Π°ΠΊΡƒΡŽ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ, Π½Π°Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ ΠΊΠΎΠ³ΠΎ-Ρ‚ΠΎ отвСтствСнным Π·Π° Β«ΠΎΠ±Ρ‰ΡƒΡŽ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΡƒΒ». На микросСрвисы Π½ΡƒΠΆΠ½ΠΎ ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΡˆΠΈΡ€ΠΎΠΊΠΎΒ», β€” считаСт Π”ΠΆΠ΅ΠΉΠΌΠ΅.

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

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

«По ΠΌΠ΅Ρ€Π΅ роста ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΠΈ увСличСния ΠΊΠΎΠΌΠ°Π½Π΄ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π»ΡƒΡ‡ΡˆΠ°Ρ координация. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚Ρ‹ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ часто ΠΌΠ΅ΡˆΠ°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Ρƒ. ΠŸΠΎΠ½ΡΡ‚ΡŒ Ρ†Π΅Π»ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π° ΠΊΠΎΠ΄Π° становится слоТнСС. Π’ Ρ‚Π°ΠΊΠΈΡ… случаях ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π½Π° микросСрвисы ΠΈΠΌΠ΅Π΅Ρ‚ смысл β€” это ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ обязанности ΠΈ внСсти ΡΡΠ½ΠΎΡΡ‚ΡŒ Π² ΠΎΠ±Ρ‰ΡƒΡŽ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρƒ систСмы. КаТдая ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ свои собствСнныС Ρ†Π΅Π»ΠΈ ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² основном ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ, выдавая понятный внСшний интСрфСйс. Однако, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΈΠΌΠ΅Π» смысл, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎΒ», β€” добавляСт Π‘ΡƒΡΠ»ΡŒΡ‚Π°.

Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΏΠΎ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Ρƒ Π½Π° микросСрвисы

ΠžΡ‚Π²Π΅Ρ‡Π°Ρ Π½Π° вопрос ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ практичСскиС Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π΅ Π½Π° микросСрвисы, Π‘ΡƒΡΠ»ΡŒΡ‚Π° заявил: Β«ΠšΠ»ΡŽΡ‡ΠΎΠΌ ΠΊ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ микросСрвисов являСтся Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ сСрвис Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ максимально нСзависим».
Π’ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ вопрос: «Как Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ сСрвисы нСзависимыми?Β». Π›ΡƒΡ‡ΡˆΠΈΠΉ способ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ Π²Π·Π°ΠΈΠΌΠΎΠ·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ систСмы β€” ΠΏΠΎΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΎ Π½ΠΎΠ²Ρ‹Ρ… возмоТностях: «Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Π΅Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ, ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ² лишь ΠΎΠ΄ΠΈΠ½ сСрвис? КакиС Π²ΠΈΠ΄Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ†ΠΈΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… микросСрвисов? Они Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ часто ΠΈΠ»ΠΈ Ρ€Π΅Π΄ΠΊΠΎ? НСвозмоТно ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ Π΄ΠΈΠ·Π°ΠΉΠ½, Π½ΠΎ, ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅, с Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ ΠΈ обоснованныС Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΒ», β€” ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚ Π‘ΡƒΡΠ»ΡŒΡ‚Π°.

Π”ΠΆΠ΅ΠΉΠΌΠ΅ совСтуСт ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π½Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡ‚ΠΎΠΌ всС Π½Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π΅Π»Ρ‹Π²Π°Ρ‚ΡŒ. «ПослС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ микросСрвисов Π±ΡƒΠ΄Π΅Ρ‚ тяТСлСС. Π‘Ρ‚ΠΎΠΈΡ‚ ΡƒΠ΄Π΅Π»ΠΈΡ‚ΡŒ побольшС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π° Π½Π°Ρ‡Π°Π»ΡŒΠ½ΡƒΡŽ Ρ„Π°Π·Ρƒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Β», β€” добавляСт ΠΎΠ½.

ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ с ΠΎΠ΄Π½ΠΎΠ³ΠΎ шаблона проСктирования Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ β€” это ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹ΠΉ шаг. ΠœΡ‹ спросили, с ΠΊΠ°ΠΊΠΈΠΌΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ Π”ΠΆΠ΅ΠΉΠΌΠ΅ ΠΈ Π΅Π³ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Π»ΠΈΡΡŒ Π²ΠΎ врСмя ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ Π½Π° микросСрвисы, Π½Π° Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΠΎΡ‚Π²Π΅Ρ‚ΠΈΠ»:

«На Π΄Π΅Π»Π΅ основныС трудности связаны с людьми. Π­Ρ‚ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π½Π΅Π΄ΠΎΠΎΡ†Π΅Π½ΠΈΠ²Π°ΡŽΡ‚, Π½ΠΎ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π½Π° микросСрвисы фактичСски мСняСт способ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ². Π—Π°Π΄Π°Ρ‡Π° Π½Π΅ ΠΈΠ· Π»Π΅Π³ΠΊΠΈΡ…!Β». Он добавляСт: Β«Π― Π»ΠΈΡ‡Π½ΠΎ сталкивался с ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ. НапримСр, ΠΌΠ½Π΅ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΠ»ΠΎΡΡŒ ΠΎΠ±ΡƒΡ‡Π°Ρ‚ΡŒ ΠΈ Π΄Π°Π²Π°Ρ‚ΡŒ совСты Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ. ОсобСнно Π²Π°ΠΆΠ½ΠΎ ΠΎΠ±ΡŠΡΡΠ½ΡΡ‚ΡŒ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ Ρ‚Π΅ ΠΈΠ»ΠΈ ΠΈΠ½Ρ‹Π΅ измСнСния. Π­Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ людям ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ внСдрСния всСх Π½ΠΎΠ²ΠΎΠ²Π²Π΅Π΄Π΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠΉΡ‚ΠΈΡΡŒ ΠΈΠΌ Π½Π΅ ΠΏΠΎ Π΄ΡƒΡˆΠ΅.

ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π΅ ΠΎΡ‚ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½ΠΎΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ ΠΌΠ½ΠΎΠ³ΠΎ слоТностСй ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ΠΏΡ€ΠΈ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠΈ прилоТСния, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Ρ€Π°Π½ΡŒΡˆΠ΅ Π²Ρ‹ΠΏΡƒΡΠΊΠ°Π»ΠΎΡΡŒ Π² Π²ΠΈΠ΄Π΅ Π΅Π΄ΠΈΠ½ΠΎΠ³ΠΎ модуля. Оно Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° для обСспСчСния ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ совмСстимости ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ рисков. Π‘ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒΡΡ с этой Π·Π°Π΄Π°Ρ‡Π΅ΠΉ ΠΏΠΎΡ€ΠΎΠΉ ΠΎΡ‡Π΅Π½ΡŒ Π½Π΅Π»Π΅Π³ΠΊΠΎΒ».

ΠŸΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ Π²Ρ‹Π±ΠΎΡ€Π° Docker, Kubernetes ΠΈ Python Π² качСствС тСхнологичСского стСка

ΠœΡ‹ спросили Π‘ΡƒΡΠ»ΡŒΡ‚Ρƒ, ΠΊΠ°ΠΊΠΈΠ΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΎΠ½ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Π΅Ρ‚ для внСдрСния микросСрвисов. ΠšΠ°ΡΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹Π±ΠΎΡ€Π° языка ΠΎΡ‚Π²Π΅Ρ‚ оказался прост: Β«Python для мСня β€” Π»ΡƒΡ‡ΡˆΠΈΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚. Π­Ρ‚ΠΎ ΠΌΠΎΠΉ Π»ΡŽΠ±ΠΈΠΌΡ‹ΠΉ язык программирования!.. Π­Ρ‚ΠΎΡ‚ язык Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для микросСрвисов. Π•Π³ΠΎ ΡƒΠ΄ΠΎΠ±Π½ΠΎ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈ Π»Π΅Π³ΠΊΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Python ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ ΡˆΠΈΡ€ΠΎΠΊΠΈΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΠΎΠΌ для Π²Π΅Π±-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½ΠΎΠΉ экосистСмой сторонних ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ для Π»ΡŽΠ±Ρ‹Ρ… потрСбностСй. К этим потрСбностям относится ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠΌ систСмам, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊ Π±Π°Π·Π°ΠΌ Π΄Π°Π½Π½Ρ‹Ρ…, внСшним API ΠΈ Ρ‚.Π΄.Β».

Docker часто рСкламируСтся ΠΊΠ°ΠΊ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· самых Π²Π°ΠΆΠ½Ρ‹Ρ… инструмСнтов для микросСрвисов. Π‘ΡƒΡΠ»ΡŒΡ‚Π° объяснил, ΠΏΠΎΡ‡Π΅ΠΌΡƒ:

Β«Docker позволяСт ΠΈΠ½ΠΊΠ°ΠΏΡΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΡƒΠ΄ΠΎΠ±Π½Ρ‹Ρ… стандартизированных ΠΏΠ°ΠΊΠ΅Ρ‚Π°Ρ…. Π­Ρ‚ΠΎ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΡΡ‚ΡŒ ΠΈ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ срСды. Π’Π°ΠΊΠΆΠ΅ это Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΎΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΊ производству ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π’Π΄ΠΎΠ±Π°Π²ΠΎΠΊ ΠΊΠΎ всСму, ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ΡΡ врСмя использования оборудования. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ нСсколько ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² Π² Ρ€Π°Π·Π½Ρ‹Ρ… срСдах (Π΄Π°ΠΆΠ΅ Π² Ρ€Π°Π·Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСмах) Π² ΠΎΠ΄Π½ΠΎΠΉ физичСской ΠΊΠΎΡ€ΠΎΠ±ΠΊΠ΅ ΠΈΠ»ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ машинС».

ΠŸΡ€ΠΎ Kubernetes:

Β«Kubernetes позволяСт Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ нСсколько ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² Docker, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… скоординированным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. Π­Ρ‚ΠΎ заставляСт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΌΡ‹ΡΠ»ΠΈΡ‚ΡŒ кластСризованно, помня ΠΎ производствСнной срСдС. Π’Π°ΠΊΠΆΠ΅ это позволяСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ кластСр с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠ΄Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½ΠΎΠ²Ρ‹Π΅ развСртывания ΠΈΠ»ΠΈ измСнСния ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΠ»ΠΈΡΡŒ Π² Ρ„Π°ΠΉΠ»Π°Ρ…. ВсС это Π΄Π΅Π»Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ GitOps (ΠΎ Π½ΠΈΡ… я писал Π² своСй ΠΊΠ½ΠΈΠ³Π΅), ΠΏΡ€ΠΈ этом сохраняя ΠΏΠΎΠ»Π½ΡƒΡŽ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ Π² систСмС управлСния вСрсиями. КаТдоС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ вносится ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ ΠΈ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΠΌΡ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΎ прСдставляСт ΠΈΠ· сСбя рСгулярноС git-слияниС. Благодаря этому ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‡Π΅Π½ΡŒ Π»Π΅Π³ΠΊΠΎ Π²ΠΎΡΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ инфраструктуру».

Β«ΠŸΡ€ΠΈΠ΄Π΅Ρ‚ΡΡ ΠΏΠΎΡ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ врСмя, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ Docker ΠΈ Kubernetes, Π½ΠΎ это Ρ‚ΠΎΠ³ΠΎ стоит. Оба инструмСнта ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠΎΡ‰Π½Ρ‹Π΅. К Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅, ΠΎΠ½ΠΈ ΠΏΠΎΠΎΡ‰Ρ€ΡΡŽΡ‚ вас Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΏΡ€ΠΈ производствС», β€” считаСт Π‘ΡƒΡΠ»ΡŒΡ‚Π°.

ΠœΠ½ΠΎΠ³ΠΎΡΠ·Ρ‹Ρ‡Π½Ρ‹Π΅ микросСрвисы

ΠŸΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ микросСрвисов ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹Π΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π·Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· Π½ΠΈΡ… Π² ΠΈΠ΄Π΅Π°Π»Π΅ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ нСзависимая ΠΊΠΎΠΌΠ°Π½Π΄Π°. Π‘ΡƒΡΠ»ΡŒΡ‚Π° подСлился своим ΠΌΠ½Π΅Π½ΠΈΠ΅ΠΌ ΠΎ многоязычных микросСрвисах: Β«ΠœΠ½ΠΎΠ³ΠΎΡΠ·Ρ‹Ρ‡Π½Ρ‹Π΅ микросСрвисы β€” это Π·Π΄ΠΎΡ€ΠΎΠ²ΠΎ! Π­Ρ‚ΠΎ ΠΎΠ΄Π½ΠΎ ΠΈΠ· основных прСимущСств Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹. Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ многоязычного микросСрвиса β€” пСрСнос ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π°, написанного Π½Π° ΠΎΠ΄Π½ΠΎΠΌ языкС, Π½Π° Π½ΠΎΠ²Ρ‹ΠΉ. ΠœΠΈΠΊΡ€ΠΎΡΠ΅Ρ€Π²ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ собой любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдоставляСт Ρ‚ΠΎΡ‚ ΠΆΠ΅ внСшний интСрфСйс. ΠŸΡ€ΠΈ этом Π΅Π³ΠΎ ΠΊΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ ΠΈΠ½Ρ‹ΠΌ. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, я ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠ» со старых ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ PHP, замСняя ΠΈΡ… Π°Π½Π°Π»ΠΎΠ³Π°ΠΌΠΈ, написанными Π½Π° PythonΒ». Π”ΠΆΠ΅ΠΉΠΌΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΠ»: Β«Π Π°Π±ΠΎΡ‚Π° с двумя ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°ΠΌΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π»ΡƒΡ‡ΡˆΠ΅ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π² Π½ΠΈΡ… ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Π² ΠΊΠ°ΠΊΠΈΡ… случаях ΠΈΡ… Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΒ».

Π₯отя Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ многоязычныС микросСрвисы β€” это большоС прСимущСство Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹, ΠΎΠ½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ ΠΈΠ·Π΄Π΅Ρ€ΠΆΠΊΠΈ. Π‘ΡƒΡΠ»ΡŒΡ‚Π° совСтуСт: «Надо Π·Π½Π°Ρ‚ΡŒ ΠΌΠ΅Ρ€Ρƒ. НСт смысла ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ инструмСнт ΠΈ Π»ΠΈΡˆΠ°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ возмоТности Π΄Π΅Π»ΠΈΡ‚ΡŒΡΡ знаниями Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ. ΠšΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ Ρ†ΠΈΡ„Ρ€Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π·Π°Π²ΠΈΡΠ΅Ρ‚ΡŒ ΠΎΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, Π½ΠΎ, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π½Π΅Ρ‚ смысла ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ большС Π΄Π²ΡƒΡ… ΠΈΠ»ΠΈ Ρ‚Ρ€Π΅Ρ… Ρ€Π°Π·Π½Ρ‹Ρ… языков Π±Π΅Π· ΡΠ΅Ρ€ΡŒΠ΅Π·Π½ΠΎΠΉ Π½Π° Ρ‚ΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹. НС Π½Π°Π΄ΠΎ Ρ€Π°Π·Π΄ΡƒΠ²Π°Ρ‚ΡŒ стСк Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ β€” Ρ‚ΠΎΠ³Π΄Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ смогут Π΄Π΅Π»ΠΈΡ‚ΡŒΡΡ знаниями ΠΈ Π½Π°Ρ‡Π½ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ΡΡ инструмСнты Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ эффСктивно».

Об Π°Π²Ρ‚ΠΎΡ€Π΅

Π”ΠΆΠ΅ΠΉΠΌΠ΅ Π‘ΡƒΡΠ»ΡŒΡ‚Π° (Jaime Buelta) β€” ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ программист ΠΈ Python-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π° свою ΠΌΠ½ΠΎΠ³ΠΎΠ»Π΅Ρ‚Π½ΡŽΡŽ ΠΊΠ°Ρ€ΡŒΠ΅Ρ€Ρƒ познакомился со мноТСством Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ. Он Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π» ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС для Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… областСй ΠΈ отраслСй, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π°ΡΡ€ΠΎΠΊΠΎΡΠΌΠΈΡ‡Π΅ΡΠΊΡƒΡŽ, ΡΠ΅Ρ‚Π΅Π²ΡƒΡŽ ΠΈ ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½Ρ‹Π΅ систСмы SCADA, ΠΎΠ½Π»Π°ΠΉΠ½-сСрвисы для Π²ΠΈΠ΄Π΅ΠΎΠΈΠ³Ρ€ ΠΈ финансовыС сСрвисы.

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

ΠœΠΈΠΊΡ€ΠΎΡΠ΅Ρ€Π²ΠΈΡΡ‹ (Microservices) / Π₯Π°Π±Ρ€

ΠžΡ‚ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊΠ°: Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ скорСС всСго ΡƒΠΆΠ΅ Ρ‡ΠΈΡ‚Π°Π»ΠΈ этот титаничСский Ρ‚Ρ€ΡƒΠ΄ ΠΎΡ‚ ΠœΠ°Ρ€Ρ‚ΠΈΠ½Π° Π€Π°ΡƒΠ»Π΅Ρ€Π° ΠΈ Π΅Π³ΠΎ ΠΊΠΎΠ»Π»Π΅Π³ΠΈ ДТСймса Π›ΡŒΡŽΠΈΡΠ°, Π½ΠΎ я всС ΠΆΠ΅ Ρ€Π΅ΡˆΠΈΠ» ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ этой ΡΡ‚Π°Ρ‚ΡŒΠΈ. Π’Ρ€Π΅Π½Π΄ микросСрвисов Π½Π°Π±ΠΈΡ€Π°Π΅Ρ‚ ΠΎΠ±ΠΎΡ€ΠΎΡ‚Ρ‹ Π² ΠΌΠΈΡ€Π΅ enterprise Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, ΠΈ эта ΡΡ‚Π°Ρ‚ΡŒΡ являСтся Ρ†Π΅Π½Π½Π΅ΠΉΡˆΠΈΠΌ источником Π·Π½Π°Π½ΠΈΠΉ, ΠΏΠΎ сути Π²Ρ‹ΠΆΠΈΠΌΠΊΠΎΠΉ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΎΠΏΡ‹Ρ‚Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π½ΠΈΠΌΠΈ.

Π’Π΅Ρ€ΠΌΠΈΠ½ Β«Microservice ArchitectureΒ» ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» распространСниС Π² послСдниС нСсколько Π»Π΅Ρ‚ ΠΊΠ°ΠΊ описаниС способа Π΄ΠΈΠ·Π°ΠΉΠ½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² Π²ΠΈΠ΄Π΅ Π½Π°Π±ΠΎΡ€Π° нСзависимо Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… сСрвисов. Π’ Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ Π½Π΅Ρ‚ Ρ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ описания этого Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½ΠΎΠ³ΠΎ стиля, сущСствуСт Π½Π΅ΠΊΠΈΠΉ ΠΎΠ±Ρ‰ΠΈΠΉ Π½Π°Π±ΠΎΡ€ характСристик: организация сСрвисов Π²ΠΎΠΊΡ€ΡƒΠ³ бизнСс-потрСбностСй, автоматичСскоС Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅, пСрСнос Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΎΡ‚ ΡˆΠΈΠ½Ρ‹ сообщСний ΠΊ ΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΈΠΊΠ°ΠΌ (endpoints) ΠΈ Π΄Π΅Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ языками ΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ.

Β«ΠœΠΈΠΊΡ€ΠΎΡΠ΅Ρ€Π²ΠΈΡΡ‹Β» β€” Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ Π½ΠΎΠ²Ρ‹ΠΉ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ Π½Π° ΡˆΡƒΠΌΠ½Ρ‹Ρ… ΡƒΠ»ΠΈΡ†Π°Ρ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ПО. И хотя ΠΌΡ‹ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ довольно настороТСнно относимся ΠΊΠΎ всСм ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΌ Π½ΠΎΠ²ΠΈΠ½ΠΊΠ°ΠΌ, ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ этот Ρ‚Π΅Ρ€ΠΌΠΈΠ½ описываСт ΡΡ‚ΠΈΠ»ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ПО, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΠΌ всС Π±ΠΎΠ»Π΅Π΅ ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ. Π—Π° послСдниС нСсколько Π»Π΅Ρ‚ ΠΌΡ‹ Π²ΠΈΠ΄Π΅Π»ΠΈ мноТСство ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… этот ΡΡ‚ΠΈΠ»ΡŒ, ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Π΄ΠΎ сих ΠΏΠΎΡ€ Π±Ρ‹Π»ΠΈ вСсьма ΠΏΠΎΠ·ΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ. ΠΠ°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ, Ρ‡Ρ‚ΠΎ для Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° Π½Π°ΡˆΠΈΡ… ΠΊΠΎΠ»Π»Π΅Π³ этот ΡΡ‚ΠΈΠ»ΡŒ становится основным стилСм Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ПО. К соТалСнию, сущСствуСт Π½Π΅ Ρ‚Π°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, которая описываСт, Ρ‡Π΅ΠΌ ΠΆΠ΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ микросСрвисы ΠΈ ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΈΡ….

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

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°Ρ‡Π°Ρ‚ΡŒ рассказ ΠΎ стилС микросСрвисов, Π»ΡƒΡ‡ΡˆΠ΅ всСго ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ с ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚ΠΎΠΌ (monolithic style): ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, построСнном ΠΊΠ°ΠΊ Π΅Π΄ΠΈΠ½ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅. Enterprise прилоТСния часто Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Ρ‚Ρ€ΠΈ основныС части: ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс (состоящий ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ ΠΈΠ· HTML страниц ΠΈ javascript-Π°), Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… (ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ рСляционной, со мноТСством Ρ‚Π°Π±Π»ΠΈΡ†) ΠΈ сСрвСр. БСрвСрная Ρ‡Π°ΡΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ HTTP запросы, выполняСт Π΄ΠΎΠΌΠ΅Π½Π½ΡƒΡŽ Π»ΠΎΠ³ΠΈΠΊΡƒ, Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ ΠΈ обновляСт Π΄Π°Π½Π½Ρ‹Π΅ Π² Π‘Π”, заполняСт HTML страницы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°Ρ‚Π΅ΠΌ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Ρƒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°. Π›ΡŽΠ±ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² систСмС ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ пСрСсборкС ΠΈ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΡŽ Π½ΠΎΠ²ΠΎΠΉ вСрсии сСрвСрной части прилоТСния.

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

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

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

ΠœΡ‹ Π½Π΅ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΡΡ‚ΠΈΠ»ΡŒ микросСрвисов это инновация. Π•Π³ΠΎ ΠΊΠΎΡ€Π½ΠΈ уходят Π΄Π°Π»Π΅ΠΊΠΎ Π² ΠΏΡ€ΠΎΡˆΠ»ΠΎΠ΅, ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ ΠΊ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ°ΠΌ проСктирования, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ Π² Unix. Но ΠΌΡ‹ Ρ‚Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ считаСм, Ρ‡Ρ‚ΠΎ нСдостаточно людСй ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ Π²ΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ этот ΡΡ‚ΠΈΠ»ΡŒ ΠΈ Ρ‡Ρ‚ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ прилоТСния ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ прСимущСства Ссли Π½Π°Ρ‡Π½ΡƒΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ этот ΡΡ‚ΠΈΠ»ΡŒ.

Бвойства Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ микросСрвисов

ΠœΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ сущСствуСт Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ стиля микросСрвисов, Π½ΠΎ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ считаСм ΠΎΠ±Ρ‰ΠΈΠΌΠΈ характСристиками ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… этот ΡΡ‚ΠΈΠ»ΡŒ. НС всСгда ΠΎΠ½ΠΈ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ всС сразу, Π½ΠΎ, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ этих характСристик. ΠœΡ‹ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ Π² Π½Π°ΡˆΠΈΡ… собствСнных Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ… ΠΈ Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ… извСстных Π½Π°ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄.

Π Π°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ Ρ‡Π΅Ρ€Π΅Π· сСрвисы

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

Говоря ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°Ρ…, ΠΌΡ‹ сталкиваСмся с трудностями опрСдСлСния Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚. НашС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠΎΠ³ΠΎ: ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ β€” это Π΅Π΄ΠΈΠ½ΠΈΡ†Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, которая ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ нСзависимо Π·Π°ΠΌΠ΅Π½Π΅Π½Π° ΠΈΠ»ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π°.

АрхитСктура микросСрвисов ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Π½ΠΎ ΠΈΡ… основной способ разбиСния прилоТСния β€” ΠΏΡƒΡ‚Π΅ΠΌ дСлСния Π΅Π³ΠΎ Π½Π° сСрвисы. ΠœΡ‹ опрСдСляСм Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Сю Π² Ρ‚ΠΎΠΌ ΠΆΠ΅ процСссС, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ сСрвисы β€” это ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, выполняСмыС Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ процСссС ΠΈ ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ собой Ρ‡Π΅Ρ€Π΅Π· Π²Π΅Π±-запросы ΠΈΠ»ΠΈ remote procedure call (RPC).

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

Π”Ρ€ΡƒΠ³ΠΎΠ΅ слСдствиС использования сСрвисов ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ β€” Π±ΠΎΠ»Π΅Π΅ явный интСрфСйс ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ языков программирования Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π³ΠΎ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° для объявлСния Published Interface. Часто Ρ‚ΠΎΠ»ΡŒΠΊΠΎ докумСнтация ΠΈ дисциплина ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠ΅ инкапсуляции ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ². БСрвисы ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ этого Ρ‡Π΅Ρ€Π΅Π· использованиС явного ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Ρ… Π²Ρ‹Π·ΠΎΠ²ΠΎΠ².

Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, использованиС сСрвисов ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΈΠΌΠ΅Π΅Ρ‚ свои нСдостатки. Π£Π΄Π°Π»Π΅Π½Π½Ρ‹Π΅ Π²Ρ‹Π·ΠΎΠ²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅, Ρ‡Π΅ΠΌ Π²Ρ‹Π·ΠΎΠ²Ρ‹ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… процСсса, ΠΈ поэтому API Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΌΠ΅Π½Π΅Π΅ Π΄Π΅Ρ‚Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ (coarser-grained), Ρ‡Ρ‚ΠΎ часто ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ нСудобству Π² использовании. Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π½Π°Π±ΠΎΡ€ отвСтствСнностСй ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ, ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это слоТнСС ΠΈΠ·-Π·Π° Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΡΠ΅ΠΊΠ°Ρ‚ΡŒ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ процСссов.

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

ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡ Π²ΠΎΠΊΡ€ΡƒΠ³ потрСбностСй бизнСса

Когда большоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ разбиваСтся Π½Π° части, часто ΠΌΠ΅Π½Π΅Π΄ΠΆΠΌΠ΅Π½Ρ‚ фокусируСтся Π½Π° тСхнологиях, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΡŽ UI ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, сСрвСрной ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈ Π‘Π” ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. Когда ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Ρ€Π°Π·Π±ΠΈΡ‚Ρ‹ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π΄Π°ΠΆΠ΅ Π½Π΅Π±ΠΎΠ»ΡŒΡˆΡ‹Π΅ измСнСния ΠΎΡ‚Π½ΠΈΠΌΠ°ΡŽΡ‚ ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈΠ·-Π·Π° нСобходимости кросс-ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠ³ΠΎ взаимодСйствия. Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ Π»ΡŽΠ±ΡƒΡŽ Π»ΠΎΠ³ΠΈΠΊΡƒ Π½Π° Ρ‚Π΅Ρ… слоях, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΈΠΌΠ΅ΡŽΡ‚ доступ. Π—Π°ΠΊΠΎΠ½ КонвСя (Conway’s Law) Π² дСйствии.

Β«Π›ΡŽΠ±Π°Ρ организация, которая ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΊΠ°ΠΊΡƒΡŽ-Ρ‚ΠΎ систСму (Π² ΡˆΠΈΡ€ΠΎΠΊΠΎΠΌ смыслС) ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ Π΄ΠΈΠ·Π°ΠΉΠ½, Ρ‡ΡŒΡ структура ΠΊΠΎΠΏΠΈΡ€ΡƒΠ΅Ρ‚ структуру ΠΊΠΎΠΌΠ°Π½Π΄ Π² этой ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈΒ»

β€” Melvyn Conway, 1967


Π—Π°ΠΊΠΎΠ½ КонвСя (Conway’s Law) Π² дСйствии

ΠœΠΈΠΊΡ€ΠΎΡΠ΅Ρ€Π²ΠΈΡΠ½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ Ρ€Π°Π·Π±ΠΈΠ΅Π½ΠΈΡŽ ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚ Ρ€Π°Π°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ Π½Π° сСрвисы Π² соотвСтствии с потрСбностями бизнСса. Π’Π°ΠΊΠΈΠ΅ сСрвисы Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² сСбя ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… для этой бизнСс-потрСбности, Π² Ρ‚ΠΎΠΌ числС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс, Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ†Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π»ΡŽΠ±Ρ‹Π΅ внСшниС взаимодСйствия. Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ кросс-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ… ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… Π½Π°Π²Ρ‹ΠΊΠΎΠ²: user-experience, Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ project management.


БСрвисныС Π³Ρ€Π°Π½ΠΈΡ†Ρ‹, ΠΏΠΎΠ΄ΠΊΡ€Π΅ΠΏΠ»Π΅Π½Π½Ρ‹Π΅ Π³Ρ€Π°Π½ΠΈΡ†Π°ΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄

Одна ΠΈΠ· ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ, ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π² этом стилС β€” www.comparethemarket.com. ΠšΡ€ΠΎΡΡ-Ρ„ΡƒΠ½Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‚ Π·Π° построСниС ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° ΠΈ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ Ρ€Π°Π·Π±ΠΈΡ‚ Π½Π° нСсколько ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… сСрвисов, ΠΎΠ±Ρ‰Π°ΡŽΡ‰ΠΈΡ…ΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ собой Ρ‡Π΅Ρ€Π΅Π· ΡˆΠΈΠ½Ρƒ сообщСний.

ΠšΡ€ΡƒΠΏΠ½Ρ‹Π΅ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½Ρ‹Π΅ прилоТСния Ρ‚ΠΎΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π±ΠΈΡ‚Ρ‹ Π½Π° ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π²ΠΎΠΊΡ€ΡƒΠ³ бизнСс потрСбностСй, хотя ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ этого Π½Π΅ происходит. БСзусловно, ΠΌΡ‹ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ большим ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½Ρ‹Π΅ прилоТСния ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. Основная ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° здСсь Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΈΠ΅ прилоТСния ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‚Π΅Π½Π΄Π΅Π½Ρ†ΠΈΡŽ ΠΊ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Π²ΠΎΠΊΡ€ΡƒΠ³ слишком большого количСства контСкстов. Если ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚ ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ мноТСство контСкстов, ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ Ρ‡Π»Π΅Π½Π°ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄ становится слишком слоТно Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π½ΠΈΠΌΠΈ ΠΈΠ·-Π·Π° ΠΈΡ… большого Ρ€Π°Π·ΠΌΠ΅Ρ€Π°. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, соблюдСниС ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹Ρ… Π³Ρ€Π°Π½ΠΈΡ† Π² ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½ΠΎΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ сущСствСнной дисциплины. Π―Π²Π½ΠΎ ΠΎΡ‡Π΅Ρ€Ρ‡Π΅Π½Π½Ρ‹Π΅ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ микросСрвисов ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ этих Π³Ρ€Π°Π½ΠΈΡ†.

Насколько большими Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ микросСрвисы?

Π₯отя Ρ‚Π΅Ρ€ΠΌΠΈΠ½ Β«ΠœΠΈΠΊΡ€ΠΎΡΠ΅Ρ€Π²ΠΈΡΒ» стал популярным Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ для этого Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½ΠΎΠ³ΠΎ стиля, само имя ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Ρ‡Ρ€Π΅Π·ΠΌΠ΅Ρ€Π½ΠΎΠΌΡƒ фокусу Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ€Π΅ сСрвисов ΠΈ спорам ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ приставка Β«ΠΌΠΈΠΊΡ€ΠΎΒ». Π’ Π½Π°ΡˆΠΈΡ… Ρ€Π°Π·Π³ΠΎΠ²ΠΎΡ€Π°Ρ… с Ρ‚Π΅ΠΌΠΈ, ΠΊΡ‚ΠΎ занимался Ρ€Π°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ΠΌ ПО Π½Π° микросСрвисы, ΠΌΡ‹ Π²ΠΈΠ΄Π΅Π»ΠΈ Ρ€Π°Π·Π½Ρ‹Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹. Наибольший Ρ€Π°Π·ΠΌΠ΅Ρ€ Π±Ρ‹Π» Ρƒ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ, ΡΠ»Π΅Π΄ΠΎΠ²Π°Π²ΡˆΠΈΡ… ΠΏΡ€Π°Π²ΠΈΠ»Ρƒ «Команда Π΄Π²ΡƒΡ… ΠΏΠΈΡ†Ρ†Β» (ΠΊΠΎΠΌΠ°Π½Π΄Π°, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΊΠΎΡ€ΠΌΠΈΡ‚ΡŒ двумя ΠΏΠΈΡ†Ρ†Π°ΠΌΠΈ), Ρ‚.Π΅. Π½Π΅ Π±ΠΎΠ»Π΅Π΅ 12 Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ (ΠΏΡ€ΠΈΠΌ. ΠΏΠ΅Ρ€Π΅Π².: слСдуя этому ΠΏΡ€Π°Π²ΠΈΠ»Ρƒ, я Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½). Π’ Π΄Ρ€ΡƒΠ³ΠΈΡ… компаниях ΠΌΡ‹ Π²ΠΈΠ΄Π΅Π»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΡˆΠ΅ΡΡ‚Π΅Ρ€ΠΎ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π»ΠΈ ΡˆΠ΅ΡΡ‚ΡŒ сСрвисов.

Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ вопросу ΠΎ Ρ‚ΠΎΠΌ, Π΅ΡΡ‚ΡŒ Π»ΠΈ сущСствСнная Ρ€Π°Π·Π½ΠΈΡ†Π° Π² Ρ‚ΠΎΠΌ, сколько Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ сСрвисС. На Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΌΡ‹ считаСм, Ρ‡Ρ‚ΠΎ ΠΎΠ±Π° этих ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° ΠΊ ΠΏΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΡŽ ΠΊΠΎΠΌΠ°Π½Π΄ (1 сСрвис Π½Π° 12 Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ ΠΈ 1 сСрвис Π½Π° 1 Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ°) подходят ΠΏΠΎΠ΄ описаниС микросСрвисной Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹, Π½ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΌΡ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ своС ΠΌΠ½Π΅Π½ΠΈΠ΅ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ. (ΠΏΡ€ΠΈΠΌ. ΠΏΠ΅Ρ€Π΅Π².: со Π²Ρ€Π΅ΠΌΠ΅Π½ ΡΡ‚Π°Ρ‚ΡŒΠΈ появилось мноТСство Π΄Ρ€ΡƒΠ³ΠΈΡ… статСй, Ρ€Π°Π·Π²ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… эту Ρ‚Π΅ΠΌΡƒ; Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ популярным сСйчас считаСтся ΠΌΠ½Π΅Π½ΠΈΠ΅ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ сСрвис Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ большим, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ ΠΌΠΎΠ³ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Β«ΡƒΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒΡΡ Π² Π³ΠΎΠ»ΠΎΠ²Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°Β», нСзависимо ΠΎΡ‚ количСства строк ΠΊΠΎΠ΄Π°).

ΠŸΡ€ΠΎΠ΄ΡƒΠΊΡ‚Ρ‹, Π° Π½Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹

Π‘ΠΎΠ»ΡŒΡˆΠΈΡΡ‚Π²ΠΎ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ ΠΏΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ПО, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π½ΡƒΡŽ модСль, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ†Π΅Π»ΡŒΡŽ являСтся Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π΅ΠΊΠΎΠΉ части Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, которая послС этого считаСтся Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎΠΉ. ПослС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ эта Ρ‡Π°ΡΡ‚ΡŒ пСрСдаСтся ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΈ проСктная ΠΊΠΎΠΌΠ°Π½Π΄Π° распускаСтся.

Π‘Ρ‚ΠΎΡ€ΠΎΠ½Π½ΠΈΠΊΠΈ микросСрвисов сторонятся этой ΠΌΠΎΠ΄Π΅Π»ΠΈ, утвСрТдая, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π²Π»Π°Π΄Π΅Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠΌ Π½Π° протяТСнии всСго срока Π΅Π³ΠΎ ΠΆΠΈΠ·Π½ΠΈ. ΠšΠΎΡ€Π½ΠΈ этого ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° уходят ΠΊ Амазону, Ρƒ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Π΅ΡΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ «Π²Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ, Π²Π°ΠΌ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ», ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±Π΅Ρ€Π΅Ρ‚ ΠΏΠΎΠ»Π½ΡƒΡŽ ΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π΅Π½Π½ΠΎΡΡ‚ΡŒ Π·Π° ПО Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ½Π΅. Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ рСгулярно Π½Π°Π±Π»ΡŽΠ΄Π°ΡŽΡ‚ Π·Π° Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΈΡ… ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ Π²Π΅Π΄Π΅Ρ‚ сСбя Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ½Π΅, ΠΈ большС ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΈΡ€ΡƒΡŽΡ‚ с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ, Ρ‚.ΠΊ. ΠΈΠΌ приходится Π±Ρ€Π°Ρ‚ΡŒ Π½Π° сСбя ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ Ρ‡Π°ΡΡ‚ΡŒ обязанностСй ΠΏΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅.

ΠœΡ‹ΡˆΠ»Π΅Π½ΠΈΠ΅ Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Ρ… ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° устанавливаСт связь с потрСбностями бизнСса. ΠŸΡ€ΠΎΠ΄ΡƒΠΊΡ‚ β€” это Π½Π΅ просто Π½Π°Π±ΠΎΡ€ Ρ„ΠΈΡ‡, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ. Π­Ρ‚ΠΎ постоянныС ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ, Ρ†Π΅Π»ΡŒ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… β€” ΠΏΠΎΠΌΠΎΡ‡ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ ΠΈΡ… бизнСс-возмоТности.

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, этого ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ ΠΈ Π² случаС с ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½Ρ‹ΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, Π½ΠΎ высокая Π³Ρ€Π°Π½ΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ сСрвисов ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ установку ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ сСрвиса ΠΈ Π΅Π³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ.

Π£ΠΌΠ½Ρ‹Π΅ ΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΈΠΊΠΈ ΠΈ Π³Π»ΡƒΠΏΡ‹Π΅ ΠΊΠ°Π½Π°Π»Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… (Smart endpoints and dumb pipes)

ΠŸΡ€ΠΈ выстраивании ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ процСссами ΠΌΡ‹ ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π· Π±Ρ‹Π»ΠΈ свидСтСлями Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π² ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΠΌΠ΅Ρ‰Π°Π»Π°ΡΡŒ сущСствСнная Ρ‡Π°ΡΡ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΠΈ. Π₯ΠΎΡ€ΠΎΡˆΠΈΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ здСсь являСтся Enterprise Service Bus (ESB). ESB-ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Ρ‹ часто Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² сСбя ΠΈΠ·ΠΎΡ‰Ρ€Π΅Π½Π½Ρ‹Π΅ возмоТности ΠΏΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅, оркСстровкС ΠΈ трансформации сообщСний, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡŽ бизнСс-ΠΏΡ€Π°Π²ΠΈΠ».

ΠšΠΎΠΌΡŒΡŽΠ½ΠΈΡ‚ΠΈ микросСрвисов ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Π΅Ρ‚ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄: ΡƒΠΌΠ½Ρ‹Π΅ ΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΈΠΊΠΈ сообщСний ΠΈ Π³Π»ΡƒΠΏΡ‹Π΅ ΠΊΠ°Π½Π°Π»Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, построСнныС с использованиСм микросСрвисной Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹, стрСмятся Π±Ρ‹Ρ‚ΡŒ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π΅Π·Π°Π²ΠΈΠΌΡ‹ΠΌΠΈ (decoupled) ΠΈ сфокусировнными (cohesive), насколько Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ: ΠΎΠ½ΠΈ содСрТат ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ Π΄ΠΎΠΌΠ΅Π½Π½ΡƒΡŽ Π»ΠΎΠ³ΠΈΠΊΡƒ ΠΈ Π²Ρ‹ΡΡ‚ΡƒΠΏΠ°ΡŽΡ‚ большС Π² качСствС Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ² Π² классичСском Unix-ΠΎΠ²ΠΎΠΌ смыслС β€” ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ запросы, ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ Π»ΠΎΠ³ΠΈΠΊΡƒ ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ ΠΎΡ‚Π²Π΅Ρ‚. ВмСсто слоТных ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ², Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ WS-* ΠΈΠ»ΠΈ BPEL, ΠΎΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ простыС REST-ΠΎΠ²Ρ‹Π΅ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρ‹.

Π”Π²Π° Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° β€” это HTTP запросы Ρ‡Π΅Ρ€Π΅Π· API рСсурса ΠΈ лСгковСсный мСссСдТинг. Π›ΡƒΡ‡ΡˆΠ΅Π΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π²ΠΎΠΌΡƒ Π΄Π°Π» Ian Robinson: Β«Be of the web, not behind the webΒ».

ΠšΠΎΠΌΠ°Π½Π΄Ρ‹, ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΡƒΡŽΡ‰ΠΈΠ΅ ΠΌΠΈΠΊΡ€ΠΎΡΠ΅Ρ€Π²ΠΈΡΠ½ΡƒΡŽ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Ρ‚Π΅ ΠΆΠ΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ ΠΈ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρ‹, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… построСна всСмирная ΠΏΠ°ΡƒΡ‚ΠΈΠ½Π° (ΠΈ, ΠΏΠΎ сути, Unix). Часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ рСсурсы ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΊΠ΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ с ΠΎΡ‡Π΅Π½ΡŒ нСбольшими усилиями со стороны Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈΠ»ΠΈ IT-администраторов.

Π’Ρ‚ΠΎΡ€ΠΎΠΉ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ инструмСнт ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΈ β€” лСгковСсная шина сообщСний. Вакая инфраструктура ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Π½Π΅ содСрТит Π΄ΠΎΠΌΠ΅Π½Π½ΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΈ β€” простыС Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ‚ΠΈΠΏΠ° RabbitMQ ΠΈΠ»ΠΈ ZeroMQ Π½Π΅ Π΄Π΅Π»Π°ΡŽΡ‚ Π½ΠΈΡ‡Π΅Π³ΠΎ ΠΊΡ€ΠΎΠΌΠ΅ прСдоставлСния асинхронной Ρ„Π°Π±Ρ€ΠΈΠΊΠΈ. Π›ΠΎΠ³ΠΈΠΊΠ° ΠΏΡ€ΠΈ этом сущСствуСт Π½Π° ΠΊΠΎΠ½Ρ†Π°Ρ… этой ΡˆΠΈΠ½Ρ‹ β€” Π² сСрвисах, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ ΠΈ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ сообщСния.

Π’ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½ΠΎΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π² ΠΎΠ΄Π½ΠΎΠΌ процСссС ΠΈ ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‚ ΠΌΠ΅ΠΆΠ΄Ρƒ собой Ρ‡Π΅Ρ€Π΅Π· Π²Ρ‹Π·ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ². Наибольшая ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² смСнС ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π° Π½Π° микросСрвисы Π»Π΅ΠΆΠΈΡ‚ Π² ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ шаблона ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΈ. НаивноС ΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Β«Π±ΠΎΠ»Ρ‚Π»ΠΈΠ²Ρ‹ΠΌΒ» коммуникациям, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π½Π΅ слишком Ρ…ΠΎΡ€ΠΎΡˆΠΎ. ВмСсто этого Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ количСство ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ модулями.

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

Одним ΠΈΠ· слСдствий Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ управлСния являСтся тСндСнция ΠΊ стандартизации ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ. ΠžΠΏΡ‹Ρ‚ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ слишком сильно ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ Π²Ρ‹Π±ΠΎΡ€ β€” Π½Π΅ всякая ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° являСтся Π³Π²ΠΎΠ·Π΄Π΅ΠΌ ΠΈ Π½Π΅ всякоС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ являСтся ΠΌΠΎΠ»ΠΎΡ‚ΠΊΠΎΠΌ. ΠœΡ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ инструмСнт для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹. И хотя ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½Ρ‹Π΅ прилоТСния Ρ‚ΠΎΠΆΠ΅ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ написаны с использованиСм Ρ€Π°Π·Π½Ρ‹Ρ… языков, это Π½Π΅ являСтся стандартной ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠΉ.

Разбивая ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚ Π½Π° сСрвисы, ΠΌΡ‹ ΠΈΠΌΠ΅Π΅ΠΌ Π²Ρ‹Π±ΠΎΡ€, ΠΊΠ°ΠΊ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· Π½ΠΈΡ…. Π₯ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Node.js для простых страничСк с ΠΎΡ‚Ρ‡Π΅Ρ‚Π°ΠΌΠΈ? ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°. C++ для real-time ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ? ΠžΡ‚Π»ΠΈΡ‡Π½ΠΎ. Π₯ΠΎΡ‚ΠΈΡ‚Π΅ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π‘Π” Π½Π° Ρ‚Ρƒ, которая Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ чтСния вашСго ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°? Π Π°Π΄ΠΈ Π±ΠΎΠ³Π°.

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ, Π½Π΅ Π·Π½Π°Ρ‡ΠΈΡ‚ Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ это Π΄Π΅Π»Π°Ρ‚ΡŒ. Но Ρ€Π°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ систСмы ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π΄Π°Π΅Ρ‚ Π²Π°ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹Π±ΠΎΡ€Π°.

ΠšΠΎΠΌΠ°Π½Π΄Ρ‹, Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ микросСрвисы, Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΡŽΡ‚ ΠΈΠ½ΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ стандартизации. ВмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π°Π±ΠΎΡ€ ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… стандартов, написанных ΠΊΠ΅ΠΌ-Ρ‚ΠΎ, ΠΎΠ½ΠΈ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΡŽΡ‚ идСю построСния ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… инструмСнтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Π΄Π΅Π²Π΅Π»ΠΎΠΏΠ΅Ρ€Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΠΎΡ…ΠΎΠΆΠΈΡ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ. Π­Ρ‚ΠΈ инструмСнты ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Π²Ρ‹Ρ‡Π»Π΅Π½Π΅Π½Ρ‹ ΠΈΠ· ΠΊΠΎΠ΄Π° ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ Ρ€Π°ΡΡˆΠ°Ρ€Π΅Π½Ρ‹ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ, ΠΈΠ½ΠΎΠ³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΡ€ΠΈ этом модСль Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ ΠΎΠΏΠ΅Π½-сорса. Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° git ΠΈ github стали Π΄Π΅-Ρ„Π°ΠΊΡ‚ΠΎ стандартной систСмой контроля вСрсий, ΠΎΠΏΠ΅Π½-сорсныС ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ становятся всС Π±ΠΎΠ»Π΅Π΅ ΠΈ Π±ΠΎΠ»Π΅Π΅ популярными Π²ΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ.

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

ΠšΠΎΠΌΡŒΡŽΠ½ΠΈΡ‚ΠΈ микросСрвисов Ρ†Π΅Π½ΠΈΡ‚ сСрвисныС ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Ρ‹, Π½ΠΎ Π½Π΅ Π»ΡŽΠ±ΠΈΡ‚ ΠΎΠ²Π΅Ρ€Ρ…Π΅Π΄Ρ‹ ΠΈ поэтому ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΏΡƒΡ‚ΠΈ управлСния этими ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Π°ΠΌΠΈ. Π’Π°ΠΊΠΈΠ΅ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ ΠΊΠ°ΠΊ Tolerant Reader ΠΈ Consumer-Driven Contracts часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² микросСрвисах, Ρ‡Ρ‚ΠΎ позволяСт ΠΈΠΌ ΡΠ²ΠΎΠ»ΡŽΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ нСзависимо. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Consumer-Driven ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚ΠΎΠ² ΠΊΠ°ΠΊ Ρ‡Π°ΡΡ‚ΡŒ Π±ΠΈΠ»Π΄Π° ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ ΡƒΠ²Π΅Ρ€Π΅Π½Π½ΠΎΡΡ‚ΡŒ Π² ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ сСрвисов. ΠœΡ‹ Π·Π½Π°Π΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΈΠ· Австралии, которая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ этот ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚ΠΎΠ². Π­Ρ‚ΠΎ стало Ρ‡Π°ΡΡ‚ΡŒΡŽ ΠΈΡ… процСсса сборки: сСрвис собираСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ удовлСтворяСт трСбованиям ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Π° β€” элСгантный способ ΠΎΠ±ΠΎΠΉΡ‚ΠΈ Π΄ΠΈΠ»Π»Π΅ΠΌΡƒ YAGNI.

ΠŸΠΎΠΆΠ°Π»ΡƒΠΉ Π½Π°ΠΈΠ²Ρ‹ΡΡˆΠ°Ρ Ρ‚ΠΎΡ‡ΠΊΠ° Π² ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ Π΄Π΅Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ управлСния β€” это ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΏΠΎΠΏΡƒΠ»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Амазоном. ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‚ Π·Π° всС аспСкты ПО, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΎΠ½ΠΈ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Π΅Π³ΠΎ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ 24/7. Подобная Π΄Π΅Π²ΠΎΠ»ΡŽΡ†ΠΈΡ уровня отвСтствСнности ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Ρ‚ΠΎΡ‡Π½ΠΎ Π½Π΅ являСтся Π½ΠΎΡ€ΠΌΠΎΠΉ, Π½ΠΎ ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ всС большС ΠΈ большС ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ, ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‰ΠΈΠΉ ΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π΅Π½Π½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ². Netflix β€” Π΅Ρ‰Π΅ ΠΎΠ΄Π½Π° компания, ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΡƒΡŽΡ‰Π°Ρ это. ΠŸΡ€ΠΎΠ±ΡƒΠΆΠ΄Π΅Π½ΠΈΠ΅ Π² 3 часа Π½ΠΎΡ‡ΠΈ β€” ΠΎΡ‡Π΅Π½ΡŒ ΡΠΈΠ»ΡŒΠ½Ρ‹ΠΉ стимул ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄Π΅Π»ΡΡ‚ΡŒ большоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ качСству написанного ΠΊΠΎΠ΄Π°.

ΠœΠΈΠΊΡ€ΠΎΡΠ΅Ρ€Π²ΠΈΡΡ‹ ΠΈ SOA

Когда ΠΌΡ‹ Ρ€Π°Π·Π³ΠΎΠ²Π°Ρ€ΠΈΠ²Π°Π΅ΠΌ ΠΎ микросСрвисах, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ вопрос ΠΎ Ρ‚ΠΎΠΌ, Π½Π΅ являСтся Π»ΠΈ это ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌ Service Oriented Architecture (SOA), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ Π²ΠΈΠ΄Π΅Π»ΠΈ Π΄Π΅ΡΡΡ‚ΡŒ Π»Π΅Ρ‚ Π½Π°Π·Π°Π΄. Π’ этом вопросС Π΅ΡΡ‚ΡŒ Π·Π΄Ρ€Π°Π²ΠΎΠ΅ Π·Π΅Ρ€Π½ΠΎ, Ρ‚.ΠΊ. ΡΡ‚ΠΈΠ»ΡŒ микросСрвисов ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ³Π°ΡŽΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ сторонники SOA. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, Ρ‚Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ SOA ΠΈΠΌΠ΅Π΅Ρ‚ сликом ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·Π½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈ, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ люди Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ Β«SOAΒ» сущСствСнно отличаСтся ΠΎΡ‚ стиля, описанного здСсь, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΠ·-Π·Π° Ρ‡Ρ€Π΅Π·ΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ фокуса Π½Π° ESB, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΌ для ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

Π’ частности, ΠΌΡ‹ Π²ΠΈΠ΄Π΅Π»ΠΈ Ρ‚Π°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ Π½Π΅ΡƒΠ΄Π°Ρ‡Π½Ρ‹Ρ… Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ SOA (начиная с Ρ‚Π΅Π½Π΄Π΅Π½Ρ†ΠΈΠΈ ΠΏΡ€ΡΡ‚Π°Ρ‚ΡŒ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π·Π° ESB, заканчивая ΠΏΡ€ΠΎΠ²Π°Π»ΠΈΠ²ΡˆΠΈΠΌΠΈΡΡ ΠΈΠ½Ρ†ΠΈΠ°Ρ‚ΠΈΠ²Π°ΠΌΠΈ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ нСсколько Π»Π΅Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ стоили ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Ρ‹ Π΄ΠΎΠ»Π»Π°Ρ€ΠΎΠ² ΠΈ Π½Π΅ принСсли Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΠΏΠΎΠ»ΡŒΠ·Ρ‹), Ρ‡Ρ‚ΠΎ ΠΏΠΎΡ€ΠΎΠΉ слишком слоТно Π°Π±ΡΡ‚Ρ€Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ этих ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ.

БСзусловно, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π² микросСрвисах, ΠΏΡ€ΠΈΡˆΠ»ΠΈ ΠΈΠ· ΠΎΠΏΡ‹Ρ‚Π° ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ сСрвисов Π² ΠΊΡ€ΡƒΠΏΠ½Ρ‹Ρ… организациях. Π¨Π°Π±Π»ΠΎΠ½ Tolerant Reader β€” ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ². Π”Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ β€” использованиС простых ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ² β€” Π²ΠΎΠ·Π½ΠΈΠΊ ΠΊΠ°ΠΊ рСакция Π½Π° Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ стандарты, ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… просто Π·Π°Ρ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ Π΄ΡƒΡ….

Π­Ρ‚ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ SOA ΠΏΡ€ΠΈΠ²Π΅Π»ΠΈ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ сторонники микросСрвисов ΠΎΡ‚ΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΎΡ‚ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π° Β«SOAΒ», хотя Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΡ€ΠΈ этом ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ микросСрвисы ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Ρ„ΠΎΡ€ΠΌ SOA, ΠΈΠ»ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ SOA. Π’ любом случаС, Ρ‚ΠΎΡ‚ Ρ„Π°ΠΊΡ‚, Ρ‡Ρ‚ΠΎ SOA ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π°Π·Π½Ρ‹Π΅ значСния, ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ для обозначСния этого Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½ΠΎΠ³ΠΎ стиля.

ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ языков, мноТСство возмоТностСй

Рост ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ JVM β€” ΠΎΠ΄ΠΈΠ½ ΠΈΠ· послСдних ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² смСшивания языков Π² Ρ€Π°ΠΌΠΊΠ°Ρ… Π΅Π΄ΠΈΠ½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΊ Π±ΠΎΠ»Π΅Π΅ высокоуровнСвым языкам для получСния прСимущСств, связанных с использованиСм высокоуровнСвых абстракций, Π±Ρ‹Π» распространСнной ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠΉ Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ дСсятилСтий. Π’ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Β«ΠΊ ΠΆΠ΅Π»Π΅Π·ΡƒΒ» для написания Π²Ρ‹ΡΠΎΠΊΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.

Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, мноТСство ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ Ρ‚Π°ΠΊΠΎΠ³ΠΎ уровня ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ высокоуровнСвых возмоТностСй DSL-ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… языков. ВмСсто этого, ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Ρ‹ ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π΅Π΄ΠΈΠ½Ρ‹ΠΉ язык ΠΈ склонны ΠΊ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡŽ количСства ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ.

Π”Π΅Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ

Π”Π΅Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ прСдстаСт Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅. Π’ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ абстрактном смыслС это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ модСль ΠΌΠΈΡ€Π° Ρƒ Ρ€Π°Π·Π½Ρ‹Ρ… систСм Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ. Π­Ρ‚ΠΎ обычная ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰Π°Ρ ΠΏΡ€ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ Ρ€Π°Π·Π½Ρ‹Ρ… частСй Π±ΠΎΠ»ΡŒΡˆΠΈΡ… enterprise-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ: Ρ‚ΠΎΡ‡ΠΊΠ° зрСния Π½Π° понятиС Β«ΠšΠ»ΠΈΠ΅Π½Ρ‚Β» Ρƒ ΠΏΡ€ΠΎΠ΄Π°ΠΆΠ½ΠΈΠΊΠΎΠ² Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ Ρ‚Π°ΠΊΠΎΠ²ΠΎΠΉ Ρƒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Ρ‚Π΅Ρ…ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ. НСкоторыС Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ Β«ΠšΠ»ΠΈΠ΅Π½Ρ‚Π°Β» ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π² контСкстС ΠΏΡ€ΠΎΠ΄Π°ΠΆΠ½ΠΈΠΊΠΎΠ² ΠΈ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π² контСкстС Ρ‚Π΅Ρ…ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ€Π°Π·Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

Π­Ρ‚Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° встрСчаСтся Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρƒ Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… Π΅Π΄ΠΈΠ½ΠΎΠ³ΠΎ прилоТСния, особСнно Π² Ρ‚Π΅Ρ… случаях ΠΊΠΎΠ³Π΄Π° это ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΎ Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹. Π­Ρ‚Ρƒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ понятиС Bounded Context ΠΈΠ· Domain-Driven Design (DDD). DDD ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Π΄Π΅Π»ΠΈΡ‚ΡŒ ΡΠ»ΠΎΠΆΠ½ΡƒΡŽ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ Π½Π° нСсколько контСкстов ΠΈ ΠΌΠ°ΠΏΠΈΡ‚ΡŒ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ. Π­Ρ‚ΠΎΡ‚ процСсс ΠΏΠΎΠ»Π΅Π·Π΅Π½ ΠΊΠ°ΠΊ для ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½ΠΎΠΉ, Ρ‚Π°ΠΊ ΠΈ для микросСрвисной Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€, Π½ΠΎ ΠΌΠ΅ΠΆΠ΄Ρƒ сСрвисами ΠΈ контСкстами сущСствуСт СстСствСнная связь, которая ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΏΡ€ΠΎΡΡΠ½ΡΡ‚ΡŒ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ контСкстов.

ΠšΡ€ΠΎΠΌΠ΅ Π΄Π΅Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ принятия Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ ΠΎ ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΠΎΠΉ области, микросСрвисы Ρ‚Π°ΠΊΠΆΠ΅ ΡΠΏΠΎΡΠΎΠ±ΡΡ‚Π²ΡƒΡŽΡ‚ Π΄Π΅Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ способов хранСния Π΄Π°Π½Π½Ρ‹Ρ…. Π’ Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½Ρ‹Π΅ прилоТСния склонны ΠΊ использованию СдинствСнной Π‘Π” для хранСния Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ часто ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΡŽΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π΄ΠΈΠ½ΡƒΡŽ Π‘Π” для Ρ†Π΅Π»ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡ€Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π’Π°ΠΊΠΈΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π²Ρ‹Π·Π²Π°Π½Ρ‹ модСлью лицСнзирования Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…. ΠœΠΈΠΊΡ€ΠΎΡΠ΅Ρ€Π²ΠΈΡΡ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΡŽΡ‚ Π΄Π°Π²Π°Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ сСрвису ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ собствСнной Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ…: ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ инстансы ΠΎΠ±Ρ‰Π΅ΠΉ для ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Π‘Π£Π‘Π”, Ρ‚Π°ΠΊ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ нСстандартныС Π²ΠΈΠ΄Ρ‹ Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…. Π­Ρ‚ΠΎΡ‚ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ называСтся Polyglot Persistence. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Polyglot Persistence Π² ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½Ρ‹Ρ… прилоТСниях, Π½ΠΎ Π² микросСрвисах Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ встрСчаСтся Ρ‡Π°Ρ‰Π΅.

ДСцСнтрализация отвСтствСнности Π·Π° Π΄Π°Π½Π½Ρ‹Π΅ срСди микросСрвисов ΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ влияниС Π½Π° Ρ‚ΠΎ, ΠΊΠ°ΠΊ эти Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ. ΠžΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ измСнСнию Π΄Π°Π½Π½Ρ‹Ρ… Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² использовании Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ для гарантирования консистСнтности ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, находящихся Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… рСсурсах. Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½Ρ‹Ρ… прилоТСниях.

ПодобноС использованиС Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΊΠΎΠ½ΡΠΈΡΡ‚Π΅Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ, Π½ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ сущСствСнной Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ зависимости (temporal coupling), которая, Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΌ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с мноТСством сСрвисов. РаспрСдСлСнныС Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ нСвСроятно слоТны Π² Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ, ΠΊΠ°ΠΊ слСдствиС, микросСрвисная Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° ΠΏΡ€ΠΈΠ΄Π°Π΅Ρ‚ особоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ†ΠΈΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ сСрвисами Π±Π΅Π· использования Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ с явным ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ½ΡΠΈΡΡ‚Π΅Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΡ‚ΠΎΠ³ΠΎΠ²ΠΎΠΉ (eventual consistency) ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Ρ€Π΅ΡˆΠ°ΡŽΡ‚ΡΡ опСрациями компСнсации.

Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ нСсогласованностями ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ β€” Π½ΠΎΠ²Ρ‹ΠΉ Π²Ρ‹Π·ΠΎΠ² для ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Π½ΠΎ это часто соотвСтствуСт ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°ΠΌ бизнСса. Часто ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ стрСмятся ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ быстрСС Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° дСйствия ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ процСссы, ΠΏΠΎΠ·Π²ΠΎΡΡŽΡ‰ΠΈΠ΅ ΠΎΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ дСйствия ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π² случаС ошибки. ΠšΠΎΠΌΠΏΡ€ΠΎΠΌΠΈΡΡ стоит Ρ‚ΠΎΠ³ΠΎ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ исправлСния ошибки мСньшС стоимости ΠΏΠΎΡ‚Π΅Ρ€ΡŒ бизнСса ΠΏΡ€ΠΈ использовании сцСнариСв, Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… ΠΊΠΎΠ½ΡΠΈΡΡ‚Π΅Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ.

Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹, ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹Π΅ Π² бою, vs навязанныС стандарты

ΠšΠΎΠΌΠ°Π½Π΄Ρ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠ΅ ΠΌΠΈΠΊΡ€ΠΎΡΠ΅Ρ€Π²ΠΈΡΠ½ΡƒΡŽ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ, склонны ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ ТСстких стандартов, установлСнных Π³Ρ€ΡƒΠΏΠΏΠ°ΠΌΠΈ систСмных Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠ². Они Ρ‚Π°ΠΊΠΆΠ΅ склонны ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Π΄Π°ΠΆΠ΅ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ³Π°Ρ‚ΡŒ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ стандарты Ρ‚ΠΈΠΏΠ° HTTP ΠΈ ATOM.

ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ Π² Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ эти стандарты Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΈ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ проводятся Π² Тизнь. Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Ρ‹, управляСмыС Π³Ρ€ΡƒΠΏΠΏΠ°ΠΌΠΈ Π²Ρ€ΠΎΠ΄Π΅ IETF, становятся стандартами Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° находятся нСсколько Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ Π² ΡƒΡΠΏΠ΅ΡˆΠ½Ρ‹Ρ… open-source ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ….

Π­Ρ‚ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°Π΅Ρ‚ ΠΈΡ… ΠΎΡ‚ стандартов Π² ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΌ ΠΌΠΈΡ€Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ часто Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π³Ρ€ΡƒΠΏΠΏΠ°ΠΌΠΈ людСй с нСбольшим ΠΎΠΏΡ‹Ρ‚ΠΎΠΌ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠ»ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ слишком сильноС влияниС, ΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ΅ Π²Π΅Π½Π΄ΠΎΡ€Π°ΠΌΠΈ.

Автоматизация инфраструктуры

Π’Π΅Ρ…Π½ΠΈΠΊΠΈ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ инфраструктуры сильно ΡΠ²ΠΎΠ»ΡŽΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ Π·Π° послСдниС нСсколько Π»Π΅Ρ‚. Π­Π²ΠΎΠ»ΡŽΡ†ΠΈΡ ΠΎΠ±Π»Π°ΠΊΠ° Π² Ρ†Π΅Π»ΠΎΠΌ ΠΈ AWS Π² частности ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΠ»Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ построСния, разворачивания ΠΈ функционирования микросСрвисов.

ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ² ΠΈ систСм, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… ΠΌΠΈΠΊΡ€ΠΎΡΠ΅Ρ€Π²ΠΈΡΠ½ΡƒΡŽ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ, Π±Ρ‹Π»ΠΈ построСны ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ с ΠΎΠ±ΡˆΠΈΡ€Π½Ρ‹ΠΌ ΠΎΠΏΡ‹Ρ‚ΠΎΠΌ Π² Continuous Delivery ΠΈ Continuous Integration. ΠšΠΎΠΌΠ°Π½Π΄Ρ‹, строящиС прилоТСния ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΌΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, интСнсивно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ инфраструктуры. Π­Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ Π½Π° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ΅ Π½ΠΈΠΆΠ΅.

Π’Π°ΠΊ ΠΊΠ°ΠΊ эта ΡΡ‚Π°Ρ‚ΡŒΡ Π½Π΅ ΠΏΡ€ΠΎ Continuous Delivery, ΠΌΡ‹ ΡƒΠ΄Π΅Π»ΠΈΠΌ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ лишь ΠΏΠ°Ρ€Π΅ Π΅Π³ΠΎ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠ². ΠœΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ большС увСрСнности Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ нашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, поэтому ΠΌΡ‹ запускаСм мноТСство автоматичСских тСстов. Для выполнСния ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ шага автоматичСского тСстирования ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ разворачиваСтся Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ срСдС, для Ρ‡Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ автоматичСского Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ (automated deployment).

ПослС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Π²Ρ‹ инвСстировали врСмя ΠΈ дСньги Π² Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΡŽ процСсса развСртывания ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π°, Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ большСго количСства ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (сСрвисов) ΡƒΠΆΠ΅ Π½Π΅ видится Ρ‚Π°ΠΊΠΈΠΌ ΠΏΡƒΠ³Π°ΡŽΡ‰ΠΈΠΌ. ВспомнитС, Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· Ρ†Π΅Π»Π΅ΠΉ Continuous Delivery β€” это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ скучным, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½ΠΎ это ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Ρ‚Ρ€ΠΈ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ большого значСния.

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

Одним ΠΈΠ· ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹Ρ… эффСктов Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ процСсса развСртывания являСтся созданиС ΡƒΠ΄ΠΎΠ±Π½Ρ‹Ρ… инструмСнтов для ΠΏΠΎΠΌΠΎΡ‰ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΈ администраторам (operations folk). Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ для управлСния ΠΊΠΎΠ΄ΠΎΠΌ, развСртывания простых сСрвисов, ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° ΠΈ логирования сСйчас довольно распространСны. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΈΠ»ΡƒΡ‡ΡˆΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² сСти, β€” это Π½Π°Π±ΠΎΡ€ open source инструмСнтов ΠΎΡ‚ Netflix, Π½ΠΎ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅, ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ Dropwizard, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ довольно интСнсивно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ.

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ΄ ΠΎΡ‚ΠΊΠ°Π· (Design for failure)

БлСдствиСм использования сСрвисов ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² являСтся Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ проСктирования ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ ΠΌΠΎΠ³Π»ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ ΠΎΡ‚ΠΊΠ°Π·Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… сСрвисов. Π›ΡŽΠ±ΠΎΠ΅ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ сСрвису ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ ΡΡ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΈΠ·-Π·Π° Π΅Π³ΠΎ нСдоступности. ΠšΠ»ΠΈΠ΅Π½Ρ‚ Π΄ΠΎΠ»ΠΆΠ΅Π½ Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° это Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅Ρ€ΠΏΠΈΠΌΠΎ, насколько Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. Π­Ρ‚ΠΎ являСтся нСдостатоком микросСрвисов ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚ΠΎΠΌ, Ρ‚.ΠΊ. это вносит Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Как слСдствиС, ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ микросСрвисов постоянно Π΄ΡƒΠΌΠ°ΡŽΡ‚ Π½Π° Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ Π½Π΅Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ сСрвисов Π΄ΠΎΠ»ΠΆΠ½Π° Π²Π»ΠΈΡΡ‚ΡŒ Π½Π° user experience. Simian Army ΠΎΡ‚ Netflix искуствСнно Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ (симулируСт) ΠΎΡ‚ΠΊΠ°Π·Ρ‹ сСрвисов ΠΈ Π΄Π°ΠΆΠ΅ Π΄Π°Ρ‚Π°Ρ†Π΅Π½Ρ‚Ρ€ΠΎΠ² Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ дня для тСстирования отказоустойчивости прилоТСния ΠΈ слуТб ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°.

ΠŸΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ Π²ΠΈΠ΄ автоматичСского тСстирования Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ½Π΅ позволяСт ΡΡΠΌΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ стрСсс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ лоТится Π½Π° администраторов ΠΈ часто ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΏΠΎ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹ΠΌ. ΠœΡ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΠΌ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ для ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹ ΠΈΠ·ΠΎΡ‰Ρ€Π΅Π½Π½Ρ‹Π΅ систСмы ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ встрСчаСтся Ρ€Π΅ΠΆΠ΅.

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

Π­Ρ‚ΠΎ особСнно Π²Π°ΠΆΠ½ΠΎ с случаС с микросСрвисной Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΎΠΉ, Ρ‚.ΠΊ. Ρ€Π°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ процСссы ΠΈ коммуникация Ρ‡Π΅Ρ€Π΅Π· события ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎΠΌΡƒ повСдСнию. ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΊΡ€Π°ΠΉΠ½Π΅ Π²Π°ΠΆΠ΅Π½ для выявлСния Π½Π΅ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… случаСв Ρ‚Π°ΠΊΠΎΠ³ΠΎ повСдСния ΠΈ быстрого ΠΈΡ… устранСния.

ΠœΠΎΠ½ΠΎΠ»ΠΈΡ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ построСны Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΏΡ€ΠΎΠ·Π½Π°Ρ‡Π½ΠΎ, ΠΊΠ°ΠΊ ΠΈ микросСрвисы. На самом Π΄Π΅Π»Π΅, Ρ‚Π°ΠΊ ΠΎΠ½ΠΈ ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒΡΡ. Π Π°Π·Π½ΠΈΡ†Π° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° сСрвисы, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠ΅ Π² Ρ€Π°Π·Π½Ρ‹Ρ… процСссах, пСрСстали ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ собой, Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΎ. Π’ случаС с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ, располоТСнными Π² ΠΎΠ΄Π½ΠΎΠΌ процСссС, Ρ‚Π°ΠΊΠΎΠΉ Π²ΠΈΠ΄ прозрачности скорСС всСго Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅ Ρ‚Π°ΠΊ ΠΏΠΎΠ»Π΅Π·Π΅Π½.

ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ микросСрвисов, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΡΠΎΠ·Π΄Π°ΡŽΡ‚ ΠΈΠ·ΠΎΡ‰Ρ€Π΅Π½Π½Ρ‹Π΅ систСмы ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° ΠΈ логирования для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ сСрвиса. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ консоль, ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰Π°Ρ статус (ΠΎΠ½Π»Π°ΠΉΠ½/ΠΎΡ„Π»Π°ΠΉΠ½) сСрвиса ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ тСхничСскиС ΠΈ бизнСс-ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ: тСкущая пропускная ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ, врСмя ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ запроса ΠΈ Ρ‚.ΠΏ.

Π‘ΠΈΠ½Ρ…Ρ€ΠΎΠ½Π½Ρ‹Π΅ Π²Ρ‹Π·ΠΎΠ²Ρ‹ ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ опасными

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΈΠΌΠ΅Π΅Ρ‚Π΅ Π½Π°Π±ΠΎΡ€ синхронных Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρƒ сСрвисами, Π²Ρ‹ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Π΅Ρ‚Π΅ΡΡŒ с эффСктом ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ простоя (downtime). ВрСмя простоя вашСй систСмы становится ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ простоя ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ систСмы. Π’Ρ‹ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Π΅Ρ‚Π΅ΡΡŒ с Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ: Π»ΠΈΠ±ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ваши Π²Ρ‹Π·ΠΎΠ²Ρ‹ асинхронными, Π»ΠΈΠ±ΠΎ ΠΌΠΈΡ€ΠΈΡ‚ΡŒΡΡ с простоями. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, Π² www.guardian.co.uk Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π²Π²Π΅Π»ΠΈ простоС ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ β€” ΠΎΠ΄ΠΈΠ½ синхронный Π²Ρ‹Π·ΠΎΠ² Π½Π° ΠΎΠ΄ΠΈΠ½ запрос ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Π’ Netflix ΠΆΠ΅ Π²ΠΎΠΎΠ±Ρ‰Π΅ всС API ΡΠ²Π»ΡΡŽΡ‚ΡΡ асинхронными.

Π­Π²ΠΎΠ»ΡŽΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Π΄ΠΈΠ·Π°ΠΉΠ½

Π’Π΅, ΠΊΡ‚ΠΎ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΡƒΠ΅Ρ‚ ΠΌΠΈΠΊΡ€ΠΎΡΠ΅Ρ€Π²ΠΈΡΠ½ΡƒΡŽ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ с ΡΠ²ΠΎΠ»ΡŽΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ Π΄ΠΈΠ·Π°ΠΉΠ½ΠΎΠΌ ΠΈ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ Π΄Π΅ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ сСрвисов ΠΊΠ°ΠΊ Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΡƒΡŽ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π΄Π°Ρ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ измСнСниями (Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ΠΎΠΌ) ΠΈΡ… прилоТСния Π±Π΅Π· замСдлСния самого процСсса Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ измСнСниями Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ: с ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠΌ ΠΈ Π½Π°Π±ΠΎΡ€ΠΎΠΌ инструмСнтов Π²Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ частыС, быстрыС, Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ измСнСния.

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, Π²Ρ‹ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Π΅Ρ‚Π΅ΡΡŒ с Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π•ΡΡ‚ΡŒ Π»ΠΈ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅, ΠΊΠ°ΠΊ Π½Π°ΠΈΠ»ΡƒΡ‡ΡˆΠΈΠΌ способом Β«Π½Π°Ρ€Π΅Π·Π°Ρ‚ΡŒΒ» нашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅? ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ свойство ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° β€” это Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ Π΅Π³ΠΎ Π·Π°ΠΌΠ΅Π½Ρ‹ ΠΈΠ»ΠΈ обновлСния, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ситуаций ΠΊΠΎΠ³Π΄Π° Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΠ°Ρ‚ΡŒ с нуля Π±Π΅Π· затрагивания Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… с Π½ΠΈΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ². МногиС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈΠ΄ΡƒΡ‚ Π΅Ρ‰Π΅ дальшС: ΠΎΠ½ΠΈ явным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΡŽΡ‚, Ρ‡Ρ‚ΠΎ мноТСство сСрвисов Π² долгосрочной пСрспСктивС Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ²ΠΎΠ»ΡŽΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Π° Π±ΡƒΠ΄ΡƒΡ‚ просто Π²Ρ‹Π±Ρ€ΠΎΡˆΠ΅Π½Ρ‹ Π½Π° свалку.

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

Π’Π°ΠΊΠΎΠΉ ΡƒΠΏΠΎΡ€ Π½Π° замСняСмости β€” частный случай Π±ΠΎΠ»Π΅Π΅ ΠΎΠ±Ρ‰Π΅Π³ΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ° ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠ³ΠΎ Π΄ΠΈΠ·Π°ΠΉΠ½Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ опрСдСляСтся ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ измСнСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π°. Π’Π΅Ρ‰ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ вмСстС, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΌΠΎΠ΄ΡƒΠ»Π΅. Части систСмы, измСняСмыС Ρ€Π΅Π΄ΠΊΠΎ, Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ вмСстС с Π±Ρ‹ΡΡ‚Ρ€ΠΎΡΠ²ΠΎΠ»ΡŽΡ†ΠΈΠΎΠ½ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΌΠΈ сСрвисами. Если Π²Ρ‹ рСгулярно мСняСтС Π΄Π²Π° сСрвиса вмСстС, Π·Π°Π΄ΡƒΠΌΠ°ΠΉΡ‚Π΅ΡΡŒ Π½Π°Π΄ Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡ… слСдуСт ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ.

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

Π—Π° микросСрвисами Π±ΡƒΠ΄ΡƒΡ‰Π΅Π΅?

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

Π˜Π·Π²Π΅ΡΡ‚Π½Ρ‹Π΅ Π½Π°ΠΌ ΠΏΠΈΠΎΠ½Π΅Ρ€Ρ‹ этого Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½ΠΎΠ³ΠΎ стиля β€” это Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΠΊΠ°ΠΊ Amazon, Netflix, The Guardian, the UK Government Digital Service, realestate.com.au, Forward ΠΈ comparethemarket.com. ΠšΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠΈ 2013 Π³ΠΎΠ΄Π° Π±Ρ‹Π»ΠΈ ΠΏΠΎΠ»Π½Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΊΠΎΠΌΠ°Π½ΠΈΠΉ, двиТущихся Π² Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠ»Π°ΡΡΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ микросСрвисы, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Travis CI. К Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅, сущСствуСт мноТСство ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠΆΠ΅ Π΄Π°Π²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌ микросСрвисами, Π½ΠΎ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ это Π½Π°Π·Π²Π°Π½ΠΈΠ΅. (Часто это называСтся SOA, хотя, ΠΊΠ°ΠΊ ΠΌΡ‹ ΡƒΠΆΠ΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈ, SOA ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ²Π»ΡΡ‚ΡŒΡΡ Π² самых Ρ€Π°Π·Π½Ρ‹Ρ… ΠΈ, Π·Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ, ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΡ€Π΅Ρ‡ΠΈΠ²Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌΠ°Ρ….)

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

Часто настоящиС послСдствия Π²Π°ΡˆΠΈΡ… Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½Ρ‹Ρ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ становятся Π²ΠΈΠ΄Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ спустя нСсколько Π»Π΅Ρ‚ послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ сдСлали ΠΈΡ…. ΠœΡ‹ Π²ΠΈΠ΄Π΅Π»ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ…ΠΎΡ€ΠΎΡˆΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ с ΡΠΈΠ»ΡŒΠ½Ρ‹ΠΌ стрСмлСниСм ΠΊ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½Ρ‹Π΅ прилоТСния, ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Β«ΠΏΡ€ΠΎΠ³Π½ΠΈΠ²ΡˆΠΈΠ΅Β» ΠΏΠΎ ΠΏΡ€ΠΎΡˆΠ΅ΡΡ‚Π²ΠΈΡŽ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π»Π΅Ρ‚. МногиС ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΌΠ΅Π½Π΅Π΅ вСроятСн Π² случаС с микросСрвисами, Ρ‚.ΠΊ. Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ ΠΌΠ΅ΠΆΠ΄Ρƒ сСрвисами ΡΠ²Π»ΡΡŽΡ‚ΡΡ физичСскими ΠΈ ΠΈΡ… слоТно Π½Π°Ρ€ΡƒΡˆΠΈΡ‚ΡŒ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΠΊΠ° ΠΌΡ‹ Π½Π΅ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ достаточного количСства ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹Ρ… Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ систСм, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… этот ΠΏΠΎΠ΄Ρ…ΠΎΠ΄, ΠΌΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ с ΡƒΠ²Π΅Ρ€Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π°Ρ‚ΡŒ, насколько микросСрвисная Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° являСтся Π·Ρ€Π΅Π»ΠΎΠΉ.

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

Π•Ρ‰Π΅ ΠΎΠ΄Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ссли ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π½Π΅ ΠΏΠΎΠ΄ΠΎΠ±Ρ€Π°Π½Ρ‹ достаточно чисто, происходит пСрСнос слоТности ΠΈΠ· ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π½Π° связи ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ. БоздаСтся Π»ΠΎΠΆΠ½ΠΎΠ΅ ΠΎΡ‰ΡƒΡ‰Π΅Π½ΠΈΠ΅ простоты ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ вся ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ находится Π² мСстах, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Ρ€ΡƒΠ΄Π½Π΅Π΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.

Π’Π°ΠΊΠΆΠ΅ сущСствуСт Ρ„Π°ΠΊΡ‚ΠΎΡ€ уровня ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. НовыС Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠΈΠ»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ, Π½ΠΎ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π±ΠΎΠ»Π΅Π΅ эффСктивными для Π±ΠΎΠ»Π΅Π΅ ΡΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄, Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‚Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ для ΠΌΠ΅Π½Π΅Π΅ ΡΠΈΠ»ΡŒΠ½Ρ‹Ρ… Π³Ρ€ΡƒΠΏΠΏ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ². ΠœΡ‹ Π²ΠΈΠ΄Π΅Π»ΠΈ мноТСство случаСв, ΠΊΠΎΠ³Π΄Π° слабыС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π»ΠΈ Π·Π°ΠΏΡƒΡ‚Π°Π½Π½Ρ‹Π΅, Π½Π΅ΡƒΠ΄Π°Ρ‡Π½Ρ‹Π΅ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π½ΠΎ ΠΏΡ€ΠΎΠΉΠ΄Π΅Ρ‚ врСмя ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ Ρ‡Π΅ΠΌ это закончится Π² случаС с микросСрвисной Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΎΠΉ. Π‘Π»Π°Π±Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ всСгда ΡΠΎΠ·Π΄Π°ΡŽΡ‚ слабыС систСмы, слоТно ΡΠΊΠ°Π·Π°Ρ‚ΡŒ ΡƒΠ»ΡƒΡ‡ΡˆΠ°Ρ‚ Π»ΠΈ микросСрвисы эту ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ ΠΈΠ»ΠΈ ΡƒΡ…ΡƒΠ΄ΡˆΠ°Ρ‚.

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

Π˜Ρ‚ΠΎΠ³ΠΎ, ΠΌΡ‹ пишСм это с Ρ€Π°Π·ΡƒΠΌΠ½Ρ‹ΠΌ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΌΠΎΠΌ. К этому ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρƒ ΠΌΡ‹ Π²ΠΈΠ΄Π΅Π»ΠΈ достаточно ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² микросСрвисного стиля Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡΠΎΠ·Π½Π°Π²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ являСтся стоящим ΠΏΡƒΡ‚Π΅ΠΌ развития. НСльзя ΡΠΊΠ°Π·Π°Ρ‚ΡŒ с ΡƒΠ²Π΅Ρ€Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ ΠΊ Ρ‡Π΅ΠΌΡƒ это ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚, Π½ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· особСнностСй Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ПО Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ приходится ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π½Π° основС Ρ‚ΠΎΠΉ, Π·Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ Π½Π΅ΠΏΠΎΠ»Π½ΠΎΠΉ, ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ ΠΈΠΌΠ΅Π΅Ρ‚ доступ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚.

Бсылка Π½Π° ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π» ΡΡ‚Π°Ρ‚ΡŒΠΈ: Microservices

Π“ΠΎ Π² Go! Как ΠΊΠΎΠΌΠ°Π½Π΄Π° PHP взялась ΠΏΠΈΡΠ°Ρ‚ΡŒ микросСрвисы / Π‘Π»ΠΎΠ³ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Lamoda / Π₯Π°Π±Ρ€

ВсСм ΠΏΡ€ΠΈΠ²Π΅Ρ‚! МСня Π·ΠΎΠ²ΡƒΡ‚ АлСксСй Π‘ΠΊΠΎΡ€ΠΎΠ±ΠΎΠ³Π°Ρ‚Ρ‹ΠΉ, я систСмный Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΠΎΡ€ Π² Lamoda. Π’ Ρ„Π΅Π²Ρ€Π°Π»Π΅ 2019 Π³ΠΎΠ΄Π° я выступал Π½Π° Go Meetup Π΅Ρ‰Π΅ Π½Π° ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ Ρ‚ΠΈΠΌΠ»ΠΈΠ΄Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Core. БСгодня Ρ…ΠΎΡ‡Ρƒ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²ΠΊΡƒ своСго Π΄ΠΎΠΊΠ»Π°Π΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ.

Наша ΠΊΠΎΠΌΠ°Π½Π΄Π° называСтся Core нСспроста: Π² Π·ΠΎΠ½Ρƒ отвСтствСнности Π²Ρ…ΠΎΠ΄ΠΈΡ‚ всС, Ρ‡Ρ‚ΠΎ связано с Π·Π°ΠΊΠ°Π·Π°ΠΌΠΈ Π² e-commerce ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅. Команда ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π»Π°ΡΡŒ ΠΈΠ· PHP-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈ спСциалистов ΠΏΠΎ Π½Π°ΡˆΠ΅ΠΌΡƒ order processing, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π° Ρ‚ΠΎΡ‚ ΠΌΠΎΠΌΠ΅Π½Ρ‚ прСдставлял собой Π΅Π΄ΠΈΠ½Ρ‹ΠΉ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚. ΠœΡ‹ занимались ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ Π΄Π΅ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΠ΅ΠΉ Π΅Π³ΠΎ Π½Π° микросСрвисы.

ΠžΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠ΅ Π·Π°ΠΊΠ°Π·Π° Π² нашСй систСмС состоит ΠΈΠ· связанных ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²: Π΅ΡΡ‚ΡŒ Π±Π»ΠΎΠΊ доставки ΠΈ ΠΊΠΎΡ€Π·ΠΈΠ½Π°, Π±Π»ΠΎΠΊΠΈ скидок ΠΈ ΠΎΠΏΠ»Π°Ρ‚Ρ‹, β€” ΠΈ Π² самом ΠΊΠΎΠ½Ρ†Π΅ Π΅ΡΡ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΠ°, которая отправляСт Π·Π°ΠΊΠ°Π· ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒΡΡ Π½Π° склад. ИмСнно Π² этот ΠΌΠΎΠΌΠ΅Π½Ρ‚ начинаСтся Ρ€Π°Π±ΠΎΡ‚Π° систСмы order processing, Π³Π΄Π΅ всС Π΄Π°Π½Π½Ρ‹Π΅ Π·Π°ΠΊΠ°Π·Π° Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΎΠ²Π°Π»ΠΈΠ΄ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹, Π° информация Π°Π³Ρ€Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π°.

Π’Π½ΡƒΡ‚Ρ€ΠΈ всСго этого β€” слоТная ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠ°Π»ΡŒΠ½Π°Ρ Π»ΠΎΠ³ΠΈΠΊΠ°. Π‘Π»ΠΎΠΊΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ ΠΌΠ΅ΠΆΠ΄Ρƒ собой ΠΈ Π²Π»ΠΈΡΡŽΡ‚ Π΄Ρ€ΡƒΠ³ Π½Π° Π΄Ρ€ΡƒΠ³Π°. НСпрСрывныС ΠΈ постоянныС измСнСния ΠΎΡ‚ бизнСса Π΅Ρ‰Π΅ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‚ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠ΅Π². ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ρƒ нас Π΅ΡΡ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹, Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π·Π°ΠΊΠ°Π·Ρ‹: сайт, прилоТСния, ΠΊΠΎΠ»Π»-Ρ†Π΅Π½Ρ‚Ρ€, Π’2Π’-ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°. А Ρ‚Π°ΠΊΠΆΠ΅ ТСсткиС ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΈ SLA/MTTI/MTTR (ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ рСгистрации ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΈΠ½Ρ†ΠΈΠ΄Π΅Π½Ρ‚Π°). ВсС это Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΎΡ‚ сСрвиса высокой гибкости ΠΈ устойчивости.

АрхитСктурноС наслСдиС

Как я ΡƒΠΆΠ΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ», Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚ образования нашСй ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ систСма order processing прСдставляла собой ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚ – ΠΏΠΎΡ‡Ρ‚ΠΈ 100 тысяч строк ΠΊΠΎΠ΄Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠΏΠΈΡΡ‹Π²Π°Π»Π°ΡΡŒ нСпосрСдствСнно бизнСс-Π»ΠΎΠ³ΠΈΠΊΠ°. Основная Ρ‡Π°ΡΡ‚ΡŒ Π±Ρ‹Π»Π° написана Π² 2011 Π³ΠΎΠ΄Ρƒ, с использованиСм классичСской многослойной MVC-Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹. Π’ основС Π±Ρ‹Π» РНР (Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ ZF1), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ постСпСнно оброс Π°Π΄Π°ΠΏΡ‚Π΅Ρ€Π°ΠΌΠΈ ΠΈ symfony-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ для взаимодСйствия с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ сСрвисами. Π—Π° врСмя сущСствования Ρƒ систСмы Π±Ρ‹Π»ΠΎ Π±ΠΎΠ»Π΅Π΅ 50 ΠΊΠΎΠ½Ρ‚Ρ€ΠΈΠ±ΡŒΡŽΡ‚ΠΎΡ€ΠΎΠ², ΠΈ хотя Π½Π°ΠΌ ΡƒΠ΄Π°Π»ΠΎΡΡŒ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΅Π΄ΠΈΠ½Ρ‹ΠΉ ΡΡ‚ΠΈΠ»ΡŒ написания ΠΊΠΎΠ΄Π°, это Ρ‚ΠΎΠΆΠ΅ Π½Π°Π»ΠΎΠΆΠΈΠ»ΠΎ свои ограничСния. Плюс ΠΊΠΎ всСму Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΎ большоС количСство ΡΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹Ρ… контСкстов β€” ΠΏΠΎ Ρ€Π°Π·Π½Ρ‹ΠΌ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ Π² систСму Π±Ρ‹Π»ΠΈ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹, Π½Π΅ связанныС нСпосрСдствСнно с ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ Π·Π°ΠΊΠ°Π·ΠΎΠ². ВсС это ΠΏΡ€ΠΈΠ²Π΅Π»ΠΎ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Π½Π° настоящий ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΌΡ‹ ΠΈΠΌΠ΅Π΅ΠΌ MySQL Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ Π±ΠΎΠ»Π΅Π΅ 1 Ρ‚Π΅Ρ€Π°Π±Π°ΠΉΡ‚Π°.

Π‘Ρ…Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΡƒΡŽ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊ:

Π—Π°ΠΊΠ°Π·, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, находился Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· слоСв β€” Π½ΠΎ ΠΏΠΎΠΌΠΈΠΌΠΎ Π·Π°ΠΊΠ°Π·Π° Π±Ρ‹Π»ΠΈ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ контСксты. ΠœΡ‹ Π½Π°Ρ‡Π°Π»ΠΈ с Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈ bounded context ΠΈΠΌΠ΅Π½Π½ΠΎ Π·Π°ΠΊΠ°Π·Π° ΠΈ Π½Π°Π·Π²Π°Π»ΠΈ Π΅Π³ΠΎ Customer Order, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΠΎΠΌΠΈΠΌΠΎ самого Π·Π°ΠΊΠ°Π·Π°, Ρ‚Π°ΠΌ Π΅ΡΡ‚ΡŒ Ρ‚Π΅ самыС Π±Π»ΠΎΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я упомянул Π² Π½Π°Ρ‡Π°Π»Π΅: доставка, ΠΎΠΏΠ»Π°Ρ‚Π° ΠΈ ΠΏΡ€ΠΎΡ‡Π΅Π΅. Π’Π½ΡƒΡ‚Ρ€ΠΈ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π° всСм этим Π±Ρ‹Π»ΠΎ слоТно ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ: Π»ΡŽΠ±Ρ‹Π΅ измСнСния Π²Π»Π΅ΠΊΠ»ΠΈ ΠΊ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΡŽ зависимостСй, ΠΊΠΎΠ΄ доставлялся Π½Π° ΠΏΡ€ΠΎΠ΄ ΠΎΡ‡Π΅Π½ΡŒ Π΄ΠΎΠ»Π³ΠΎ, всё врСмя ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π»Π°ΡΡŒ Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ ошибок ΠΈ ΠΎΡ‚ΠΊΠ°Π·Π° систСмы. А ΠΌΡ‹ вСдь Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΏΡ€ΠΎ созданиС Π·Π°ΠΊΠ°Π·Π°, ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΡƒ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-ΠΌΠ°Π³Π°Π·ΠΈΠ½Π° β€” Ссли Π·Π°ΠΊΠ°Π·Ρ‹ Π½Π΅ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ, Ρ‚ΠΎ ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ΅ ΡƒΠΆΠ΅ Π½Π΅ Ρ‚Π°ΠΊ Π²Π°ΠΆΠ½ΠΎ. ΠžΡ‚ΠΊΠ°Π· систСмы Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠ΅ ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ΄Π°ΠΆ.

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΌΡ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ вынСсти контСкст Customer Order ΠΈΠ· систСмы Order Processing Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ микросСрвис, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π°Π·Π²Π°Π»ΠΈ Order Management.

ВрСбования ΠΈ инструмСнтарий

ПослС опрСдСлСния контСкста, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π΅ΡˆΠΈΠ»ΠΈ вынСсти ΠΈΠ· ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π° Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, ΠΌΡ‹ сформировали трСбования ΠΊ Π½Π°ΡˆΠ΅ΠΌΡƒ Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌΡƒ сСрвису:

  • ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ
  • ΠšΠΎΠ½ΡΠΈΡΡ‚Π΅Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ…
  • Π£ΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²ΠΎΡΡ‚ΡŒ
  • ΠŸΡ€Π΅Π΄ΡΠΊΠ°Π·ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ
  • ΠŸΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ
  • Π˜Π½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ

ΠœΡ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠΎΠ΄ Π±Ρ‹Π» максимально понятным ΠΈ Π»Π΅Π³ΠΊΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ поколСния Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΌΠΎΠ³Π»ΠΈ быстро внСсти Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΠ΅ΡΡ для бизнСса измСнСния.

Π’ ΠΈΡ‚ΠΎΠ³Π΅ ΠΌΡ‹ ΠΏΡ€ΠΈΡˆΠ»ΠΈ ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ структурС, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π²ΠΎ всСх Π½ΠΎΠ²Ρ‹Ρ… микросСрвисах:

Bounded Context. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Π½ΠΎΠ²Ρ‹ΠΉ микросСрвис, начиная с Order Management, ΠΌΡ‹ создаСм Π½Π° основС бизнСс-Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ. Π”ΠΎΠ»ΠΆΠ½Ρ‹ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ объяснСния, ΠΊΠ°ΠΊΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ систСмы ΠΈ ΠΏΠΎΡ‡Π΅ΠΌΡƒ трСбуСтся вынСсти Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ микросСрвис.

Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π°Ρ инфраструктура ΠΈ инструмСнтарий. ΠœΡ‹ Π½Π΅ пСрвая ΠΊΠΎΠΌΠ°Π½Π΄Π° Π² Lamoda, которая Π½Π°Ρ‡Π°Π»Π° Π²Π½Π΅Π΄Ρ€ΡΡ‚ΡŒ Go, Π΄ΠΎ нас Π±Ρ‹Π»ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΏΡ€ΠΎΡ…ΠΎΠ΄Ρ†Ρ‹ β€” нСпосрСдствСнно Go-шная ΠΊΠΎΠΌΠ°Π½Π΄Π°, которая ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΠ»Π° инфраструктуру ΠΈ инструмСнтарий:

  1. Gogi (swagger) β€” Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ спСцификации ΠΏΠΎ swagger.
  2. Gonkey (testing) β€” для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… тСстов.
  3. ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Json-rpc ΠΈ Π³Π΅Π½Π΅Ρ€ΠΈΠΌ обвязку client/server ΠΏΠΎ swagger. Π’Π°ΠΊΠΆΠ΅ всС это Π΄Π΅ΠΏΠ»ΠΎΠΈΠΌ Π² Kubernetes, собираСм ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ Π² Prometheus, для трСйсинга ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ELK/Jaeger – всС это Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² обвязку, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ создаСт Gogi для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ микросСрвиса ΠΏΠΎ спСцификации.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ выглядит наш Π½ΠΎΠ²Ρ‹ΠΉ микросСрвис Order Management:

На Π²Ρ…ΠΎΠ΄Π΅ Ρƒ нас Π΅ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅, ΠΌΡ‹ ΠΈΡ… Π°Π³Ρ€Π΅Π³ΠΈΡ€ΡƒΠ΅ΠΌ, Π²Π°Π»ΠΈΠ΄ΠΈΡ€ΡƒΠ΅ΠΌ, взаимодСйствуСм со сторонними сСрвисами, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅ΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅ΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ дальшС Π² Order Processing β€” Ρ‚ΠΎΡ‚ самый ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ большой, нСустойчивый ΠΈ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊ рСсурсам. Π­Ρ‚ΠΎ Ρ‚ΠΎΠΆΠ΅ Π½ΡƒΠΆΠ½ΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ построСнии микросСрвиса.

Π‘Π΄Π²ΠΈΠ³ ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΡ‹

Π’Ρ‹Π±Ρ€Π°Π² Go, ΠΌΡ‹ сразу ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ нСсколько прСимущСств:

  • БтатичСская строгая типизация сразу отсСкаСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ ΠΊΡ€ΡƒΠ³ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… Π±Π°Π³ΠΎΠ².
  • Concurrency модСль Ρ…ΠΎΡ€ΠΎΡˆΠΎ лоТится Π² наши Π·Π°Π΄Π°Ρ‡ΠΈ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π½Π°ΠΌ Π½Π°Π΄ΠΎ Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΎΠΏΡ€Π°ΡˆΠΈΠ²Π°Ρ‚ΡŒ нСсколько сСрвисов.
  • ΠšΠΎΠΌΠΏΠΎΠ·ΠΈΡ†ΠΈΡ ΠΈ интСрфСйсы ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ Π½Π°ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ Π² тСстировании.
  • β€œΠŸΡ€ΠΎΡΡ‚ΠΎΡ‚Π°β€ изучСния β€” ΠΊΠ°ΠΊ Ρ€Π°Π· здСсь ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ»ΠΈΡΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹Π΅ ΠΏΠ»ΡŽΡΡ‹, Π½ΠΎ ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹.

Π―Π·Ρ‹ΠΊ Go ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ Π²ΠΎΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°. Π­Ρ‚ΠΎ стало ΠΊΠ°ΠΌΠ½Π΅ΠΌ прСткновСния для нашСй ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, ΠΏΡ€ΠΈΠ²Ρ‹ΠΊΡˆΠ΅ΠΉ ΠΊ РНР, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅ΡˆΠ»ΠΈ ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π½Π° Go. ΠœΡ‹ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΠ»ΠΈΡΡŒ с настоящим ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΠ΅Π½Π½Ρ‹ΠΌ сдвигом. Нам ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ ΠΏΡ€ΠΎΠΉΡ‚ΠΈ Ρ‡Π΅Ρ€Π΅Π· нСсколько стадий ΠΈ ΠΏΠΎΠ½ΡΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π΅Ρ‰ΠΈ:

  1. Π’ Go тяТСло ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ абстракции.
  2. Go, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Object-based, Π½ΠΎ Π½Π΅ Object-oriented язык, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ρ‚Π°ΠΌ Π½Π΅Ρ‚ прямого наслСдования ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΄Ρ€ΡƒΠ³ΠΈΡ… Π²Π΅Ρ‰Π΅ΠΉ.
  3. Go способствуСт ΠΏΠΈΡΠ°Ρ‚ΡŒ явно, Π° Π½Π΅ ΡΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π·Π° абстракциями.
  4. Go ΠΈΠΌΠ΅Π΅Ρ‚ Pipelining. Π­Ρ‚ΠΎ Π²Π΄ΠΎΡ…Π½ΠΎΠ²ΠΈΠ»ΠΎ нас Π½Π° построСниС Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ.

Π’ ΠΈΡ‚ΠΎΠ³Π΅ ΠΌΡ‹ ΠΏΡ€ΠΈΡˆΠ»ΠΈ ΠΊ пониманию, Ρ‡Ρ‚ΠΎ Go – это ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½Ρ‹ΠΉ язык программирования.

Data first

Π― Π΄ΡƒΠΌΠ°Π», ΠΊΠ°ΠΊ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΡ‹ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΠ»ΠΈΡΡŒ, ΠΈ наткнулся Π½Π° эту ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ:

Π—Π΄Π΅ΡΡŒ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ β€œΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ориСнтированный” взгляд Π½Π° ΠΌΠΈΡ€, Π³Π΄Π΅ ΠΌΡ‹ строим абстракции ΠΈ Π·Π°ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ Π·Π° Π½ΠΈΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹. НапримСр, Ρ‚ΡƒΡ‚ Π½Π΅ просто Π΄Π²Π΅Ρ€ΡŒ, Π° Indoor Session Initialiser. НС Π·Ρ€Π°Ρ‡ΠΎΠΊ, Π° Visitor Monitor Interface β€” ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅.

ΠœΡ‹ ΠΎΡ‚ΠΊΠ°Π·Π°Π»ΠΈΡΡŒ ΠΎΡ‚ Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°, ΠΈ Π½Π° ΠΏΠ΅Ρ€Π²ΠΎΠ΅ мСсто поставили сущности, Π½Π΅ став ΠΈΡ… ΡΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ Π·Π° абстракциями.

РассуТдая Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΌΡ‹ поставили Π½Π° ΠΏΠ΅Ρ€Π²ΠΎΠ΅ мСсто Π΄Π°Π½Π½Ρ‹Π΅, ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ Ρ‚Π°ΠΊΠΎΠΉ Pipelining Π² сСрвисС:

Π˜Π·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ ΠΌΡ‹ опрСдСляСм модСль Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΡΡ‚ΡƒΠΏΠ°ΡŽΡ‚ Π² ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ². Π”Π°Π½Π½Ρ‹Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ измСняСмыми, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ измСнСния ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Ρ‚Π°ΠΊ ΠΈ ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚Π½ΠΎ (concurrency). Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ этого ΠΌΡ‹ Π²Ρ‹ΠΈΠ³Ρ€Ρ‹Π²Π°Π΅ΠΌ Π² скорости.

Назад Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅Π΅

НСоТиданно, разрабатывая микросСрвисы, ΠΌΡ‹ ΠΏΡ€ΠΈΡˆΠ»ΠΈ ΠΊ ΠΌΠΎΠ΄Π΅Π»ΠΈ программирования 70-Ρ… Π³ΠΎΠ΄ΠΎΠ². ПослС 70-Ρ… Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΈ большиС enterprise-ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Ρ‹, Π³Π΄Π΅ появилось ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ – большиС абстракции, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ позволяли ΡƒΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π² этих ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π°Ρ…. Π’ микросСрвисах Π½Π°ΠΌ всС это Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ, ΠΈ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚Π»ΠΈΡ‡Π½ΡƒΡŽ модСль CSP (communicating sequential processes), идСю ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹Π΄Π²ΠΈΠ½ΡƒΠ» ΠΊΠ°ΠΊ Ρ€Π°Π· Π² 70-Ρ… Π§Π°Ρ€Π»ΡŒΠ· Π₯ΠΎΡ€.

Π’Π°ΠΊΠΆΠ΅ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Sequence/Selection/Interation β€” ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΡƒ структурного программирования, согласно ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ вСсь ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΈΠ· ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… конструкций.

Ну ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π² 70-Ρ… Π³ΠΎΠ΄Π°Ρ… Π±Ρ‹Π»ΠΎ мСйнстримом πŸ™‚

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

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

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΌΡ‹ ΠΈΠΌΠ΅Π΅ΠΌ ΠΏΠ»ΠΎΡΠΊΡƒΡŽ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ: нСбольшой слой API плюс ΠΌΠΎΠ΄Π΅Π»ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. А вся Π»ΠΎΠ³ΠΈΠΊΠ° (которая ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π° Ρƒ нас контСкстом бизнСс трСбования ΠΎΡ‚ микросСрвиса), хранится Π² процСссорах (ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°Ρ…).

ΠœΡ‹ стараСмся Π½Π΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ микросСрвисы Π±Π΅Π· ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎΠ³ΠΎ запроса ΠΎΡ‚ бизнСса β€” Ρ‚Π°ΠΊ ΠΌΡ‹ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅ΠΌ Π³Ρ€Π°Π½ΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ всСй систСмы. Если Π΅ΡΡ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΠ°, которая Π±Π»ΠΈΠ·ΠΊΠΎ связана с ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ микросСрвисом, Π½ΠΎ ΠΏΠΎ сути относится ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ контСксту β€” ΠΌΡ‹ Π²Π½Π°Ρ‡Π°Π»Π΅ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Π΅Π΅ Π² Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… сСрвисах. И Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ постоянной бизнСс-потрСбности ΠΌΡ‹ выносим Π΅Π΅ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ микросСрвис, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π΄Π°Π»Π΅Π΅ обращаСмся ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ rpc-Π²Ρ‹Π·ΠΎΠ²Π°.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π³Ρ€Π°Π½ΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ ΠΈ Π½Π΅ ΠΏΠ»ΠΎΠ΄ΠΈΡ‚ΡŒ микросСрвисы Π½Π΅ΠΎΠ±Π΄ΡƒΠΌΠ°Π½Π½ΠΎ, Π»ΠΎΠ³ΠΈΠΊΡƒ, которая Π½Π΅ относится нСпосрСдствСнно ΠΊ этому контСксту, Π½ΠΎ Π±Π»ΠΈΠ·ΠΊΠΎ связана с Π΄Π°Π½Π½Ρ‹ΠΌ микросСрвисом, ΠΌΡ‹ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Π² слоС services. А ΠΏΠΎΡ‚ΠΎΠΌ, Ссли Π΅ΡΡ‚ΡŒ бизнСс-ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎΡΡ‚ΡŒ, ΠΌΡ‹ выносим Π΅Π΅ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ микросСрвис β€” ΠΈ Π΄Π°Π»Π΅Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ rpc-Π²Ρ‹Π·ΠΎΠ²Π° обращаСмся ΠΊ Π½Π΅ΠΌΡƒ.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, для Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ API Π² процСссорах Ρƒ сСрвиса взаимодСйствиС Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ мСняСтся.

Π£ΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²ΠΎΡΡ‚ΡŒ

ΠœΡ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ Π½Π΅ Π±Ρ€Π°Ρ‚ΡŒ Π·Π°Ρ€Π°Π½Π΅Π΅ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ сторонниС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π΄Π°Π½Π½Ρ‹Π΅, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ, достаточно Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΌΡ‹ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ повСлосипСдили πŸ™‚ НапримСр, сами Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π»ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ классичСскиС ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ β€” для Idempotency, Queue-worker, Fault Tolerance, Compensating transactions. Наш ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ шаг β€” ΠΏΠΎΡΡ‚Π°Ρ€Π°Ρ‚ΡŒΡΡ это ΠΏΠ΅Ρ€Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ. Π—Π°Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ side-car ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ Π² Pod’Π°Ρ… Kubernetes. Но ΡƒΠΆΠ΅ сСйчас ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ эти ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ.

ΠœΡ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌ Π² своих систСмах ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ называСтся graceful degradation: сСрвис Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, нСзависимо ΠΎΡ‚ Π²Π½Π΅ΡˆΠ½ΠΈΡ… Π²Ρ‹Π·ΠΎΠ²ΠΎΠ², Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΡ‹ Π°Π³Ρ€Π΅Π³ΠΈΡ€ΡƒΠ΅ΠΌ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ. На ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ создания Π·Π°ΠΊΠ°Π·Π°: Ссли запрос ΠΏΠΎΠΏΠ°Π» Π² сСрвис, ΠΌΡ‹ Π² любом случаС Π·Π°ΠΊΠ°Π· создадим. Π”Π°ΠΆΠ΅ Ссли ΡƒΠΏΠ°Π΄Π΅Ρ‚ сосСдний сСрвис, ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰ΠΈΠΉ Π·Π° ΠΊΠ°ΠΊΡƒΡŽ-Ρ‚ΠΎ Ρ‡Π°ΡΡ‚ΡŒ Ρ‚ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠ°Π³Ρ€Π΅Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ²Π°Π»ΠΈΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ – ΠΌΡ‹ Π½Π΅ потСряСм Π·Π°ΠΊΠ°Π·, Π΄Π°ΠΆΠ΅ Ссли ΠΌΡ‹ Π½Π΅ смоТСм Π² краткосрочном ΠΎΡ‚ΠΊΠ°Π·Π΅ процСссинга Π·Π°ΠΊΠ°Π·Π°, ΠΊΡƒΠ΄Π° ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ. Π­Ρ‚ΠΎ Ρ‚ΠΎΠΆΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠ΅Π², ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΡ‹ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅ΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, Π²Ρ‹Π½ΠΎΡΠΈΡ‚ΡŒ Π»ΠΈ Π»ΠΎΠ³ΠΈΠΊΡƒ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ сСрвис. Если сСрвис Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ свою Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΡ€ΠΈ нСдоступности ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… сСрвисов Π² сСти, Ρ‚ΠΎ Π»ΠΈΠ±ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π΅Π³ΠΎ ΠΏΠ΅Ρ€Π΅ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Π»ΠΈΠ±ΠΎ ΠΏΠΎΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΎ Ρ‚ΠΎΠΌ, стоит Π»ΠΈ Π΅Π³ΠΎ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π²Ρ‹Π½ΠΎΡΠΈΡ‚ΡŒ ΠΈΠ· ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π°.

Π“ΠΎ Π² Go!

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

Одной ΠΈΠ· основных Π½Π°ΡˆΠΈΡ… Π·Π°Π΄Π°Ρ‡ Π±Ρ‹Π»ΠΎ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΠ΅ устойчивости сСрвиса. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Go Π½Π΅ Π΄Π°Π΅Ρ‚ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ устойчивости просто β€œΠΈΠ· коробки”. Но, ΠΏΠΎ ΠΌΠΎΠ΅ΠΌΡƒ ΠΎΡ‰ΡƒΡ‰Π΅Π½ΠΈΡŽ, Π² экосистСмС Go оказалось ΠΏΡ€ΠΎΡ‰Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ вСсь Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ Reliability kit Π΄Π°ΠΆΠ΅ своими Ρ€ΡƒΠΊΠ°ΠΌΠΈ, Π½Π΅ прибСгая ΠΊ сторонним Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌ.

Π”Ρ€ΡƒΠ³ΠΎΠΉ Π²Π°ΠΆΠ½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡Π΅ΠΉ Π±Ρ‹Π»ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ систСмы. И Ρ‚ΡƒΡ‚ я ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎ ΠΌΠΎΠ³Ρƒ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ внСсСния Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹Ρ… бизнСсом ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ сильно выросла. Благодаря Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ Π½ΠΎΠ²Ρ‹Ρ… микросСрвисов Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ остаСтся ΠΎΠ΄ΠΈΠ½ Π½Π° ΠΎΠ΄ΠΈΠ½ с бизнСс-Ρ„ΠΈΡ‡Π΅ΠΉ, Π΅ΠΌΡƒ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹, ΡΠ»Π°Ρ‚ΡŒ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ΠΈ, ΠΏΡ€ΠΎΠ±Ρ€Π°ΡΡ‹Π²Π°Ρ‚ΡŒ трСйсинги, ΠΈ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ Π»ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. ΠœΡ‹ оставляСм для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ΠΈΠΌΠ΅Π½Π½ΠΎ прослойку написания бизнСс-Π»ΠΎΠ³ΠΈΠΊΠΈ, позволяя Π΅ΠΌΡƒ Π½Π΅ Π·Π°Π΄ΡƒΠΌΡ‹Π²Π°Ρ‚ΡŒΡΡ ΠΎΠ±ΠΎ всСй инфраструктурной обвязкС.

БобираСмся Π»ΠΈ ΠΌΡ‹ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΠ°Ρ‚ΡŒ всС Π½Π° Go ΠΈ ΠΎΡ‚ΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ РНР?

НСт, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΈΠ΄Π΅ΠΌ ΠΎΡ‚ бизнСс-потрСбностСй, ΠΈ Π΅ΡΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ контСксты, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… РНР ΠΎΡ‡Π΅Π½ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΎ лоТится β€” Ρ‚Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½Π° такая ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΈ вСсь Go-ΡˆΠ½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ инструмСнтов. Вся автоматизация ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΏΠΎ доставкС Π·Π°ΠΊΠ°Π·ΠΎΠ² ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡŽ фотостудиСй сдСлана Π½Π° PHP. Но, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² e-commerce ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ Π² customer side ΠΌΡ‹ ΠΏΠΎΡ‡Ρ‚ΠΈ всС пСрСписываСм Π½Π° Go, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Ρ‚Π°ΠΌ это ΠΎΠΏΡ€Π°Π²Π΄Π°Π½Π½ΠΎ.

Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΠΉΠ½Ρ‹Π΅ микросСрвисы с использованиСм RabbitMQ


ИспользованиС ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Ρ… шаблонов/ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ΠΎΠ² для общСния ΠΌΠ΅ΠΆΠ΄Ρƒ микросСрвисами ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространСнныС систСмныС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹. ΠœΡ‹ Π½Π°Ρ‡Π°Π»ΠΈ с прямых HTTP-Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² для всСх взаимодСйствий, Π½ΠΎ Ρ€Π΅ΡˆΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ событийной систСмС. Π­Ρ‚Π° систСма ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»Π° нашС ΠΌΡ‹ΡˆΠ»Π΅Π½ΠΈΠ΅ ΠΎ взаимодСйствии ΠΌΠ΅ΠΆΠ΄Ρƒ слуТбами, навязала ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹ ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ»Π° ΠΎΡ‚ΠΊΠ°Π·ΠΎΡƒΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²ΠΎΡΡ‚ΡŒ.


ΠœΡ‹ ΠΏΠ΅Ρ€Π΅ΡˆΠ»ΠΈ ΠΊ использованию событий вмСсто Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ HTTP-взаимодСйствия ΠΏΠΎ нСскольким ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ.


Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, это Π²Ρ‹Π½ΡƒΠ΄ΠΈΠ»ΠΎ ΠΊ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΡŽ сСрвисов. Из нашСго ΠΎΠΏΡ‹Ρ‚Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹ с HTTP, ΠΎΠ΄ΠΈΠ½ сСрвис ΠΌΠΎΠΆΠ΅Ρ‚ Π΄Π΅Π»Π°Ρ‚ΡŒ Π²Ρ‹Π·ΠΎΠ²Ρ‹ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ сСрвису, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΅ΠΌΡƒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ, ΠΈ это ΠΎΠ·Π½Π°Ρ‡Π°Π»ΠΎ, Ρ‡Ρ‚ΠΎ этому сСрвису Π½ΡƒΠΆΠ½Π° клиСнтская Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ сСрвиса, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΎΠ½ обращаСтся. ΠšΠ»ΠΈΠ΅Π½Ρ‚ΡΠΊΠ°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° обСспСчивала Π±Ρ‹ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ошибки Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ слуТбС.


Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ‹ Ρ€Π°Π·Ρ€ΠΎΡΠ»ΠΈΡΡŒ Π΄ΠΎ 20+ сСрвисов, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° клиСнтских Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ стала Π΄ΠΎΠ»Π³ΠΈΠΌ ΠΈ Ρ‚Ρ€ΡƒΠ΄ΠΎΡ‘ΠΌΠΊΠΈΠΌ процСссом. Для Π½ΠΎΠ²Ρ‹Ρ… сСрвисов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ замСняли ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»ΠΎΡΡŒ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ всСх зависимостСй. Π­Ρ‚ΠΎ сдСлало процСсс Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ Π²Ρ‹ΠΊΠ»Π°Π΄ΠΊΠΈ Π±ΠΎΠ»Π΅Π΅ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Π²Π΅Ρ€ΠΆΠ΅Π½Π½Ρ‹ΠΌ ошибкам ΠΈΠ·-Π·Π° мноТСства задСйствованных частСй.


Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, прСимущСство использования событий Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ сСрвисам большС Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, удаляя прямыС Π²Ρ‹Π·ΠΎΠ²Ρ‹ ΠΊ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌ. БСрвисы ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΡΠ²Π»ΡΡ‚ΡŒΡΡ ΠΈ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒΡΡ Π±Π΅Π· надобности ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ клиСнтскиС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈΠ»ΠΈ добавлСния Π½ΠΎΠ²ΠΎΠ³ΠΎ HTTP-Π²Ρ‹Π·ΠΎΠ²Π°. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ быстро Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏ прилоТСния, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΡΠ»ΡƒΡˆΠ°Π΅Ρ‚ события, Π½Π΅ бСспокоясь ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Ρ‚ ΠΊ падСнию всСй систСмы.


Π’-Ρ‚Ρ€Π΅Ρ‚ΡŒΠΈΡ…, это ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ Π½Π°ΠΌ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹. ΠœΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ограничСния скорости ΠΈ Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚Ρ‹ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π²ΠΎΡ€ΠΊΠ΅Ρ€Π°, Π±Π΅Π· нСобходимости ΠΈΡ… Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· Π½Π°ΡˆΠΈΡ… Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… клиСнтских Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ (GitHub, AWS, Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… сСрвисах ΠΈ Ρ‚. Π΄.). ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ с Π»Π΅Π³ΠΊΠΎΡΡ‚ΡŒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ АвтоматичСский Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ, ΠΎΡ‚Ρ€Π΅Π·Π°Π² ΡΠ»ΡƒΡˆΠ°Ρ‚Π΅Π»Ρ события, ΠΏΠΎΠΊΠ° ΠΎΠ½ Π½Π΅ восстановит свою Ρ€Π°Π±ΠΎΡ‚Ρƒ. НуТно ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ сам Π²ΠΎΡ€ΠΊΠ΅Ρ€, Π° Π½Π΅ всС прилоТСния/сСрвисы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ Π΅Π³ΠΎ.


И, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, Π½Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ http-соСдинСниС для Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΎΠΊ (ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ потСряно ΠΈΠ»ΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΎ Π² связи с большим количСством ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… сокСтов ΠΈ Ρ‚. Π΄.).


Бобытия ΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ


Π•ΡΡ‚ΡŒ Π΄Π²Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ Π½Π°ΡˆΡƒ систСму, ΡƒΠΏΡ€Π°Π²Π»ΡΠ΅ΠΌΡƒΡŽ событиями: события ΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ.


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


Π—Π°Π΄Π°Ρ‡ΠΈ β€” это дСйствия, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‚ состояниС. ЕдинствСнноС, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π·Π°Π΄Π°Ρ‡Ρƒ для Π΄Π°Π½Π½ΠΎΠ³ΠΎ прилоТСния — само ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, прилоТСния Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ состояниС Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Π°.


Π‘Ρ‚Ρ€ΠΎΠ³ΠΈΠ΅ соглашСния ΠΏΠΎ имСнованию ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ Π½Π°ΠΌ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ ΠΈ Ρ‡Π΅Ρ‚ΠΊΠΎΡΡ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° Π΄Π΅Π»ΠΎ Π΄ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Π΄ΠΎ имСнования события ΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ. Π—Π°Π΄Π°Ρ‡ΠΈ Π½Π°Ρ‡ΠΈΠ½Π°Π΅ΠΌ с названия прилоТСния, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ²Π΅Ρ€Π΅Π½Π½Ρ‹ΠΌΠΈ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ этим ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ. Π”Π°Π»Π΅Π΅ ΠΈΠ΄Π΅Ρ‚ модСль, Ρ‡ΡŒΠ΅ состояниС Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ Π·Π°Π΄Π°Ρ‡Π΅ΠΉ, ΠΈ заканчиваСтся ΠΎΠΏΠΈΡΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ Π³Π»Π°Π³ΠΎΠ»ΠΎΠΌ настоящСго Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π·Π°Π΄Π°Ρ‡ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ api.user.authorize. ΠžΠΏΠΈΡ€Π°ΡΡΡŒ Π½Π° соглашСниС, ΠΌΡ‹ Π·Π½Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ эта Π·Π°Π΄Π°Ρ‡Π° обрабатываСтся сСрвисом API, ΠΈ ΠΎΠ½ Ρ…ΠΎΡ‡Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΡŽ Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ.


Бобытия Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΈΠΌΠ΅Π½ΠΈ прилоТСния, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π½Π° Π½ΠΈΡ… ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ подписаны нСсколько ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Они Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с ΠΈΠΌΠ΅Π½ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ, Π° Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π³Π»Π°Π³ΠΎΠ»ΠΎΠΌ ΠΏΡ€ΠΎΡˆΠ΅Π΄ΡˆΠ΅Π³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ описываСт Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ события Π±ΡƒΠ΄Π΅Ρ‚ user.authorized.


НашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Ρ€Π°Π·Π±ΠΈΡ‚ΠΎΠ΅ Π½Π° Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈ события, заставило нас ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ способ ΠΌΡ‹ΡˆΠ»Π΅Π½ΠΈΡ. РаньшС, Ссли ΠΌΡ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ элСктронноС письмо послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ ΠΏΠ»Π°Ρ‚Π΅ΠΆ, ΠΌΡ‹ Π±Ρ‹ просто Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π²Ρ‹Π·ΠΎΠ² SendGrid Π² наш ΠΏΠ»Π°Ρ‚Π΅ΠΆΠ½Ρ‹ΠΉ сСрвис. ΠŸΡ€ΠΎΡΡ‚ΠΎ ΠΈ понятно.


Но Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ с нашСй Π½ΠΎΠ²ΠΎΠΉ событийной систСмой, наш ΠΏΠ»Π°Ρ‚Π΅ΠΆΠ½Ρ‹ΠΉ сСрвис Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ событиС org.payment.processed. Наш сСрвис элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹, Pheidi, Π·Π°Π±ΠΈΡ€Π°Π΅Ρ‚ это событиС ΠΈ создаСт Π·Π°Π΄Π°Ρ‡Ρƒ pheidi.email.send. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π΄ΡƒΠΌΠ°Ρ‚ΡŒ Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Ρ… Ρ€Π΅Π°ΠΊΡ†ΠΈΠΉ вмСсто ΠΊΠΎΠΌΠ°Π½Π΄. Если Π½ΡƒΠΆΠ½Ρ‹ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Π±Ρ‹Π»ΠΈ прСдоставлСны Π² событии (зарСгистрированноС имя Π½Π° ΠΊΡ€Π΅Π΄ΠΈΡ‚Π½ΠΎΠΉ ΠΊΠ°Ρ€Ρ‚Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€), ΠΌΡ‹ всС Π΅Ρ‰Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ http-Π²Ρ‹Π·ΠΎΠ²Ρ‹ Π² Π½Π°ΡˆΡƒ Π±ΠΈΠ»Π»ΠΈΠ½Π³ΠΎΠ²ΡƒΡŽ слуТбу.


Однако, Π΅ΡΡ‚ΡŒ ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ минусы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ вмСстС с плюсами событийно-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π²Ρ‹ явно Π½Π΅ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚Π΅ сСрвис, Π²Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π½Π°Ρ‚ΡŒ навСрняка ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠΌΠ΅Π½Π½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° Π²Ρ‹Π±Ρ€ΠΎΡˆΠ΅Π½Π½ΠΎΠ΅ событиС. Π­Ρ‚ΠΎ затрудняСт ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ систСма слоТнСС ΠΈ Ρ‚Ρ€ΡƒΠ΄Π½Π΅Π΅ для понимания.


РСализация


ΠœΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ RabbitMQ Π² качСствС систСмы ΠΎΠ±ΠΌΠ΅Π½Π° сообщСниями. Он ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° доставку событий Π΄ΠΎ сСрвисов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠ»ΡƒΡˆΠ°ΡŽΡ‚ ΠΈΡ…. Π—Π°Π΄Π°Ρ‡ΠΈ Ρ‚Π°ΠΊΠΆΠ΅ проходят Ρ‡Π΅Ρ€Π΅Π· RabbitMQ, Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ балансируя Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ ΠΌΠ΅ΠΆΠ΄Ρƒ нСсколькими экзСмплярами прилоТСния. ΠœΡ‹ Π²Ρ‹Π±Ρ€Π°Π»ΠΈ RabbitMQ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π±Ρ‹Π» прост Π² установкС ΠΈ Ρ€Π°Π·Π²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Π½ΠΈΠΈ ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ клиСнтский Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… ΠΊ использованию.


ΠœΡ‹ создали Π΅Π΄ΠΈΠ½Ρ‹ΠΉ шаблон Π²ΠΎΡ€ΠΊΠ΅Ρ€Π° для взаимодСйствия с RabbitMQ. Π’ΠΎΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π°ΡˆΠΈΡ… ΠΎΡ‡Π΅Ρ€Π΅Π΄Π΅ΠΉ.


Π­ΠΊΡΠΏΠΎΠ½Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ ΠΎΡ‚ΠΌΠ΅Π½Π°


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


Π˜Π·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ, ΠΌΡ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ количСство ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹Ρ… ΠΏΠΎΠΏΡ‹Ρ‚ΠΎΠΊ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π·Π°Π΄Π°Π½ΠΈΠ΅ Π±Ρ‹Π»ΠΎ бСсконСчным, думая, Ρ‡Ρ‚ΠΎ Ссли Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ «зависнСт», Ρ‚ΠΎ наши систСмы оповСщСния Π±ΡƒΠ΄ΡƒΡ‚ Π² Π°Π³ΠΎΠ½ΠΈΠΈ ΠΈ ΠΊΡ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΈΠ· нас ΠΏΠΎΠΉΠ΄Ρ‘Ρ‚ ΡΠΏΠ°ΡΠ°Ρ‚ΡŒ Π²ΠΎΠ·Π½ΠΈΠΊΡˆΡƒΡŽ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ. ΠŸΠΎΠ½Π°Ρ‡Π°Π»Ρƒ это Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠΎ, Π½ΠΎ ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ большС Π·Π°Π΄Π°Π½ΠΈΠΉ, количСство Β«Π·Π°ΡΡ‚Ρ€ΡΠ²ΡˆΠΈΡ…Β» Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ выросло ΠΏΠΎ Ρ€Π°Π·Π½Ρ‹ΠΌ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ.


ΠœΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€Π΅Π΄Π΅Π» ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΎΠ² ΠΈ Ѐункция восстановлСния


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


ΠŸΡ€Π΅Π΄Π²Ρ‹Π±ΠΎΡ€ΠΊΠΈ (Prefetch)


Prefetch β€” это Π²Π°ΠΆΠ½Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ выставляСтся Π½Π° ΠΊΠ°Π½Π°Π» RabbitMQ. Π‘Π΅Π· этого ваш Π²ΠΎΡ€ΠΊΠ΅Ρ€ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ всС доступныС задания Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ. НапримСр, Ссли вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ испытало всплСск Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈ Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ ΡƒΠΏΠ°Π»ΠΎ 10 000 Π·Π°Π΄Π°Π½ΠΈΠΉ, всС 10 000 Π·Π°Π΄Π°Π½ΠΈΠΉ Π±ΡƒΠ΄ΡƒΡ‚ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Ρ‹ Π²ΠΎΡ€ΠΊΠ΅Ρ€Ρƒ ΠΈ станут Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Π² памяти, Ρ‡Ρ‚ΠΎ, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΊΡ€Π°Ρ…Ρƒ. Prefetch ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ количСство Π·Π°Π΄Π°Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ваш Π²ΠΎΡ€ΠΊΠ΅Ρ€ Π±ΡƒΠ΄Π΅Ρ‚ Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π² памяти. Π­Ρ‚ΠΎΡ‚ пост Π² Π±Π»ΠΎΠ³Π΅ RabbitMQ ΠΏΠΎΠΌΠΎΠ³ Π½Π°ΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π»ΡƒΡ‡ΡˆΠΈΠΉ способ Π·Π°Π΄Π°Ρ‚ΡŒ prefetch.


ΠžΠ±ΠΌΠ΅Π½Ρ‹ ΠΈ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ


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


Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ Π’Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ


Одна Π²Π΅Ρ‰ΡŒ, которая ΠΏΠΎΠΌΠΎΠ³Π»Π° Π½Π°ΠΌ ΠΎΡ‚Π»Π°Π΄ΠΈΡ‚ΡŒ ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ самонаблюдСниС нашСй систСмы событий β€” ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ (TID). КаТдоС Π·Π°Π΄Π°Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΡ‹ посылаСм Π² RabbitMQ, начинаСтся с TID. Если это Π·Π°Π΄Π°Π½ΠΈΠ΅ Π±Ρ‹Π»ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ события ΠΈΠ»ΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ, Ρ‚ΠΎ ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ‚ΠΎΡ‚ ΠΆΠ΅ TID. Если Π·Π°Π΄Π°Π½ΠΈΠ΅ Π½Π΅ создаётся ΠΈΠ· события ΠΈΠ»ΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ, ΠΌΡ‹ создаём Π½ΠΎΠ²Ρ‹ΠΉ TID. Π­Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π½Π°ΠΌ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ события Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ ΠΊΠ°ΠΊΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ.


Π˜Ρ‚ΠΎΠ³


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

ΠŸΡ€ΠΎΡΡ‚ΠΎ ΠΎ микросСрвисах / Π‘Π»ΠΎΠ³ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Π Π°ΠΉΡ„Ρ„Π°ΠΉΠ·Π΅Π½Π±Π°Π½ΠΊ / Π₯Π°Π±Ρ€

ВступлСниС

Π§ΡƒΡ‚ΡŒ Π»ΠΈ Π½Π΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π²Ρ‚ΠΎΡ€ΠΎΠΉ, ΠΊΡ‚ΠΎ Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ сталкиваСтся с MSA (Micro Service Architecture), Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹Ρ… ΠΏΠΎΡ€Π°Ρ… восклицаСт: Β«Π”Π° я эти микросСрвисы Π΅Ρ‰Π΅ β€¦Π½Π°Π΄Ρ†Π°Ρ‚ΡŒ Π»Π΅Ρ‚ Π½Π°Π·Π°Π΄Β». ΠžΡ‚Ρ‡Π°ΡΡ‚ΠΈ ΠΎΠ½ΠΈ ΠΏΡ€Π°Π²Ρ‹. И я Ρ‚ΠΎΠΆΠ΅ Π±Ρ‹Π» ΠΈΠ· этой самой ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρ‹, ΠΈ Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π» β€” ΠΏΠΎΡ‡Π΅ΠΌΡƒ Ρ‚Π°ΠΊΠΎΠΉ ΡˆΡƒΠΌ?

Π’ самом Π΄Π΅Π»Π΅! Π’Π΅Π΄ΡŒ MSA β€” это Ρ‚ΠΎΠΆΠ΅ ΠΏΡ€ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ софта. КакиС здСсь ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π΅Π²ΠΎΠ»ΡŽΡ†ΠΈΠΈ? ВсС ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠΈ Π·Π½Π°ΠΊΠΎΠΌΡ‹. Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… мСстах ΠΌΠΎΠΆΠ½ΠΎ Π΄Π°ΠΆΠ΅ ΡƒΠ΄ΠΈΠ²ΠΈΡ‚ΡŒΡΡ: «А Ρ€Π°Π·Π²Π΅ Π±Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠΎ-Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒΒ»? Π€Π°Π½Π°Ρ‚Ρ‹ Agile ΠΈ DevOps Ρ‚ΠΎΠΆΠ΅ скаТут, Ρ‡Ρ‚ΠΎ это всё нашС, Ρ€ΠΎΠ΄Π½ΠΎΠ΅.

Но всё ΠΆΠ΅ ΠΏΡ€ΠΎΡˆΡƒ вас Π½Π°Π±Ρ€Π°Ρ‚ΡŒΡΡ тСрпСния ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ дальшС.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ микросСрвисная Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° (MSA)

Если ΠΏΠ΅Ρ€Π΅Ρ„Ρ€Π°Π·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π’ΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΡŽ, Ρ‚ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ микросСрвисной Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠΌ:

MSA β€” ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½Π°Ρ организация распрСдСлСнной систСмы Π½Π° основС микросСрвисов ΠΈ ΠΈΡ… взаимодСйствия Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ ΠΈ со срСдой ΠΏΠΎ сСти, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ², Π½Π°ΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹, Π΅Ρ‘ созданиС ΠΈ ΡΠ²ΠΎΠ»ΡŽΡ†ΠΈΡŽ.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ микросСрвис (MS)

Π‘ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΎΠΉ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π»ΠΈΡΡŒ быстро. Π‘ микросСрвисами Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅.

ΠŸΠΎΠ½ΡΡ‚ΡŒ ΡΡƒΡ‚ΡŒ микросСрвиса ΠΏΡ€ΠΎΡ‰Π΅ всСго Π½Π° сравнСнии, ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ противопоставлСнии Π΅Π³ΠΎ ΠΊΡ€ΡƒΠΏΠ½ΠΎΠΌΡƒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ β€” ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Ρƒ. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΈ ΠΎΡ‚ MSA, я Π½Π΅ Π±ΡƒΠ΄Ρƒ Π΄Π°Π²Π°Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ микросСрвису, Π° ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΡŽ Π΅Π³ΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½Ρ‹Π΅ характСристики.

А дальшС ΠΌΡ‹ рассмотрим ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ΠΈΠ· Π½ΠΈΡ… ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅.

Π― Π²Ρ‹Π΄Π΅Π»ΠΈΠ» восСмь свойств микросСрвиса:

  1. Он нСбольшой.
  2. Он нСзависимый.
  3. Он строится Π²ΠΎΠΊΡ€ΡƒΠ³ бизнСс-потрСбности ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΉ контСкст (Bounded Context).
  4. Он взаимодСйствуСт с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ микросСрвисами ΠΏΠΎ сСти Π½Π° основС ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Π° Smart endpoints and dumb pipes.
  5. Π•Π³ΠΎ распрСдСлСнная ΡΡƒΡ‚ΡŒ обязываСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Design for failure.
  6. ЦСнтрализация ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π° свСрху Π½Π° ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΠ΅.
  7. ΠŸΡ€ΠΎΡ†Π΅ΡΡΡ‹ Π΅Π³ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ.
  8. Π•Π³ΠΎ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ΅.

Π£ΠΆΠ΅ Π½Π° этом мСстС Ρ‚Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ якобы создавали микросСрвисы Π² доисторичСскиС Π²Ρ€Π΅ΠΌΠ΅Π½Π°, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π·Π°Π΄ΡƒΠΌΠ°Ρ‚ΡŒΡΡ, Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π»ΠΈ всё Π±Ρ‹Π»ΠΎ Ρ‚Π°ΠΊ продвинуто… Π›ΠΈΡ‡Π½ΠΎ я Π½Π° этой стадии ΠΏΠ΅Ρ€Π΅ΡˆΠ΅Π» Π² разряд ΡΠΎΠΌΠ½Π΅Π²Π°ΡŽΡ‰ΠΈΡ…ΡΡ.

НСбольшой

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ «нСбольшой»? Вакая малоинформативная Ρ„ΠΎΡ€ΠΌΡƒΠ»ΠΈΡ€ΠΎΠ²ΠΊΠ°! На самом Π΄Π΅Π»Π΅, ΠΏΠΎ-Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ Π½Π΅ скаТСшь. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒΡΡ с Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ. Π›ΡƒΡ‡ΡˆΠ΅ всСго Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅. Π’ качСствС ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΎΡ†Π΅Π½ΠΎΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π½Π° Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ экспСртов. Π Π°Π·ΠΌΠ΅Ρ€ микровСрвиса Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ»ΠΎΡΡŒ ΠΎΠ΄Π½ΠΎ ΠΈΠ· условий:

  1. Один сСрвис ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ΡŒ ΠΎΠ΄Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π½Π΅ Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ ΠΈΠ· Π΄ΡŽΠΆΠΈΠ½Ρ‹ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ.
  2. Команда ΠΈΠ· ΠΏΠΎΠ»ΡƒΠ΄ΡŽΠΆΠΈΠ½Ρ‹ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π΄ΡŽΠΆΠΈΠ½Ρ‹ сСрвисов.
  3. ΠšΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚ (Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ бизнСса, Π½ΠΎ ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ) ΠΎΠ΄Π½ΠΎΠ³ΠΎ сСрвиса помСщаСтся Π² Π³ΠΎΠ»ΠΎΠ²Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ°.
  4. Один сСрвис ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ пСрСписан ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Π·Π° ΠΎΠ΄Π½Ρƒ Agile-ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΡŽ.

НСзависимый

ΠœΠΈΠΊΡ€ΠΎΡΠ΅Ρ€Π²ΠΈΡΠ½Π°Ρ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° β€” Π²ΠΎΠΏΠ»ΠΎΡ‰Π΅Π½ΠΈΠ΅ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ΠΎΠ² High Cohesion ΠΈ Low Coupling. Всё, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΡ€Π΅Ρ‡ΠΈΡ‚ этому, отвСргаСтся бСспощадно. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΆΠ΄ΡƒΡ‚ большиС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ микросСрвис обязан Π±Ρ‹Ρ‚ΡŒ нСзависимым ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ.

Π—Π΄Π΅ΡΡŒ ΠΏΠΎΠΏΡ€ΠΎΡˆΡƒ вас Π½Π΅ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒ Ρ…ΠΎΠ»ΠΈΠ²Π°Ρ€ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΆΠ΅ Ρ‚Π°ΠΊΠΎΠ΅ Β«ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Β». Π”Π°Π²Π°ΠΉΡ‚Π΅ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… этой ΡΡ‚Π°Ρ‚ΡŒΠΈ сойдСмся Π½Π° Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ β€” это Π΅Π΄ΠΈΠ½ΠΈΡ†Π° ПО, ΠΊΠΎΠ΄ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ нСзависимо Π·Π°ΠΌΠ΅Π½Π΅Π½ ΠΈΠ»ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½.

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ любая ΠΌΠ°Π»ΠΎ-мальски ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΠΈΡˆΠ΅Ρ‚ΡΡ с Ρ€Π°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ΠΌ Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅, бСзусловно, ΠΎΡΠ½ΠΎΠ²Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π½Π° Ρ‚Π΅Ρ… ΠΆΠ΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ°Ρ…. Но Π² ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π΅ общая кодовая Π±Π°Π·Π° ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ возмоТности для Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΡ Π½ΠΈΠ·ΠΊΠΎΠΉ связанности. И ΠΏΡ€ΠΈ слабой дисциплинС Ρ€Π°Π½ΠΎ ΠΈΠ»ΠΈ ΠΏΠΎΠ·Π΄Π½ΠΎ ΠΊΠΎΠ΄ прСвращаСтся Π² спагСтти.

Под Ρ‚Π°ΠΊΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒΠ»ΠΈΡ€ΠΎΠ²ΠΊΡƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° подходят ΠΈ сторонниС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. Π—Π΄Π΅ΡΡŒ слоТнСС с Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠ΅ΠΌ Π³Ρ€Π°Π½ΠΈΡ† ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΌΠΈ связями, Π½ΠΎ Π½Π΅ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎ.

Π’ Ρ‚ΠΎ ΠΆΠ΅ врСмя мСтодология разбиСния Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ микросСрвисы Π²Ρ‹Π½ΡƒΠΆΠ΄Π°Π΅Ρ‚ ΠΏΡ€ΠΈΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ ТСсткого ΠΈΡ… раздСлСния, вСдь ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΡ‚Π²Π΅Ρ‡Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ТСстким критСриям нСзависимости.

Π’Π°ΠΊ, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ микросСрвис Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² своСм процСссС ΠΈ поэтому Π΄ΠΎΠ»ΠΆΠ΅Π½ явно ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡ΠΈΡ‚ΡŒ свой API. Учитывая, Ρ‡Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ этот API, ΠΈ ΠΊ Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ ΠΎΠ½ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ, минимизация связСй становится ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎ Π²Π°ΠΆΠ½ΠΎΠΉ.

Π’Π°ΠΊΠΎΠ΅ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π΄Π°Π΅Ρ‚ явный Π²Ρ‹ΠΈΠ³Ρ€Ρ‹Ρˆ с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния нСзависимого развития Ρ€Π°Π·Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ². И с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ этого Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ языки вводят конструкции, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ явноС созданиС нСзависимых ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π² Java 9), ΠΈ это пСрСстаСт Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€Π΅Ρ€ΠΎΠ³Π°Ρ‚ΠΈΠ²ΠΎΠΉ микросСрвисного ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°.

НС Ρ…ΠΎΡ‡Ρƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ создалось Π²ΠΏΠ΅Ρ‡Π°Ρ‚Π»Π΅Π½ΠΈΠ΅, Π±ΡƒΠ΄Ρ‚ΠΎ Π² микросСрвисной Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½ΠΎ использованиС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ. Π˜Ρ… использованиС Π½Π΅ привСтствуСтся, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ‚Π°ΠΊ ΠΈΠ»ΠΈ ΠΈΠ½Π°Ρ‡Π΅ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ зависимостям ΠΌΠ΅ΠΆΠ΄Ρƒ микросСрвисами, Π½ΠΎ всё ΠΆΠ΅ допускаСтся. Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, это Π΄ΠΎΠΏΡƒΡ‰Π΅Π½ΠΈΠ΅ распространяСтся Π½Π° инфраструктурныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²Ρ€ΠΎΠ΄Π΅ логирования, Π²Ρ‹Π·ΠΎΠ²Π° ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ API, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ошибок ΠΈ Ρ‚ΠΎΠΌΡƒ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ.

ΠΠ΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ микросСрвисов позволяСт ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ нСзависимый ΠΆΠΈΠ·Π½Π΅Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ сборки, Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ.

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ€Π°Π·ΠΌΠ΅Ρ€ микросСрвисов Π½Π΅Π²Π΅Π»ΠΈΠΊ, Ρ‚ΠΎ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ Π² ΠΊΡ€ΡƒΠΏΠ½Ρ‹Ρ… систСмах ΠΈΡ… Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅ΠΌΠ°Π»ΠΎ. Π£ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΈΠΌΠΈ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Π±ΡƒΠ΄Π΅Ρ‚ слоТно. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΊΠΎΠΌΠ°Π½Π΄Π° обязана ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΏΡ€ΠΈΠ΅ΠΌΠ»Π΅ΠΌΡ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ согласно Continuous integration ΠΈ Continuous Delivery.

Π“Π΄Π΅ ΠΆΠ΅ микросСрвис (бизнСс-ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎΡΡ‚ΡŒ)

Π˜Ρ‚Π°ΠΊ, Π²Ρ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ ΡΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ микросСрвис.

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π΅Π³ΠΎ Π³Ρ€Π°Π½ΠΈΡ† β€” самый Π²Π°ΠΆΠ½Ρ‹ΠΉ шаг. ΠžΡ‚ этого Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π²ΠΈΡΠ΅Ρ‚ΡŒ вся дальнСйшая Тизнь микросСрвиса, ΠΈ это ΡΠ΅Ρ€ΡŒΡ‘Π·Π½ΠΎ повлияСт Π½Π° Тизнь ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰Π΅ΠΉ Π·Π° Π½Π΅Π³ΠΎ.

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

Когда Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ микросСрвиса Π·Π°Π΄Π°Π½Ρ‹ ΠΈ ΠΎΠ½ Π²Ρ‹Π΄Π΅Π»Π΅Π½ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΊΠΎΠ΄ΠΎΠ²ΡƒΡŽ Π±Π°Π·Ρƒ, Π·Π°Ρ‰ΠΈΡ‚ΠΈΡ‚ΡŒ эти Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ ΠΎΡ‚ постороннСго влияния Π½Π΅ составляСт Ρ‚Ρ€ΡƒΠ΄Π°. Π”Π°Π»Π΅Π΅ Π²Π½ΡƒΡ‚Ρ€ΠΈ микросСрвиса ΡΠΎΠ·Π΄Π°ΡŽΡ‚ свой ΠΌΠΈΠΊΡ€ΠΎΠΌΠΈΡ€, ΠΎΠΏΠΈΡ€Π°ΡΡΡŒ Π½Π° ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ Β«ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ контСкста». Π’ микросСрвисС для любого ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, для любого дСйствия ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ своя интСрпрСтация, отличная ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… контСкстов.

Но Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, Ссли Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ оказались Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌΠΈ? Π’ этом случаС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π² Π½ΠΎΠ²ΠΎΠΌ микросСрвисС Π²Π΅Π΄Π΅Ρ‚ ΠΊ измСнСнию Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… микросСрвисах. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Β«ΠΏΠΎΠΏΠ»Ρ‹Π²ΡƒΡ‚Β» интСрфСйсы всСх зависимых микросСрвисов, Π° Π·Π° Π½ΠΈΠΌΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ тСсты. И всё прСвращаСтся Π² снСТный ΠΊΠΎΠΌ. А Ссли эти микросСрвисы Π΅Ρ‰Ρ‘ ΠΈ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‚ Ρ€Π°Π·Π½Ρ‹ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ, Ρ‚ΠΎ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ ΠΌΠ΅ΠΆΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹Π΅ встрСчи, согласования ΠΈ Ρ‚ΠΎΠΌΡƒ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ микросСрвиса β€” это основа Π·Π΄ΠΎΡ€ΠΎΠ²ΠΎΠΉ микросСрвисной Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ошибки ΠΏΡ€ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ Π³Ρ€Π°Π½ΠΈΡ†, Π½ΡƒΠΆΠ½ΠΎ Π²Π½Π°Ρ‡Π°Π»Π΅ ΠΈΡ… ΠΏΡ€ΠΎΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΎΠΏΡ€Π°Π²Π΄Π°Π½Π½Ρ‹ΠΌ являСтся ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Monolith First, ΠΊΠΎΠ³Π΄Π° Π²Π½Π°Ρ‡Π°Π»Π΅ систСму Ρ€Π°Π·Π²ΠΈΠ²Π°ΡŽΡ‚ Π² Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎΠΉ ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΠ΅, Π° ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ ΡƒΡΡ‚ΠΎΡΠ²ΡˆΠΈΠ΅ΡΡ области, ΠΈΡ… Π²Ρ‹Π΄Π΅Π»ΡΡŽΡ‚ Π² микросСрвисы. Но всё Ρ‚Π΅Ρ‡Π΅Ρ‚ ΠΈ мСняСтся. И Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ Ρ‚ΠΎΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ. Π“Π»Π°Π²Π½ΠΎΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΈΠ³Ρ€Ρ‹Ρˆ ΠΎΡ‚ разбиСния ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π» слоТности пСрСсмотра этих Π³Ρ€Π°Π½ΠΈΡ†. Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ постСпСнному Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Π½Π°Π±ΠΎΡ€Π° микросСрвисов ΠΏΠΎΡ…ΠΎΠΆ Π½Π° ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ΅ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ΅ Π² Agile, Π΅Ρ‰Ρ‘ Π΅Π³ΠΎ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ Β«ΡΠ²ΠΎΠ»ΡŽΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌΒ» (Evolutionary Design).

Π•ΡΡ‚ΡŒ Π΅Ρ‰Ρ‘ ΠΎΠ΄Π½ΠΎ интСрСсноС слСдствиС создания микросСрвисов, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ Π·Π°ΠΊΠΎΠ½Ρƒ КонвСя (Conwey Law).

Если организация ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Ρ‚ΠΎ ΠΎΠ½ΠΎ Π½Π°Ρ€ΡƒΡˆΠ°Π΅Ρ‚ соотвСтствиС структурС ΠΈ коммуникациям Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ. А ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² строятся Π²ΠΎΠΊΡ€ΡƒΠ³ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½Ρ‹Ρ… слоСв ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π°: UI, сСрвСрная Π»ΠΎΠ³ΠΈΠΊΠ°, Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ….

ΠœΠΈΠΊΡ€ΠΎΡΠ΅Ρ€Π²ΠΈΡΠ½Π°Ρ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ IT ΠΈ бизнСс Π² Π³Π°Ρ€ΠΌΠΎΠ½ΠΈΡŽ, с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния КонвСя. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ микросСрвисы Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π²ΠΎΠΊΡ€ΡƒΠ³ бизнСс-потрСбностСй ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… бизнСс-ΠΏΠΎΠ΄Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠΉ, Ρ‚ΠΎ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° прСдприятия Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡ‚ΡŒ оргструктуру ΠΈ ΠΊΠ°Π½Π°Π»Ρ‹ ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΈ бизнСс-ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΈ. А ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ становятся ΠΊΡ€ΠΎΡΡΡ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π²ΠΎΠΊΡ€ΡƒΠ³ этих бизнСс-потрСбностСй / бизнСс-ΠΏΠΎΠ΄Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠΉ.

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

Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ. Smart endpoints and dumb pipes

Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ микросСрвисов обходится Π±Π΅Π· ESB, ΠΊΠ°ΠΊ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ Π·Π²Π΅Π½Π°. НавСрноС, ΠΊΠΎΠΌΡŒΡŽΠ½ΠΈΡ‚ΠΈ ΡƒΠΆΠ΅ Π½Π°Ρ‚Π΅Ρ€ΠΏΠ΅Π»ΠΎΡΡŒ ΠΎΡ‚ Π½Π΅ΡƒΠ΄Π°Ρ‡Π½Ρ‹Ρ… Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ этого ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°. Π’ΠΎ, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΈ ΠΈ ΡƒΠ΄Π°Ρ‡Π½Ρ‹Π΅ β€” Π½Π΅ принимаСтся Π² расчСт. Π’ΠΏΡ€ΠΎΡ‡Π΅ΠΌ, ESB Π΅Ρ‰Ρ‘ ΠΈ ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΡ€Π΅Ρ‡ΠΈΡ‚ Ρ‚Π°ΠΊΠΈΠΌ критСриям ΠΊΠ°ΠΊ дСцСнтрализация ΠΈ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ распрСдСляСтся с Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π·Π²Π΅Π½Π° Π² Π²ΠΈΠ΄Π΅ ESB нСпосрСдствСнно Π½Π° ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹: Β«ΡƒΠΌΠ½Ρ‹Π΅ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈΒ».

Для ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ простыС тСкстовыС ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρ‹, основанныС Π½Π° HTTP, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½ΠΈΠ²Π΅Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡƒΡŽ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Ρ€Π°Π·Π½ΠΎΡΡ‚ΡŒ микросСрвисов. REST-ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρ‹ ΡΠ²Π»ΡΡŽΡ‚ΡΡ практичСски стандартом. Как ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρ‹ Ρ‚ΠΈΠΏΠ° Java RMI ΠΈΠ»ΠΈ .NET Remoting.

Π—Π΄Π΅ΡΡŒ Π΅ΡΡ‚ΡŒ Π΄ΠΈΠ»Π΅ΠΌΠΌΠ°. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρ‹ Π³ΠΎΡ€Π°Π·Π΄ΠΎ эффСктивнСС. Но, Π²ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ тСхнологичСскиС ограничСния. Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, Π½Π° Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Ρ… ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°Ρ… слоТнСС Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ шаблон Tolerant Reader, сохраняя ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ. Π’-Ρ‚Ρ€Π΅Ρ‚ΡŒΠΈΡ…, ΠΎΠΏΡΡ‚ΡŒ появляСтся Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€Π° ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»Π΅ΠΉ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΈ ΠΎΠΏΠ΅Ρ€ΠΈΡ€ΡƒΡŽΡ‚ ΠΎΠ΄Π½ΠΈΠΌΠΈ ΠΈ Ρ‚Π΅ΠΌΠΈ ΠΆΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ связаны ΠΏΠΎ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Π΅.

Другая ΠΎΡ‚Π»ΠΈΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ Ρ‡Π΅Ρ€Ρ‚Π° взаимодСйствия микросСрвисов β€” синхронныС Π²Ρ‹Π·ΠΎΠ²Ρ‹ Π½Π΅ ΠΏΡ€ΠΈΠ²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ΡΡ. РСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ синхронный Π²Ρ‹Π·ΠΎΠ² Π½Π° ΠΎΠ΄ΠΈΠ½ запрос ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, ΠΈΠ»ΠΈ Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΎΡ‚ΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ синхронных Π²Ρ‹Π·ΠΎΠ²ΠΎΠ².

И Π΅Ρ‰Π΅ ΠΏΠ°Ρ€Π° Π·Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠΉ.

  1. Основной ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ разбиСния ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π° Π½Π° микросСрвисы являСтся Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈΡ… Π³Ρ€Π°Π½ΠΈΡ†. Они ΡƒΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΈ ΡƒΡΡ‚ΠΎΡΡ‚ΡŒΡΡ. Π‘Π»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ Π²Ρ‹Π·ΠΎΠ²Ρ‹ становятся ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΌΠΈ. А это влияСт Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡŽ Π²Ρ‹Π·ΠΎΠ²ΠΎΠ², Π½ΠΎ ΠΈ Π½Π° ΡΡ‚ΠΈΠ»ΡŒ взаимодСйствия, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ частыС Π²Ρ‹Π·ΠΎΠ²Ρ‹ ΡƒΠΆΠ΅ Π½Π΅ подходят. Π‘ΠΊΠΎΡ€Π΅Π΅ всСго, Π½Π°Π΄ΠΎ ΠΏΠ΅Ρ€Π΅ΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ сам API, Π΄Π΅Π»Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΊΡ€ΡƒΠΏΠ½Ρ‹ΠΌ, Π°, ΠΊΠ°ΠΊ слСдствиС, ΠΏΠ΅Ρ€Π΅ΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΡƒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ².
  2. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ асинхронноС событийноС взаимодСйствиС β€” практичСски стандарт Π² микросСрвисной Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅, Ρ‚ΠΎ Π½Π°Π΄ΠΎ Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚ΡŒΡΡ Π² создании событийной Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ (Event Driven Architecture), Π° сами микросСрвисы Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ трСбованиям Reactive.

Design for failure для распрСдСлСнной систСмы

Одно ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½Ρ‹Ρ… мСст Π² микросСрвисной Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ β€” Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ для распрСдСлСнной систСмы, составныС элСмСнты ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‡Π΅Ρ€Π΅Π· ΡΠ΅Ρ‚ΡŒ.

А ΡΠ΅Ρ‚ΡŒ Π½Π΅Π½Π°Π΄Π΅ΠΆΠ½Π° ΠΏΠΎ своСй ΠΏΡ€ΠΈΡ€ΠΎΠ΄Π΅. Π‘Π΅Ρ‚ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ просто ΠΎΡ‚ΠΊΠ°Π·Π°Ρ‚ΡŒ, ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΠ»ΠΎΡ…ΠΎ, ΠΌΠΎΠΆΠ΅Ρ‚ Π²Π΄Ρ€ΡƒΠ³ ΠΏΠ΅Ρ€Π΅ΡΡ‚Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ Ρ‚ΠΈΠΏ сообщСний, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ измСнились настройки Ρ„Π°ΠΉΡ€Π²ΠΎΠ»Π°. ДСсятки ΠΏΡ€ΠΈΡ‡ΠΈΠ½ ΠΈ Π²ΠΈΠ΄ΠΎΠ² нСдоступности.

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ микросСрвисы ΠΌΠΎΠ³ΡƒΡ‚ Π²Π΄Ρ€ΡƒΠ³ ΠΏΠ΅Ρ€Π΅ΡΡ‚Π°Ρ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‡Π°Ρ‚ΡŒ, ΠΌΠΎΠ³ΡƒΡ‚ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‡Π°Ρ‚ΡŒ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅, Ρ‡Π΅ΠΌ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ. И ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Π²Ρ‹Π·ΠΎΠ² Π΄ΠΎΠ»ΠΆΠ΅Π½ это ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ. Π”ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ ΠΎΡ‚ΠΊΠ°Π·Π°, ΡƒΠΌΠ΅Ρ‚ΡŒ ΠΆΠ΄Π°Ρ‚ΡŒ, ΡƒΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΏΡ€ΠΈ восстановлСнии ΠΊΠΎΠ½Ρ‚Ρ€Π°Π³Π΅Π½Ρ‚Π°.

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ слоТности привносит событийная Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°. А ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ Ρ‚Π°ΠΊΠΎΠΉ систСмы β€” Π½Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ микросСрвиса, Π° систСмы, Π³Π΄Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² Ρ€Π°Π·Π½ΠΎΠ½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹Ρ… нСупорядочСнных событий β€” Π΄Π°ΠΆΠ΅ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ. И Π΄Π°ΠΆΠ΅ Ссли ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· микросСрвисов Π±ΡƒΠ΄Π΅Ρ‚ Π±Π΅Π·ΡƒΠΏΡ€Π΅Ρ‡Π΅Π½ с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния бизнСс-Π»ΠΎΠ³ΠΈΠΊΠΈ, этого ΠΌΠ°Π»ΠΎ. По Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ со спортом, Β«Π·Π²Ρ‘Π·Π΄Ρ‹Β» Π½Π΅ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ Π·Π²Π΅Π·Π΄Π½ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, вСдь Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Π²Π°ΠΆΠ½Π΅Π΅ Π½Π΅ Β«Π·Π²Π΅Π·Π΄Ρ‹Β», Π° ΡΠ»Π°ΠΆΠ΅Π½Π½ΠΎΡΡ‚ΡŒ всСх Π΅Ρ‘ ΠΈΠ³Ρ€ΠΎΠΊΠΎΠ².

И ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΈΡ… систСм ΠΎΡ‡Π΅Π½ΡŒ высока, Ρ‚ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ Ρ€Π΅ΡˆΠ°ΡŽΡ‚ Ρ‚Π°ΠΊ.

  • НС доводят систСму Π΄ΠΎ состояния Β«Π±Π΅Π· сучка Π±Π΅Π· Π·Π°Π΄ΠΎΡ€ΠΈΠ½ΠΊΠΈΒ». Π­Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ Π΄ΠΎΡ€ΠΎΠ³ΠΎ. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, это Π½Π΅ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ систСма валится ΠΎΡ‚ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ дуновСния. Она просто ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΌ Π½Π΅Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌ трСбованиям. Но Π² Π½Π΅ΠΉ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ошибки, Π½Π΅Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²Π»ΠΈΡΡŽΡ‰ΠΈΠ΅ Π½Π° Π΅Π΅ ΡƒΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²ΠΎΡΡ‚ΡŒ ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ.
  • Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны Π²ΠΊΠ»Π°Π΄Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π² инфраструктуру, которая ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ быстрСС ΡƒΡΡ‚Ρ€Π°Π½ΡΡ‚ΡŒ Π½Π΅ΡˆΡ‚Π°Ρ‚Π½Ρ‹Π΅ ситуации. Π”ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΠ΅ ΠΏΠΎΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ ΠΊΠΎΠ΄Π° unit тСстами, ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌΠΈ ΠΈ тСстами ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Π”ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π΅Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠ΅ мСста, Π½ΠΎ ΠΈ сигнализируСт ΠΎΠ± ΡƒΡ…ΡƒΠ΄ΡˆΠ΅Π½ΠΈΠΈ состояния систСмы с ΠΏΡ€ΠΎΠ³Π½ΠΎΠ·ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… сбоСв. Π”ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚ΠΎΠ΅ распрСдСлСнноС Π»ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ расслСдования. И часто ΠΏΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌ ΠΈΡΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ скрытыС ошибки.

Всё это ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΈ Π»ΡŽΠ±ΠΎΠΌΡƒ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Ρƒ, Π½ΠΎ для микросСрвисов такая инфраструктура β€” вопрос ΠΆΠΈΠ·Π½ΠΈ ΠΈ смСрти.

ДСцСнтрализация Π΄Π°Π½Π½Ρ‹Ρ…

Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π²Π°ΠΆΠ½Π΅ΠΉΡˆΠΈΡ… элСмСнтов Π² ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΠ΅ микросСрвисов.

ΠšΠ°ΠΆΠ΄ΠΎΠΌΡƒ микросСрвису ΠΏΠΎ своСй Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…!

Π›ΠΎΠ·ΡƒΠ½Π³ популиста Π½Π° Π²Ρ‹Π±ΠΎΡ€Π°Ρ….

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

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

Π’ микросСрвисной Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ это Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ Π³ΠΈΠ»ΡŒΠΎΡ‚ΠΈΠ½ΠΎΠΉ. ΠžΠ±Ρ‰Π΅ΠΉ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… просто Π½Π΅Ρ‚.

Помимо изолированности Π΅ΡΡ‚ΡŒ ΠΈ ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹Π΅ ΠΏΠ»ΡŽΡΡ‹. НапримСр, Π»Π΅Π³Ρ‡Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Polyglot Persistence, ΠΊΠΎΠ³Π΄Π° Π±Π°Π·Π° подбираСтся ΠΏΠΎΠ΄ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ Ρ†Π΅Π»ΠΈ. Ничто Π½Π΅ ΠΌΠ΅ΡˆΠ°Π΅Ρ‚ Π΄Π΅Π»Π°Ρ‚ΡŒ это ΠΈ Π±Π΅Π· микросСрвисов, ΠΈ Ρ‚Π°ΠΊ часто Π΄Π΅Π»Π°ΡŽΡ‚. Но всё ΠΆΠ΅ Π² ΠΎΠ΄Π½ΠΎΠΌ случаС это Π·Π°ΠΊΠΎΠ½, Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ β€” ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅.

Π£ этой ΠΌΠ΅Π΄Π°Π»ΠΈ Π΅ΡΡ‚ΡŒ оборотная сторона. Много Π±Π°Π·, ΠΌΠ½ΠΎΠ³ΠΎ контСкстов, ΠΊΠ°ΠΊ ΠΈΡ… всС ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Ρ‚ΡŒ? Бтарая Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ° распрСдСлСнных Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ слоТна ΠΈ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ Π½ΠΈΠ·ΠΊΠΎΠΉ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ это ΠΈΠ½ΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΆΠΈΡ‚ΡŒ. А Π²ΠΎΡ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ синхронного взаимодСйствия Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… микросСрвисов Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ, ΠΈ это Π½Π΅ ΠΏΠΎΠ±ΠΎΡ€ΠΎΡ‚ΡŒ.

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ Π½Π΅Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎ для ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π°: ΠΎΡ‚ΠΊΠ°Π·ΠΎΠΌ ΠΎΡ‚ постоянной согласованности Π΄Π°Π½Π½Ρ‹Ρ…. Π”ΠΎΠ±Ρ€ΠΎ ΠΏΠΎΠΆΠ°Π»ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΌΠΈΡ€ Eventual consistency. На ΠΏΠ΅Ρ€Π²Ρ‹Ρ… ΠΏΠΎΡ€Π°Ρ… это Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Π²ΠΎΠ»Π½Ρƒ «справСдливого» Π³Π½Π΅Π²Π°. Но Ссли Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ, Ρ‚ΠΎ Π½ΡƒΠΆΠ½Π° Π»ΠΈ повсСмСстно нСмСдлСнная ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ? ΠŸΡ€ΠΈ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎΠΌ рассмотрСнии Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ случаСв ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚Π±Ρ€ΠΎΡΠΈΡ‚ΡŒ. Π“Π΄Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π·Π°ΠΌΠ΅Π½ΡΡŽΡ‚ ΠΎΠ΄Π½Ρƒ Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΡƒΡŽ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΡŽ сСриСй Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… с компСнсационными ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ°ΠΌΠΈ. Π“Π΄Π΅-Ρ‚ΠΎ мирятся с Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π½Π΅ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒΡŽ. А Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ошибки Π»ΠΈΠ±ΠΎ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ Π·Π° счСт Π±ΠΎΠ»Π΅Π΅ слоТной Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹, Π»ΠΈΠ±ΠΎ благодаря Π΄Π°Π½Π½Ρ‹ΠΌ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°. Если Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ получаСтся, Ρ‚ΠΎ Π² особо ΡΠΊΡΡ‚Ρ€Π΅ΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… случаях всё ΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ распрСдСлСнныС Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ. Но это, с ΠΌΠΎΠ΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния, Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ² MSA.

ΠœΠΎΠ½ΠΎΠ»ΠΈΡ‚ ΠΏΡ€ΠΎΡ‚ΠΈΠ² микросСрвисов

ΠœΠΈΠΊΡ€ΠΎΡΠ΅Ρ€Π²ΠΈΡΠ½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ нСсСт довольно ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ. Π˜Ρ… Π½Π°ΠΉΡ‚ΠΈ Π½Π΅ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΠΈ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡƒΠΏΡ€Π°ΠΆΠ½ΡΡ‚ΡŒΡΡ.

НапримСр, ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ вопросы. Как ΡƒΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π² согласованном ΠΏΠΎ вСрсиям состоянии ΡΠΎΡ‚Π½ΡŽ микросСрвисов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΅Ρ‰Π΅ ΠΈ постоянно ΠΈ нСпрСдсказуСмо рСдСплоятся. А доступ ΠΊ срСдам Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹? Какая ΠΊΠΎΠΌΠ°Π½Π΄Π° Π½Π°ΠΏΠΈΡˆΠ΅Ρ‚ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ тСсты? И Ссли ΠΊΡ‚ΠΎ-Ρ‚ΠΎ согласится, Ρ‚ΠΎ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉ Π΅Ρ‰Π΅ ΠΈΡ… напиши для Ρ‚Π°ΠΊΠΎΠΉ Π·Π°ΠΏΡƒΡ‚Π°Π½Π½ΠΎΠΉ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. А Ссли Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ошибка, Ρ‚ΠΎ Ρ‡ΡŒΡ ΠΎΠ½Π°? Волько Ρ‚ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Ρƒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ сломалось? Как Π½Π΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ Π²Π΅Ρ‡Π΅Ρ€ΠΎΠΌ Π² пятницу, Ρ‡Ρ‚ΠΎ вСрсия API N-Π³ΠΎ сСрвиса, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ΡΡŒ, Π²Π΄Ρ€ΡƒΠ³ стала deprecated?

Π”Π°, это Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹. Но ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΡƒΡŽΡ‚ Agile ΠΈ DevOps, ΡƒΠΆΠ΅ Π·Π½Π°ΡŽΡ‚ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒ ΠΏΡƒΡ‚ΡŒ ΠΊ микросСрвисной Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ стоит с внСдрСния этих ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊ.

ΠšΡ€ΠΎΠΌΠ΅ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Π΅ΡΡ‚ΡŒ ΠΈ чисто Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½Ρ‹Π΅. Как ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΎΡ‚ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π°, Π³Π΄Π΅ всё синхронно, согласованно ΠΈ Π΅Π΄ΠΈΠ½ΠΎ, ΠΊ распрСдСлСнной событийной Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹, основанной Π½Π° мноТСствС ΠΌΠ΅Π»ΠΊΠΈΡ… элСмСнтов, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π½Π°Π΄ΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡƒΡŽ Π½Π΅ΠΊΠΎΠ½ΡΠΈΡΡ‚Π΅Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ…? Одного этого достаточно, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°Π΄ΡƒΠΌΠ°Ρ‚ΡŒΡΡ: Π° стоит Π»ΠΈ ΠΈΠ³Ρ€Π° свСч? На этом Ρ„ΠΎΠ½Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ скорости ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ запроса каТСтся ΠΌΠ΅Π»ΠΎΡ‡ΡŒΡŽ. Π₯отя Π±Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚!

Π’ΠΎΠ³Π΄Π° Π·Π°Ρ‡Π΅ΠΌ? Если Ρƒ вас Π½Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с вашим Β«ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚ΠΎΠΌΒ», Ρ‚ΠΎ Π½Π΅ Π½Π°Π΄ΠΎ ΠΈΡ… ΠΈΡΠΊΠ°Ρ‚ΡŒ.

Но Ссли ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π΅ΡΡ‚ΡŒ, Ρ‚ΠΎ посмотритС Π½Π° ΠΏΠ»ΡŽΡΡ‹ MSA, ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ½Π° спасСт вас.

Π Π°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ Π½Π° нСзависимыС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π΄Π°Ρ‘Ρ‚ бСзусловныС ΠΈ нСоспоримыС прСимущСства: Π»Π΅Π³ΠΊΠΎΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ контСкста, Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ развития, управлСния ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ. ΠΠ΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΈ нСбольшой Ρ€Π°Π·ΠΌΠ΅Ρ€ Π΄Π°ΡŽΡ‚ ΠΈ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½Ρ‹Π΅ ΠΏΠ»ΡŽΡΡ‹ с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния инфраструктуры. Π’Π°ΠΌ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π΅ Π½ΡƒΠΆΠ½Π° монструозная машина Π·Π° 100500 Π΄ΠΎΠ»Π»Π°Ρ€ΠΎΠ². ΠœΠΈΠΊΡ€ΠΎΡΠ΅Ρ€Π²ΠΈΡΡ‹ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Π½Π° ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ Π΄Π΅ΡˆΠ΅Π²Ρ‹Π΅ машинки. И окаТСтся, Ρ‡Ρ‚ΠΎ Π΄Π°ΠΆΠ΅ всС вмСстС ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΡΡ‚ΠΎΠΈΡ‚ΡŒ Π½Π° порядок мСньшС, Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ эффСктивнСС Ρ‚ΠΎΠΉ самой ΡΡƒΠΏΠ΅Ρ€ΠΌΠ°ΡˆΠΈΠ½Ρ‹, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Ρƒ вас Π² ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ, навСрняка, молятся ΠΈ ΡΠ΄ΡƒΠ²Π°ΡŽΡ‚ с Π½Π΅Ρ‘ ΠΏΡ‹Π»ΠΈΠ½ΠΊΠΈ.

Π—Π΄Π΅ΡΡŒ умСстСн Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π»ΠΎΠ·ΡƒΠ½Π³ ΠΎΡ‚ популиста. Π₯отя, ΠΊΠ°ΠΊ ΠΈ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ, ΠΎΠ½ Π²ΠΏΠΎΠ»Π½Π΅ ΡΠ΅Ρ€ΡŒΠ΅Π·Π΅Π½.

ΠšΠ°ΠΆΠ΄ΠΎΠΌΡƒ микросСрвису ΠΏΠΎ своСму сСрвСру!

ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΠΌ Π°Π³ΠΈΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π·Π° микросСрвисы. ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ Π½Π° Π»ΠΈΠ΄Π΅Ρ€ΠΎΠ² IT-индустрии: Amazon, Netflix, Google ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ Π²ΠΏΠ΅Ρ‡Π°Ρ‚Π»ΡΡŽΡ‰ΠΈΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹. Π˜Ρ… Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ ΠΈ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄Π° Π½ΠΎΠ²Ρ‹Ρ… ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ² ΠΏΠΎΡ€Π°ΠΆΠ°ΡŽΡ‚. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΈΠ³Ρ€Π° Ρ‚ΠΎΡ‡Π½ΠΎ стоит свСч! Π—Π΄Π΅ΡΡŒ умСстно Π²ΡΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² упомянутых организациях ΠΊΠΎΠΌΠ°Π½Π΄ «уровня Π±ΠΎΠ³Β» Π½Π΅ ΠΎΠ΄Π½Π° ΠΈ Π½Π΅ Π΄Π²Π΅. Им слоТности микросСрвисной Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ Π²ΠΏΠΎΠ»Π½Π΅ ΠΏΠΎ Π·ΡƒΠ±Π°ΠΌ. И Ссли ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ΡŒ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚, Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΈ Π΅Π³ΠΎ ΡΠ΄Π΅Π»Π°ΡŽΡ‚ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ²Π΅Ρ€ΠΊΠ°Ρ‚ΡŒ ΠΏΡƒΡ‚Π΅Π²ΠΎΠ΄Π½ΠΎΠΉ Π·Π²Π΅Π·Π΄ΠΎΠΉ.

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

И всё ΠΆΠ΅ это Π½Π΅ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ микросСрвисы Π½Π΅ для вас. НС Π±ΠΎΠ³ΠΈ Π³ΠΎΡ€ΡˆΠΊΠΈ ΠΎΠ±ΠΆΠΈΠ³Π°ΡŽΡ‚. Но Π±Ρ€ΠΎΡΠ°Ρ‚ΡŒΡΡ с Π³ΠΎΠ»ΠΎΠ²ΠΎΠΉ Π² ΠΎΠΌΡƒΡ‚ Ρ‚ΠΎΠΆΠ΅ Π½Π΅ стоит. Для микросСрвисной Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ достаточно Π·Ρ€Π΅Π»ΠΎΠΉ. Один ΠΈΠ· Π³Π»Π°Π²Π½Ρ‹Ρ… ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠ΅Π²: ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π»ΠΈ ΠΎΠ½Π° Agile ΠΈ DevOps? Команда Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Π³Ρ€Π°ΠΌΠΎΡ‚Π½ΠΎΠΉ. Π­Ρ‚ΠΎ слоТно Ρ„ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ, Π½ΠΎ всё ΠΆΠ΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Ρ‚Ρ€Π΅Π·Π²ΠΎ ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ возмоТности. НапримСр, насколько ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Π° Π² Reactive ΠΈ Event-Driven Architecture? К Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½ΡƒΡŽ инфраструктуру для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ микросСрвисной систСмы.

Π’ΠΏΡ€ΠΎΡ‡Π΅ΠΌ, достаточно. ΠŸΡ€ΠΎΡΡ‚ΠΎ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅. НадСюсь, получится ΠΈ понравится.

По стопам Π»ΡƒΡ‡ΡˆΠΈΡ…: микросСрвисная Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° Π² Ρ€Π°Π·Ρ€Π΅Π·Π΅

Π’ΠΈΠ΄Ρ‹ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹

ΠŸΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠΉ ΠΈ популярный Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ – монолитная. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Π½Π°Ρ‡ΠΈΠ½Π°Π» с Π½Π΅Ρ‘, ΠΈ здСсь Π½Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ изоляции ΠΈ распрСдСлённости: ΠΎΠ΄ΠΈΠ½ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ всС запросы.

ΠžΡ‚Ρ‡Π΅Π³ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹:

  • ΠΎΡ‚ΠΊΠ°Π·ΠΎΡƒΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²ΠΎΡΡ‚ΡŒ;
  • Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅;
  • ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠΉ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΈΠ»ΠΈ языка ΠΈ Π½Π΅Π²Ρ‹Π³ΠΎΠ΄Π½ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹ΠΉ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚;
  • ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π° ΠΈΠ·-Π·Π° хранСния ΠΊΠΎΠ΄Π° Π² ΠΎΠ΄Π½ΠΎΠΌ мСстС ΠΈ ΠΊΡƒΡ‡Π° legacy;
  • трудности Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ²;
  • Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ, придётся Π΄Ρ€ΠΎΠ±ΠΈΡ‚ΡŒ.

Π’Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎ популярности Π²ΠΈΠ΄ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ – ΠΏΠ°Ρ€Π° ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚ΠΎΠ², микс ΠΈΠ· ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π° ΠΈ сСрвисов ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ микросСрвисов. Π’ΠΎ Π΅ΡΡ‚ΡŒ Π²Ρ‹ сохраняСтС ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚, Π° Π΄ΠΎΡ€Π°Π±ΠΎΡ‚ΠΊΠΈ выполняСтС с использованиСм соврСмСнных Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ.

Π­Ρ‚ΠΎ частично Ρ€Π΅ΡˆΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ отказоустойчивости, ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΠΈ ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ стСка Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ.

ΠœΠΈΠΊΡ€ΠΎΡΠ΅Ρ€Π²ΠΈΡΠ½Π°Ρ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° – Π½Π΅ новая идСя, Π° Ρ€Π°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡ‚ΡŒ сСрвис-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹. БСрвис-ориСнтированная Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° прСдусматриваСт ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ ΡΠ»Π°Π±ΡƒΡŽ ΡΠ²ΡΠ·Π°Π½Π½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², поэтому ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ ΠΈ Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΡƒΡŽ систСму.

Π“Π»Π°Π²Π½Ρ‹ΠΉ минус – общая шина Π΄Π°Π½Π½Ρ‹Ρ… Enterprise Service Bus с ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹ΠΌΠΈ спСцификациями ΠΈ слоТностями Ρ€Π°Π±ΠΎΡ‚Ρ‹ с абстракциями ΠΈ фасадами.

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

ΠœΠΈΠΊΡ€ΠΎΡΠ΅Ρ€Π²ΠΈΡΠ½Π°Ρ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° наслСдуСт ΠΎΡ‚ ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²Π΅Π½Π½ΠΈΡ†Ρ‹ ΠΈΠ·ΠΎΠ»ΡΡ†ΠΈΡŽ ΠΈ Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΡΡ‚ΡŒ. Π—Π΄Π΅ΡΡŒ Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠ°ΠΊ шина Π΄Π°Π½Π½Ρ‹Ρ…, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… случаСв Π² ΠΏΠΎΠ»ΡŒΠ·Ρƒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. По классичСской схСмС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΈΠ·ΠΎΠ»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΈ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΊΠΎΠ΄Π°, ΠΈ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Π±Π°Π·Ρ‹.

Для микросСрвисов ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΡŽ с оркСстрациСй ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ плюшками.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ прСимущСство – ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρ‹ обнаруТСния сСрвисов. ΠžΡ†Π΅Π½ΠΈΡ‚Π΅ наглядно Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΉ сСрвис-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΈ микросСрвисной Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹: Ρƒ послСднСй Π½Π΅Ρ‚ ΠΎΠ±Ρ‰Π΅ΠΉ ΡˆΠΈΠ½Ρ‹, ΠΈ сСрвис обращаСтся ΠΊ Π»ΡŽΠ±ΠΎΠΌΡƒ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ:

Π’Ρ‹Π±ΠΎΡ€ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ² общСния зависит ΠΎΡ‚ программиста. НапримСр, Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ REST для ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Ρ… запросов ΠΈ RPC Ρ‡Π΅Ρ€Π΅Π· AMQP для Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… Π»ΠΈΠ±ΠΎ ΠΎΠ΄ΠΈΠ½ ΠΎΠ±Ρ‰ΠΈΠΉ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» для всСх.

Π Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ микросСрвисы с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния Π»ΠΈΠ±ΠΎ бизнСса, Π»ΠΈΠ±ΠΎ программиста для ΠΏΠ΅Ρ€Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΡ. Но ΠΌΠ΅ΡˆΠ°ΡŽΡ‚ этому Π΄Π²Π΅ Π²Π΅Ρ‰ΠΈ:

  • Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ связи – ΠΏΡ€ΠΈ тСсном взаимодСйствии микросСрвисы ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡŽΡ‚;
  • Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ – Ρƒ Ρ€Π°Π·Π½Ρ‹Ρ… микросСрвисов Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹, Π° Π½ΡƒΠΆΠ½Π° ΠΎΠ΄Π½Π° общая.

Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ раздСлСния сСрвисов. Π’Π½Π°Ρ‡Π°Π»Π΅ поставили Π·Π°Π΄Π°Ρ‡Ρƒ ΠΏΡ€ΠΈΠΊΡ€ΡƒΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ ΠΊ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΏΠΎΠ·ΠΆΠ΅ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Π»Π°ΡΡŒ аналогичная для кошСлька. Π‘Π°ΠΌΠΎ собой, Π½Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ΡΡ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ микросСрвис. Для этого ΠΊΠΎΠΏΠΈΡ€ΡƒΡŽΡ‚ ΠΊΠΎΠ΄ ΠΈΠ· ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ, Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ RPC для Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… связСй, Π°Π±ΡΡ‚Ρ€Π°ΠΊΡ†ΠΈΡŽ Π½Π°Π΄ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ для удобства ΠΈ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… микросСрвисах.

Достоинства ΠΈ нСдостатки микросСрвисной Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹

Как Π² любой распрСдСлённой Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Π΅ расходы Π½Π° ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΡŽ.

ΠšΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡ Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠΉ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ ΠΈ доставки (CI/CD) ΠΈ построСниС Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ (контСйнСризация, оркСстрация, ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ΅) Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ большого количСства Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

Π§Ρ‚ΠΎ насчёт отказоустойчивости? Часто Π΅Ρ‘ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ ΠΊΠ°ΠΊ Β«ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ сСрвиса Π½Π΅ отраТаСтся Π΄Ρ€ΡƒΠ³ΠΈΡ…Β». ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅, ΠΏΠ°Π΄Π°Π΅Ρ‚ Audit, Π° Wallet тСорСтичСски ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ – ΠΏΠΎΡ…ΠΎΠΆΠ΅ Π½Π° ΠΎΡ‚ΠΊΠ°Π·ΠΎΡƒΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²ΠΎΡΡ‚ΡŒ:

А ΠΊΠ°ΠΊ ΠΆΠ΅ запросы ΠΏΠΎ RPC, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Wallet ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ ΡΠ»Π°Ρ‚ΡŒ? НСобходимо ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡƒΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ, ΠΊΠΎΠ³Π΄Π° Audit Π½Π΅ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚, ΠΈ Π³Ρ€Π°ΠΌΠΎΡ‚Π½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ rollback, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π±Π°Π·Ρ‹ Ρ€Π°Π·Π½Ρ‹Π΅, ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΎΠ½Π½ΠΎ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π½Π΅ получится.

Или другая ситуация: ΠΏΠ°Π΄Π°Π΅Ρ‚ микросСрвис Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ, Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ходят Π΄Ρ€ΡƒΠ³ΠΈΠ΅. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ запросы, Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ ΠΊΠΎΠ΄ для Π½Π΅Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. По сущСству, это ΠΌΠΎΡ‰Π½Ρ‹ΠΉ ΠΎΡ‚ΠΊΠ°Π·.

ΠœΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ Ρƒ микросСрвисов достигаСтся благодаря систСмам оркСстрации, вСдь остаётся достаточно сСрвСрных рСсурсов Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ потрСблял всю ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΈ процСссор.

Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹ΠΉ процСсс Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ – ΠΊΠΎΠ΄ΠΈΠ½Π³, тСстированиС ΠΈ Ρ€Π°Π·Π²Ρ‘Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ – Π² микросСрвисной Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ выглядит ΠΈΠ½Π°Ρ‡Π΅. ΠŸΠ΅Ρ€Π²Ρ‹Π΅ Π΄Π²Π° этапа ΡΠ»ΠΈΠ²Π°ΡŽΡ‚ΡΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ микросСрвис взаимодСйствуСт с ΠΊΡƒΡ‡Π΅ΠΉ Π΄Ρ€ΡƒΠ³ΠΈΡ…. Π§Ρ‚ΠΎΠ±Ρ‹ локально ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ…ΠΎΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ запрос, придётся Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ всС эти микросСрвисы, поэтому тСстированиС Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Π½Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ.

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅, Π²Ρ‹ тСстируСтС ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ срСдств Π² банковской систСмС. Для этого Π²Ρ‹ создаётС Π΄Π²ΡƒΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, компанию, Π°Π³Π΅Π½Ρ‚Π° для пополнСния счёта, Π΄Π΅Π»Π°Π΅Ρ‚Π΅ эмиссию Π² систСму, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π°Π³Π΅Π½Ρ‚Π° дСньгами, вноситС срСдства Π½Π° Π»ΠΈΡ‡Π½Ρ‹ΠΉ счёт отправитСля ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΡ‚ΠΎΠΌ Π΄Π΅Π»Π°Π΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚Π΅Π»ΡŽ.

Π‘ΡƒΠ΄Π΅Ρ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ запросов Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ? Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π΅Ρ‰Ρ‘ слоТности взаимодСйствия микросСрвисов ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Π°Π΄.

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ локально Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ ΡŽΠ½ΠΈΡ‚-тСстированиС, Π³Π΄Π΅ вмСсто ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ² микросСрвисов Π±ΡƒΠ΄ΡƒΡ‚ mock-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹. Π•Ρ‰Ρ‘ понадобятся Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ тСсты, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для отлавливания ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ тСсты. Они ΠΏΡ€ΠΎΠ³ΠΎΠ½ΡΡŽΡ‚ΡΡ вмСстС с ΡŽΠ½ΠΈΡ‚-тСстами Π½Π° этапС слияния Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΊΠΎΠΏΠΈΠΉ Π² Π³Π»Π°Π²Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. И Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΡ‚ΠΎΠΌ программист провСряСт Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ€ΡƒΠΊΠ°ΠΌΠΈ. Π”ΠΎ развёртывания Ρ€Π΅Π»ΠΈΠ·Π½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ тСстируСт QA.

ΠœΠΈΠΊΡ€ΠΎΡΠ΅Ρ€Π²ΠΈΡΠ½Π°Ρ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ нСзависимыми ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΈ Ρ€Π°Π·Π²Ρ‘Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠΈ, Ρ‡Π΅Π³ΠΎ Π½Π΅ Π±Ρ‹Π»ΠΎ Π² ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π΅.

ΠœΠΈΠΊΡ€ΠΎΡΠ΅Ρ€Π²ΠΈΡΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈ экономят срСдства Π² ΠΏΠ»Π°Π½Π΅ бизнСса.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ свободу Π² Π²Ρ‹Π±ΠΎΡ€Π΅ языка ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… частСй ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ зависимостСй

Π’Ρ€ΡƒΠ΄Π½ΠΎ ΡΠΎΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ 50 ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² с 50 рСпозиториями, Ссли Π²Π΄Ρ€ΡƒΠ³ обнаруТится Π±Π°Π³ бСзопасности, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½ΡƒΠΆΠ½ΠΎ срочно ΠΏΠΎΡ„ΠΈΠΊΡΠΈΡ‚ΡŒ Π²ΠΎ всСх Π½ΠΈΡ…. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ зависимостСй, ΠΎΠ±Ρ‰ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ для микросСрвисов ΠΈ сСмантичСскоС вСрсионированиС. ΠŸΡ€ΠΈΡ‡Ρ‘ΠΌ Π½Π΅ Π΄Π΅Π»Π°ΠΉΡ‚Π΅ ΠΎΠ΄Π½Ρƒ Ρ€Π°Π·Π΄ΡƒΡ‚ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ, Π° Ρ€Π°Π·Π±ΠΈΠ²Π°ΠΉΡ‚Π΅ Π΅Ρ‘ Π½Π° ΠΊΡƒΡ‡Ρƒ ΠΌΠ°Π»Π΅Π½ΡŒΠΊΠΈΡ…, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ страха выпуска ΠΌΠ°ΠΆΠΎΡ€Π½ΠΎΠΉ вСрсии.

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

Π‘Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π² микросСрвисной Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅, Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΈΡ… Π²ΠΈΠ΄Ρ‹ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½Π½Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ бСзопасности, благодаря ΠΎΠ±Ρ‰Π΅Π½ΠΈΡŽ сСрвисов Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Π΅Ρ€Π΅Π· RPC. Но Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅ΠΌΡ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π² Ρ€Π°Π·Π½Ρ‹Ρ… микросСрвисах?

Π’ΠΎΡ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹:

  • Ρ…Ρ€Π°Π½ΠΈΡ‚Π΅ ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² Π΄Π²ΡƒΡ… микросСрвисах, Π½ΠΎ ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ трудности с Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ Π΄Π°Π½Π½Ρ‹Ρ…;
  • Π΄Π΅Π»Π°ΠΉΡ‚Π΅ RPC, ΠΏΡ€Π°Π²Π΄Π°, услоТнитС Ρ€Π°Π±ΠΎΡ‚Ρƒ с большими ΠΎΠ±ΡŠΡ‘ΠΌΠ°ΠΌΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ;
  • Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· всСх Π±Π°Π· для Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠΈ;
  • сдСлайтС ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΡŽ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‡Ρ‚ΠΎ Ρ‚ΠΎΠΆΠ΅ нСпросто ΠΈ ΠΏΠΎΠ²Π»Π΅Ρ‡Ρ‘Ρ‚ написаниС RPC.

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅ Π΄Ρ€ΡƒΠ³ΠΎΠΉ случай: ΠΏΡ€ΠΈ рСгистрации создаётся 3 сущности (ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ, ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒ ΠΈ счёт), Π½ΠΎ Π½Π° ΠΏΠΎΠ»ΠΏΡƒΡ‚ΠΈ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠ°Π΄Π°Π΅Ρ‚. Как ΠΎΡ‚ΠΊΠ°Ρ‚ΠΈΡ‚ΡŒ измСнСния, Ссли Π΄Π°Π½Π½Ρ‹Π΅ Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ ΠΏΠΎ Ρ€Π°Π·Π½Ρ‹ΠΌ микросСрвисам? Π”ΡƒΠΌΠ°ΠΉΡ‚Π΅ ΠΎΠ± этом Π½Π° этапС проСктирования.

ВнутрСнняя коммуникация Π² микросСрвисной Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅

Для общСния микросСрвисам Π½ΡƒΠΆΠ΅Π½ ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚: ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» ΠΈ валидация Π΄Π°Π½Π½Ρ‹Ρ…. Π‘ послСдним справляСтся JSON Schema, Π½ΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ. ВрСбования ΠΏΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ способа ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΈ:

  • ΡΡ‚Ρ€ΠΎΠ³ΠΎΡΡ‚ΡŒ;
  • ΠΎΠ±Ρ‰ΠΈΠΉ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» для сСрвСра ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°;
  • гСнСрация ΠΊΠΎΠ΄Π° для любого языка;
  • ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ.

Π’ качСствС ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Protocol Buffers, FlatBuffers, Apache Thrift. Π‘Π½Π°Ρ‡Π°Π»Π° Π²Ρ‹ ΠΏΠΈΡˆΠ΅Ρ‚Π΅ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ язык, ΠΎΡ‚Π΄Π°Ρ‘Ρ‚Π΅ это ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅-Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρƒ ΠΊΠΎΠ΄Π° ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ сгСнСрированный ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΈ сСрвСр.

ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅

ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ дСлят ΠΏΠΎ тСхнологиям ΠΈ слСдят Π·Π° ΠΈΡ… Ρ€Π°Π·ΠΌΠ΅Ρ€Π°ΠΌΠΈ (Π½Π΅ Π±ΠΎΠ»Π΅Π΅ 7–8 Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ). Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π·Π°Π΄Π°Ρ‡ΠΈ Π²Ρ‹Π΄Π°ΡŽΡ‚ ΡΠ΅Π½ΡŒΠΎΡ€Π°ΠΌ, рядом с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ Π½ΠΈΠΆΠ΅.

К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, Π΄Π²Π° ΡΠ΅Π½ΡŒΠΎΡ€Π° ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ ΠΏΠΎ Π΄Π²Π° микросСрвиса. Π’Π°ΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ программисты взаимодСйствовали ΠΌΠ΅ΠΆΠ΄Ρƒ собой Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² локальной Π³Ρ€ΡƒΠΏΠΏΠ΅ ΠΏΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡Π΅, Π½ΠΎ ΠΈ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ. Π’ΠΎΠ³Π΄Π° Π² области ΠΈΡ… Π·Π½Π°Π½ΠΈΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Ρ‰Π΅Π³ΠΎ:

  • язык;
  • организация ΠΈ ΡˆΠ°Π±Π»ΠΎΠ½ΠΈΠ·Π°Ρ†ΠΈΡ ΠΊΠΎΠ΄Π° для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ микросСрвиса;
  • Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ;
  • концСпция Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠΉ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ ΠΈ доставки;
  • ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΈ;
  • докумСнтация.

А Ρ‡Ρ‚ΠΎ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ Ρ€Π°Π·Π½ΠΎΡ€ΠΎΠ΄Π½Ρ‹Π΅ ΠΏΠΎ языкам ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹? ΠžΡΡ‚Π°Π½Π΅Ρ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ CI/CD, глобально стандартизованный ΠΏΡ€ΠΎΠΊΠΎΠ» ΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ.

Устройство микросСрвисов

ΠœΠΈΠΊΡ€ΠΎΡΠ΅Ρ€Π²ΠΈΡΡ‹ состоят ΠΈΠ· Ρ‚Ρ€Ρ‘Ρ… слоёв: Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², бизнСс-Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΈ ΠΌΠ°ΠΏΠΏΠ΅Ρ€ΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ выполнСния запроса выглядит Ρ‚Π°ΠΊ:

Π’ сСрвисном слоС сосрСдотачиваСтся 99% всСго ΠΊΠΎΠ΄Π°. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π² микросСрвисС нСсколько ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Data Transfer Object (DTO), ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ GET-запрос. Π­Ρ‚ΠΎ ΠΎΠ±Π»Π΅Π³Ρ‡Π°Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΈ Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΡŽ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠ΄Π°

НС Π·Π°Π±Ρ‹Π²Π°ΠΉΡ‚Π΅, Ρ‡Ρ‚ΠΎ Node.js – асинхронный язык. Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€: ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ запрос, синхронно Π±Π΅Ρ€Ρ‘Ρ‚ HolyJSService, асинхронно Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с ΠΌΠ°ΠΏΠΏΠ΅Ρ€ΠΎΠΌ, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠΌ запись Π² Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈ процСсс повторяСтся для ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… запросов. Никакого порядка Π² этом Π½Π΅ Π½Π°Π±Π»ΡŽΠ΄Π°Π΅Ρ‚ΡΡ, поэтому Π²Ρ‹Π΄Π΅Π»ΡΡŽΡ‚ Π΄Π²Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½Ρ‹Ρ… ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°:

  • stateless – Π½Π΅ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ состояниС;
  • stateful – Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ класса поля, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½Ρ‹ для выполнСния запроса.

Когда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ stateful, ΠΏΡ€ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ запроса Π²Ρ‹ создаётС Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ HolyjSService ΠΈ заполняСтС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΌΠΈ для выполнСния Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. Π”Π°Π»ΡŒΡˆΠ΅ этот сСрвис асинхронно ΠΈΠ΄Ρ‘Ρ‚ Π² Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ запрос Π±Π΅Ρ€Ρ‘Ρ‚ Π½ΠΎΠ²Ρ‹ΠΉ экзСмпляр сСрвиса, ΠΈ процСсс повторяСтся.

Π’ ΠΊΠΎΠ΄Π΅ Π²Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Π΅Ρ‚Π΅ абстрактный класс с ΠΊΡƒΡ‡Π΅ΠΉ ΠΏΠΎΠ»Π΅ΠΉ ΠΈ сСттСров, наслСдуСтС ΠΎΡ‚ Π½Π΅Π³ΠΎ Π½ΠΎΠ²Ρ‹ΠΉ сСрвис ΠΈ наполняСтС ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ.

Π”Π°Π»ΡŒΡˆΠ΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ Π½ΡƒΠΆΠ΅Π½ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ DI для получСния Π½ΠΎΠ²ΠΎΠ³ΠΎ экзСмпляра, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ½ пробрасываСт Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ. ПослС Π΅Ρ‘ запуска ΠΈ выполнСния всСх сСттСров Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ сСрвисы Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ create ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.

ΠŸΡ€ΠΈ stateless-ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ контСкст, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ создаётся для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ запроса ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ, ΠΈ СдинствСнный экзСмпляр сСрвиса, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ запросов ΠΎΡ‚ Π½Π΅Π³ΠΎ Π½Π΅ зависит.

Π’ контСкстС хранятся всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ поля ΠΈ собствСнно ΠΌΠ΅Ρ‚ΠΎΠ΄ для Π΅Π³ΠΎ создания:

На ΡƒΡ€ΠΎΠ²Π½Π΅ сСрвиса выглядит ΠΊΠ°ΠΊ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€:

Для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° добавляСм контСкст Π²Ρ‚ΠΎΡ€Ρ‹ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ – Π΅Π³ΠΎ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ createContextFromHttpRequest:

Π‘Π°ΠΌΠΈ ΠΏΠΎ сСбС хэндлСры ΠΏΡ€Π΅Π΄Π΅Π»ΡŒΠ½ΠΎ простыС:

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ для выполнСния запросов часто Π½ΡƒΠΆΠ½Ρ‹ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ сСрвисы, контСкст приходится ΠΏΡ€ΠΎΠΊΠΈΠ΄Ρ‹Π²Π°Ρ‚ΡŒ Π² Π½ΠΈΡ…. Допустим, Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ микросСрвис поступил запрос. ΠŸΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°ΠΉΡ‚Π΅ Π΅ΠΌΡƒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ X-Request-Id, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΎΠ½ пройдётся ΠΏΠΎ всСм микросСрвисам. Благодаря Π»ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Π²Ρ‹ Π»Π΅Π³ΠΊΠΎ отслСдитС ΠΏΡƒΡ‚ΡŒ внСшнСго запроса. X-Trace-Id ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для обозначСния Π΅Π΄ΠΈΠ½ΠΎΠΉ бизнСс-ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, состоящСй ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… запросов.

Для создания ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ OpenTracing.

Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΠ³Π΄Π° Π½Π΅ получаСтся Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ микросСрвис Π±Π΅Π· сСрвиса. Π’Π°ΠΌ Π΄Π°Π»ΠΈ Π·Π°Π΄Π°Ρ‡Ρƒ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ доступом Π½Π° основС Ρ€ΠΎΠ»Π΅ΠΉ (RBAC). Π’Ρ‹ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ Ρ‚Ρ€ΠΈ сущности: Ρ€ΠΎΠ»ΡŒ, рСсурс ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ. ΠŸΠΈΡˆΠ΅Ρ‚Π΅ RPC, Π° ΠΈΠ· сообраТСний ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ удобства добавляСтС Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ сСрвис для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с этим RPC, ролями, ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌΠΈ ΠΈ рСсурсами.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ микросСрвисы ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ созданный сСрвис ΠΈ ΠΎΠ±Ρ‰ΠΈΠΉ интСрфСйс.

Если ΠΊΠΎΠΌΠ°Π½Π΄Π΅, которая ΠΏΠΈΡˆΠ΅Ρ‚ Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΌ языкС, Ρ‚Π°ΠΊΠΆΠ΅ понадобился RBAC, придётся Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ для Π½ΠΈΡ… Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ RPC. Однако Π½Π΅ получится ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ RPC для добавлСния Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ² ΠΈΠ»ΠΈ условий ΠΊ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡŽ доступом.

ЗаблуТдСния

1. Π­Ρ‚ΠΎ Π»Π΅Π³Ρ‡Π΅

ПослС ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π½Π½ΠΎΠ³ΠΎ Π²Ρ‹ вряд Π»ΠΈ посчитаСтС ΠΌΠΈΠΊΡ€ΠΎΡΠ΅Ρ€Π²ΠΈΡΠ½ΡƒΡŽ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ Π»Ρ‘Π³ΠΊΠΈΠΌ Π΄Π΅Π»ΠΎΠΌ, Π½ΠΎ это распространённоС Π·Π°Π±Π»ΡƒΠΆΠ΄Π΅Π½ΠΈΠ΅. Π‘Π»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ создания микросСрвиса наглядно ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π³Ρ€Π°Ρ„ΠΈΠΊ:

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

Π‘ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ – Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ увСличиваСтся количСство микросСрвисов. Новый Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π²Ρ‹Π½ΡƒΠΆΠ΄Π΅Π½ Π±ΡƒΠ΄Π΅Ρ‚ часами ΡΠΈΠ΄Π΅Ρ‚ΡŒ Π·Π° ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ΠΌ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½ΡƒΡŽ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρƒ ΠΈ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Ρ€Π°Π±ΠΎΡ‚Ρ‹ систСмы.

2. Π›ΡƒΡ‡ΡˆΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅, сколько придётся ΠΆΠ΄Π°Ρ‚ΡŒ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚Π΅Π»ΡŽ комплСксного запроса, ΠΏΠΎΠΊΠ° ΠΎΠ½ сходит Π² ΠΊΡƒΡ‡Ρƒ Ρ€Π°Π·Π½Ρ‹Ρ… микросСрвисов. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Ρ€Π°Π΄ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΠ΅Ρ€Π΅Π΅Π·ΠΆΠ°Ρ‚ΡŒ Π½Π° эту Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ Π½Π΅ всСгда цСлСсообразно. Π’ качСствС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡˆΠΈΡ‚Π΅ куски ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π½Π° Π±ΠΎΠ»Π΅Π΅ эффСктивном языкС, ΠΈΠ»ΠΈ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Ρƒ.

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

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

А ΠΊΠ°ΠΊΠΎΠΉ Ρ‚ΠΈΠΏ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π²Ρ‹?

ΠžΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚Π΅ΡΡŒ!!! Π’Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½Ρ‹ микросСрвисы / Π‘Π»ΠΎΠ³ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Southbridge / Π₯Π°Π±Ρ€

Π˜Π΄Π΅Ρ‚ 2020 Π³ΠΎΠ΄. Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ пояснСниС, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ микросСрвисы β€” Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΡ‚Ρ€Π°Ρ‚ΡŒΡ‚Π΅ своС Π΄Ρ€Π°Π³ΠΎΡ†Π΅Π½Π½ΠΎΠ΅ врСмя Π½Π° Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠ΅. Но Ссли Π²Ρ‹ Π²ΠΏΠ΅Ρ‡Π°Ρ‚Π»Π΅Π½Ρ‹ историями успСха ΠΎ микросСрвисах ΠΈ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π½Ρ‹Ρ€Π½ΡƒΡ‚ΡŒ Π² «ΠΏΠ°Π½Π°Ρ†Π΅ΡŽ» с Π³ΠΎΠ»ΠΎΠ²ΠΎΠΉ β€” ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΠΉΡ‚Π΅ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ. ΠŸΡ€ΠΎΡˆΡƒ прощСния, Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π΄Π»ΠΈΠ½Π½ΠΎΠ²Π°Ρ‚ΠΎ (Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ, ΠΏΡ€ΠΈΠΌ. ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊΠ°).

Π₯отя ΠΌΡ‹ΡΠ»ΡŒ ΠΎΠ± этом Π²ΠΈΡ‚Π°Π»Π° ΡƒΠΆΠ΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ врСмя, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π΅Π΅ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° Π½Π΅Π΄Π°Π²Π½ΠΎ, послС Π·Π°Ρ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ Ρ€Π°Π·Π³ΠΎΠ²ΠΎΡ€Π° с ΠΏΠ°Ρ€ΠΎΠΉ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ. МСня пригласили для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ ΠΊΠ²ΠΎΡ€ΡƒΠΌΠ° ΠΏΡ€ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ ΠΎΠ΄Π½ΠΎΠΉ вСсьма интСрСсной ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹: «Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ микросСрвисы ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π»ΠΈ ΠΌΡ‹ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ этой Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ для нашСго ПО?».

По ΠΏΠ΅Ρ€Π²ΠΎΠΉ части вопроса Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈΡΡŒ Π»Π΅Π³ΠΊΠΎ, Π° Π²ΠΎΡ‚ вторая встала вСсьма остро. Π§Π΅Ρ€Π΅Π· ΠΏΠ°Ρ€Ρƒ ΠΌΠΈΠ½ΡƒΡ‚ общСния Ρ‡Π°ΡΡ‚ΡŒ Ρ„Π°ΠΊΡ‚ΠΎΠ² Π±Ρ‹Π»Π° собрана:

  • Π•ΡΡ‚ΡŒ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΈΠΊΡ€ΠΎΡΠ΅Ρ€Π²ΠΈΡΠ½ΡƒΡŽ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π΅, Π½Π°Π΄ΠΎ это ΠΊΠ°ΠΊ-Ρ‚ΠΎ ΡƒΡ‚Π²Π΅Ρ€Π΄ΠΈΡ‚ΡŒ.
  • ΠšΠ²ΠΎΡ€ΡƒΠΌ Π±Ρ‹Π» Π² большСй стСпСни нСтСхничСским, Ρ‡Π΅ΠΌ большС ΠΎΠ½ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠ» Π² «Ρ‚Π΅Ρ…Π½ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΏΠ»ΠΎΡΠΊΠΎΡΡ‚ΡŒ», Ρ‚Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅ нСумСстным ΠΎΠ½ становился.
  • Π”Π»ΠΈΠ½Π½Ρ‹Π΅ ΠΏΠ°ΡƒΠ·Ρ‹ ΠΈ отсутствиС вопросов ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π»ΠΈ Π½Π΅Π·Π½Π°Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π° ΠΊΠ°ΠΊ Π²Π΅Π±-сСрвисов, Ρ‚Π°ΠΊ ΠΈ микросСрвисов.

Π― ΠΈΡ… Π½Π΅ осуТдал Π·Π° отсутствиС Π·Π½Π°Π½ΠΈΠΉ ΠΎ функциях Π²Π΅Π±-сСрвисов ΠΈΠ»ΠΈ ΠΎ слСдствиях Ρ€Π°Π±ΠΎΡ‚Ρ‹ микросСрвисов. БобСсСдники, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΆΠ΅, вСсьма прСвосходили мСня Π² Ρ€Π°Π±ΠΎΡ‚Π΅ Π² своСй отрасли. Но ΠΎΠ½ΠΈ Ρ…ΠΎΡ‚Π΅Π»ΠΈ Π·Π°ΠΏΡ€Ρ‹Π³Π½ΡƒΡ‚ΡŒ Π² микросСрвисы Π±Π΅Π· ΠΎΡ†Π΅Π½ΠΊΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… послСдствий!

Π’ΠΏΠ΅Ρ€Π²Ρ‹Π΅ ΠΎ микросСрвисах я ΡƒΠ·Π½Π°Π» Π΅Ρ‰Π΅ Π² 2013 Π³ΠΎΠ΄Ρƒ, это Π±Ρ‹Π» Ρ€ΠΎΠ»ΠΈΠΊ Π½Π° YouTube, Π³Π΄Π΅ пояснялась Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° сСрвисов Netflix. Π‘Ρ‹Π»ΠΎ вСсьма Π²ΠΏΠ΅Ρ‡Π°Ρ‚Π»ΡΡŽΡ‰Π΅, Π½ΠΎ я пропустил всС Π±Π΅Π· соТалСния, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ это Π±Ρ‹Π»ΠΎ слишком слоТно для мСня, Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚ΠΎΠ³Π΄Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°Ρ‡Π°Π» ΠΏΠΎΡΡ‚ΠΈΠ³Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Π‘ΠΊΠΎΡ€ΠΎ это стало навязчивой ΠΈΠ΄Π΅Π΅ΠΉ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π½Π° Π½ΠΎΠ²ΠΎΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ объявили ΠΎ Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠΈ микросСрвисов. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π±Ρ‹Π»Π° ΡƒΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ, ΠΎΠ½ Π΄ΠΎ сих ΠΏΠΎΡ€ остаСтся Π»ΡƒΡ‡ΡˆΠΈΠΌ ΠΏΠΎ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Π΅ ΠΈΠ· Ρ‚Π΅Ρ…, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠΏΠ°Π΄Π°Π»ΠΈ ΠΊΠΎ ΠΌΠ½Π΅.

ЧСстно говоря, ΡˆΠΈΡ€ΠΎΠΊΠΈΠ΅ возмоТности ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±Ρ‹Π»ΠΈ Π³Π΄Π΅-Ρ‚ΠΎ Π΄Π°Π»Π΅ΠΊΠΎ ΠΎΡ‚ мСня, ΠΈ я просто Π΄ΠΎΠ±Π°Π²ΠΈΠ» Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ слоТности, Π±ΡƒΠ΄ΡƒΡ‡ΠΈ нСвСТСствСнным Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ, ΡΠΊΡ€Ρ‹Π²Π°Π²ΡˆΠΈΠΌΡΡ ΠΎΡ‚ DevOps. Бпустя ΠΏΡΡ‚ΡŒ Π»Π΅Ρ‚ я ΡƒΠΆΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽ с ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π½ΠΎΠ²Ρ‹ΠΌ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠΌ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ людьми. Π£ мСня ΠΊΡƒΡ‡Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, Π²ΠΎΠ·Π½ΠΈΠΊΡˆΠΈΡ… ΠΈΠ·-Π·Π° ΠΏΠ»ΠΎΡ…ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Ρ… микросСрвисов, ΠΏΡ€ΠΈΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹Ρ… Ρ‚Π°ΠΊΡ‚ΠΈΠΊΠΎΠΉ дСвопсов-Π»ΡŽΠ±ΠΈΡ‚Π΅Π»Π΅ΠΉ (дСвляпсов?, ΠΏΡ€ΠΈΠΌ. ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊΠ°). ПСлСна довольно скоро спала, ΠΎΠ±Π½Π°ΠΆΠΈΠ² Ρ…Ρ€ΡƒΠΏΠΊΠΎΡΡ‚ΡŒ микросСрвисов. Π’Π°ΠΊΠΆΠ΅ я Π½Π°Ρ‡Π°Π» ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° всю эту Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ Π±ΠΎΠ»Π΅Π΅ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹ΠΌ взглядом. Π‘Ρ‹Π»ΠΎ ΠΏΠΎΠ·Π΄Π½ΠΎ, Π½ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ·Π΄Π½ΠΎ, Ρ‡Π΅ΠΌ Π½ΠΈΠΊΠΎΠ³Π΄Π°.

Видя, Ρ‡Ρ‚ΠΎ микросСрвисы ΠΈΠ³Ρ€Π°ΡŽΡ‚ Ρ€ΠΎΠ»ΡŒ ΠΊΠ°ΠΊ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ гСроя, Ρ‚Π°ΠΊ ΠΈ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ злодСя, я ΡΠΎΠ·Π½Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠ±Π΅Π΄ΠΈΠ» сСбя ΡΡ‚Π°Ρ‚ΡŒ «Π°Π΄Π²ΠΎΠΊΠ°Ρ‚ΠΎΠΌ дьявола». А Ссли Π²Ρ‹ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΠΎΡ€ ΠΈΠ»ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ, Π²Ρ‹Π±ΠΈΡ€Π°ΡŽΡ‰ΠΈΠΉ ΠΌΠΈΠΊΡ€ΠΎΡΠ΅Ρ€Π²ΠΈΡΠ½ΡƒΡŽ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ β€” ΠΏΡ€ΠΈΠ΄Π΅Ρ€ΠΆΠΈΡ‚Π΅ ΠΊΠΎΠ½Π΅ΠΉ ΠΈ Π·Π°Π΄Π°ΠΉΡ‚Π΅ сСбС нСсколько вопросов.

Π’Π°ΡˆΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ достаточно большоС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Ρ€ΠΎΠ±ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π½Π° микросСрвисы?

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

На ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ΅ Π²Ρ‹ΡˆΠ΅ прСдставлСно сравнСниС «ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ строчки ΠΊΠΎΠ΄Π°» ΠΌΠ΅ΠΆΠ΄Ρƒ микросСрвисами ΠΈ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½Ρ‹ΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ. ΠœΠΈΠΊΡ€ΠΎΡΠ΅Ρ€Π²ΠΈΡΡ‹ Π΄ΠΎΡ€ΠΎΠΆΠ΅, Π΄Π°ΠΆΠ΅ Π² простом случаС, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π΅ΡΡ‚ΡŒ минимальная Ρ†Π΅Π½Π° рСсурсов, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… для Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΠΊΠΎΠ² ΠΈ оборудования. Об этом Π΄ΠΎΠ»ΠΆΠ΅Π½ Π΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ, Π° Ссли вас это Π½Π΅ Π·Π°Π±ΠΎΡ‚ΠΈΡ‚, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Π°ΠΌ Π²ΠΎΠΎΠ±Ρ‰Π΅ Π½Π΅ стоит ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ.

Никто Π½Π΅ спорит, Ρ‡Ρ‚ΠΎ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚ вырасти, Π° это ΠΌΠΎΠΆΠ΅Ρ‚ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ слоТности, Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ стоит Π·Π°Π±Ρ‹Π²Π°Ρ‚ΡŒ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ всСгда ΠΌΠΎΠΆΠ½ΠΎ пСрСвСсти Π½Π° микросСрвисы ΠΏΡ€ΠΈ ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½ΠΈΠΈ ΠΊ ΠΏΠΎΡ€ΠΎΠ³ΠΎΠ²ΠΎΠΌΡƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ.

НуТно Π»ΠΈ Π½Π° самом Π΄Π΅Π»Π΅ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ прилоТСния?

ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π²Π»Π°Π΄Π΅Π»Π΅Ρ† ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° обратился ΠΊ Π²Π°ΠΌ с ΠΈΠ΄Π΅Π΅ΠΉ систСмы управлСния для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΎΡ‚Π΄Π΅Π»Π° ΠΊΠ°Π΄Ρ€ΠΎΠ² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΎΡ‚ 10.000 сотрудников. ВСхничСский энтузиаст Π²Π½ΡƒΡ‚Ρ€ΠΈ вас ΠΎΡ‚Π²Π΅Ρ‚ΠΈΡ‚ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ: микросСрвисная Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°.

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, это Π³Ρ€Π°Π½ΠΈΡ‡Π½Ρ‹ΠΉ случай, Π½ΠΎ ΠΎΠ±Ρ‰ΠΈΠΉ смысл Π²Ρ‹ ΡƒΠΆΠ΅ ΡƒΠ»ΠΎΠ²ΠΈΠ»ΠΈ! Одно ΠΈΠ· основных прСимущСств использования этой Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ β€” простота ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°. МоТно Π½Π°ΠΉΡ‚ΠΈ мноТСство ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… этот ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ сработаСт, Π½ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π»ΠΈ это Π²Π°ΡˆΠ΅ΠΌΡƒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ?

Π•ΡΡ‚ΡŒ Π»ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ, распрСдСлСнныС ΠΌΠ΅ΠΆΠ΄Ρƒ сСрвисами?

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

CСрвисы REST Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ состояния ΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡŽ, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΡ‡Π°ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π² транзакциях, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ проходят ΠΏΠΎ нСскольким сСрвисам. Π’ ΠΌΠΈΡ€Π΅ высокой ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π΄Π²ΡƒΡ…Ρ„Π°Π·Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ (2PC) β€” Π½Π΅Π½ΡƒΠΆΠ½ΠΎΠ΅ Π·Π»ΠΎ. Π¨Π°Π±Π»ΠΎΠ½ SAGA добавляСт Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ слоТности, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π²Ρ‹ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚Π΅ Π³ΠΎΡ‚ΠΎΠ²Ρ‹.

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

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ ΠΈΠΌΠ΅Ρ‚ΡŒ распрСдСлСнныС ΠΏΠΎ сСрвисам Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ?

Π”Π°, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ.

Π‘Ρ‚ΠΎΠΈΡ‚ Π»ΠΈ Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ дСйствий ΠΏΠΎΠ²Π΅Ρ€Ρ… сСрвисов Π±Π΅Π· состояния (stateless)?

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½Π΅ стоит!!

Π•ΡΡ‚ΡŒ Π»ΠΈ Π½ΡƒΠΆΠ΄Π° Π² частом ΠΎΠ±Ρ‰Π΅Π½ΠΈΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ сСрвисами?

Π’ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΌ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½ΠΎΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ экзСмпляр микросСрвиса прСдоставляСтся Π² Π²ΠΈΠ΄Π΅ модуля систСмы. Бвязь ΠΌΠ΅ΠΆΠ΄Ρƒ модулями Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² памяти с Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ, Π±Π»ΠΈΠ·ΠΊΠΎΠΉ ΠΊ Π½ΡƒΠ»ΡŽ. ВнСдряя микросСрвисы Π½Π΅ стоит Π·Π°Π±Ρ‹Π²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ связь ΠΌΠ΅ΠΆΠ΄Ρƒ сСрвисами ΠΏΠ΅Ρ€Π΅ΡˆΠ»Π° ΠΎΡ‚ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ Π² памяти ΠΊ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ ΠΏΠΎ ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π°ΠΌ.

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

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

КоС-Ρ‡Ρ‚ΠΎ Π΅Ρ‰Ρ‘

  • ДобавлСнная ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ β€” ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΆΠ΅, ΠΎΠ½Π° Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° Π² Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ, Π½ΠΎ Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‡Π΅Π³ΠΎ-Π»ΠΈΠ±ΠΎ. НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ микросСрвисы ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π»ΠΈΡΡŒ для ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡ слоТности Π·Π° счСт разбиСния прилоТСния Π½Π° Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π»ΠΊΠΈΠ΅ части β€” ΠΈΡ… Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° Π±ΠΎΠ»Π΅Π΅ слоТная Π² Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠΈ ΠΈ обслуТивании.

Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ усрСднСнная организация Π² IT Π½Π΅ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΆΠ΅ Π½Π°Π²Ρ‹ΠΊΠ°ΠΌΠΈ, ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΎΠ² Netflix. mike_pfeiffer

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

  • Π’Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ DevOps ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ, Ρ‚Π°ΠΊ ΠΈ Π²Ρ€Π΅Π΄Π½Ρ‹ΠΌ. DevOps β€” ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½ΠΎΠ΅ ΠΈ ΡˆΠΈΡ€ΠΎΠΊΠΎ распространСнноС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, Π½ΠΎ Ссли Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ Π² малСнькой ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, созданиС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ DevOps ΠΌΠΎΠΆΠ΅Ρ‚ принСсти большС Π²Ρ€Π΅Π΄Π°, Ρ‡Π΅ΠΌ ΠΏΠΎΠ»ΡŒΠ·Ρ‹. Но ΠΎΠ΄Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‡Π½ΠΎ β€” нСльзя ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ микросСрвисами Π±Π΅Π· ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ DevOps.

  • Бильная ΡΠ²ΡΠ·Π½ΠΎΡΡ‚ΡŒ β€” Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ прилоТСния сильно связаны ΠΏΠΎ своСй ΠΏΡ€ΠΈΡ€ΠΎΠ΄Π΅. Π Π°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ Π½Π° микросСрвисы, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Β«Π²ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡΒ» Π² Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ, Π±ΡƒΠ΄Π΅Ρ‚ катастрофичСским.

  • ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ ΠΎΠΏΡ‹Ρ‚Π°. ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ ΠΎΠΏΡ‹Ρ‚Π° ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π΅ΡˆΠ°ΡŽΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для любой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, ΠΈ ΠΎΠ½ΠΎ Π½Π΅ ограничиваСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ SOA. Но ΠΊΠΎΠ³Π΄Π° Π΄Π΅Π»ΠΎ Π΄ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Π΄ΠΎ микросСрвисов, это ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ Ρ€Π΅ΡˆΠ°ΡŽΡ‰ΠΈΠΌ Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠΌ. Если Π²Ρ‹ Ρ€Π°Π·Π²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Π΅Ρ‚Π΅ прилоТСния Π² Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΌ порядкС ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ сбой ΠΈ зависимый сСрвис ΡƒΠΏΠ°Π΄Π΅Ρ‚ β€” Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠΆΠ΅ ΠΏΠΎΠ·Π΄Π½ΠΎ.

  • Π‘ΠΊΠ²ΠΎΠ·Π½ΠΎΠ΅ тСстированиС. Π’ΠΈΠΏΠΈΡ‡Π½ΠΎΠ΅ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ позволяСт Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ тСст практичСски ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ. НаличиС Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… слуТб с Π²Π·Π°ΠΈΠΌΠΎΠ·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒΡŽ Π·Π°Π΄Π΅Ρ€ΠΆΠΈΡ‚ тСстированиС Π±Π΅Π· ТизнСспособной оркСстровки.

  • Π₯Π°ΠΎΡ‚ΠΈΡ‡Π½Ρ‹Π΅ ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Ρ‹ Π½Π° Π΄Π°Π½Π½Ρ‹Π΅. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚ΠΎΠ² Π½Π° Π΄Π°Π½Π½Ρ‹Π΅ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ сильно отличаСтся ΠΎΡ‚ ΠΈΡ… распространСния срСди ΠΊΠΎΠΌΠ°Π½Π΄. А ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с микросСрвисами, ваша ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² ΠΎΠ΄Π½ΠΎΠΌ Ρ€Π΅Π³ΠΈΠΎΠ½Π΅, Π½Π΅ говоря ΡƒΠΆΠ΅ ΠΎΠ± использовании ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ языка программирования. Π’Ρ‹Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚ΠΎΠ² с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ для особых Π½ΡƒΠΆΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ ΡΡ‚ΠΎΠΈΡ‚ΡŒ Π²Π°ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ мСста.

  • Π£ΡΡ‚Π°Ρ€Π΅Π²ΡˆΠ°Ρ кодовая Π±Π°Π·Π° β€” Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π±ΡƒΠ΄Π΅ΠΌ чСстными. Для Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° ΠΈΠ· нас Ρ€Π°Π±ΠΎΡ‚Π° с ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠ΅ΠΉ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·ΠΎΠΉ β€” это повсСднСвная Π΄Π΅ΡΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. Π­Ρ‚ΠΎ Ρ…Π»Π΅Π± с маслом Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΉ. Быстро ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΠ΅ΡΡ тСхнологичСскиС достиТСния ставят нас Π²ΠΏΠ΅Ρ€Π΅Π΄ΠΈ всСх, Π½ΠΎ ΠΈ Π² Ρ‚ΠΎ ΠΆΠ΅ врСмя ΠΎΠ½ΠΈ ΠΈΠ·ΠΎΠ»ΠΈΡ€ΡƒΡŽΡ‚ нас ΠΎΡ‚ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠ΅ΠΉ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ‹. Π’Ρ‹ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹, Ρ‡Ρ‚ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠΉ RabbitMQ, Ρ…ΠΎΡ€ΠΎΡˆΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΌ Π½Π° AIX?

  • УстранСниС Π½Π΅ΠΏΠΎΠ»Π°Π΄ΠΎΠΊ β€” ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ сСрвис Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ свой собствСнный Π½Π°Π±ΠΎΡ€ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΆΡƒΡ€Π½Π°Π»ΠΎΠ² для Π°Π½Π°Π»ΠΈΠ·Π°. Π‘ΠΎΠ»ΡŒΡˆΠ΅ сСрвисов = большС Ρ„Π°ΠΉΠ»ΠΎΠ².

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

Π― здСсь, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ «ΠΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ микросСрвисы»?

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΆΠ΅, Π½Π΅Ρ‚!!

ΠœΠΈΠΊΡ€ΠΎΡΠ΅Ρ€Π²ΠΈΡΡ‹ заслуТили ΠΈΠ·Π²Π΅ΡΡ‚Π½ΠΎΡΡ‚ΡŒ. Они Ρ€Π΅ΡˆΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΡ‡ΠΈΡ‚Π°Π»ΠΈΡΡŒ Π½Π΅Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΠΌΡ‹ΠΌΠΈ. Π˜ΡΡ‚ΠΎΡ€ΠΈΡ Netflix ΠΏΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡŽ микросСрвисов Π²Π΄ΠΎΡ…Π½ΠΎΠ²ΠΈΠ»Π° ΠΌΠ½ΠΎΠ³ΠΈΡ…. И список ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎ Π½Π΅ останавливаСтся Π½Π° Netflix. Uber, SoundCloud ΠΈ гигантский Amazon β€” Π²ΠΎΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρƒ всСх Π½Π° слуху. И Π½Π΅ Π΄ΡƒΠΌΠ°ΠΉΡ‚Π΅, Ρ‡Ρ‚ΠΎ истории успСха ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΌΠΈ прилоТСниями. Π― ΠΈΠΌΠ΅Π» нСпосрСдствСнный ΠΎΠΏΡ‹Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с амСриканским Π³ΠΈΠ³Π°Π½Ρ‚ΠΎΠΌ здравоохранСния ΠΈ Π±Ρ‹Π» ΠΎΡ‡Π°Ρ€ΠΎΠ²Π°Π½ возмоТностями Π΄ΠΈΠ·Π°ΠΉΠ½Π°, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π» исходный ΠΊΠΎΠ΄.

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

МнС нравятся ΡƒΠ²Π»Π΅Ρ‡Π΅Π½Π½Ρ‹Π΅ программисты, я сам Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠΎΠ³Π΄Π°-Ρ‚ΠΎ Π±Ρ‹Π» Ρ‚Π°ΠΊΠΈΠΌ, Π΄Π° ΠΈ всС Π΅Ρ‰Π΅ Π΅ΡΡ‚ΡŒ. Они ΠΏΡ€Π΅Π΄Π°Π½Ρ‹ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°ΡŽΡ‚, ΠΈ пСрСходят всС Π³Ρ€Π°Π½ΠΈΡ†Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ свою ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ. Но Π²Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ‚Π°ΠΊ ΠΆΠ΅ энСргично ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΡΡ‚ΠΎΠΈΡ‚ΡŒ Π²Π°ΠΌ ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ†Π΅Π»ΠΎΠ΅ состояниС, ΠΈΠ·Π²ΠΈΠ½ΠΈΡ‚Π΅ Π·Π° Ρ€Π΅Π·ΠΊΠΎΡΡ‚ΡŒ. ΠœΠΈΠΊΡ€ΠΎΡΠ΅Ρ€Π²ΠΈΡΡ‹ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ вашСй Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΎΠΉ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Π­Ρ‚ΠΎ Π½Π΅ сСрСбряная пуля, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ искали. БохраняйтС равновСсиС с KISS ΠΈ YAGNI.

Как сторонник Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΈ энтузиаст, Π²Ρ‹ ΠΈΠΌΠ΅Π΅Ρ‚Π΅ ΠΏΡ€Π°Π²ΠΎ Ρ‡Ρ‚ΠΎ-Π»ΠΈΠ±ΠΎ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ. Однако Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ вас с Π»ΡƒΡ‡ΡˆΠ΅ΠΉ стороны β€” ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΏΡ€Π°Π³ΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ находятся ΠΌΠ΅ΠΆΠ΄Ρƒ Β«ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌΒ» ΠΈ «вашим Π»ΡŽΠ±ΠΈΠΌΡ‹ΠΌ Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌΒ».

PHP ΠœΠΈΠΊΡ€ΠΎΡΠ΅Ρ€Π²ΠΈΡΡ‹ [Книга]

ОписаниС книги

ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΎΡ‚ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½Ρ‹Ρ… Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ ΠΊ высокодоступным, ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌ ΠΈ отказоустойчивым микросСрвисам

Об этой ΠΊΠ½ΠΈΠ³Π΅

  • Π‘ΠΎΠ·Π΄Π°Π²Π°ΠΉΡ‚Π΅ собствСнныС прилоТСния Π½Π° основС микросСрвисов, управляСмых событиями, ΠΈ настраивайтС ΠΈΡ… Π½Π° Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ сСрвСрС.
  • ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠΉΡ‚Π΅ любоС ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² микросСрвис.
  • Π‘Π»Π΅Π΄ΠΈΡ‚Π΅ Π·Π° состояниСм вашСго прилоТСния, ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π°ΠΉΡ‚Π΅ простои ΠΈ сокращайтС расходы.

Для ΠΊΠΎΠ³ΠΎ эта ΠΊΠ½ΠΈΠ³Π°

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ PHP, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ хотят ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅, высокодоступныС ΠΈ бСзопасныС прилоТСния, Π½Π°ΠΉΠ΄ΡƒΡ‚ эту ΠΊΠ½ΠΈΠ³Ρƒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ. Π—Π½Π°Π½ΠΈΠ΅ микросСрвисов Π½Π΅ прСдполагаСтся.

Π§Ρ‚ΠΎ Π²Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅

  • НастройтС срСду Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ стратСгии ΠΈ инструмСнты.
  • Π£Π·Π½Π°ΠΉΡ‚Π΅ ΠΎ Π΄ΠΈΠ·Π°ΠΉΠ½Π΅ ΠΈ структурС прилоТСния, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ ΠΊ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ своСго прилоТСния.
  • ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½ΠΎΠ³ΠΎ прилоТСния Π² микросСрвисы.
  • Π£Π·Π½Π°ΠΉΡ‚Π΅, ΠΊΠ°ΠΊ Π»ΡƒΡ‡ΡˆΠ΅ всСго Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ вашСго прилоТСния с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ тСстирования.
  • Π£Π·Π½Π°ΠΉΡ‚Π΅, ΠΊΠ°ΠΊ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ свои микросСрвисы, ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ошибки ΠΈ ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.
  • Π Π°Π·Π²Π΅Ρ€Π½ΠΈΡ‚Π΅ Π³ΠΎΡ‚ΠΎΠ²ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² производствСнной срСдС ΠΈ ΡƒΠ·Π½Π°ΠΉΡ‚Π΅, ΠΊΠ°ΠΊ Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹.
  • Π—Π½Π°ΠΉΡ‚Π΅, ΠΊΠ°ΠΊ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° основС микросСрвисов, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡƒΡ‰Π΅Π½ΠΎ?

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ

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

Книга начинаСтся с ввСдСния Π² ΠΌΠΈΡ€ микросСрвисов ΠΈ быстро ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, ΠΊΠ°ΠΊ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ срСду Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π±Π°Π·ΠΎΠ²ΡƒΡŽ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Docker ΠΈ Vagrant. Π—Π°Ρ‚Π΅ΠΌ Π²Ρ‹ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚Π΅ΡΡŒ с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ аспСктами Π΄ΠΈΠ·Π°ΠΉΠ½Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ создании микросСрвисов Π² вашСй любимой ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅, ΠΈ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚Π΅ Ρ‚Π°ΠΊΠΈΠ΅ Ρ‚Π΅ΠΌΡ‹, ΠΊΠ°ΠΊ тСстированиС, Π·Π°Ρ‰ΠΈΡ‚Π° ΠΈ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ микросСрвисов.Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠΉΠΌΠ΅Ρ‚Π΅, ΠΊΠ°ΠΊ пСрСнСсти ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΌΠΈΠΊΡ€ΠΎΡΠ΅Ρ€Π²ΠΈΡΠ½ΡƒΡŽ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ, учитывая ΠΏΡ€ΠΈ этом ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ ΠΈ ΠΏΠ΅Ρ€Π΅Π΄ΠΎΠ²Ρ‹Π΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π²Ρ‹ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚Π΅ΡΡŒ с нСсколькими Π²Π°ΠΆΠ½Ρ‹ΠΌΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ DevOps, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Π²Π°ΠΌ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ Π±ΠΎΠ»Π΅Π΅ слоТным областям, Ρ‚Π°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° собствСнного ΠΎΠ±Π»Π°ΠΊΠ°, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚Π΅ΡΡŒ с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ интСрСсными шаблонами проСктирования.

По ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΠΈ этой ΠΊΠ½ΠΈΠ³ΠΈ Π²Ρ‹ смоТСтС ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎ ΠΈ эффСктивно Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ прилоТСния Π½Π° основС микросСрвисов. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ знания, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½Ρ‹Π΅ прилоТСния Π² микросСрвисы.

Π‘Ρ‚ΠΈΠ»ΡŒ ΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄

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

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΈ ΡΠΏΡ€ΡΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Π΅

.Π£Ρ‡Π΅Π±Π½ΠΎΠ΅ пособиС ΠΏΠΎ микросСрвисам

: АрхитСктура ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€

  • Home
  • Testing

      • Back
      • Agile Testing
      • BugZilla
      • Cucumber
      • Database Testing
      • 000
      • ETL Testing
      • JUnit
      • LoadRunner
      • Π ΡƒΡ‡Π½ΠΎΠ΅ тСстированиС
      • МобильноС тСстированиС
      • Mantis
      • ΠŸΠΎΡ‡Ρ‚Π°Π»ΡŒΠΎΠ½
      • QTP
      • Назад
      • Π¦Π΅Π½Ρ‚Ρ€ контроля качСства (ALM)
      • 000
      • RPA Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ тСстированиСм
      • TestLink
  • SAP

      • Назад
      • ABAP
      • APO
      • ΠΠ°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠΉ
      • Basis
      • BODS
      • BI
      • BPC
      • CO
      • Назад
      • CRM
      • Crystal Reports
      • Crystal Reports
      • FICO
      • Заработная ΠΏΠ»Π°Ρ‚Π°
      • Назад
      • PI / PO
      • PP
      • SD
      • SAPUI5
      • Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ
      • ΠœΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ
      • Successfactors
      • SAP Tutorials

      4

    • Web
    • Apache
    • AngularJS
    • ASP.Net
    • C
    • C #
    • C ++
    • CodeIgniter
    • Π‘Π£Π‘Π”
    • JavaScript
    • Назад
    • Java
    • JSP
    • Kotlin
    • Linux
    • Linux
    • Kotlin
    • Linux
    • js

    • Perl
    • Назад
    • PHP
    • PL / SQL
    • PostgreSQL
    • Python
    • ReactJS
    • Ruby & Rails
    • Scala
    • SQL
    • 000

    • SQL
    • 000

      0003 SQL

      000

      0003 SQL

      000

    • UML
    • VB.Net
    • VBScript
    • Π’Π΅Π±-слуТбы
    • WPF
  • ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΡ‡ΠΈΡ‚Π΅!

      • Назад
      • БухгалтСрский ΡƒΡ‡Π΅Ρ‚
      • Алгоритмы
      • Android
      • Π‘Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½
      • Business Analyst
      • Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π²Π΅Π±-сайта
      • CCNA
      • ΠžΠ±Π»Π°Ρ‡Π½Ρ‹Π΅ вычислСния
      • 00030003 COBOL 9000 Compiler
          9000 ВстроСнныС систСмы

        • 00030002 9000 Compiler 9000
        • Ethical Hacking
        • Π£Ρ‡Π΅Π±Π½ΠΈΠΊΠΈ ΠΏΠΎ Excel
        • ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° Go
        • IoT
        • ITIL
        • Jenkins
        • MIS
        • Π‘Π΅Ρ‚ΡŒ
        • ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ систСма
        • Назад
        • Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ ΠžΠ±Π·ΠΎΡ€Ρ‹
        • Salesforce
        • SEO
        • Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния
        • VB A
    • Big Data

        • Назад
        • AWS
        • BigData
        • Cassandra
        • Cognos
        • Π₯Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π΄Π°Π½Π½Ρ‹Ρ…
        • 0003

        • HBOps
        • 0003

        • HBOps
        • MicroStrategy
        • MongoDB

    .

    Π½ΠΎΠ²Π΅ΠΉΡˆΠΈΡ… вопросов ΠΎ «ΠΌΠΈΠΊΡ€ΠΎΡΠ΅Ρ€Π²ΠΈΡΠ°Ρ…» — Stack overflow Π½Π° русском

    ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка

    1. Около
    2. ΠŸΡ€ΠΎΠ΄ΡƒΠΊΡ‚Ρ‹

    3. Для ΠΊΠΎΠΌΠ°Π½Π΄
    1. ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка
      ΠžΠ±Ρ‰Π΅ΡΡ‚Π²Π΅Π½Π½Ρ‹Π΅ вопросы ΠΈ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹

    2. ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ стСка для ΠΊΠΎΠΌΠ°Π½Π΄
      Π“Π΄Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈ дСлятся частными знаниями с ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌΠΈ

    3. Вакансии
      ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ связанныС с Π½ΠΈΠΌ тСхничСскиС возмоТности ΠΊΠ°Ρ€ΡŒΠ΅Ρ€Π½ΠΎΠ³ΠΎ роста

    4. Π’Π°Π»Π°Π½Ρ‚
      НанимайтС тСхничСских спСциалистов ΠΈ создавайтС свой Π±Ρ€Π΅Π½Π΄ работодатСля

    5. Π Π΅ΠΊΠ»Π°ΠΌΠ°
      ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³Π°ΠΌ со всСго ΠΌΠΈΡ€Π°

    6. О компании

    Загрузка…

    .

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

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