Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

ΠœΠΈΡ€ распрСдСлСнных систСм

ΠŸΡ€ΠΎΡΡ‚ΠΎ спроситС любой «Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅Π±Π΅Π½ΠΎΠΊ»: соврСмСнныС, распрСдСлСнныС систСмы Π², Π° ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½Ρ‹Π΅ прилоТСния истСкаСт!

Но это Π½Π΅ просто Β«Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π΄Π΅Ρ‚ΠΈΒ». ΠŸΡ€ΠΎΠ³Ρ€Π΅ΡΡΠΈΠ²Π½Ρ‹Π΅ ИВ-Ρ€ΡƒΠΊΠΎΠ²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΠΈ, ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΠΎΡ€Ρ‹ ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉΠΈ выводят Π½Π° экран Ρ‚Π΅ ΠΆΠ΅ ΠΈΠ΄Π΅ΠΈ, Ρ‡Ρ‚ΠΎ ΠΈ исслСдованиС ΠΈ ΠΎΡ†Π΅Π½ΠΊΠ° соврСмСнных распрСдСлСнных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. МногиС Π±Ρ‹Π»ΠΈ ΠΏΡ€ΠΈΠΎΠ±Ρ€Π΅Ρ‚Π΅Π½Ρ‹ Π². Они Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ Π½ΠΎΠ²Ρ‹Π΅ ΠΈ РСконструированиС ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, слСдуя ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ°ΠΌ, шаблонам ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠ°ΠΌ распрСдСлСнных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ микрослуТб.

Но эта ΡΠ²ΠΎΠ»ΡŽΡ†ΠΈΡ создаСт мноТСство вопросов.

Для Π½Π°Ρ‡Π°Π»Π° Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ Π½Π°Π·Π°Π΄ ΠΈ взглянСм Π·Π° послСдниС 15 Π»Π΅Ρ‚. Π’ Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ этого ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Π° ΠΌΡ‹ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ создавали прилоТСния Π² Π²ΠΈΠ΄Π΅ Π΅Π΄ΠΈΠ½ΠΎΠΉ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½ΠΎΠΉ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹. На рис. 1-1 ΠΏΠΎΠΊΠ°Π·Π°Π½Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

Рис. 1-1. ΠœΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½Π°Ρ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΠΊΠ°ΠΊ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ для упорядочивания, ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΈ ΠΌΠ°Ρ€ΠΊΠ΅Ρ‚ΠΈΠ½Π³Π° Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π² односСрвСрном процСссС. Π”Π°Π½Π½Ρ‹Π΅ прилоТСния хранятся Π² ΠΎΠ±Ρ‰Π΅ΠΉ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…. БизнСс-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ Ρ‡Π΅Ρ€Π΅Π· интСрфСйсы HTML ΠΈ RESTFUL.

Однако ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½Ρ‹Π΅ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ трудности.

Π‘ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ Ρ‚ΠΎΡ‡ΠΊΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ начинаСтся потСря контроля.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

Рис. 1-2. АрхитСктура SOA.

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ SOA Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ поставщики услуг, зарСгистрированныС Π² ESB. БизнСс-Π»ΠΎΠ³ΠΈΠΊΠ° Π±ΡƒΠ΄Π΅Ρ‚ встроСна Π² ESB для ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ поставщиков ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»Π΅ΠΉ. ΠŸΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ слуТб ΠΌΠΎΠ³ΡƒΡ‚ Π·Π°Ρ‚Π΅ΠΌ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ эти поставщики ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с Π½ΠΈΠΌΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ESB.

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

НастоящСС врСмя, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΈ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ, примСняя Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ созданию систСм Π½Π° основС Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ распрСдСлСнных микрослуТб. На рис. 1-3 ΠΏΠΎΠΊΠ°Π·Π°Π½Π° систСма, созданная с использованиСм распрСдСлСнных ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊ.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

Рис. 1-3. РаспрСдСлСнная Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ разбиваСтся ΠΏΠΎ Π½Π°Π±ΠΎΡ€Ρƒ распрСдСлСнных слуТб. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· Π½ΠΈΡ… самодостаточСн ΠΈ инкапсулируСт собствСнный ΠΊΠΎΠ΄, Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ зависимости. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· Π½ΠΈΡ… развСртываСтся Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния ΠΈ управляСтся ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠΌ Orchestrator. ВмСсто СдинствСнной Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, совмСстно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ нСсколькими слуТбами, каТдая слуТба Π²Π»Π°Π΄Π΅Π΅Ρ‚ частной Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ…. Π”Ρ€ΡƒΠ³ΠΈΠ΅ слуТбы Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ прямой доступ ΠΊ этой Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π°Π½Π½Ρ‹Π΅, прСдоставляСмыС Ρ‡Π΅Ρ€Π΅Π· общСдоступный API слуТбы, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠ½Π° ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ слуТбам трСбуСтся полная рСляционная Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ…, Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ β€” Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π΄Π°Π½Π½Ρ‹Ρ… NoSQL. Π‘Π»ΡƒΠΆΠ±Π° ΠΊΠΎΡ€Π·ΠΈΠ½Ρ‹ Ρ…Ρ€Π°Π½ΠΈΡ‚ своС состояниС Π² распрСдСлСнном кэшС ΠΊΠ»ΡŽΡ‡Π΅ΠΉ ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΠΊΠ°ΠΊ входящий Ρ‚Ρ€Π°Ρ„ΠΈΠΊ пСрСнаправляСтся Ρ‡Π΅Ρ€Π΅Π· слуТбу шлюза API. Он ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² ΠΊ слуТбам ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ пСрСкрСстной Π·Π°Π΄Π°Ρ‡ΠΈ. Π§Ρ‚ΠΎ Π²Π°ΠΆΠ½Π΅Π΅ всСго, ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ всС прСимущСства Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΠΈ, доступности ΠΈ устойчивости, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ…ΡΡ Π² соврСмСнных ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ….

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

Для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· этих Π·Π°Π΄Π°Ρ‡ часто доступны нСсколько ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ². Однако экранированиС прилоТСния ΠΎΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠΉ ΠΊ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°ΠΌ ΠΈ обСспСчСниС ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΈ пСрСносимости ΠΊΠΎΠ΄Π° становится ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ.

Π’ этой ΠΊΠ½ΠΈΠ³Π΅ прСдставлСны Π”ΠΠŸΠ . Π”ΠΠŸΠ  β€” это распрСдСлСнная срСда выполнСния прилоТСния. Он Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ вмСстС с распрСдСлСнными прилоТСниями. Глядя Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π”ΠΠŸΠ  ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠ΅ воздСйствиС Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ распрСдСлСнных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

Π‘Π²ΠΎΠ΄ΠΊΠ°

Π’ этой Π³Π»Π°Π²Π΅ ΠΌΡ‹ обсуТдали Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ распрСдСлСнных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠœΡ‹ отмСняСм ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ Ρ€Π°Π±ΠΎΡ‚Π΅ с распрСдСлСнными слуТбами. ΠœΡ‹ ΡƒΠΊΠ°Π·Π°Π»ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ распространСнныС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΏΡ€ΠΈ рассмотрСнии распрСдСлСнного ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ свою Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΈ ΠΏΠΎΠ΄Π°Ρ‚ΡŒ Π½Π°ΠΌ Π½ΠΎΠ²Ρ‹ΠΉ ΠΌΠΈΡ€ Π”ΠΠŸΠ .

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

1. РаспрСдСлСнныС прилоТСния. Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

Π—Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ для прСдоставлСния Ρ‚Π΅Π»Π΅ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… услуг трСбуСтся созданиС распрСдСлённых ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (распрСдСлённых ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм).

РаспрСдСлённоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ – это ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, состоящая ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… частСй, каТдая ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ…, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, выполняСтся Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ (ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΌ устройствС) сСти:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

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

