Размышления о кластеризации. Часть 1 - Понятие кластер

Понятие кластер, подразумевает использование нескольких серверов при работе целостного приложения. Каждый из серверов в этом случае выполняет отведенную ему роль. Этой статьей я начинаю цикл о кластерах, их настройке и возможностях.

Всем известно, что можно взять выделенный сервер и развернуть на нем web-сайт. Установить web-сервер типа Apache или NginX. Залить файлы контента. Установить сервер баз данных, типа MySql, и развернуть на нем базу данных. Установить скриптовый компилятор, типа php или python, и настроить его на генерирование динамического контента с последующей его выдачей через установленный web-сервер.

В этом случае все находится в одном месте. При увеличении посещаемости вверенного ресурса, нагрузка на сервер будет неуклонно расти и, в случае высокой популярности ресурса, придется увеличивать мощности. Здесь есть 2 пути:

  1. Взять в аренду более мощный сервер и перенести на него весь контент.
  2. Разделить ресурсы и хранить их на нескольких серверах.

В случае увеличения количества серверов (горизонтальное скалирование), обслуживающих сайт, вводится понятие кластера. В приведенном мною примере рассмотрена одна из причин кластеризации.

Второй причиной может быть отказоустойчивость. В стиле Отряд не заметил потери бойца. Если ваш сайт вертится на десятке серверов, то падение одно из них не повлечет за собой падение сайта.

Самым простым вариантом является использование двух серверов:

  1. Web сервер
  2. Сервер баз данных.

Это самый базовый вариант кластера. Никаких дополнительных устройств. Сайт резолвится через ip адрес web сервера. В настройках сайта/приложения указывается ip адрес сервера баз данных для подключения к БД.

Принцип работы показан на следующей схеме:
Screenshot from 2014-09-26 09:02:53

В случае с большинством популярных CMS и фрэймворков, основная нагрузка ложится на вэб сервер, поэтому есть смысл не заказывать сервера одинаковой мощности. Если у Вас есть сомнения о том, как распределить мощность приобретаемых серверов - смотрите в сторону более мощного вэб сервера.

Следующая статья:
Размышления о кластеризации: Часть 2

Share Button

Categories:

Updated: