Развернуть приложение Rails в EC2 - PullRequest
3 голосов
/ 16 февраля 2011

Мои настройки: Rails 2.3.10, Ruby 1.8.7 в Windows

В последний раз, когда я развертывал приложение Rails из Windows в Linux на Slicehost, я использовал Capistrano, Nginx, Mongrel и SVN. Это было 3 года назад, и теперь мы с нетерпением ждем разработки Windows и сейчас планирую развернуть ее на EC2. Быстрый поиск приводит к появлению таких инструментов, как Rubber и Chef, которые нелегко понять с помощью быстрого чтения. Кажется, что Rubber и Chef предназначены для развертывания нескольких экземпляров EC2, что будет полезно, когда мне нужно масштабировать.

Я также новичок в Passenger, но, похоже, сейчас это способ развертывания приложения Rails по умолчанию, но мне не совсем ясно, является ли Passenger заменой Mongrel? В моей старой настройке я настроил Nginx для пересылки запросов Rails в кластер процессов Mongrel, но я не вижу ничего подобного для Пассажира.

Любые идеи очень ценятся.

Ответы [ 3 ]

2 голосов
/ 16 февраля 2011

Мы используем нечто похожее на то, что вы описываете для нашего производственного сервера: EC2 + Apache + Passenger. Нам не нужно было использовать необычные инструменты развертывания, которые вы описываете - обычный старый Capistrano (плюс capistrano-ext , поэтому мы можем использовать его для нескольких сред) отлично справляется со своей задачей. Я смотрел на Резину (не на шеф-повара), но посчитал это излишне автоматическим и слишком плохо документированным, и я действительно не уверен, что он предлагает, что нельзя сделать так же хорошо с ролями в Capistrano.

Пассажир был великолепен. Это «надзиратель», который управляет собранием монгрелоподобных рабочих (я думал, что рабочие - это дворняги, но после прочтения я не думаю, что это так. Страница сравнения пассажиров даже сравнивает его RPS с кластером Mongrel, так что ...), запускает их по мере необходимости, отбирает их при низких нагрузках, перезапускает их в случае сбоя и т. Д. На самом деле это очень похоже на кластер сервер + Mongrel, который вы описали , но, вероятно, немного лучше, поскольку у Passenger есть понимание основных рабочих, которых нет у Nginx / Apache. И вам нужно будет сделать несколько мелких настроек , чтобы Capistrano хорошо играл с пассажиром.

И, если возможно, соедините Passenger с Ruby Enterprise Edition (от тех же самых парней, которые сделали Passenger). Это гораздо более быстрая версия Ruby, в основном благодаря переписанному, настраиваемому сборщику мусора. Вам придется настроить параметры GC , чтобы получить максимальную отдачу от него.

Надеюсь, это поможет!

1 голос
/ 16 марта 2011
0 голосов
/ 03 августа 2011

Rubystack позволяет вам иметь одну и ту же среду Rails для разработки под Windows и для развертывания в Linux.У нас также есть изображения EC2 (прокрутите вниз), и они абсолютно бесплатны, поэтому вы можете попробовать их.

Кроме того, это может не сработать, но в зависимости от ваших требованийхочу пойти на решение PaaS, как Heroku

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...