РаспрСдСлённая систСма – ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ-Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, состоящСС ΠΈΠ· ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… Π½Π° физичСски ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Ρ… ΠΈ нСзависимых Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π° Π³Π΅Ρ‚Π΅Ρ€ΠΎΠ³Π΅Π½Π½Ρ‹Ρ… ΡƒΠ·Π»Π°Ρ…, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅Π΅ΡΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π΅Π΄ΠΈΠ½ΠΎΠΉ объСдинСнной систСмой.

РаспрСдСлСнныС Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ систСмы ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‚ Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΎΠ±Ρ‰ΠΈΠΌΠΈ свойствами, ΠΊΠ°ΠΊ:

НСдостатки распрСдСлённых систСм:

ВрСбования ΠΊ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΌ распрСдСлённым систСмам:

1 Π’ΠΈΠΏΠΎΠ²Ρ‹Π΅ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ распрСдСлённых ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ

К Ρ‚Π°ΠΊΠΎΠ²Ρ‹ΠΌ относятся:

1.1 АрхитСктура ΠΊΠ»ΠΈΠ΅Π½Ρ‚-сСрвСр

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

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

Данная информационная систСма прСдставляСт собой ΡΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π΄Π²ΡƒΡ… Ρ‚ΠΈΠΏΠΎΠ²: ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² ΠΈ сСрвСров. Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π΄Π°Π½Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ разнСсСны ΠΏΠΎ ΡƒΠ·Π»Π°ΠΌ Π΄Π²ΡƒΡ… Ρ‚ΠΈΠΏΠΎΠ²: ΡƒΠ·Π»Π°ΠΌ-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌ ΠΈ ΡƒΠ·Π»Π°ΠΌ-сСрвСрам.

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

НаиболСС часто Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‰ΠΈΠΉΡΡ класс ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹Ρ… Π² Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚-сСрвСр, – это прилоТСния, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠ΅ с Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС Π² качСствС сСрвСра выступаСт Π‘Π£Π‘Π”, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰Π°Ρ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ запросов ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ интСрфСйс ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

Π”Π°Π»Π΅Π΅ прСдставлСны нСсколько ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΡ… Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚-сСрвСр.

1.1.1 МодСль сСрвиса

МодСль сСрвиса Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ, ΠΊΠΎΠ³Π΄Π° услугу выполняСт Π½Π΅ ΠΎΠ΄ΠΈΠ½, Π° нСсколько сСрвСров, прСдставляСмых ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ ΠΊΠ°ΠΊ Π΅Π΄ΠΈΠ½ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅. Π’.Π΅. сСрвСр ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»ΠΎΠΆΠ½ΡƒΡŽ структуру.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

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

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

1.1.2. ВСхнология Proxy

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ Π΄Π°Π½Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ являСтся привычная для нас структура: Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ – proxy-сСрвСр β€” web-сСрвСр.

ΠžΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ соСдиняСтся Π½Π΅ с сСрвСром, Π° с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ (посрСдником).

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

ΠŸΠΎΡΡ€Π΅Π΄Π½ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ сам Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠΌΡƒ ΠΈΠ· сСрвСров ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ запрос ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° (ΠΌΠΎΠΆΠ½ΠΎ с Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ). ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, посрСдник ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ послСдниС запросы ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π΅ΠΌΡƒ ΠΎΡ‚Π²Π΅Ρ‚, Π½Π΅ ΠΎΠ±Ρ€Π°Ρ‰Π°ΡΡΡŒ ΠΊ сСрвСру.

НСдостаток: ΠΏΡ€ΠΈ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΌ построСнии посрСдник ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ ΡƒΠ·ΠΊΠΈΠΌ мСстом систСмы Π² Ρ†Π΅Π»ΠΎΠΌ.

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ Π² ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ Ρ‡Π°Ρ‰Π΅ всСго ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄.

1.2 ΠœΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹

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

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

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

1.3 Π’ΠΎΠ½ΠΊΠΈΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ‚

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

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

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

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

1.2 АрхитСктура P2P (Peer to Peer)

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

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΈ Ρ‚ΠΎΠΌ ΠΆΠ΅ ΡƒΠ·Π»Π΅ Π² ΠΎΠ΄ΠΈΠ½ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ части систСмы, ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ запросы Π΄Ρ€ΡƒΠ³ΠΈΡ… частСй (ΠΈ ΡƒΠ·Π΅Π» выполняСт Β«ΡΠ΅Ρ€Π²Π΅Ρ€Π½ΡƒΡŽΒ» Ρ‡Π°ΡΡ‚ΡŒ), Π° Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ β€” части систСмы, ΠΏΠΎΡΡ‹Π»Π°ΡŽΡ‰ΠΈΠ΅ запросы (ΠΈ ΡƒΠ·Π΅Π» выполняСт Β«ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΡΠΊΡƒΡŽΒ» Ρ‡Π°ΡΡ‚ΡŒ). ΠŸΡ€ΠΈΡ‡Π΅ΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ устроСно Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ Π½Π΅ Π·Π½Π°Π΅Ρ‚, локально ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎ располоТСна вызываСмая.

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

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ ΠΊΠ»ΠΈΠ΅Π½Ρ‚-сСрвСр, такая организация позволяСт ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚ΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ сСти ΠΏΡ€ΠΈ любом количСствС ΠΈ любом сочСтании доступных ΡƒΠ·Π»ΠΎΠ².
Вакая Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Ρ… Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… систСм для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ слоТных Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡.

Помимо чистых P2P-сСтСй, ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ Π³ΠΈΠ±Ρ€ΠΈΠ΄Π½Ρ‹Π΅ сСти, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ сСрвСры, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ для ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ†ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹, поиска ΠΈΠ»ΠΈ прСдоставлСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΌΠ°ΡˆΠΈΠ½Π°Ρ… сСти ΠΈ ΠΈΡ… статусС (on-line, off-line ΠΈ Ρ‚. Π΄.). Π“ΠΈΠ±Ρ€ΠΈΠ΄Π½Ρ‹Π΅ сСти ΡΠΎΡ‡Π΅Ρ‚Π°ΡŽΡ‚ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… сСтСй ΠΈ Π½Π°Π΄Ρ‘ΠΆΠ½ΠΎΡΡ‚ΡŒ Π΄Π΅Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… благодаря Π³ΠΈΠ±Ρ€ΠΈΠ΄Π½Ρ‹ΠΌ схСмам с нСзависимыми индСксационными сСрвСрами, ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΌΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΌΠ΅ΠΆΠ΄Ρƒ собой. ΠŸΡ€ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π΅ ΠΈΠ· строя ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… сСрвСров, ΡΠ΅Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. К частично Π΄Π΅Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ Ρ„Π°ΠΉΠ»ΠΎΠΎΠ±ΠΌΠ΅Π½Π½Ρ‹ΠΌ сСтям относятся, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ EDonkey, BitTorrent.

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

РаспрСдСлСнныС прилоТСния (ĐApps)

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнныС прилоТСния (ĐApps)

РаспрСдСлСнныС прилоТСния (ĐApps) – это ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Π΅ прилоТСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ хранятся ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π² основном Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ… ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹Ρ… вычислСний ΠΈ Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… систСмах. Π­Ρ‚ΠΈ распрСдСлСнныС систСмы Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π² ΠΎΠ΄Π½ΠΎΠΉ сСти ΠΈ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ – Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ прилоТСния, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΎΠ΄Π½Ρƒ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ систСму для выполнСния поставлСнной Π·Π°Π΄Π°Ρ‡ΠΈ.

ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ Π²Ρ‹Π²ΠΎΠ΄Ρ‹

ΠžΠ±Ρ‰ΠΈΠ΅ свСдСния ΠΎ распрСдСлСнных прилоТСниях (ĐApps)

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

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

КаТдая ΠΈΠ· этих Π·Π°Π΄Π°Ρ‡ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ»ΠΈ нСсколькими систСмами Π² сСти, Π½ΠΎ всС систСмы Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΏΠΎΠΊΡƒΠΏΠ°Π΅Ρ‚ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠΌ Π²Ρ‹Π³ΠΎΠ΄Π΅Π½.

