Высокая производительность и хостинг-инфраструктура: Опыт проекта 1cloud
В нашем блоге мы уже рассказывали о построении инфраструктуры хостинг-провайдера и создании API для нее, описывали автоматизацию бухгалтерских задач и даже раскрывали тему редизайна собственного сайта.
В сегодняшнем топике речь пойдет о еще одной интересной теме — возможности заказа так называемых «больших конфигураций», то есть высокопроизводительных и просто «крупных» серверов.
Что это и для кого
Под «крупными» серверами подразумеваются машины, обладающие до 32 CPU и до 128 Гб RAM (на один сервер). Мы также разработали механизм, позволяющий клиентам мигрировать свою инфраструктуру в более производительный пул уже по ходу работы.
Подобная необходимость может возникнуть, к примеру, при быстром росте проекта, который стремительно набирает посещаемость, за которой текущий технологический стек просто не поспевает. Тогда логично принять решение о быстром и безболезненном переходе на более производительные серверы и вертикальном масштабировании.
При этом, в конечном итоге, горизонтальное масштабирование чаще всего оказывается более выгодным вариантом в долгосрочной перспективе.
Базовый пул подходит для, к примеру, терминальных серверов или же для не очень нагруженных приложений и веб сайтов. Для требовательных к производительности или высоконагруженных ресурсов можно использовать производительный пул.
Все виртуальные серверы 1cloud размещаются на дисковых массивах NetApp FAS6240/FAS8040. Оборудование размещено в центре обработки данных уровня Tier III (SDN) в Санкт-Петербурге, а все каналы связи имеют физическое резервирование.
Чем отличается производительный пул
Инфраструктура базового пула серверов 1cloud построена на базе blade-серверов HP ProLiant с процессорами Intel Xeon x5675. Серверы до 12 CPU в производительном пуле размещаются на серверах Cisco UCS с процессорами Intel Xeon E5.
Выглядят они так:
Виртуальные серверы от 14 CPU до 32 CPU размещаются на серверах Dell PowerEdge с процессорами Intel Xeon E7:
Как происходит миграция
После редизайна сайта на нем появился удобный калькулятор, позволяющий не только осуществлять заказ стандартных конфигураций, но и формировать «кастомные» заявки. После внедрения в строй высокопроизводительного пула серверов в калькуляторе появились новые элементы управления:
Кроме того, возможность заказа больших серверов появилась и во внутренней панели управления хостингом. Благодаря этому пользователи могут не только удобно заказать такой сервер с нуля, но и быстро мигрировать свою инфраструктуру в более производительный пул всего в пару кликов:
Довольно часто производительные серверы требуются на этапе тестирования инфраструктуры провайдера — для того, чтобы облегчить этот процесс, мы реализовали возможность предоставления серверов до 8 CPU и 32 Гб RAM для проведения тестов.
Большие конфигурации позволяют реализовать вертикальное масштабирование инфрструктуры — благодаря API 1cloud возможна настройка автоматического масштабирования при необходимости.
В ближайшее время мы планируем работать в двух направлениях:
- Создание функции по отслеживанию нагрузки на сервер — клиенты должны иметь возможность прямо в панели управления хостингом видеть, насколько нагружен их сервер, и иметь возможность настройки оповещений при превышении пороговых значений нагрузки.
- Реализация балансировщика нагрузки — аналогичным образом, у клиентов появится возможность распределять нагрузку по серверам в пару кликов прямо из интерфейса панели управления.
Реализация двух этих «фич» позволит нам заложить базу для внедрения других услуг, например, эластичного облака и автоматического горизонтальноого масштабирование при увеличении нагрузки.
На сегодня все. Будем рады ответить на вопросы в комментариях. Если какая-то тема, связанная с хостинг-инфраструктурой, вас особенно заинтересовала — скажите, и мы сделаем новый пост.