Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ обратная ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ api

Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ Android API, обратная ΠΈ прямая ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ

Π”ΠΎΠ±Ρ€Ρ‹ΠΉ Π²Π΅Ρ‡Π΅Ρ€, Π΄Ρ€ΡƒΠ·ΡŒΡ. ΠœΡ‹ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΠ»ΠΈ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ для Π±ΡƒΠ΄ΡƒΡ‰ΠΈΡ… студСнтов курса Β«Android-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ. ΠŸΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹ΠΉ курс». Π‘ Ρ€Π°Π΄ΠΎΡΡ‚ΡŒΡŽ дСлимся с Π²Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠΌ.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ обратная ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ api. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ обратная ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ api. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ обратная ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ api. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ обратная ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ api. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ обратная ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ api

Если Π²Ρ‹ Ρ‡ΠΈΡ‚Π°Π΅Ρ‚Π΅ эту ΡΡ‚Π°Ρ‚ΡŒΡŽ, Π·Π½Π°Ρ‡ΠΈΡ‚ вас ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ Π²Π΅Ρ‰ΠΈ, ΠΊΠ°ΠΊ:

ВсС эти понятия связаны Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ, ΠΈ я ΠΏΠΎΡΡ‚Π°Ρ€Π°ΡŽΡΡŒ ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ ΠΈΡ… Π²Π°ΠΌ Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ простым, Π½ΠΎ эффСктивным способом.

Для этого Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ SDK ΠΈ API ΠΈ Π·Π½Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ API Π² экосистСмС Android.

Π­Ρ‚ΠΎ ΠΏΡ€Π°Π²Π΄Π°, Ρ‡Ρ‚ΠΎ Π² Android ΠΌΠ΅ΠΆΠ΄Ρƒ SDK ΠΈ API сущСствуСт ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ 1:1, ΠΈ часто эти Π΄Π²Π° Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ синонимы, Π½ΠΎ Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ это Π½Π΅ ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅.

ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π΅Π΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ вСрсии Android Π΅ΡΡ‚ΡŒ SDK ΠΈ эквивалСнтный API, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ этого API.

Π Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²Ρ‹Π²Π°Π΅Ρ‚ΡΡ ΠΊΠ°ΠΊ Software Development Kit (ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния). ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° слово Β«kitΒ» (ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚)… ΠΎΠ½ ΠΊΠ°ΠΊ Ρ€Π°Π· прСдставляСт ΠΈΠ· сСбя Π½Π°Π±ΠΎΡ€ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… инструмСнтов, Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ, ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ², ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‰ΠΈΡ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ, ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΈ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ прилоТСния для Android. API прСдоставляСтся вмСстС с SDK.

Если ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ SDK Manager Π² Android Studio, ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ яснСС ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, ΠΈΠ· Ρ‡Π΅Π³ΠΎ состоит Android SDK.

На ΠΏΠ΅Ρ€Π²ΠΎΠΉ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ SDK Platform пСрСчислСны SDK ΠΊΠ°ΠΆΠ΄ΠΎΠΉ вСрсии Android.

Как ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° рисункС Π½ΠΈΠΆΠ΅, Android 9.0 SDK (Ρ‚Π°ΠΊΠΆΠ΅ извСстный ΠΊΠ°ΠΊ Pie) содСрТит:

На Π²Ρ‚ΠΎΡ€ΠΎΠΉ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ SDK Tools ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ инструмСнты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Π°ΠΊΠΆΠ΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‡Π°ΡΡ‚ΡŒΡŽ SDK, Π½ΠΎ Π½Π΅ зависят ΠΎΡ‚ вСрсии ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½Ρ‹ ΠΈΠ»ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ‹ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ.

Π Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²Ρ‹Π²Π°Π΅Ρ‚ΡΡ ΠΊΠ°ΠΊ Application Programming Interface (ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ интСрфСйс прилоТСния). Π­Ρ‚ΠΎ просто интСрфСйс, ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ абстракции, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ обСспСчиваСт связь ΠΌΠ΅ΠΆΠ΄Ρƒ двумя Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ «частями» ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. Он Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠ°ΠΊ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ€ ΠΌΠ΅ΠΆΠ΄Ρƒ поставщиком (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ) ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»Π΅ΠΌ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ).

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

Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ API

Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ API β€” это цСлочислСнноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‰Π΅Π΅ Π²Π΅Ρ€ΡΠΈΡŽ API Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°, ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌΡƒΡŽ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎΠΉ Android.

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ обновлСния API Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ новая вСрсия API ΠΎΡΡ‚Π°Π²Π°Π»Π°ΡΡŒ совмСстимой с Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π½Π½ΠΈΠΌΠΈ вСрсиями, поэтому Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Π½ΠΎΠ²ΠΎΠΌ API ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π°Π΄Π΄ΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ, Π° старыС части API становятся ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΌΠΈ, Π½ΠΎ Π½Π΅ ΡƒΠ΄Π°Π»ΡΡŽΡ‚ΡΡ.

И Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΊΡ‚ΠΎ-Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π΄Π°Ρ‚ΡŒΡΡ вопросом…

Ссли API Android Π½Π΅ прСдоставляСт Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ, Π° SDK Manager ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌΡ‹ΠΉ исходный ΠΊΠΎΠ΄ API Π² составС SDK, Ρ‚ΠΎ Π³Π΄Π΅ находится ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π°Ρ рСализация?

ΠžΡ‚Π²Π΅Ρ‚ прост. На устройствС.

Π”Π°Π²Π°ΠΉΡ‚Π΅ разбСрСмся с этим…

ΠžΡ‚ исходного ΠΊΠΎΠ΄Π° ΠΊ APK-Ρ„Π°ΠΉΠ»Ρƒ

Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΏΠΎΠ΄ Android состоит ΠΈΠ· ΠΊΠΎΠ΄Π°, написанного Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ с использованиСм Android API (ΠΌΠΎΠ΄ΡƒΠ»ΡŒ прилоТСния), Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΄Ρ€ΡƒΠ³ΠΈΡ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ/зависимостСй (.jar-Ρ„Π°ΠΉΠ»ΠΎΠ², AAR, ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΈ Ρ‚.Π΄.) ΠΈ рСсурсов.

ΠŸΡ€ΠΎΡ†Π΅ΡΡ компиляции ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ ΠΊΠΎΠ΄, написанный Π½Π° Java ΠΈΠ»ΠΈ Kotlin, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ зависимости (ΠΎΠ΄Π½Π° ΠΈΠ· ΠΏΡ€ΠΈΡ‡ΠΈΠ½ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ ваш ΠΊΠΎΠ΄!), Π² Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄ DEX, Π° Π·Π°Ρ‚Π΅ΠΌ сТимаСт всС Π² Ρ„Π°ΠΉΠ» APK вмСстС с рСсурсами. На Π΄Π°Π½Π½ΠΎΠΌ этапС рСализация API Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° Π² ΠΈΡ‚ΠΎΠ³ΠΎΠ²Ρ‹ΠΉ APK!

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ обратная ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ api. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ обратная ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ api. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ обратная ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ api. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ обратная ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ api. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ обратная ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ api
ΠŸΡ€ΠΎΡ†Π΅ΡΡ сборки β€” Android Developers

DEX Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ Android Runtime

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ обратная ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ api. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ обратная ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ api. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ обратная ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ api. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ обратная ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ api. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ обратная ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ api
АрхитСктура Android β€” Android Developers

Android Runtime β€” это мСсто, Π³Π΄Π΅ дСлаСтся вся грязная Ρ€Π°Π±ΠΎΡ‚Π° ΠΈ Π³Π΄Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ DEX-Ρ„Π°ΠΉΠ»Ρ‹. Оно состоит ΠΈΠ· Π΄Π²ΡƒΡ… основных ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²:

ВСрсия API, доступная Π½Π° этом ΡƒΡ€ΠΎΠ²Π½Π΅, соотвСтствуСт вСрсии ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Android, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π·Π°ΠΏΡƒΡ‰Π΅Π½ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

НапримСр, Ссли Π½Π° фактичСском устройствС установлСн Android 9 (Pie), доступны всС API Π΄ΠΎ 28 уровня.

compileSdkVersion

ΠΠ°ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ рСкомСндуСтся Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ с послСднСй вСрсиСй SDK:

Π­Ρ‚ΠΎ ΠΆΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° устройствС с Android 9 Pie (API 28 уровня), ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΌΠ΅Ρ‚ΠΎΠ΄ API xyz() всС Π΅Ρ‰Π΅ доступСн Π½Π° API 28 уровня.

minSdkVersion

Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ API, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ. Π­Ρ‚ΠΎ минимальноС Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅. Если Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ являСтся 1.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ обязаны ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ прилоТСния Π΄ΠΎ этого уровня API. Π­Ρ‚ΠΎ называСтся ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ.

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

