Як ми використовуємо архітектуру мікросервісів на моїй роботі.

Вступ до мікросервісів.

Простими словами, мікросервіси — це архітектурний підхід до побудови додатків, коли різні сервіси додатка розгортаються та підтримуються окремо, що дозволяє кожній частині працювати незалежно від інших без впливу на загальну роботу додатка.

Як ми використовуємо мікросервіси.

Спочатку ми використовували систему, в якій кожен сервіс знаходився всередині додатка, що призводило до того, що при виникненні серйозної помилки весь додаток вимикався. Так, можна знайти обхідний шлях, наприклад, використовуючи блоки try-catch (в Python це "except"), щоб уникнути вимикання всього додатка. Але це стає дуже неприбрано, коли додаток розростається, додається більше сервісів, і важко підтримувати систему з нульовим часом простою.

pic

Переваги мікросервісів, які я помітив.

Ось де й відкривається перевага мікросервісів. Розділяючи додаток на частини, ми можемо працювати над різними системами незалежно, не впливаючи на основну систему. Оскільки ми поділили додаток на окремі частини, ми помітили, що основний додаток став працювати швидше, тому що раніше всі сервіси працювали одночасно, що уповільнювало роботу. Тепер ви можете подумати, що якщо додаток сповільнюється, чому б не просто збільшити обчислювальні потужності та зробити його швидшим. Так, це можна зробити, але якщо кількість користувачів зростає, додаток може зламатися, адже деякі сервіси можуть заблокувати потік додатка непередбачуваним чином (таке буває). Зрештою, основний додаток використовує мікросервіси для управління різними сервісами незалежно, що забезпечує те, що проблеми з одним сервісом не впливають на загальну продуктивність та надійність системи.

Недоліки мікросервісів, які я помітив.

Переваги хороші, але мікросервіси також мають свої недоліки. Наприклад, тепер, коли кожен сервіс є окремим додатком, його потрібно розгортати та підтримувати окремо. І оскільки ми використовуємо мікросервіси, нам можуть знадобитися різні типи сервісів від хмарних постачальників (ми використовуємо Azure). Причина використання різних сервісів хмарних постачальників полягає в тому, що деякі сервіси просто мають сенс, а деякі — ні. Наприклад, для бота соціальних мереж можна використовувати віртуальну машину (VM), для фонових задач — Azure Functions, які можна викликати різними способами, такими як за допомогою черг, HTTP запитів або інших доступних опцій. А для основного додатка ми використовуємо App Service. Кожен сервіс має свої переваги та недоліки, і добре використовувати сервіси за їхніми перевагами, а не використовувати ті, які не підходять для вашого додатка. Власне, ключ до ефективного використання мікросервісів полягає в обережному виборі правильних інструментів для конкретної задачі та постійному оцінюванні їх продуктивності, щоб забезпечити відповідність з конкретними потребами вашого додатка.

Перекладено з: How we are using Micro Services architecture at my job.

Leave a Reply

Your email address will not be published. Required fields are marked *