No history yet

Вступ до розподілених систем

Що таке розподілені системи?

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

Це і є суть розподіленої системи. Це колекція окремих, незалежних комп'ютерів, які з'єднані мережею і працюють разом для досягнення спільної мети. Для користувача вони виглядають як одна потужна, цілісна система.

Кожен комп'ютер у такій системі називається вузлом (node). Вузли спілкуються між собою, щоб координувати свої дії та розподіляти завдання.

Еволюція обчислень

Колись давно один великий і дорогий комп'ютер, мейнфрейм, виконував усі завдання для цілої організації. Це була епоха централізованих обчислень. Потім з'явилися персональні комп'ютери, і обчислювальна потужність стала доступною кожному на робочому столі.

Але з розвитком інтернету виникли задачі, які не міг вирішити навіть найпотужніший ПК. Як забезпечити роботу пошукової системи для мільярдів запитів? Як транслювати відео мільйонам глядачів одночасно? Відповіддю стало об'єднання багатьох машин у мережу для спільної роботи над однією проблемою. Так народилася ідея розподілених систем.

Ключові властивості

Розподілені системи цінують за кілька важливих характеристик, які роблять їх такими потужними.

Масштабованість

noun

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

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

Доступність

noun

Гарантія того, що система залишається працездатною, навіть якщо деякі її компоненти (вузли) виходять з ладу. Якщо один вузол "впав", інші підхоплять його роботу, і користувач цього не помітить.

Це схоже на роботу літака з кількома двигунами. Відмова одного двигуна не призведе до катастрофи, оскільки інші продовжать працювати. У розподілених системах це досягається за рахунок дублювання даних та функцій на різних вузлах.

Моделі розподілених обчислень

Ідея розподілених систем реалізується у кількох основних моделях. Вони відрізняються архітектурою, призначенням та способом управління.

МодельОписПриклад
КластерГрупа однорідних комп'ютерів, тісно пов'язаних швидкою локальною мережею. Працюють як єдине ціле.Суперкомп'ютер для наукових розрахунків.
Ґрід (Grid)Об'єднання географічно розподілених, різнорідних ресурсів (комп'ютерів, даних) від різних організацій.Проєкт SETI@home, де мільйони ПК обробляють радіосигнали.
Хмара (Cloud)Надання обчислювальних ресурсів (серверів, сховищ) як послуги через інтернет з оплатою за використання.Оренда віртуального сервера на Amazon Web Services.

Кластери — це ніби згуртована спортивна команда, де всі гравці однакові й тренуються разом. Ґрід — це збірна команда з різних країн для Олімпійських ігор. А хмара — це як каршерінг: вам не потрібно купувати авто, ви просто берете його в оренду, коли потрібно, і платите лише за час поїздки.

Розуміння цих фундаментальних концепцій є ключем до вивчення більш складних тем, таких як ґрід-системи та хмарні обчислення, про які ми поговоримо далі.

Quiz Questions 1/5

Що є основним принципом роботи розподіленої системи?

Quiz Questions 2/5

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