Π’Π°ΠΊΠΆΠ΅ Π²Π°ΠΆΠ½ΠΎ ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Google Play Store ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ устройство, сопоставив Π²Π΅Ρ€ΡΠΈΡŽ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ устройства с minSdkVersion прилоТСния.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ остороТны ΠΏΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ этого значСния, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ обратная ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ Π½Π΅ гарантируСтся ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎΠΉ.

Π’Ρ‹Π±ΠΎΡ€ Β«ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎΒ» значСния для ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Ρ‚Π°ΠΊΠΆΠ΅ являСтся бизнСс-Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΎ влияСт Π½Π° Ρ‚ΠΎ, насколько большой Π±ΡƒΠ΄Π΅Ρ‚ аудитория прилоТСния. ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Π½Π° распрСдСлСниС ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ.

targetSdkVersion

Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ API, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±Ρ‹Π»ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ΠΎ.

Иногда ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ измСнСния API Π² Π±Π°Π·ΠΎΠ²ΠΎΠΉ систСмС, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ²Π»ΠΈΡΡ‚ΡŒ Π½Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ прилоТСния ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ Π² Π½ΠΎΠ²ΠΎΠΉ срСдС выполнСния.

Π¦Π΅Π»Π΅Π²ΠΎΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ прилоТСния Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ срСды выполнСния, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ зависит ΠΎΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ вСрсии ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. Если ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ Π³ΠΎΡ‚ΠΎΠ²ΠΎ ΠΊ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅ этих ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ повСдСния срСды выполнСния, ΠΎΠ½ΠΎ, вСроятно, Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ сбоСм.

ΠŸΡ€ΠΎΡΡ‚Ρ‹ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ являСтся Runtime Permission, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±Ρ‹Π»ΠΎ прСдставлСно Π² Android 6 Marshmallow (API 23 уровня).

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ скомпилировано с использованиСм API 23 уровня, Π½ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ†Π΅Π»Π΅Π²Ρ‹ΠΌ API 22 уровня, Ссли ΠΎΠ½ΠΎ Π΅Ρ‰Π΅ Π½Π΅ Π³ΠΎΡ‚ΠΎΠ²ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ модСль Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ Π±Ρ‹Ρ‚ΡŒ совмСстимым Π±Π΅Π· Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ повСдСния срСды выполнСния.

Π’ любом случаС, ΠΊΠ°ΠΊ ΡƒΠΆΠ΅ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡŒ, Google Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ прилоТСния удовлСтворяли Π½ΠΎΠ²Ρ‹ΠΌ трСбованиям Ρ†Π΅Π»Π΅Π²ΠΎΠ³ΠΎ уровня API, поэтому всСгда слСдуСт ΠΈΠΌΠ΅Ρ‚ΡŒ высокий ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ для обновлСния этого значСния.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ соСдиняя всС это вмСстС, ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ Ρ‡Π΅Ρ‚ΠΊΠΎΠ΅ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅

minSdkVersion ≀ targetSdkVersion ≀ compileSdkVersion

Π˜ΠΌΠ΅ΠΉΡ‚Π΅ Π² Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ Π½Π°ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ рСкомСндуСтся Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ Π² соотвСтствии с послСдним ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ API ΠΈ ΡΡ‚Π°Ρ€Π°Ρ‚ΡŒΡΡ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ targetSdkVersion == compileSdkVersion.

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

ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ совмСстимости Π² распрСдСлСнных систСмах

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ обратная ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ api. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ обратная ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ api. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ обратная ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ api. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ обратная ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ api. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ обратная ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ api

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

Рассмотрим Netflix. На Π³Π»Π°Π²Π½ΠΎΠΉ страницС ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ смСсь ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°: Ρ€Π°Π½Π΅Π΅ просмотрСнныС ΡˆΠΎΡƒ, популярныС Π½ΠΎΠ²Ρ‹Π΅ названия, ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡƒΡ‡Π΅Ρ‚Π½Ρ‹ΠΌΠΈ записями ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅.

Но этот экран Π½Π΅ гСнСрируСтся netflix.exe работая Π³Π΄Π΅-Ρ‚ΠΎ Π½Π° ПК. По ΡΠΎΡΡ‚ΠΎΡΠ½ΠΈΡŽ Π½Π° 2017 Π³ΠΎΠ΄ ΠΎΠ½ Π±Ρ‹Π» оснащСн Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ 700 ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ услугами. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ экран Π½Π° самом Π΄Π΅Π»Π΅ прСдставляСт собой просто ΡΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ сотСн микросСрвисов, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… вмСстС. Одна слуТба для управлСния функциями ΡƒΡ‡Π΅Ρ‚Π½ΠΎΠΉ записи, другая для вынСсСния Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΉ ΠΈ Ρ‚. Π΄.

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

