Вопрос

Я использовал обычный Mongrel, я использовал кластеры Mongrel за Apache, я смотрел на Thin, и меня очень заинтриговал Passenger.Я тоже смотрел на Nginx.Я посмотрел на MRI, Ruby Enterprise Edition, Rubinius и JRuby.Вариантов много, каждый претендует на звание нового Святого Грааля.

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

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

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

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

Будет ли мне особенно лучше, если я выберу другой вариант?

Это было полезно?

Решение

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

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

Другие советы

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

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

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

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

Тобиас Лютке о переводе Shopify (миллион запросов в день) на Passenger:

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

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

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

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

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

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

Мы перешли с NginX+Mongrel на Passenger.

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

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

Веб-серверы

  • Убунту 8.04 ЛТС
  • Пассажир Phusion на Apache2
  • MRI Ruby 1.8.6 и его друзья (форма apt)
  • Ruby Gems 1.3.0 (Установлен из исходников)

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

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

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

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

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

Еще немного золота:

Джош Пик драгоценный камень Slicehost полон рецептов Capistrano, которые намного проще и организованнее, чем Deprec.Здесь также нет ничего особенно специфичного для Slicehost.

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

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

Чего вы не упоминаете, так это того, насколько большим и популярным является/будет ваше приложение.Эти критерии могут повлиять на процесс принятия решения.

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top