Стоит ли переходить с Proxmox на Docker? Какая архитектура более удобна для множества highload проектов?

Понимаю, что вопрос звучит примерно как: Стоит ли есть бананы вместо яблок? Но всеже.

Занимаемся игровыми социальными\мобильными проектами, постоянно запускаемся новые проекты.
Аудитория большая и создает достаточно серьезную нагрузку(highload), поэтому постоянно увеличивается парк серверов.
Сейчас на всех серверах стоит Proxmox, местами объедененный в кластер, все виртуалки запускаются контейнерами(openvz). Процесс развертывания приложения выглядит примерно так:
1) установить proxmox на новый сервер
2) Завести виртуалку с API (php+nginx+..)
3) Завести виртуалку с БД (mongo)
4) Завести виртуалку с Кэшэм (redis)
5) Завести виртуалку для хранения статики (nginx)

Иногда бывает платформа дает нагрузку слишком большую и либо мы переносим конкретную виртуалку целиком на севрер, либо делаем шардинг в случае с монго или просто заводим новый инстанс в случае со статикой.

Что нравится в proxmox: наличие удобного интерфейса и всех сопутствующих сервисов: системы бэкапов и т.д. + оно есть и работает, потенциально HA\FT и проч.
Что нравится в docker: идеалогия микросервисов(действительно, зачем нам столько лишних процессов), "легкость" администрирования(легкость ли?).

Управлять парком виртуалок становится все сложнее, поэтому изучаем альтернативные варианты организации инфраструктуры.
  • Вопрос задан
  • 7471 просмотр
Решения вопроса 2
voidnugget
@voidnugget
Программист-прагматик
Ну как-бэ до 100Мбит трафика на ноду - ну совсем не Highload.
Нужно понимать что вопрос сформирован достаточно плохо и сразу видно общее недопонимание темы деплоя и непрерывной интеграции. Советую сначала разобраться с особенностями современных систем оркестрации и управления инфраструктурой: Puppet, Chef, Ansible, SaltStack и OpenStack, потом разобраться как с этим дружить виртуалки и системы управления контейнерами типа XEN, KVM и LXC (Docker). Также советую разобраться с понятием Test Driven Deployment и как оно соотносится с Continuous Integration в целом.

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

В общем большая часть вышеописанного вообще не ассоциируется с реальным highload'ом - от 10ти и до 40Гбит на ноду (чистого REST трафика). PHP для такого - ну совсем не тортъ, но есть проблески типа Phalcon, правда там есть проблемы со стабильностью.

Docker сам по себе не имеет никакого отношения к микросервисным архитектурам, но часто используется для менеджмента контейнеров в таких случаях, хотя можно использовать любое решение для этого. А вообще у микросервисных архитектур есть куча недостатков, и они совершенно не подходят для задач около-реального времени.
Ответ написан
p4s8x
@p4s8x Автор вопроса
Оставляю здесь ссылку на доклад от Альфа.Лаборатории.
habrahabr.ru/company/jugru/blog/264669
Крутые парни.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы