Livestreet CMS в облаках Infobox

infoboxКомпания Infobox предоставила возможность бесплатно (до 1 февраля) тестировать их облачные сервера, в этой статье напишу как я сделал распределенную систему. Решил сделать два http-сервера и один сервер под базы данных. На самом деле, для не нагруженных проектов можно держать на одном сервере базу данных и http-сервер, а на втором только http-сервер подключать по необходимости, но мне было интересно построить именно такую систему, чтобы при увеличении нагрузок, на нее перейти.
Создание серверов
Создадим первый http-сервер
создание сервера
Выбираем параметры сервера для нужных нам задач, этот сервер будет базовым для других серверов на которых ляжет нагрузка по отдаче динамических страниц, ресурсы указаны средние потом мы их поднимем и посмотрим на сколько вырастет производительность.
Далее выбираем операционную систему
выбор os
Подтверждаем создание сервера, и через пару минут у нас будет готов сервер. Проверяем почту, там будет письмо с данными для подключения к серверу.
список серверов
Сразу для удобства доступа к серверу прописываем доступ по открытому ключу (/root/.ssh/authorized_keys), в дальнейшем нам не потребуются пароли для всех созданных http серверов.
На сервере уже установлен apache и с ним можно работать, я у себя установил nginx+php-fpm, описывать как все устанавливается и настраивается не буду, на эту тему есть много статей. Соответственно настраиваете сервер по своим предпочтениям.
Далее создаем балансировщик нагрузки.
балансировщик нагрузки
выбираем из списка пока наш единственный сервер. Через балансировщик будет идти весь наш трафик на сервера.
Далее клонируем сервер и делаем из него сервер базы данных.
клонируем сервер
тут можно даже не ждать письма с доступом, в списке смотрим ip сервера и заходим по ключу. Здесь нам потребуется установить mysql и memcached, а также прописать права доступа к базе из вне, чтобы получить доступ с наших серверов.

Когда все готово возвращаемся к нашему первому серверу, и устанавливаем на него livestreet, соответственно прописываем ip сервера баз данных и те же данные для memcached (кэшированные данные будут храниться на том же сервере). А так же в настройках livestreet прописываем в www ip-адрес нашего балансировщика.

Проведем тестирование производительности сервера с 1 ядром 1000MHz, 1500Mhz и 2 ядрами и 1500MHz, тестироваться будет на «чистой» livestreet CMS 1.0.1
Для этого используем siege с параметрами -с 20 -t 1M -b, это означает что одновременно 20 пользователей будут запускать наш сайт в течении минуты не прерываясь.

Date & Time,          Trans,  Elap Time,  Data Trans,  Resp Time,  Trans Rate,  Throughput,  Concurrent,    OKAY,   Failed
**** 1core 1000Mhz ****
2012-12-11 21:09:24,    498,      59.76,           2,       2.35,        8.33,        0.03,       19.61,     498,       0
**** 1core 1500Mhz ****
2012-12-11 21:13:21,    763,      59.84,           3,       1.54,       12.75,        0.05,       19.64,     763,       0
**** 2core 1500Mhz ****
2012-12-11 21:15:35,   1530,      59.01,           7,       0.77,       25.93,        0.12,       19.90,    1530,       0

По таблице видно как растет количество выполняемых запросов за минуту 498, 763, 1530. Настройки серверов под нужные на данный момент ресурсы меняются в панели очень быстро.

Теперь сделаем из нашего http-сервера образ, это позволит нам потом создавать сколько угодно идентичных серверов между которыми мы будем распределять нагрузку.
образ сервера

на время создания образа сервер будет остановлен. Примерно за минуту образ будет готов.
список образов сервера
Далее в списке образов нажимаем, создать сервер. После создания добавляем в балансировщик наш второй сервер, никаких изменений сервере не требуется.
Проведем тестирование производительности при использовании двух серверов с двухядерными процессорами по 1500MHz
Date & Time,           Trans,  Elap Time,  Data Trans,  Resp Time,  Trans Rate,  Throughput,  Concurrent,    OKAY,   Failed
**** 2servers 2core 1500Mhz ****
2012-12-11 21:51:23,   2956,      59.45,          13,       0.40,       49.72,        0.22,       19.89,    2956,       0

Соответственно получается, что производительность увеличилась примерно в 2 раза, по сравнению с одним сервером.
Выводы
С помощью облачных серверов infobox можно легко, через панель управления, администрировать ресурсы серверов и выделять ресурсы по потребностям в данный момент. Например, можно активировать второй сервер во время сезона продаж, рекламной компании или по вечерам когда нагрузка пиковая и платить только за используемые ресурсы, а при необходимости подключить еще один или выделить больше ресурсов.
Удобно то, что можно настроить систему один раз, а потом создавать копии серверов, не делая индивидуальную настройку каждого.
Опять же балансировщик сильно спасает и не надо ломать голову над покупкой и настройкой новых серверов если дела пошли в гору или ожидаем хабра-эффект.
Было очень интересно попробовать построить структуру из нескольких серверов и посмотреть как меняется производительность, я остался доволен, не смотря на то что возникали ошибки, всем желаю побывать в облаках. =)

Ссылки
Сайт Infobox
Подробная справка по интерфейсу

2 комментария

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.