Одним ΠΈΠ· Π½ΠΈΡ… являСтся ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ совмСстимости ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ. Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, ΠΊΠ°ΠΊ Π½Π°Π±ΠΎΡ€ услуг ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ΡŒΡΡ вмСстС Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π½Π°Ρ€ΡƒΡˆΠ°Ρ‚ΡŒ систСму? БСрвисы ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ вмСстС, Ссли всС ΠΎΠ½ΠΈ согласны Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Ρ‹: ΠΊΠ°ΠΊ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈ ΠΊΠ°ΠΊ выглядит Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π΄Π°Π½Π½Ρ‹Ρ…. ΠΠ°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠ΅ Π΄Π°ΠΆΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Π° ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ хаосу Π² вашСй систСмС.

Но ΠΊΠ°ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ, ΠΌΡ‹ Π·Π½Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅-это СдинствСнная константа. ВСхнологичСскиС ΠΈ бизнСс-потрСбности Π½Π΅ΠΈΠ·Π±Π΅ΠΆΠ½ΠΎ ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ с Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, ΠΈ Ρ‚Π°ΠΊ ΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ ΠΈ наши услуги. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ способами: Π²Π΅Π±-интСрфСйсы API, ΠΎΠ±ΠΌΠ΅Π½ сообщСниями, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ JMS ΠΈΠ»ΠΈ Kafka, ΠΈ Π΄Π°ΠΆΠ΅ Π² Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°Ρ… Π΄Π°Π½Π½Ρ‹Ρ….

НиТС ΠΌΡ‹ рассмотрим Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΏΠΎ созданию распрСдСлСнных систСм, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π½Π°ΠΌ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ слуТбы ΠΈ интСрфСйсы Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, упрощая ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅.

Web APIs

Π‘ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ web API ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ измСнСния. НСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΈΠ΄Π΅Ρ‚ Π»ΠΈ Ρ€Π΅Ρ‡ΡŒ ΠΎ смСнС бизнСс-ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠ² ΠΈΠ»ΠΈ Π½ΠΎΠ²Ρ‹Ρ… стратСгиях, ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ с самого ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ дня ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ наши API, скорСС всСго, Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ‹.

Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ способы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ наши Π²Π΅Π±-API ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ совмСстимыми.

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ надСТности

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²Π΅Π±-интСрфСйсы API, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π»Π΅Π³ΠΊΠΎ ΡΠ²ΠΎΠ»ΡŽΡ†ΠΈΠΎΠ½ΠΈΡ€ΡƒΡŽΡ‚, слСдуйтС ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ надСТности, ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½Π½ΠΎΠΌΡƒ ΠΊΠ°ΠΊ «Π±ΡƒΠ΄ΡŒΡ‚Π΅ консСрвативны Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π΄Π΅Π»Π°Π΅Ρ‚Π΅, Π±ΡƒΠ΄ΡŒΡ‚Π΅ Π»ΠΈΠ±Π΅Ρ€Π°Π»ΡŒΠ½Ρ‹ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚Π΅.”

Π’ контСкстС Π²Π΅Π±-API этот ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ нСсколькими способами:

Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ вСрсиями

Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ вСрсиями API позволяСт Π½Π°ΠΌ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ возмоТности для ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ рСсурса.

НапримСр, рассмотрим ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±Π»ΠΎΠ³Π°, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ API для управлСния Π΅Π³ΠΎ основными Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ, сообщСния Π² Π±Π»ΠΎΠ³Π΅, ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ ΠΈ Ρ‚. Π΄. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ пСрвая итСрация ΠΈΠΌΠ΅Π΅Ρ‚ ΠΊΠΎΠ½Π΅Ρ‡Π½ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ, которая создаСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ: имя, адрСс элСктронной ΠΏΠΎΡ‡Ρ‚Ρ‹ ΠΈ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ. Π¨Π΅ΡΡ‚ΡŒ мСсяцСв спустя ΠΌΡ‹ Ρ€Π΅ΡˆΠ°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ каТдая учСтная запись Π΄ΠΎΠ»ΠΆΠ½Π° Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Ρ€ΠΎΠ»ΡŒ (администратор, Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€, Π°Π²Ρ‚ΠΎΡ€ ΠΈ Ρ‚. Π΄.). Π§Ρ‚ΠΎ ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π΄Π΅Π»Π°Ρ‚ΡŒ с ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ API?