ΠšΡ€Π°Ρ‚ΠΊΠΈΠΉ ΠΎΠ±Π·ΠΎΡ€

ΠŸΠΎΠΏΡƒΠ»ΡΡ€Π½Π°Ρ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΌΡƒΠ·Ρ‹ΠΊΠΈ Spotify – это Π΄Π΅Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ ΠΈ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΌΠΎΡ‰Π½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ для эффСктивной Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΌΠ°Π»ΠΎΠΉ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ распрСдСлСнных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (ĐApps)

Компании финансового сСктора постоянно ΠΈΡ‰ΡƒΡ‚ Π½ΠΎΠ²Ρ‹Π΅ способы Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ incorpoΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² свои Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ процСссы Ρ‡Π΅Ρ€Π΅Π· прозрачности ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Ρ„ΠΈΡ€ΠΌΡ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ строгим трСбованиям финансовых рСгуляторов.

Π”Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹, ΠΏΠΎΡ‡Π΅ΠΌΡƒ Ρ„ΠΈΡ€ΠΌΠ° Π² финансовом сСкторС ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ĐApps Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ сокращСниС числа посрСдников, ΡƒΡ‡Π°ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π² финансовых опСрациях, прСдоставляя ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌ доступ ΠΊ cryptocurrencies, ΠΈ обСспСчСниС доступа ΠΊ Ρ‚Π°ΠΊΠΈΠΌ Π³Ρ€ΡƒΠΏΠΏΠ°ΠΌ, ΠΊΠ°ΠΊ Ρ€Π°Π²Π½Ρ‹ΠΉ-Ρ€Π°Π²Π½ΠΎΠΌΡƒ (P2P) ΠΊΡ€Π΅Π΄ΠΈΡ‚Π½Ρ‹Π΅ Π³Ρ€ΡƒΠΏΠΏΡ‹. Đ ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ историчСских Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ, упрощСния процСссов AML ΠΈ KYC, ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ Ρ‚ΠΎΡ€Π³ΠΎΠ²ΠΎΠ³ΠΎ финансирования ΠΈ финансирования Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ поставок, Π° Ρ‚Π°ΠΊΠΆΠ΅ обСспСчСния ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ банковского обслуТивания.

Π‘Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½Ρ‹ ΠΈ распрСдСлСнныС прилоТСния (ĐApps)

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

Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡƒΠ·Π»Π° Π΅ΡΡ‚ΡŒ Π΄ΡƒΠ±Π»ΠΈΡ€ΡƒΡŽΡ‰Π°Ρ копия исходной Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ, которая постоянно согласовываСтся ΡΠ΅Ρ‚ΡŒΡŽ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, какая Π±Ρ‹ запись Ρƒ ΡƒΠ·Π»Π° A Π½ΠΈ Π±Ρ‹Π»Π° для Π±ΠΈΡ‚ΠΊΠΎΠΉΠ½-Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ Π”ΠΆΠ΅ΠΉΠ½ ΠΈ Π”ΠΆΠΎΠ½ΠΎΠΌ, Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Ρƒ ΡƒΠ·Π»ΠΎΠ² B, C, D, E ΠΈ F. Π­Ρ‚ΠΎ срСдство ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ нСсколькими ΡƒΠ·Π»Π°ΠΌΠΈ называСтся распрСдСлСнными рССстрами.

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

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, сохраняя Π±Π»ΠΎΠΊΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΡƒΠ·Π»Π°Ρ… сСти Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½ΠΎΠ², Π±Π»ΠΎΠΊΡ‡Π΅ΠΉΠ½ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Ρ€ΡƒΡˆΠ΅Π½ ΠΈΠ·-Π·Π° ΠΎΡ‚ΠΊΠ°Π·Π° ΠΎΠ΄Π½ΠΎΠΉ систСмы. Когда ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ ΠΈΠ»ΠΈ систСма Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΈΠ· строя, Π΄Ρ€ΡƒΠ³ΠΈΠ΅ систСмы Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ ΠΊΠ°ΠΊ Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Π΅ ΠΊΠΎΠΏΠΈΠΈ ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡŽΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ нСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ систСма Π²Ρ‹ΡˆΠ»Π° ΠΈΠ· строя. ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ всС Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅ ΡƒΠ·Π»Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ ΠΈ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΠ»ΠΈ, Ρ‡Ρ‚ΠΎ транзакция Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Π°, Π±Π»ΠΎΠΊ (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ транзакция) добавляСтся Π² Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ – Π³Π»Π°Π²Π½ΡƒΡŽ ΠΊΠ½ΠΈΠ³Ρƒ – для ΠΎΠ±Ρ‰Π΅Π³ΠΎ доступа. Π‘ΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ всСх ΡƒΠ·Π»ΠΎΠ² ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Π΄Π°ΠΆΠ΅ ΠΊΠΎΠ³Π΄Π° ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ Π΄Π²Π° ΡƒΠ·Π»Π° Π²Ρ‹ΠΏΠ°Π΄Π°ΡŽΡ‚ ΠΈΠ· сСти, Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ постоянно Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ ΠΈ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π°ΡŽΡ‚ свои Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎ ΠΈ своСврСмСнно.

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

Π­Π²ΠΎΠ»ΡŽΡ†ΠΈΡ распрСдСлённых систСм Π² Kubernetes

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅
Π€ΠΎΡ‚ΠΎ Cenk Batuhan Γ–zaltun, Unsplash.com

ΠžΠ±Π·ΠΎΡ€

На ΠΊΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠΈ QCon Π² ΠΌΠ°Ρ€Ρ‚Π΅ я рассказывал ΠΎΠ± ΡΠ²ΠΎΠ»ΡŽΡ†ΠΈΠΈ распрСдСлённых систСм Π² Kubernetes. Π“Π»Π°Π²Π½Ρ‹ΠΉ вопрос: Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ послС микросСрвисов? Π£ вас навСрняка Π΅ΡΡ‚ΡŒ ΠΌΠ½Π΅Π½ΠΈΠ΅ Π½Π° этот счСт. Π£ мСня ΠΎΠ½ΠΎ Ρ‚ΠΎΠΆΠ΅ Π΅ΡΡ‚ΡŒ. Π’ ΠΊΠΎΠ½Ρ†Π΅ Π²Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ я Π΄ΡƒΠΌΠ°ΡŽ. Но для Π½Π°Ρ‡Π°Π»Π° Π΄Π°Π²Π°ΠΉΡ‚Π΅ обсудим потрСбности распрСдСлённых систСм. Как эти потрСбности Ρ€Π°Π·Π²ΠΈΠ²Π°ΡŽΡ‚ΡΡ с Π³ΠΎΠ΄Π°ΠΌΠΈ, начиная с ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π΄ΠΎ Kubernetes ΠΈ Ρ‚Π°ΠΊΠΈΡ… Π½ΠΎΠ²Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², ΠΊΠ°ΠΊ Dapr, Istio, Knative, ΠΈ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΌΠ΅Π½ΡΡŽΡ‚ наши ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с распрСдСлёнными систСмами. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ нСсколько ΠΏΡ€ΠΎΠ³Π½ΠΎΠ·ΠΎΠ² Π½Π° Π±ΡƒΠ΄ΡƒΡ‰Π΅Π΅.

Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ распрСдСлённыС прилоТСния

Π§Ρ‚ΠΎ я Π½Π°Π·Ρ‹Π²Π°ΡŽ распрСдСлёнными систСмами? Π­Ρ‚ΠΎ систСмы, состоящиС ΠΈΠ· сотСн ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ². Π­Ρ‚ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ stateful, stateless ΠΈΠ»ΠΈ бСссСрвСрными. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, эти ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… языках Π² Π³ΠΈΠ±Ρ€ΠΈΠ΄Π½Ρ‹Ρ… срСдах, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ опСнсорс-Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ, ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… стандартов ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΎΠΏΠ΅Ρ€Π°Π±Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ систСмы с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ коммСрчСского ПО, Π² AWS ΠΈ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… мСстах. Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎΠ± экосистСмС Kubernetes ΠΈ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΡƒΡŽ систСму Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ Kubernetes.

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

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

