Подтвердить что ты не робот

Рекомендации по внедрению новых Rails в Linux?

Я использовал прямой Mongrel, я использовал Mongrel clusters за Apache, я посмотрел на Thin, и я очень заинтригован Пассажиром. Я тоже посмотрел на Nginx. Я посмотрел на МРТ, Ruby Enterprise Edition, Rubinius и JRuby. Есть много вариантов, каждый из которых утверждает, что это новый святой Грааль.

Каков наилучший вариант для совершенно нового, полностью современного развертывания? Единственными предположениями являются следующие:

  • Приложение основано на Rails 2.2. (Я знаю, что 2.2 еще не полностью выпущен, но и это не развертывание.)
  • Сервер основан на Linux. Вероятно, Ubuntu Hardy, но действительно, что лучше всего работает в этом случае.
  • Rails должны быть полностью функциональными и, возможно, разговаривать с базой данных MySQL.
  • Все остальное можно обсудить.

Учитывая эти особенно широкие ограничения, какая комбинация программного обеспечения даст лучший результат с точки зрения concurrency и низких накладных расходов?

Я склоняюсь к Apache с "рабочим" mpm и Passenger + Ruby Enterprise Edition, просто потому, что он предлагает немедленную стабильность и простоту настройки и обслуживания.

Возможно, мне будет лучше с другим вариантом?

4b9b3361

Ответ 1

Я перешел из Mongrel Cluster to Passenger две недели назад (Debian Linux Server). Я не оглядывался на секунду. Пассажир, вероятно, самый простой способ запустить ваш новый сервер. Производительность и надежность также разумны.

Лично мне нравится тратить время на разработку новых проектов Rails, а не на проблемы с развертыванием. Пассажир позволяет мне делать именно это. Тем не менее, Mongrel или что-то еще может быть предпочтительнее, если у вас есть какие-то особые требования (не распространяется на большинство продуктов).

Ответ 2

Сегодня утром DHH рассказывает об этой теме в своем собственном блоге:

Но почему-то сообщение Пассажира было немного медленным, чтобы погрузиться. Там уже много больших сайтов, сбитых с него. В том числе Shopify, MTV, Geni, Yammer, и мы скоро перейдем к первому Ta-da List, а затем надеемся, что оставшаяся часть 37-синглов появится после этого.

Итак, пока есть все основания для запуска собственной настраиваемой многоуровневой настройки вручную сконфигурированных частей, так же, как есть люди, уклоняющиеся от mod_php для своих подробностей, я думаю, что мы наконец решили использовать ответ по умолчанию. Что-то, что не требует, чтобы вы действительно думали о первом развертывании вашего приложения Rails. Что-то, что просто работает из коробки. Даже если это поле является общим хостом!

http://www.loudthinking.com/posts/30-myth-1-rails-is-hard-to-deploy

Тобиас L & uuml; tke на тему переключения Shopify (миллион запросов/день) на Пассажира:

Все это означает, что общий объем памяти, который используется Shopify во время обычных операций, составлял от среднего значения 9 ГБ до 5 ГБ. Мы равномерно распределяли сбережения между более процессами Shopify и большим объемом memcached, что заставило наше среднее время отклика с 210 мс до 130 мс, в то время как трафик вырос на 30% за последние несколько месяцев.

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

http://blog.leetsoft.com/2008/11/15/passenger

Ответ 3

Мы использовали старый стандартный nginx → mongrel stack за последние 18 месяцев, и хотя это было тривиально, чтобы настроить первый раз, он оказался гибким и имел дело с некоторыми очень высокими сайтами трафика для нас. Nginx, в частности, был абсолютно прочным и быстрым, и, если вы можете получить кеширование страницы приложения, вы можете обрабатывать множество запросов.

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

Мы еще не играли с пассажиром, так что, возможно, это проще и стабильнее, я буду откладывать на других ответчиков на этом, все, что я могу сказать, это то, что нет никакой причины, вы не можете построить прочный стек с nginx и mongrel.

Ответ 4

Мы переключили fron NginX + Mongrel на пассажира.

Я полностью верю, что Пассажир станет новым стандартом для рельсов, несмотря на то, что кластер NginX и Mongrel одобряется некоторыми очень умными людьми. Недавние достижения Пассажира действительно продвинули его вперед.

Наша текущая конфигурация выглядит примерно так:

Веб-серверы

  • Ubuntu 8.04 LTS
  • Phusion Passenger на Apache2
  • MRI Ruby 1.8.6 и друзья (форма apt)
  • Ruby Gems 1.3.0 (установлен из источника)

Серверы баз данных

  • Centos 5
  • MySQL Cluster (мы просто переключились на это, но это многообещающе)

Стандартизировавшись на точный дистрибутив linux, мы смогли написать рецепты Capitrano, чтобы помочь в развертывании (небольшие изменения в конфигурации были источником МНОГИХ отключений службы) и в противном случае упростили нашу жизнь.

Ответ 5

Посмотрите Litespeed. Вы можете получить бесплатную версию, которая работает на 1 процессор или заплатить за получение нескольких процессоров. Это немного дороже, но он твердый и отлично управляет рельсами (т.е. Использует меньше памяти и меньше затрат на мониторинг и настройку). Я запускаю огромное количество приложений на нем, и он не промахивается.

Ответ 6

Мы также переключились с Mongrel на mod_passenger и обнаружили, что стабильность значительно улучшилась благодаря этим усилиям, необходимым для настройки и обслуживания. Хороший выбор.

Ответ 7

Еще один бит золота:

Josh Peek Хлопок Slicehost полон рецептов Capistrano, которые намного проще и гораздо более организованны, чем Deprec. Ничего особенного не существует, особенно для Slicehost.

Ответ 8

Я размещаю свои новые приложения с Apache2 и Passenger на Ubuntu Hardy. Кажется, это самый простой и лучший вариант для большинства сценариев. Я только что присоединился к Slicehost.com для этой цели. Они, кажется, получают хорошие отзывы и имеют самые конкурентоспособные цены на хосты первого класса.

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

То, о чем вы не упоминаете, - это то, насколько велико и популярно ваше приложение. Эти критерии могут повлиять на процесс принятия решений.

Ответ 9

Capistrano + Deprec для фактической настройки моего стека на Ubuntu и физического управления развертыванием.

Nginx, проксирующий к Mongrel clusers для архитектуры сервера. Это не новейшая техника с кровотечением, но она работает хорошо, она хорошо документирована, и она очень и очень высокая, даже при работе на небольших VPS. Предполагая, что вы не разрешили приложение, вы можете Slashdot 128 МБ Slicehost VPS, и он просто продолжает возвращаться для большего.

Сказав это, в первый раз было много ошибок, пока я не понял, как работает Nginx. После этого его удивительно - как маленький Апачелет с небольшим русским акцентом.