По сути, Ρƒ нас Π΅ΡΡ‚ΡŒ Π΄Π²Π° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°:

Π‘ ΠΎΠΏΡ†ΠΈΠ΅ΠΉ 1 ΠΌΡ‹ обновляСм ΠΊΠΎΠ΄, ΠΈ любой запрос, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€, отклоняСтся ΠΊΠ°ΠΊ Π½Π΅Π²Π΅Ρ€Π½Ρ‹ΠΉ запрос. Π­Ρ‚ΠΎ Π»Π΅Π³ΠΊΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ, Π½ΠΎ это Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Ρ€ΡƒΡˆΠ°Π΅Ρ‚ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ API.

Π‘ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠΌ 2 ΠΌΡ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌ Π½ΠΎΠ²Ρ‹ΠΉ API, Π° Ρ‚Π°ΠΊΠΆΠ΅ обновляСм исходный API, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Ρ€Π°Π·ΡƒΠΌΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Ρ€ΠΎΠ»ΠΈ. Π₯отя это ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎ большС Ρ€Π°Π±ΠΎΡ‚Ρ‹ для нас, ΠΌΡ‹ Π½Π΅ Π½Π°Ρ€ΡƒΡˆΠ°Π΅ΠΌ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ API.

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

Π­Ρ‚ΠΎ самый простой ΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространСнный способ ΠΈ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ достигнут с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ любого ΠΏΡƒΡ‚ΠΈ:

Или с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² запроса:

URL-адрСса ΡƒΠ΄ΠΎΠ±Π½Ρ‹, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ запроса, поэтому ваши ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Π΄Π΅Π»ΠΎ с Π½ΠΈΠΌΠΈ. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‚ URL-адрСса с ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ запросом, поэтому Π»Π΅Π³ΠΊΠΎ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Ρ‚Π΅ ΠΈΠ»ΠΈ ΠΈΠ½Ρ‹Π΅ вСрсии.

Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ

Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ настраиваСмого ΠΈΠΌΠ΅Π½ΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°, понятного вашим слуТбам:

Или ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°Ρ…Π²Π°Ρ‚ΠΈΡ‚ΡŒ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ «Accept», Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ:

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

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

Π’Π΅Π»ΠΎ сообщСния

ΠœΡ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ ΠΎΠ±Π΅Ρ€Π½ΡƒΡ‚ΡŒ Ρ‚Π΅Π»ΠΎ сообщСния с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π²Π΅Ρ€ΡΠΈΡŽ:

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

Одна послСдняя ΠΌΡ‹ΡΠ»ΡŒ ΠΎ вСрсионировании: рассмотритС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования Ρ‡Π΅Π³ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠΌΠΈΠΌΠΎ простой схСмы подсчСта (v1, v2 ΠΈ Ρ‚. Π΄.). Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Π΅Ρ‰Π΅ нСсколько контСкстов, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π΄Π°Ρ‚Ρ‹ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, «201911») ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ сСмантичСскоС ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ вСрсиями.

ДокумСнтация

Когда ΠΌΡ‹ выпускаСм Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π½Π° GitHub ΠΈΠ»ΠΈ Maven, ΠΌΡ‹ прСдоставляСм ΠΆΡƒΡ€Π½Π°Π»Ρ‹ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ. Наши Π²Π΅Π±-интСрфСйсы API Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ.

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

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

Π‘Π»ΡƒΠΆΠ±Π° ΠΎΠ±ΠΌΠ΅Π½Π° сообщСниями

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

ОбновлСниС ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»Π΅ΠΉ Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ

РСкомСндуСтся сначала ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ прилоТСния. Π­Ρ‚ΠΎ Π΄Π°Π΅Ρ‚ Π½Π°ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ сообщСний, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΌΡ‹ фактичСски Π½Π°Ρ‡Π½Π΅ΠΌ ΠΈΡ… ΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ.

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

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²Ρ‹Ρ… Ρ‚Π΅ΠΌ ΠΈ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π΅ΠΉ