Π’Ρ‚ΠΎΡ€ΠΎΠ΅ β€” это взаимодСйствиС. НашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π½Π°Π΄Π΅ΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠΌ сСрвисам Π² кластСрС ΠΈΠ»ΠΈ Π²ΠΎ внСшнСм ΠΌΠΈΡ€Π΅. Нам Π½ΡƒΠΆΠ½Ρ‹ Ρ‚Π°ΠΊΠΈΠ΅ возмоТности, ΠΊΠ°ΠΊ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ сСрвисов (service discovery) ΠΈΠ»ΠΈ балансировка Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ. ΠœΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΠ΅Ρ€Π΅Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ для Ρ€Π°Π·Π½Ρ‹Ρ… стратСгий Ρ€Π΅Π»ΠΈΠ·ΠΎΠ² ΠΈΠ»ΠΈ ΠΏΠΎ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ. Π•Ρ‰Π΅ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ устойчивоС взаимодСйствиС с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ систСмами с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹Ρ… ΠΏΠΎΠΏΡ‹Ρ‚ΠΎΠΊ, Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚ΠΎΠ² ΠΈ circuit breaker. НС Π·Π°Π±ΡƒΠ΄Π΅ΠΌ ΠΈ ΠΏΡ€ΠΎ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ, Π° Π΅Ρ‰Π΅ Π°Π΄Π΅ΠΊΠ²Π°Ρ‚Π½Ρ‹ΠΉ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³, трСйсинг, Π½Π°Π±Π»ΡŽΠ΄Π°Π΅ΠΌΠΎΡΡ‚ΡŒ ΠΈ Ρ‚ΠΎΠΌΡƒ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

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

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

ПослСдняя катСгория β€” состояниС. Π—Π΄Π΅ΡΡŒ я Π½Π΅ имСю Π² Π²ΠΈΠ΄Ρƒ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ состояниСм, ΠΊΠ°ΠΊ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС. Π Π΅Ρ‡ΡŒ ΠΎΠ± абстракциях, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ состояниС. НапримСр, ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΌ процСссом, ΠΊΠ°ΠΊΠΈΠΌΠΈ-Ρ‚ΠΎ Π΄ΠΎΠ»Π³ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ процСссами, Ρ…ΠΎΡ‚ΠΈΠΌ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π·Π°ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ задания ΠΏΠΎ Ρ€Π°ΡΠΏΠΈΡΠ°Π½ΠΈΡŽ для пСриодичСского запуска сСрвисов. Π•Ρ‰Π΅ Π½Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ распрСдСлённоС ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΈΠ΄Π΅ΠΌΠΏΠΎΡ‚Π΅Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ ΠΈΠ»ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ‚ΠΊΠ°Ρ‚ΠΎΠ². ВсС это ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Ρ‹ уровня Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ зависят ΠΎΡ‚ состояния. Для создания Π½Π°Π΄Ρ‘ΠΆΠ½Ρ‹Ρ… распрСдСлённых систСм Π½Π°ΠΌ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ понадобятся эти абстракции.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

На ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ этих ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²ΠΎΠ² посмотрим, Ρ‡Ρ‚ΠΎ мСняСтся Π² Kubernetes ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ….

ΠœΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½Π°Ρ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° β€” Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅ возмоТности ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ ПО

Начнём с ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½ΠΎΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹. Π’ контСкстС распрСдёлСнных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΏΠ΅Ρ€Π²ΠΎΠ΅, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ Π½Π° ΡƒΠΌ, β€” ESB (Enterprise Service Bus, сСрвисная шина Π΄Π°Π½Π½Ρ‹Ρ…). Π­Ρ‚ΠΎ довольно эффСктивный инструмСнт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСкрасно ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ всС stateful-абстракции ΠΈΠ· нашСго списка Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ.

Π‘ ESB ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ€ΠΊΠ΅ΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ долгосрочныС процСссы, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ распрСдСлённыС Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΎΡ‚ΠΊΠ°Ρ‚Ρ‹ ΠΈ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ΄Π΅ΠΌΠΏΠΎΡ‚Π΅Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, ESB ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΡˆΠΈΡ€ΠΎΠΊΠΈΠ΅ возмоТности привязки рСсурсов ΠΈ сотни ΠΊΠΎΠ½Π½Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠ², Π° Π΅Ρ‰Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΎΡ€ΠΊΠ΅ΡΡ‚Ρ€Π°Ρ†ΠΈΡŽ ΠΈ Π΄Π°ΠΆΠ΅ сСтСвыС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. И, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, ESB ΠΌΠΎΠΆΠ΅Ρ‚ Π²Π·ΡΡ‚ΡŒ Π½Π° сСбя service discovery ΠΈ балансировку Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ.

Π§Ρ‚ΠΎ касаСтся изоляции, Ρ‚ΠΎ Π² ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½ΠΎΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½ΠΈ рСсурс, Π½ΠΈ сбой. Π’Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚, Π½Π°ΡˆΠ΅ΠΌΡƒ списку Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ монолитная Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° ESB Π½Π΅ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

ΠžΠ±Π»Π°Ρ‡Π½Π°Ρ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° β€” микросСрвисы ΠΈ Kubernetes

Π”Π°Π²Π°ΠΉΡ‚Π΅ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ обратимся ΠΊ ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ ΠΈ связанным с Π½Π΅ΠΉ измСнСниями. Если ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π² ΠΎΠ±Ρ‰ΠΈΡ… Ρ‡Π΅Ρ€Ρ‚Π°Ρ…, измСнСния Π² Π½Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅, ΠΏΠΎΠΆΠ°Π»ΡƒΠΉ, Π½Π°Ρ‡Π°Π»ΠΈΡΡŒ с микросСрвисов. ΠœΠΈΠΊΡ€ΠΎΡΠ΅Ρ€Π²ΠΈΡΡ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° бизнСс-Π΄ΠΎΠΌΠ΅Π½Ρ‹. Оказалось, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ ΠΈ Kubernetes ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ подходят для управлСния микросСрвисами. КакиС Ρ„ΠΈΡ‡ΠΈ ΠΈ возмоТности Π΄Π΅Π»Π°ΡŽΡ‚ Kubernetes ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎΠΉ для микросСрвисов?

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

Π˜Π·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Kubernetes стал популярСн благодаря ΠΏΡ€ΠΎΠ±Π°ΠΌ работоспособности (health probe). На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π΄Π΅ΠΏΠ»ΠΎΠΈΡ‚Π΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Π² ΠΏΠΎΠ΄, Π° Kubernetes слСдит Π·Π° Ρ€Π°Π±ΠΎΡ‚ΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒΡŽ процСсса. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ такая модСль нСдостаточно Ρ…ΠΎΡ€ΠΎΡˆΠ°. ΠŸΡ€ΠΎΡ†Π΅ΡΡ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ, Π½ΠΎ ΠΏΡ€ΠΈ этом Π½Π΅ Π±Ρ‹Ρ‚ΡŒ работоспособным. Π—Π΄Π΅ΡΡŒ пригодятся ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ readiness ΠΈ liveness. Kubernetes выполняСт readiness-ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Π³ΠΎΡ‚ΠΎΠ²ΠΎ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ Π²ΠΎ врСмя запуска. Liveness-ΠΏΡ€ΠΎΠ±Π° Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎ провСряСт Ρ€Π°Π±ΠΎΡ‚ΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ сСрвиса. Π”ΠΎ Kubernetes это Π±Ρ‹Π»ΠΎ Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ популярно, Π·Π°Ρ‚ΠΎ сСгодня ΠΏΠΎΡ‡Ρ‚ΠΈ всС языки, Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ ΠΈ Ρ€Π°Π½Ρ‚Π°ΠΉΠΌΡ‹ проводят ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ работоспособности для быстрого запуска ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ устройства.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

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

