Готово ли производство RVM? - PullRequest
27 голосов
/ 03 мая 2011

RVM отлично подходит для разработки на вашей локальной машине.Но безопасно ли это на производственной машине?

Ответы [ 9 ]

123 голосов
/ 08 июня 2011

Я собрал RVM для производства и позже добавил «приятности» разработчика.Если вам нужна дополнительная информация, прочитайте документацию на веб-сайте и поговорите со мной в #rvm на irc.freenode.net где-то в течение дня по восточному времени большинства дней.

22 голосов
/ 03 мая 2011

Поскольку RVM - это просто модный способ загрузки, изоляции и переключения между существующими реализациями Ruby, я бы сказал, что он готов к работе, как и любая другая реализация ruby, с которой вы сейчас его используете.

По сути,все, что делает RVM, это указывает путь к конкретной реализации Ruby.Это точно , что происходит, когда вы используете реализацию Ruby вашего * nix-дистрибутива.Единственная реальная разница в том, что ваш путь будет переписан так, что когда вы запустите ruby -v, он запустит рубин из каталога текущего пользователя .rvm вместо глобального системного каталога, такого как /usr/local/bin.

.

Я бы пошел еще дальше и сказал, что использование RVM - лучшее решение, чем использование того, что обычно устанавливается в * nix дистрибутиве, потому что это позволяет легко помещать в песочницу конкретную реализацию ruby ​​для каждого пользователя.RVM также позволяет пытаться переключать рубины (т. Е. С 1.8.7 до 1.9.2) в вашем производственном приложении, сохраняя при этом твердую стратегию отката, если что-то работает не совсем правильно.Это также облегчает поддержание работы старых приложений на одной версии Ruby, одновременно переключая новые приложения на более актуальные версии.

8 голосов
/ 28 июля 2011

Я не согласен, особенно если вы используете какой-либо автоматизированный производственный процесс (кукольный, шеф-повар, туман и т. Д.), И у вас есть более одной или двух машин.

У нас были проблемы, когда версия X RVM работала совершенно иначе, чем версия Y RVM (разные версии Rubygems по умолчанию, разные конфигурации gemset по умолчанию, полное изменение работы установки в масштабе всей системы), нарушение нашего процесса автоматической подготовки .

Не проблема, если вы разрабатываете и под рукой для настройки вещей, убийца, если у вас есть автоматическая установка сценариев / марионеток. Мы обошли эти проблемы, привязавшись к конкретной версии RVM, но я помню, как беседовал с Уэйном, где он не одобрял это. Если бы мы продолжали использовать RVM в prod, мы собирались фактически упаковать его в серию .debs (один для установки, один для каждого Ruby).

Способ, которым .rvmrc запрашивает по умолчанию и может быть переопределен только в homedir ~ / .rvmrc (а не для всей системы), также оказался бесполезным.

Мне действительно нравится то, как RVM изменится и будет делать что-то подобное в процессе разработки - ничто не отстой больше, чем сдерживается обратной совместимостью. Этот подход, однако, стоил нам некоторого времени (и потянул за волосы) в производстве / постановке / uat / test.

6 голосов
/ 03 мая 2011

RVM, по-видимому, является разумным производственным инструментом

Знаете, я однажды сделал похожий rvm - инструмент разработки комментарий и был проинформирован, что rvm изначально былпроизводственный инструмент.

Итак, RVM сделает вашу производственную среду более сложной, что плохо, но делает ее более изолированной и разобщенной, что люди называют «1009 * модульным », и это хорошо.

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

5 голосов
/ 22 мая 2013

Все зависит от того, как вы устанавливаете RVM, однопользовательский или многопользовательский. установка всей системы RVM может привести к большому беспорядку переключения между различными рубинами. Лучше выбрать одного пользователя, за исключением того, что RVM хорошо справляется со своими задачами.

3 голосов
/ 09 июня 2011

Я думаю, что на этот вопрос есть две части:

  1. Предназначен ли RVM для производственных машин, в отличие от машин для разработки?
  2. Является ли RVM достаточно надежным программным обеспечением для использования на производственных машинах?

В отношении (1) Уэйн Э. Сегин заявил, что он предназначен для использования на производственных машинах. Нет смысла оспаривать его намерения.

Для (2) я не уверен. Уместно ли использовать программное обеспечение с новым номером версии каждые пару дней на производственном компьютере? Кроме того, RVM однажды удалил весь каталог ~ / ruby. К чести Уэйна, когда я рассказал ему об этом, он исправил это в ту ночь, но это точно не говорит о том, что «производство готово».

Редактировать: Я только что прочитал о удалении шмеля / usr, и я просто скажу - могло быть и хуже! LOL.

2 голосов
/ 03 мая 2011

Я использую RVM на рабочем веб-сервере уже более года, и проблем не было. Я держал его в актуальном состоянии, часто запускаю rvm get head. Ноль вопросов, никогда. :)

1 голос
/ 03 мая 2011

Я в значительной степени использовал RVM на всех своих производственных серверах, на которых запущены приложения rails !.РВМ не подвел меня.

1 голос
/ 03 мая 2011

Да, я использовал rvm на производственных машинах, а также настроил модули puppet для установки rvm в качестве системного ruby ​​по умолчанию вместе с наборами гемов и т. Д.

Если вы запускаете несколько приложений на одном сервере, rvm может помочь вам полностью отделить все наборы гемов ваших приложений (и версии ruby). Однако, если вы запускаете только одно приложение на сервере, использование rvm может быть не таким уж большим преимуществом.

...