Що таке highload systems і навіщо вони потрібні?

  • Posted on 21.12.2012,
  • written by

При перекладі словосполучення «Highload systems» не складно зрозуміти, що мова йде про високонавантажені системи. Зовсім інша справа зрозуміти чим вони навантажені і навіщо їх навантажують :)

Для чого потрібні такі системи і що вони з себе представляють?
Високонавантажені системи – це, за великим рахунком, ті ж веб-сайти, тільки з дуже великою аудиторією, і як наслідок з великим навантаженням, що вимагає оптимізованої серверної частини веб-сайту. Якісною характеристикою для високонавантаженої системи є пропускна здатність цієї системи, вона описує кількість роботи яку повинна вміти виконувати система в одиницю часу.

Прикладами високонавантажених систем можуть служити такі веб-сайти як Google, Facebook, Вконтакте, Flickr, Amazon, YouTube, Wikimedia, LiveJournal, Twitter, MySpace і багато інших. Так само до високонавантажених систем можна віднести браузерні багатопотокові ігри.

Чіткої нижньої межі, де закінчуються високонавантажені системи і починаються звичайні веб-сайти не існує.
Як і для звичайного сайту для highload system необхідний сервер (а частіше кілька серверів), на якому буде знаходиться система. В якості операційної системи для такого сервера, як правило використовується один з дистрибутивів Linux. Найбільш поширені – CentOS, Debian, Fedora, Ubuntu і Red Hat. Іноді використовуються серверні версії Windows, але це швидше виняток.

В якості веб-сервера, як правило використовують зв’язку Apache і Nginx. Модель frontend/backend системи при якій в якості frontend виступає легкий web-сервер Nginx, а в якості backend виступає Apache. Така модель дозволяє економити системні ресурси, за рахунок того, що запити приймаються Nginx, Nginx передає запит Apache і швидко отримує відповідь, після чого Apache звільняє пам’ять, а з клієнтом далі взаємодіє Nginx (віддає всі об’єкти сторінки які не потребують роботи php, наприклад картинки, таблиці стилів, js-скрипти), який написаний для роздачі статичного вмісту, великій кількості клієнтів, при незначному споживанні системних ресурсів. Крім того така зв’язка полегшує масштабування. Для звичайних сайтів як правило використовують один Nginx. Така схема робить адміністрування більш легким.

В якості скриптових мов програмування використовуються PHP, Perl або Ruby on Rails. Найбільш поширений PHP.

В якості СУБД використовують MySQL або PostgreSQL. MySQL – більш поширений і простіше в налаштуванні. PostgreSQL – вважається більш потужної СУБД, але складніше в налаштуванні. Вибір робиться залежно від того які операції з базами даних робляться частіше в кожній конкретній системі.

Це вступна стаття на тему: «Highload systems». Більш докладно про проблеми і рішеннях для Highload system ми розповімо Вам в наступних статтях.