Π•Ρ‰Π΅ ΠΎΠ΄Π½Π° ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° популярности Kubernetes β€” Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ развёртывания. Нам большС Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ сСрвисы ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ Π»ΠΎΠ³ΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ, Π·Π°ΠΏΡƒΡ‰Π΅Π½Ρ‹ Π»ΠΈ ΠΎΠ½ΠΈ. Нам Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π°ΠΏΠ³Ρ€Π΅ΠΉΠ΄ΠΈΡ‚ΡŒ инстансы Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ. Π—Π° всС ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ΅ Ρ€Π°Π·Π²Ρ‘Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ Π² Kubernetes. Π’ зависимости ΠΎΡ‚ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΉ стратСгии ΠΎΠ½ΠΎ останавливаСт старыС инстансы ΠΈ запускаСт Π½ΠΎΠ²Ρ‹Π΅. А Ссли Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ пошло Π½Π΅ Ρ‚Π°ΠΊ, само Π΄Π΅Π»Π°Π΅Ρ‚ ΠΎΡ‚ΠΊΠ°Ρ‚.

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

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

ΠŸΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ ΠΊ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΌ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ°ΠΌ. Π’ Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ. Π’ Kubernetes это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. Π—Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ 12-Ρ„Π°ΠΊΡ‚ΠΎΡ€Π½Ρ‹Π΅ прилоТСния (Twelve-Factor App) ΠΈ stateless-микросСрвисы довольно просто, Kubernetes справится с этим Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ. Но Ρƒ нас Π±ΡƒΠ΄ΡƒΡ‚ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ, Π² Ρ‚ΠΎΠΌ числС stateful, β€” для Π½ΠΈΡ… Π² Kubernetes ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ stateful set.

Или это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ singleton. Допустим, ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ инстанс прилоТСния Π±Ρ‹Π» СдинствСнным Π½Π° всСм кластСрС, ΠΈ это Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΉ singleton. ΠŸΡ€ΠΈ сбоС ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ. Π’ этом случаС ΠΌΡ‹ Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ ΠΌΠ΅ΠΆΠ΄Ρƒ stateful set ΠΈ replica set Π² зависимости ΠΎΡ‚ потрСбностСй ΠΈ сСмантики β€” at least one (Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ€Π°Π·Π°) ΠΈΠ»ΠΈ at most one (Π½Π΅ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ€Π°Π·Π°). Kubernetes Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ job ΠΈ cron job.

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

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

Если это всС, Ρ‡Ρ‚ΠΎ Π΄Π°Π΅Ρ‚ Kubernetes, ΠΊΠ°ΠΊ Π΅Π³ΠΎ Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ? Как ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ большС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ? Π•ΡΡ‚ΡŒ Π΄Π²Π° распространСнных способа.

ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ out-of-process

Под β€” это абстракция, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Π΅ΠΏΠ»ΠΎΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ Π½Π° Π½ΠΎΠ΄Π°Ρ…. Под Π΄Π°Π΅Ρ‚ Π΄Π²Π΅ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΠΈ:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

Для init-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² прилоТСния ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ Ρ€Π°Π·Π½Ρ‹Π΅ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΠΈ. НапримСр, init-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π² Π½Π°Ρ‡Π°Π»Π΅, ΠΎΠ΄ΠΈΠ½ Π·Π° Π΄Ρ€ΡƒΠ³ΠΈΠΌ, строго послС выполнСния ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°. Они ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΡƒ Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ процСсса.

ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ Π½Π° протяТСнии ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° ΠΏΠΎΠ΄Π°. На этом основаны sidecar-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ нСсколько ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ², совмСстно Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΡ… Ρ‚Ρƒ ΠΈΠ»ΠΈ ΠΈΠ½ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Π­Ρ‚ΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· основных ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² добавлСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π° Π² Kubernetes.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ, Π½ΡƒΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΎ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ°Ρ… Kubernetes. ВсС основано Π½Π° Ρ†ΠΈΠΊΠ»Π΅ согласования (reconciliation loop), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΠΎΠΏΠ»ΠΎΡ‰Π°Π΅Ρ‚ ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠ΅ состояниС Π² фактичСскоС. Π’ Kubernetes ΠΎΡ‚ этого ΠΌΠ½ΠΎΠ³ΠΎΠ΅ зависит. Допустим, ΠΌΡ‹ объявляСм, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π΄Π²Π° инстанса ΠΏΠΎΠ΄Π°. Π­Ρ‚ΠΎ ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠ΅ состояниС систСмы. Π¦ΠΈΠΊΠ» контроля (control loop) постоянно провСряСт, Π΅ΡΡ‚ΡŒ Π»ΠΈ Ρƒ ΠΏΠΎΠ΄Π° Π΄Π²Π° инстанса. Если ΠΈΡ… Π½Π΅ Π΄Π²Π°, Π° большС ΠΈΠ»ΠΈ мСньшС, ΠΎΠ½ вычисляСт Ρ€Π°Π·Π½ΠΈΡ†Ρƒ. Π•Π³ΠΎ Π·Π°Π΄Π°Ρ‡Π° β€” Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΈΡ… Π±ΡƒΠ΄Π΅Ρ‚ Ρ€ΠΎΠ²Π½ΠΎ Π΄Π²Π°.

Π’Π°ΠΊΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΌΠ½ΠΎΠ³ΠΎ. Допустим, replica set ΠΈΠ»ΠΈ stateful set. ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ рСсурса сопоставляСтся с ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠΌ, Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρ‹ Π΅ΡΡ‚ΡŒ ΠΏΠΎΡ‡Ρ‚ΠΈ Π½Π° всС случаи ΠΆΠΈΠ·Π½ΠΈ. ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ слСдит Π·Π° Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ соотвСтствовала нашим ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ΠΌ, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π°ΠΆΠ΅ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ самому.

НапримСр, ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ прилоТСния Π² ΠΏΠΎΠ΄Π΅ нСльзя Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ с измСнСниями Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Π—Π°Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ кастомный ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°Ρ‚ΡŒ эти измСнСния ΠΈ Π² соотвСтствии с Π½ΠΈΠΌΠΈ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΏΠΎΠ΄ ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.
Π₯отя Π² Kubernetes достаточно рСсурсов, ΠΎΠ½ΠΈ ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡŽΡ‚ Π½Π΅ всС наши потрСбности. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π² Kubernetes появилось Ρ‚Π°ΠΊΠΎΠ΅ понятиС, ΠΊΠ°ΠΊ кастомныС опрСдСлСния рСсурсов (custom resource definitions, CRD). Π’ΠΎ Π΅ΡΡ‚ΡŒ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠ·Π»ΠΎΠΆΠΈΡ‚ΡŒ свои трСбования ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ API, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ рСсурсами Kubernetes. ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π° любом языкС, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ смоТСт ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π°ΡˆΡƒ модСль. МоТно, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ConfigWatcher, Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Π½Π° Java, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ всё это описываСт. Π­Ρ‚ΠΎ ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ β€” ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с кастомными опрСдСлСниями рСсурсов. БСгодня появляСтся ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ², ΠΈ это Π²Ρ‚ΠΎΡ€ΠΎΠΉ способ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ возмоТностСй Kubernetes.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ… ΠΏΠΎΠ²Π΅Ρ€Ρ… Kubernetes, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ sidecar-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ возмоТности.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ service mesh?

НачнСм с service mesh.