Если Ρ‚Π΅Π»Π° сообщСний сущСствСнно ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΈΠ»ΠΈ ΠΌΡ‹ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π²Π²ΠΎΠ΄ΠΈΠΌ Π½ΠΎΠ²Ρ‹ΠΉ Ρ‚ΠΈΠΏ сообщСния, ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Ρ‚Π΅ΠΌΡƒ ΠΈΠ»ΠΈ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ. Π­Ρ‚ΠΎ позволяСт Π½Π°ΠΌ ΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ сообщСния, Π½Π΅ бСспокоясь ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΈΡ… ΠΏΠΎΡ‚Ρ€Π΅Π±Π»ΡΡ‚ΡŒ. БообщСния Π±ΡƒΠ΄ΡƒΡ‚ ΡΡ‚ΠΎΡΡ‚ΡŒ Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ Π² Π±Ρ€ΠΎΠΊΠ΅Ρ€Π°Ρ…, ΠΈ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ свободно Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ потрСбитСля, ΠΊΠΎΠ³Π΄Π° Π·Π°Ρ…ΠΎΡ‚ΠΈΠΌ.

ИспользованиС Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² ΠΈ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²

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

Π‘ΠΎ стороны потрСбитСля ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Ρ‚ΡŒ сообщСния, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ извСстным Π½Π°ΠΌ вСрсиям, игнорируя Π΄Ρ€ΡƒΠ³ΠΈΠ΅.

Π₯Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° Π΄Π°Π½Π½Ρ‹Ρ…

Π’ настоящСй Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ микрослуТб Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° Π΄Π°Π½Π½Ρ‹Ρ… Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±Ρ‰ΠΈΠΌΠΈ рСсурсами. КаТдая слуТба Π²Π»Π°Π΄Π΅Π΅Ρ‚ своими Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ доступ ΠΊ Π½ΠΈΠΌ.

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

Π˜Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ΡŒ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ совмСстимым ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ? ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰ Π΄Π°Π½Π½Ρ‹Ρ… ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π»ΠΈΠ±ΠΎ рСляционными, Π»ΠΈΠ±ΠΎ NoSQL-Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΌΡ‹ рассмотрим ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ΠΈΠ· Π½ΠΈΡ… ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ.

РСляционная Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ…

РСляционныС Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Oracle, MySQL ΠΈ PostgreSQL, ΠΈΠΌΠ΅ΡŽΡ‚ нСсколько характСристик, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΡ… ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ слоТной Π·Π°Π΄Π°Ρ‡Π΅ΠΉ:

ИзмСнСния Π² рСляционных Π±Π°Π·Π°Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π° Ρ‚Ρ€ΠΈ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ.

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²Ρ‹Ρ… Ρ‚Π°Π±Π»ΠΈΡ†

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

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²Ρ‹Ρ… столбцов

ВсСгда добавляйтС Π½ΠΎΠ²Ρ‹Π΅ столбцы Π² ΠΊΠΎΠ½Π΅Ρ† Ρ‚Π°Π±Π»ΠΈΡ†. Если столбСц Π½Π΅ допускаСт значСния null, ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ€Π°Π·ΡƒΠΌΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… строк.

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

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ столбцов ΠΈΠ»ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†

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

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

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

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

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

Π’Π°ΠΊΠΈΠ΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° Π΄Π°Π½Π½Ρ‹Ρ… NoSQL, ΠΊΠ°ΠΊ MongoDB, ElasticSearch ΠΈ Cassandra, ΠΈΠΌΠ΅ΡŽΡ‚ ΠΈΠ½Ρ‹Π΅ ограничСния, Ρ‡Π΅ΠΌ ΠΈΡ… рСляционныС Π°Π½Π°Π»ΠΎΠ³ΠΈ.

ОсновноС ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ вмСсто строк Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ всС Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ схСмС, Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Π²Π½ΡƒΡ‚Ρ€ΠΈ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… NoSQL Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‚Π°ΠΊΠΎΠ³ΠΎ ограничСния. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ наши прилоТСния ΡƒΠΆΠ΅ ΠΏΡ€ΠΈΠ²Ρ‹ΠΊΠ»ΠΈ ΠΈΠΌΠ΅Ρ‚ΡŒ Π΄Π΅Π»ΠΎ с Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ Π΅Π΄ΠΈΠ½ΠΎΠΉ схСмы.

