Сервера можуть розділятися на 3 типи:
- Front (сервера взаємодії з кінцевим споживачем)
- Middle (сервера агрегації запитів, кешування, обробки)
- BackEnd (системи доступу до сховища даних)
Якщо система високонавантажених, але не має складної моделі кешування або кодування інформації, то роль MiddleWare може бути опущена.
Високонавантажені системи складаються зазвичай з декількох front і back серверів або груп серверів. Для географічно-розподілених проектів, місцезнаходження front / back груп може бути рознесені в різні ЦОДи в залежності від споживача ресурсів.
Сервера можуть бути об'єднані в одну з двох систем взаємодії.
Хмара. При хмарному об'єднанні сервера обмінюються процесорними ресурсами. Виведення з ладу однієї або декількох машин не призведе до збою сервісу, навантаження з нього перерозподілиться між рештою учасників хмари. Зазвичай програмне забезпечення розробляється спеціалізовано для роботи з багато-хмарними обчисленнями. Взаємодія між модулями програми може мати більш глибокі можливості. Для даної схеми, серверні додатки front і back можуть перебувати всередині одного хмари.
Розподілена система. При такій взаємодії, екосистема будується на створенні ізольованих серверних машин, які спілкуються тільки на рівні додатків. Масштабованість в даній структурі більш проста і прозора, ніж при хмарні обчислення.
Зв'язок Front і Back серверів призначається як багато до багатьох, але не до всіх, тобто Один Front сервер перерозподіляє запити до обмеженого числа Back серверів, це необхідно для запобігання виходу з ладу всіх машин, в разі атак або збоїв. Черга запитів розподіляється рівномірно або по ваговій частці між різними Back серверами.
Ми розробляємо високонавантажені системи з розподіленими обчисленнями і системами зберігання. Для забезпечення безперебійної роботи без залучення людини. Для підвищення рівня відмовостійкості, створюємо системи самодіагностики і усунення неполадок при збоях. При виявленні несправностей, модуль звітів (bug tracer, bug logger) передає у нашу службу підтримки зневадження, при отриманні якої ми робимо доопрацювання системи і передаємо алгоритми поновлення замовнику.
Розробка високонавантажених систем проводиться з передачею супровідної документації та вихідних кодів замовнику. Програмне забезпечення має модульне тестування.
Після завершення розробки і впровадження системи ми готові до забезпечення гарантійного та післягарантійного ведення проекту. Найбільш важливим моментом у цьому є невтручання третіх осіб, або при доопрацюванні функціоналу третіми особами необхідний своєчасне інформування нас і передача документації.