Допустим, Ρƒ нас Π΅ΡΡ‚ΡŒ Π΄Π²Π° сСрвиса. БСрвис A (Π½Π° любом языкС) Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ сСрвис B. Допустим, это рабочая Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ° нашСго прилоТСния. Service mesh ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ sidecar-ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρ‹ ΠΈ внСдряСт прокси рядом с сСрвисом. Π’ ΠΈΡ‚ΠΎΠ³Π΅ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Π² ΠΏΠΎΠ΄Π΅ Π΄Π²Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°. ΠŸΡ€ΠΎΠΊΡΠΈ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½Ρ‹ΠΉ, ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ догадываСтся ΠΎ Π΅Π³ΠΎ сущСствовании, ΠΏΡ€ΠΈ этом ΠΎΠ½ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ вСсь входящий ΠΈ исходящий Ρ‚Ρ€Π°Ρ„ΠΈΠΊ. ΠŸΡ€ΠΎΠΊΡΠΈ Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠ°ΠΊ Ρ„Π°ΠΉΡ€Π²ΠΎΠ».

Π­Ρ‚ΠΈ малСнькиС stateless-прокси ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΏΠ»ΠΎΡΠΊΠΎΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ… (data plane). БостояниС ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ ΠΎΠ½ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ ΠΎΡ‚ плоскости управлСния (control plane). ΠŸΠ»ΠΎΡΠΊΠΎΡΡ‚ΡŒ управлСния отслСТиваСт состояния. Она Ρ…Ρ€Π°Π½ΠΈΡ‚ всС ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, собираСт ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΈ взаимодСйствуСт с ΠΏΠ»ΠΎΡΠΊΠΎΡΡ‚ΡŒΡŽ Π΄Π°Π½Π½Ρ‹Ρ…. Нам Π½ΡƒΠΆΠ΅Π½ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ β€” шлюз API (API gateway), Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎΠΏΠ°Π΄Π°ΡŽΡ‚ Π² кластСр. Π£ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… service mesh Π΅ΡΡ‚ΡŒ свой шлюз API, Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ сторонний. ВсС эти ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ Π½Π°ΠΌ Π½ΡƒΠΆΠ½Ρ‹Π΅ возмоТности.

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

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Knative?

Π”Π°Π²Π°ΠΉΡ‚Π΅ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ Knative, Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½ΠΎΠΌ Google нСсколько Π»Π΅Ρ‚ Π½Π°Π·Π°Π΄. Π­Ρ‚ΠΎ слой ΠΏΠΎΠ²Π΅Ρ€Ρ… Kubernetes, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдоставляСт бСссСрвСрныС вычислСния ΠΈ состоит ΠΈΠ· Π΄Π²ΡƒΡ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ:

Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Knative Serving? Π‘ Knative Serving ΠΌΡ‹ опрСдСляСм сСрвис, Π½ΠΎ Π½Π΅ ΠΊΠ°ΠΊ Π² Kubernetes. Π’ΡƒΡ‚ свои особСнности. Когда ΠΌΡ‹ опрСдСляСм Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ с сСрвисом Knative, ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ бСссСрвСрныС вычислСния. Нам Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ инстанс. Π•Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ с нуля ΠΏΡ€ΠΈ поступлСнии запроса. ΠœΠ°ΡΡˆΡ‚Π°Π± бСссСрвСрных вычислСний ΠΌΠΎΠΆΠ½ΠΎ быстро ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Ρ‚ΡŒ Π΄ΠΎ нуля.

Knative Eventing прСдоставляСт ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½ΡƒΡŽ систСму управлСния событиями. Допустим, ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ внСшниС систСмы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ события. Π’Π½ΠΈΠ·Ρƒ Π½Π° схСмС находится нашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅ с HTTP endpoint. Π‘ Knative Eventing ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π±Ρ€ΠΎΠΊΠ΅Ρ€. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Kafka, процСсс Π² памяти ΠΈΠ»ΠΈ ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹ΠΉ сСрвис. Π•Ρ‰Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π΅Ρ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡΡ ΠΊ внСшнСй систСмС ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ события Π² наш Π±Ρ€ΠΎΠΊΠ΅Ρ€. Π­Ρ‚ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π΅Ρ€Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ основаны, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π° Apache Camel с сотнями ΠΊΠΎΠ½Π½Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠ².

Когда события Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ Π² Π±Ρ€ΠΎΠΊΠ΅Ρ€, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π° Π½ΠΈΡ… ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ yaml-Ρ„Π°ΠΉΠ»Π°. Π’ самом ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅ Π½Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½Ρ‹ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ ΠΎΠ±ΠΌΠ΅Π½Π° сообщСниями, Π²Ρ€ΠΎΠ΄Π΅ Kafka. Он Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ события Ρ‡Π΅Ρ€Π΅Π· HTTP POST с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹Ρ… событий. Π­Ρ‚Π° инфраструктура ΠΎΠ±ΠΌΠ΅Π½Π° сообщСниями ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ управляСтся ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎΠΉ. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ просто ΠΏΠΈΡˆΠ΅Ρ‚ Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅ бизнСс-ΠΊΠΎΠ΄ ΠΈ Π½Π΅ занимаСтся Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ сообщСний.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

Knative удовлСтворяСт нСсколько потрСбностСй ΠΈΠ· нашСго списка. Π‘ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° ΠΎΠ½ прСдоставляСт бСссСрвСрныС вычислСния нашим Ρ€Π°Π±ΠΎΡ‡ΠΈΠΌ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ°ΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π»ΠΈΡΡŒ Π΄ΠΎ нуля ΠΈΠ»ΠΈ Π½Π° ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅. Π‘ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния сСтСй, Ссли Π±ΡƒΠ΄Π΅Ρ‚ ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ с service mesh, Knative ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ. Π§Ρ‚ΠΎ касаСтся привязок, ΠΎΠ½ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π΅Ρ€Π°ΠΌΠΈ Knative. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ шаблон Pub/Sub (Β«ΠΈΠ·Π΄Π°Ρ‚Π΅Π»ΡŒ-подписчик»), взаимодСйствиС Β«Ρ‚ΠΎΡ‡ΠΊΠ°-Ρ‚ΠΎΡ‡ΠΊΠ°Β» ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. Π­Ρ‚ΠΎ удовлСтворяСт наши трСбования Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… катСгориях.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Dapr?

Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ sidecar ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, β€” Dapr. Microsoft запустила Π΅Π³ΠΎ всСго нСсколько мСсяцСв Π½Π°Π·Π°Π΄, Π½ΠΎ ΠΎΠ½ быстро Π½Π°Π±ΠΈΡ€Π°Π΅Ρ‚ ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, вСрсия 1.0 считаСтся Π³ΠΎΡ‚ΠΎΠ²ΠΎΠΉ для ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½Π° (ΠΏΡ€ΠΈΠΌ. ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρ‡ΠΈΠΊΠ°: Π² ΠΊΠΎΠ½Ρ†Π΅ мая 2021 Π²Ρ‹ΡˆΠ»Π° вСрсия 1.2.0). Π’ Dapr всС Ρ„ΠΈΡ‡ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ sidecar. Он ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ «стандартныС Π±Π»ΠΎΠΊΠΈΒ», ΠΈΠ»ΠΈ Π½Π°Π±ΠΎΡ€Ρ‹ возмоТностСй.

Π§Ρ‚ΠΎ это Π·Π° возмоТности? ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ связан с сСтями. Dapr ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°Ρ‚ΡŒ сСрвисы ΠΈ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΡΠΌΡƒΡŽ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡŽ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ. Он выполняСт трСйсинг, устанавливаСт Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠ΅ взаимодСйствиС, обСспСчиваСт ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹Π΅ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ ΠΈ восстановлСниС, ΠΊΠ°ΠΊ service mesh. Π’Ρ‚ΠΎΡ€ΠΎΠΉ Π½Π°Π±ΠΎΡ€ связан с привязкой рСсурсов:

Π§Ρ‚ΠΎ интСрСсно, Π² Dapr Π΅ΡΡ‚ΡŒ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ состояниями, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ дополняСт Knative ΠΈ service mesh. Π‘ Dapr ΠΌΠΎΠΆΠ½ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ°Ρ€ Β«ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Β» Π½Π° основС ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° хранСния.