Π£ нас Π΅ΡΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ прСимущСство Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… NoSQL Π½Π΅ Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ коллСкциями, ΠΊΠ°ΠΊ это Π΄Π΅Π»Π°ΡŽΡ‚ рСляционныС Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ….

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

Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Π΅ΠΉ ΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π΅ΠΌ ΠΆΠ΅ рСкомСндациям, Ρ‡Ρ‚ΠΎ ΠΈ рСляционныС Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. Если это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, наши запросы Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ сбои ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ сначала ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ всС запросы, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ само Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π΄Π°Π½Π½Ρ‹Ρ….

Π Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния

НСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΎΠΉ тСхничСский стСк ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ, Π΅ΡΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π² наш ΠΆΠΈΠ·Π½Π΅Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ ΡƒΡΡ‚Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ свСсти ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΡƒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ совмСстимости.

Π˜ΠΌΠ΅ΠΉΡ‚Π΅ Π² Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΈΠ· Π½ΠΈΡ… Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ Π΄Π²ΡƒΡ… условиях:

Если ваша организация Π½Π΅ вписываСтся Π² ΠΎΠ΄Π½Ρƒ ΠΈΠ· этих ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ, Π²Ρ‹ вряд Π»ΠΈ Π΄ΠΎΠ±ΡŒΠ΅Ρ‚Π΅ΡΡŒ успСха Π² Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ любого ΠΈΠ· этих процСссов.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π½ΠΈ ΠΎΠ΄Π½Π° ΠΈΠ· ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Π½ΠΈΠΆΠ΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ сСрСбряной ΠΏΡƒΠ»Π΅ΠΉ, которая Ρ€Π΅ΡˆΠΈΡ‚ всС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ развСртывания. Π’ΠΏΠΎΠ»Π½Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎ Π½ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· Π½ΠΈΡ… Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΡ‹ ΠΊ вашСй ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ. ΠžΡ†Π΅Π½ΠΈΡ‚Π΅, ΠΊΠ°ΠΊ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· Π½ΠΈΡ… ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π²Π°ΠΌ, Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈ Π½Π΅ ΠΏΠΎΠΌΠΎΡ‡ΡŒ.

Canary deployment

Π‘anary deployment, Ρ‚Π°ΠΊΠΆΠ΅ извСстноС ΠΊΠ°ΠΊ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ blue/green, red/black ΠΈΠ»ΠΈ purple/red, прСдставляСт собой идСю выпуска Π½ΠΎΠ²ΠΎΠΉ вСрсии прилоТСния ΠΈ позволяСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π΅Π±ΠΎΠ»ΡŒΡˆΠΎΠΌΡƒ ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚Ρƒ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ Π΅Π³ΠΎ.

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

Π­Ρ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для кластСрных слуТб, Π³Π΄Π΅ ΠΌΡ‹ запускаСм нСсколько экзСмпляров. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠ΅ ΠΊΠ°ΠΊ синглСты, Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ протСстированы Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, для canary deployments Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ слоТныС сСрвисныС сСтки для Ρ€Π°Π±ΠΎΡ‚Ρ‹. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ микросСрвисов ΡƒΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ обнаруТСния слуТб, Π½ΠΎ Π½Π΅ всС ΠΎΠ½ΠΈ созданы Ρ€Π°Π²Π½Ρ‹ΠΌΠΈ. Π‘Π΅Π· сСрвисной сСтки, которая обСспСчиваСт мСлкозСрнистый ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°, canary deployment Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.

The three Ns

The three Ns относятся ΠΊ ΠΈΠ΄Π΅Π΅, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Ρ‚Ρ€ΠΈ вСрсии ΠΊΠ°ΠΆΠ΄ΠΎΠΉ слуТбы, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠ½ΠΎ взаимодСйствуСт:

Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π½ΠΎ это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚? Π­Ρ‚ΠΎ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ просто сводится ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ наши услуги Π±ΡƒΠ΄ΡƒΡ‚ ΠΌΠΎΠ΄Π΅Ρ€Π½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ Π² ΠΊΠ°ΠΊΠΎΠΌ-Π»ΠΈΠ±ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ порядкС.

Π’ качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° рассмотрим Π΄Π²Π΅ слуТбы, A ΠΈ B, Π³Π΄Π΅ A Π΄Π΅Π»Π°Π΅Ρ‚ спокойныС Π·Π²ΠΎΠ½ΠΊΠΈ Π½Π° B.

Если Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ внСсти измСнСния Π² A, ΠΌΡ‹ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ B Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ Π΄ΠΎ ΠΈΠ»ΠΈ послС A, ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Π²ΠΎΠΎΠ±Ρ‰Π΅. ИзмСнСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ вносим Π² A ΠΈΠ»ΠΈ B, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΡ‚ΠΎΡΡ‚ΡŒ сами ΠΏΠΎ сСбС.

И Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚, Ссли B придСтся ΠΎΡ‚ΠΊΠ°Ρ‚ΠΈΡ‚ΡŒΡΡ Π½Π°Π·Π°Π΄? ΠœΡ‹ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ всС свои зависимыС услуги Π² этом случаС.

Для ясности: ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Ρ‚Ρ€Π΅Ρ… Ns Π½Π΅Π»Π΅Π³ΠΊΠΎ Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ, особСнно ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΌΠΈ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚Π½Ρ‹ΠΌΠΈ прилоТСниями. Однако это Π½Π΅ Ρ‚Π°ΠΊ ΡƒΠΆ ΠΈ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.

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

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

Π’Ρ‚ΠΎΡ€ΠΎΠΉ вопрос Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ простым для ΠΎΡ‚Π²Π΅Ρ‚Π°: Ρ‡Ρ‚ΠΎ измСнилось Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ ΠΊΠΎΠ΄Π°? Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ…, Ρ„Π°ΠΉΠ»Ρ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΈ Ρ‚. Π΄. ΠœΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΏΠ»Π°Π½ ΠΎΡ‚ΠΊΠ°Ρ‚Π° этих ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π° Π½Π΅ просто скомпилированный ΠΊΠΎΠ΄.

ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΠΈ характСристик

БущСствуСт мноТСство инструмСнтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Π΅ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ rollout.io ΠΈ Optimizely. НСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΎΠΉ инструмСнт ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ, Π΅ΡΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ характСристики, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΊΠ°Ρ‚ΡŒ.

Быстрый

РСализация Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ большого количСства ΠΊΠΎΠ΄Π°, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅, Π² наши прилоТСния:

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° состояния ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Ρ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ быстрой. ΠœΡ‹ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ Π½Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΈΠ· Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ это состояниС ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ это ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ быстро ΡƒΡ…ΡƒΠ΄ΡˆΠΈΡ‚ΡŒ нашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

Π’ ΠΈΠ΄Π΅Π°Π»Π΅, ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΠΎΠ΅ состояниС Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½ΠΎ Π²ΠΎ врСмя запуска прилоТСния ΠΈ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π²Π½ΡƒΡ‚Ρ€ΠΈ, с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠΌ для обновлСния этого Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ состояния ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ нСобходимости (messaging bus, JMX, API ΠΈ Ρ‚. Π΄.).

РаспрСдСлСнный

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

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ€Π½Ρ‹ΠΉ

ИзмСнСниС состояния ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Ρ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ. Если Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ нСсколько источников ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, ΠΌΡ‹ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅ΠΌ Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ прилоТСния ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π²ΠΈΠ΄ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ.

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

Π”Π²ΠΈΠ³Π°ΠΉΡ‚Π΅ΡΡŒ быстро, Π½ΠΎ Π½Π΅ Π»ΠΎΠΌΠ°ΠΉΡ‚Π΅ Π²Π΅Ρ‰ΠΈ

Π’ нашСм постоянно ΠΌΠ΅Π½ΡΡŽΡ‰Π΅ΠΌΡΡ распрСдСлСнном ΠΌΠΈΡ€Π΅ сущСствуСт мноТСство способов взаимодСйствия ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ слуТб. Π§Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ способов ΡΠ»ΠΎΠΌΠ°Ρ‚ΡŒ ΠΈΡ…, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ΠΈ Π½Π΅ΠΈΠ·Π±Π΅ΠΆΠ½ΠΎ Ρ€Π°Π·Π²ΠΈΠ²Π°ΡŽΡ‚ΡΡ.

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

Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‚Π°ΠΊΠΆΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρ‹, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ web sockets ΠΈΠ»ΠΈ gRPC, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ свои собствСнныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для быстрого обновлСния Π½Π°ΡˆΠΈΡ… систСм.

По ΠΌΠ΅Ρ€Π΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΡ‹ удаляСмся ΠΎΡ‚ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡ‚ΠΎΠ² ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ ΠΊ микрослуТбам, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ фокусируСмся ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΆΠ΅ Π½Π° ΡΠ²ΠΎΠ»ΡŽΡ†ΠΈΠΎΠ½Π½ΠΎΡΡ‚ΠΈ Π½Π°ΡˆΠΈΡ… систСм, сколько ΠΈ Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

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

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

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