@SilentBrain
Web-Programmer

250 Ruby on Rails-приложений на одном сервере?

Столкнулся с такой задачей. Нужно как-то разместить 250 rails-приложений и желательно на одном сервере. Причем на каждом возможно потом появится Delayed Job или Rescue, что совсем сбивает с толку. Нагрузка на каждое будет маленькая. Но очень важна надежность — если какое-то из них упадет, будет очень плохо.

На каждое приложение запускать свой юникорн очень затратно. Даже 32Гб оперативки может не хватить.

Phusion Passenger, говорят, очень не надежный (или это не правда?). Кто-нибудь сталкивался с такой проблемой? Реально ли на одном серваке все это сделать?

Если сталкивались, может еще посоветуете, как их проще потом админить (обновлять из git-репа, проверять статус — работает или нет)? Или тут только свои скрипты писать?
  • Вопрос задан
  • 4092 просмотра
Решения вопроса 1
mgyk
@mgyk
Подкрутите в пассажире, чтобы максиум один инстанс на приложение был, ну и пул на 100 инстансев. Если приложение будут использовать более-менее похожий набор гемов то расход оперативы в пассажире будет не такой уж и большой на каждое из них. То есть память занимаемая рельсами должна шарится между инстансами.
Деплоить все это лушче всего капистрано.
Мне кажется, что вы пытаетесь сделать 1 клиент = один кастомизированный вариант приложения. В таком случае лучше задайте себе вопрос как вы будите поддерживать все приложения?
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@Mox
Team Lead, RoR, React/React Native
Я не сталкивался с ненадежностью passenger, а вот с экономией памяти при использование Passenger + Ruby EE сталкивался

Важный момент — он позволяет, без дополнительного проксирования использовать только 1 версию Ruby, так что это может не подойти.
Ответ написан
akzhan
@akzhan
Используйте thin, часто его достаточно, а для защиты от большинства форс-мажоров запускайте его инстансы через runit и мониторьте http через monit/god/bluepill.

Но исходя из ваших исходных данных — все может быть обработано одним приложением под unicorn.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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