Π’ ΠΎΠ±Ρ‰ΠΈΡ… Ρ‡Π΅Ρ€Ρ‚Π°Ρ… Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° выглядит Ρ‚Π°ΠΊ. Π‘Π²Π΅Ρ€Ρ…Ρƒ Ρƒ нас ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° любом языкС. МоТно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ клиСнтскиС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΎΡ‚ Dapr, Π½ΠΎ это Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ. МоТно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ языковыС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Π΅Π»Π°Ρ‚ΡŒ HTTP- ΠΈ gRPC-Π²Ρ‹Π·ΠΎΠ²Ρ‹ ΠΊ sidecar. ΠžΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ service mesh Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Dapr sidecar β€” это Π½Π΅ ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½Ρ‹ΠΉ прокси. Π•Π³ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΠ· прилоТСния ΠΈ с Π½ΠΈΠΌ Π½ΡƒΠΆΠ½ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎ HTTP ΠΈΠ»ΠΈ gRPC. Π’ зависимости ΠΎΡ‚ Π½Π°ΡˆΠΈΡ… потрСбностСй Dapr ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±Ρ‰Π°Ρ‚ΡŒΡΡ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ систСмами, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹ΠΌΠΈ сСрвисами.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

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

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

Нам всС Ρ€Π°Π²Π½ΠΎ Π½ΡƒΠΆΠ΅Π½ Kubernetes для управлСния ΠΆΠΈΠ·Π½Π΅Π½Π½Ρ‹ΠΌ Ρ†ΠΈΠΊΠ»ΠΎΠΌ, Π½ΠΎ ΠΏΠΎΠ²Π΅Ρ€Ρ… Π½Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π΅Ρ‰Π΅. НапримСр, Istio для Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΠΎΠ³ΠΎ взаимодСйствия. Knative ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚Π²Π΅Ρ‡Π°Ρ‚ΡŒ Π·Π° бСссСрвСрныС Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ, Π° Dapr β€” Π·Π° ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡŽ. Они прСкрасно ΡΠΎΡ‡Π΅Ρ‚Π°ΡŽΡ‚ΡΡ с Istio ΠΈ Envoy. Из Dapr ΠΈ Knative ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΎΠ΄Π½ΠΎ, Π½ΠΎ вмСстС ΠΎΠ½ΠΈ Π΄Π°ΡŽΡ‚ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Ρƒ нас Π² ESB, Π½ΠΎ Π² ΠΎΠ±Π»Π°ΠΊΠ΅.

Π‘ΡƒΠ΄ΡƒΡ‰ΠΈΠ΅ ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹Π΅ Ρ‚Ρ€Π΅Π½Π΄Ρ‹ β€” ΠΆΠΈΠ·Π½Π΅Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ»

Π― составил ΡΡƒΠ±ΡŠΠ΅ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ список ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², ΠΎΡ‚ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… я ΠΌΠ½ΠΎΠ³ΠΎΠ³ΠΎ ΠΆΠ΄Ρƒ.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

НачнСм с ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π°. Π’ Kubernetes ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΆΠΈΠ·Π½Π΅Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» прилоТСния, Π½ΠΎ этого Π½Π΅ Ρ…Π²Π°Ρ‚ΠΈΡ‚ для Π±ΠΎΠ»Π΅Π΅ слоТных сцСнариСв, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π³Π΄Π΅ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²ΠΎΠ² развСртывания Kubernetes нСдостаточно для слоТного stateful-прилоТСния.

Π’ этих случаях ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΈ Π°ΠΏΠ³Ρ€Π΅ΠΉΠ΄ ΠΈ, допустим, Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ сСрвиса Π² S3. ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ работоспособности Π² Kubernetes ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ для нас нСдостаточно эффСктивным. Допустим, Π½Π°ΠΌ ΠΌΠ°Π»ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ liveness ΠΈ readiness. Π’ этом случаС ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ для ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ прилоТСния, ΠΈ Π½Π° ΠΈΡ… основС Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ восстановлСниС.
Π’Ρ€Π΅Ρ‚ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ β€” автоскСйлинг ΠΈ Ρ‚ΡŽΠ½ΠΈΠ½Π³. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ нашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π°Π²Ρ‚ΠΎΡ‚ΡŽΠ½ΠΈΠ½Π³ Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅. На сСгодня Π΅ΡΡ‚ΡŒ Π΄Π²Π° основных Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° для написания ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² β€” Kubebuilder, ΠΎΡ‚ Π³Ρ€ΡƒΠΏΠΏΡ‹ SIG Kubernetes, ΠΈ Operator SDK, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² Operator Framework ΠΎΡ‚ Red Hat.

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Operator SDK ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, Operator Lifecycle Manager позволяСт ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π΅Π³ΠΎ ΠΆΠΈΠ·Π½Π΅Π½Π½Ρ‹ΠΌ Ρ†ΠΈΠΊΠ»ΠΎΠΌ, Π° Π² OperatorHub Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ. БСйчас Ρ‚Π°ΠΌ большС 100 ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² для управлСния Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, очСрСдями сообщСний, инструмСнтами ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° ΠΈ Ρ‚. Π΄. Π’ ΠΏΠ»Π°Π½Π΅ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° ΠΈΠΌΠ΅Π½Π½ΠΎ Π² области ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² сСйчас происходит самоС Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ Π² экосистСмС Kubernetes.

Π’Ρ€Π΅Π½Π΄Ρ‹ Π² сфСрС взаимодСйствия β€” Envoy

Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π² ΠΌΠΎΠ΅ΠΌ спискС β€” Envoy. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ спСцификации интСрфСйсов service mesh Π½Π°ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΡ‰Π΅ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ рСализациями service mesh. Благодаря консолидации Π΄Π΅ΠΏΠ»ΠΎΠ΅Π² Π² Istio Π½Π°ΠΌ Π½Π΅ придСтся Π΄Π΅ΠΏΠ»ΠΎΠΈΡ‚ΡŒ сСмь ΠΏΠΎΠ΄ΠΎΠ² Π½Π° плоскости управлСния, достаточно ΠΎΠ΄Π½ΠΎΠ³ΠΎ развСртывания. Π“ΠΎΡ€Π°Π·Π΄ΠΎ интСрСснСС, Ρ‡Ρ‚ΠΎ происходит Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ Envoy Π½Π° плоскости Π΄Π°Π½Π½Ρ‹Ρ…. Как Π²ΠΈΠ΄ΠΈΠΌ, Ρ‚ΡƒΠ΄Π° добавляСтся всС большС ΠΈ большС ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ² L7.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

Service mesh Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ MongoDB, ZooKeeper, MySQL, Redis, Π° с Π½Π΅Π΄Π°Π²Π½Π΅Π³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π΅Ρ‰Π΅ ΠΈ Kafka. БообщСство Kafka ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΡƒΠ΅Ρ‚ свой ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ», Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ Π»ΡƒΡ‡ΡˆΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π» с service mesh. МоТно ΠΎΠΆΠΈΠ΄Π°Ρ‚ΡŒ Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ Ρ‚Π΅ΡΠ½ΡƒΡŽ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡŽ ΠΈ Π΅Ρ‰Π΅ большС возмоТностСй. Π‘ΠΊΠΎΡ€Π΅Π΅ всСго, появится какая-Ρ‚ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π±Ρ€ΠΈΠ΄ΠΆΠΈΠ½Π³Π°. Допустим, Π² сСрвисС ΠΌΡ‹ Π΄Π΅Π»Π°Π΅ΠΌ HTTP-Π²Ρ‹Π·ΠΎΠ² локально, ΠΈΠ· прилоТСния, Π° прокси Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Kafka. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ прилоТСния, Π² sidecar для ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° Kafka.

