Что такое 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, например картинки, таблицы стилей, джава-скрипты), который написан для раздачи статического контента, большому количеству клиентов, при незначительном потреблении системных ресурсов. Кроме того такая связка облегчает масштабирование. Для обычных сайтов как правило используют один Apache. (Такая схема делает администрирование более легким.)

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

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

Это вступительная статья на тему: «Highload systems». Более подробно о проблемах и решениях для Highload system мы расскажем Вам в последующих статьях.