Проектування і внедоеніе високонавантажених систем

Високонавантажених називають системи безупинного доступу, тобто Ті структури, запит даних з яких дозволяє отримувати інформацію без тривалої затримки при безперервній роботі. Зазвичай для такої роботи використовуються мультисерверної рішення.
Сервера можуть розділятися на 3 типи:
  • Front (сервера взаємодії з кінцевим споживачем)
  • Middle (сервера агрегації запитів, кешування, обробки)
  • BackEnd (системи доступу до сховища даних)

Якщо система високонавантажених, але не має складної моделі кешування або кодування інформації, то роль MiddleWare може бути опущена.

Високонавантажені системи складаються зазвичай з декількох front і back серверів або груп серверів. Для географічно-розподілених проектів, місцезнаходження front / back груп може бути рознесені в різні ЦОДи в залежності від споживача ресурсів.
Сервера можуть бути об'єднані в одну з двох систем взаємодії.

Хмара. При хмарному об'єднанні сервера обмінюються процесорними ресурсами. Виведення з ладу однієї або декількох машин не призведе до збою сервісу, навантаження з нього перерозподілиться між рештою учасників хмари. Зазвичай програмне забезпечення розробляється спеціалізовано для роботи з багато-хмарними обчисленнями. Взаємодія між модулями програми може мати більш глибокі можливості. Для даної схеми, серверні додатки front і back можуть перебувати всередині одного хмари.

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

Зв'язок Front і Back серверів призначається як багато до багатьох, але не до всіх, тобто Один Front сервер перерозподіляє запити до обмеженого числа Back серверів, це необхідно для запобігання виходу з ладу всіх машин, в разі атак або збоїв. Черга запитів розподіляється рівномірно або по ваговій частці між різними Back серверами.

Ми розробляємо високонавантажені системи з розподіленими обчисленнями і системами зберігання. Для забезпечення безперебійної роботи без залучення людини. Для підвищення рівня відмовостійкості, створюємо системи самодіагностики і усунення неполадок при збоях. При виявленні несправностей, модуль звітів (bug tracer, bug logger) передає у нашу службу підтримки зневадження, при отриманні якої ми робимо доопрацювання системи і передаємо алгоритми поновлення замовнику.

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

Схожі статті