Π•Ρ‰Π΅ ΠΎΠ΄Π½ΠΎ интСрСсноС Π½ΠΎΠ²ΠΎΠ²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ β€” HTTP-ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ способСн Envoy. Нам Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, всС это дСлаСтся ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎ Π² sidecar. Π’Π°ΠΌ Π΅ΡΡ‚ΡŒ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Ρ‹ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Π°, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΈ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ. Благодаря Π½Π΅Π΄Π°Π²Π½ΠΎ ΠΏΠΎΡΠ²ΠΈΠ²ΡˆΠ΅ΠΌΡƒΡΡ WebAssembly ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ кастомный Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ для Envoy, ΠΈ ΠΏΡ€ΠΈ этом Π½Π°ΠΌ Π½Π΅ придСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ C++, Π° ΠΏΠΎΡ‚ΠΎΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ вСсь Ρ€Π°Π½Ρ‚Π°ΠΉΠΌ Envoy. ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ Π² WebAssembly, Π° ΠΏΠΎΡ‚ΠΎΠΌ Π·Π°Π΄Π΅ΠΏΠ»ΠΎΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² Ρ€Π°Π½Ρ‚Π°ΠΉΠΌΠ΅. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΈΠ· этих возмоТностСй ΠΏΠΎΠΊΠ° Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅, Π½ΠΎ ΡƒΠΆΠ΅ понятно, Ρ‡Ρ‚ΠΎ ΠΏΠ»ΠΎΡΠΊΠΎΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ service mesh Π½Π΅ остановятся Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ HTTP ΠΈ gRPC. Они Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρ‹ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ прилоТСния, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρƒ нас Π±Ρ‹Π»ΠΎ большС возмоТностСй ΠΈ доступных сцСнариСв использования. НапримСр, с появлСниСм WebAssembly ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ°ΡΡ‚ΠΎΠΌΠ½ΡƒΡŽ Π»ΠΎΠ³ΠΈΠΊΡƒ Π² sidecar. Волько бизнСс-Π»ΠΎΠ³ΠΈΠΊΡƒ Ρ‚ΡƒΠ΄Π° Π²ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π½Π΅ Π½Π°Π΄ΠΎ.

Π’Ρ€Π΅Π½Π΄Ρ‹ Π² сфСрС привязок β€” Apache Camel

Apache Camel β€” это ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ для ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ мноТСство ΠΊΠΎΠ½Π½Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠ² ΠΊ Ρ€Π°Π·Π½Ρ‹ΠΌ систСмам с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ шаблонов ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Camel вСрсии 3, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π³Π»ΡƒΠ±ΠΎΠΊΠΎ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½ Π² Kubernetes ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Ρ‹, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΡ‹ ΡƒΠΆΠ΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΡƒ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ Π² Camel Π½Π° Java, JavaScript ΠΈΠ»ΠΈ YAML. Π’ послСднСй вСрсии прСдставлСн ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Camel, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ выполняСтся Π² Kubernetes ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π½Π°ΡˆΡƒ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡŽ. Допустим, ΠΌΡ‹ пишСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Camel ΠΈ Π΄Π΅ΠΏΠ»ΠΎΠΈΠΌ Π΅Π³ΠΎ Π² кастомном рСсурсС, Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ сам Π·Π½Π°Π΅Ρ‚, ΠΊΠ°ΠΊ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ ΠΈΠ»ΠΈ Π½Π°ΠΉΡ‚ΠΈ зависимости. Π’ зависимости ΠΎΡ‚ возмоТностСй нашСй ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ (просто Kubernetes ΠΈΠ»ΠΈ Kubernetes с Knative) ΠΎΠ½ Ρ€Π΅ΡˆΠ°Π΅Ρ‚, ΠΊΠ°ΠΊΠΈΠ΅ сСрвисы ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΊΠ°ΠΊ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½ΡƒΠΆΠ½ΡƒΡŽ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡŽ. Π—Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ Ρ€Π°Π½Ρ‚Π°ΠΉΠΌΠ°, Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅, происходит ΠΌΠ½ΠΎΠ³ΠΎ всСго интСрСсного, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ ΠΎΡ‡Π΅Π½ΡŒ быстро. ΠŸΠΎΡ‡Π΅ΠΌΡƒ я Π½Π°Π·Ρ‹Π²Π°ΡŽ это Ρ‚Ρ€Π΅Π½Π΄ΠΎΠΌ Π² сфСрС привязок? Π’ основном, благодаря возмоТностям Apache Camel со всСми Π΅Π³ΠΎ ΠΊΠΎΠ½Π½Π΅ΠΊΡ‚ΠΎΡ€Π°ΠΌΠΈ, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ всС это тСсно ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ Π² Kubernetes.

Π’Ρ€Π΅Π½Π΄Ρ‹ Π² сфСрС состояний β€” Cloudstate

Рассмотрим Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ β€” Cloudstate, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° состояния. Cloudstate ΠΎΡ‚ Lightbend ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ Π½Π° Π±Π΅ΡΡΠ΅Ρ€Π²Π΅Ρ€Π½ΡƒΡŽ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π½Π° основС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. ПослСдниС Ρ€Π΅Π»ΠΈΠ·Ρ‹ тСсно ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ с Kubernetes с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ sidecar ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ².

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

ИдСя Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ пишСм Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, Π½Π°ΠΌ достаточно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ gRPC, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ состояниС ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с Π½ΠΈΠΌ. Всё ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ состояниями происходит Π² sidecar, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ объСдинСн с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ sidecar. Π­Ρ‚ΠΎ позволяСт Π½Π°ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ события, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ CQRS, ΠΈΡΠΊΠ°Ρ‚ΡŒ ΠΏΠ°Ρ€Ρ‹ Β«ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Β» ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ сообщСния.

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ Π²Π½ΠΈΠΊΠ°Π΅Ρ‚ Π²ΠΎ всС эти слоТности β€” ΠΎΠ½ΠΎ просто Π΄Π΅Π»Π°Π΅Ρ‚ Π²Ρ‹Π·ΠΎΠ² ΠΊ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ sidecar, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ±ΠΎ всём позаботится. Sidecar ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π²Π° источника Π΄Π°Π½Π½Ρ‹Ρ…. Π£ Π½Π΅Π³ΠΎ Π΅ΡΡ‚ΡŒ всС stateful-абстракции, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ понадобятся Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ.

Π˜Ρ‚Π°ΠΊ, ΠΌΡ‹ рассмотрСли Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ состояниС ΠΎΠ±Π»Π°Ρ‡Π½ΠΎΠΉ экосистСмы ΠΈ послСдниС Ρ‚Ρ€Π΅Π½Π΄Ρ‹. Π§Ρ‚ΠΎ всё это Π·Π½Π°Ρ‡ΠΈΡ‚?

ΠœΠΈΠΊΡ€ΠΎΡΠ΅Ρ€Π²ΠΈΡΡ‹ Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ€Π°Π½Ρ‚Π°ΠΉΠΌΠ°Ρ… ΡƒΠΆΠ΅ Π±Π»ΠΈΠ·ΠΊΠΎ

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

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

Π£ΠΌΠ½Ρ‹Π΅ sidecar, Π³Π»ΡƒΠΏΡ‹Π΅ ΠΊΠ°Π½Π°Π»Ρ‹

Π― ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽ это Ρ‚Π°ΠΊ. ΠœΡ‹ пишСм бизнСс-Π»ΠΎΠ³ΠΈΠΊΡƒ Π½Π° любом высокоуровнСвом языкС β€” это ΡƒΠΆΠ΅ Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Java, Π±Π΅Ρ€ΠΈΡ‚Π΅ любой.

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

Π§Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ послС микросСрвисов?

ВозвращаСмся ΠΊ вопросу, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ я Π·Π°Π΄Π°Π» Π² Π½Π°Ρ‡Π°Π»Π΅, β€” Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ послС микросСрвисов?

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ распрСдСлСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

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

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

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

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