Найти тему
IaaS-платформа 1cloud

Как компании сэкономить деньги в облаке

Оглавление

И не потерять клиентов

С одной стороны, рост трафика для любого интернет-проекта — это плюс. С другой, бывают ситуации, когда корпоративный сайт не справляется с нагрузкой, причем в самое неподходящее время: например, интернет-магазин может «упасть» вечером, в выходные дни, в праздники.

Чтобы не потерять клиентов и деньги, владелец ресурса всегда должен иметь возможность подключить новые вычислительные мощности — на первый взгляд, это довольно затратный процесс. О том, как можно обеспечить бесперебойную работу бизнеса в сети и при этом сэкономить на инфраструктуре, расскажем далее.

Скриншот из видео о дата-центре Xelent, где размещается оборудование 1cloud
Скриншот из видео о дата-центре Xelent, где размещается оборудование 1cloud

Где компании теряют деньги

Производительность компьютерной инфраструктуры зависит от количества процессоров и оперативной памяти, числа HDD и прочих ресурсов. Все это стоит денег. Если компания закупила и использует собственное «железо», которое мощнее чем нужно, можно сказать, что ресурсы расходуются впустую.

Исследователь Джонатан Куми (Jonathan Koomey) из Стэнфордского университета отмечает, что эта участь постигла 30% всех серверов в мире. По словам Куми, почти треть серверов компаний не производили никаких вычислений на протяжении полугода. Согласно отчету Uptime Institute, в мире 30% серверов находятся в коматозном состоянии — это 10 млн машин. Их общая стоимость приблизительно составляет 30 млрд долларов.

Решает эту проблему IaaS. Провайдеры дают клиентам возможность «возвращать» ненужные мощности практически в любое время. Например, в облаке 1cloud можно менять «состав» виртуальных машин (ВМ) каждые десять минут. При этом есть возможность отключить ВМ насовсем — тогда оплачиваться будет лишь аренда занимаемого дискового пространства.

Но деньги уходят не только на оплату неиспользуемого оборудования. Понести убытки можно и в случае отказа сервиса, вызванного скачком трафика. Если сайт грузится долго, вы рискуете потерять клиента. По данным Google, клиенты не ждут дольше 3 секунд, они закрывают вкладку и уходят к конкурентам. Поэтому важно оперативно повышать производительность компьютерной облачной инфраструктуры, чтобы избежать сбоев в работе сервиса.

Как «экономить на нагрузке»

Далее мы расскажем о способах балансировки нагрузки в облаке IaaS-провайдера, которые дадут возможность грамотно распределить трафик и сэкономить средства.

Способ первый — статическое распределение

В этом случае каждый пользователь «привязывается» к определенному серверу. Выбор сервера делается, например, по географическому признаку. Можно «разбивать» пользователей случайным образом: перенаправлять на один сервер клиентов с четными идентификаторами, а на второй — с нечетными. Так, каждая машина примет примерно половину нагрузки.

Статическое распределение — привязка к одной машине
Статическое распределение — привязка к одной машине

Недостатком подобной системы, как и многих других статических схем, является необходимость ручного изменения настроек. Для этого нужно постоянно мониторить активность пользователей и вносить соответствующие правки. Однако IaaS-провайдер упрощает эту задачу. Например, мы в 1cloud предоставляем своим клиентам специальную панель управления, в которой можно менять конфигурацию сервера, создавать частные сети и даже определять скорость соединения ВМ с интернетом.

Управление скоростью доступа к интернету в панели управления 1cloud
Управление скоростью доступа к интернету в панели управления 1cloud

Этот способ распределения нагрузки подойдет для работы с небольшим количеством клиентов, так как «балансировать» большое количество серверов вручную может быть трудозатратно. Но в небольших масштабах он дает лучшее понимание происходящего в вашей инфраструктуре. Например, если в какой-то момент вы замечаете избыток ресурсов, вы всегда можете их отключить.

Способ второй — псевдодинамическое распределение

Активность пользователей, «прикрепленных» к одному серверу, может меняться, как может меняться и активность пользователей из разных регионов (если мы говорим про географическое деление клиентов). При статическом распределении возникает дисбаланс подключений, нагрузка возрастает. Однако проблему можно нивелировать, если делить запросы между имеющимися серверами циклически или в случайном порядке.

Пример — распределение запросов между ВМ с помощью DNS. В основе подхода лежит предположение, что большинство клиентов использует первый IP-адрес, который получают от домена. При подключении нового клиента, DNS каждый раз рассылает виртуальным машинам обновленный список IP-адресов по алгоритму round-robin, что постоянно перераспределяет нагрузку на серверную группу.

Псевдодинамическое распределение — выбор по round-robin
Псевдодинамическое распределение — выбор по round-robin

Но и такой подход не лишен недостатков. Например, DNS не проверяет сервера на наличие ошибок и не исключает из списка IP-адресов идентификаторы отключённых ВМ. Другая проблема — нужно подстраивать время жизни кеша таблицы с адресами, иначе клиенты не узнают об изменениях в группе серверов и будут подключатся к старым машинам.

Такой способ балансировки подойдет только в том случае, если все сервера обладают примерно одинаковыми ресурсами, так как псевдодинамические системы не умеют распределять нагрузку между прикладными серверами неравномерно. Но если суммарных вычислительных ресурсов системы хватит на обработку потока запросов, то она самостоятельно справится со скачками трафика – всю работу на себя возьмет автоматизированный алгоритм.

Третий способ — динамическое распределение

Он подразумевает использование программных или аппаратных балансировщиков, которые автоматически подстраивают нагрузку в зависимости от состояния ВМ и внешних факторов.

Динамическое распределение — выполняется мониторинг
Динамическое распределение — выполняется мониторинг

В основе виртуальной инфраструктуры 1cloud лежат решения VMware, к которым мы разработали собственные прикладные дополнения. Для балансировки массивов серверов мы используем утилиты Distributed Resource Scheduler (DRS) и vCenter High Availability (VMware HA).

Первая отвечает за динамическое распределение нагрузки на аппаратную часть облака. Когда один из «железных» серверов попадает под тяжелый трафик, виртуальные машины с него переносятся на другой сервер. При этом пользователи переключения не замечают. Что касается VMware HA, то он следит за работой ВМ и перезапускает их на другом сервере в случае падения.

Также в облаке 1cloud имеется программный интерфейс приложения (API), который автоматизирует управление вычислительными мощностями. Он «умеет» включать и выключать виртуальные машины по расписанию или на основании данных систем мониторинга.

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

Скриншот из видео о дата-центре Xelent, где размещается оборудование 1cloud
Скриншот из видео о дата-центре Xelent, где размещается оборудование 1cloud

Что важно знать

1. По данным Internet Retailer, в декабре прошлого года во время «Черной пятницы» суммарный трафик 100 крупнейших ритейлеров вырос в 2 раза: со 180 млн до 340 млн ежедневных посещений. Интенсивность роста трафика предсказать наверняка не получится, поэтому нужно быть готовыми к подключению новых вычислительных мощностей и перераспределению нагрузки.

2. Статическое распределение вычислительных мощностей — когда один клиент «привязывается» к одному серверу, а любое перераспределение нагрузки выполняется вручную. Подобная схема допустима при небольших масштабах, однако оказывается неудобной при работе с большим количеством клиентов.

3. Псевдодинамическое распределение — запросы к ВМ распределяются циклически (например, round-robin). Этот подход упрощает балансировку нагрузки, однако не может «исключать» неработающие сервера.

4. Динамическое распределение — для этого используются программные или аппаратные балансировщики, которые расширяют возможности системных администраторов и позволяют им оперативно подстраиваться к меняющимся потребностям компании.

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