Я работаю над проектом, в котором мы собираемся разместить приложение Ruby on Rails на собственном сервере Linux. Все ли разновидности Linux одинаково способны размещать приложения Rails? Если нет, то какие функции присутствуют в некоторых дистрибутивах Linux, но не в других, которые необходимы для размещения приложений Rails?
Вы должны использовать любой дистрибутив, который вам удобнее всего.
Единственное, о чем я могу придумать, что действительно имело бы значение, какой дистрибутив был бы «лучше», - это если бы вы планировали использовать версии Ruby, рельсы и т. Д., Поставляемые ОС. Ничто не мешает вам создать свой собственный версия в любом дистрибутиве, но это может доставить вам больше хлопот, чем она того стоит.
RHEL / CentOS не обновляют версии по мере их выпуска. Это может быть хорошо, потому что должно устранить проблемы совместимости при обновлении ОС. Это может быть плохо, потому что вам может понадобиться функция, которая была добавлена в более позднюю версию. Вы можете обойти эту проблему, добавив дополнительный репозиторий с более новыми версиями.
Я не специалист по Debian, поэтому не могу говорить о каких-либо деталях, но у меня сложилось впечатление, что Debian обычно поставляет более новые версии. Это может быть хорошо, потому что вам не придется искать недавно добавленную функцию. Это может быть плохо, потому что вы можете установить обновление и сломать приложение.
Но на самом деле лучший ответ - использовать то, что вам удобнее всего.
Все варианты Unix «одинаково способны» размещать Ruby / Rails - по крайней мере, в том смысле, что Ruby, фреймворк Rails и огромное количество гемов будут работать на них. В этом смысле «Используйте любую ОС, с которой вам и вашей команде удобнее всего» - правильный ответ.
Некоторые вещи я лично ищу в операционной системе -
Достаточно ли актуален Ruby, поставляемый с ОС (или доступный в портах и т. Д.)?
В наши дни для всего нового shiny требуется Ruby 1.9.x, поэтому, если операционная система поставляет только Ruby 1.8, я собираюсь отказаться от нее. Да я МОГ установить его вручную, но у меня более чем достаточно работы по созданию стабильной среды - почему я должен соглашаться на большую работу по поддержке моего собственного пакета Ruby?
Пакеты поддержки Ruby (rvm
, драгоценные камни и т. д.) достаточно актуальны?
Та же логика, что и (1) - я хотел бы иметь возможность максимально использовать управление пакетами операционной системы, но если мне придется переопределить диспетчер пакетов и вручную установить каждый драгоценный камень, который я собираюсь использовать - Что ж, я могу с этим жить, но это усложняет жизнь.
Подходит ли сама ОС для моих целей?
Это нечеткий вопрос - лучший способ определить, подходит ли ОС, - это Избавьтесь от повседневных забот в тестировании / сравнительном анализе своей рабочей нагрузки.
Здесь вы обнаружите, что у FooOS есть ужасно многопоточная производительность, а в BarOS есть дисковая подсистема, которая требует, чтобы все остальные операции в системе останавливались всякий раз, когда поток хочет записать данные, поэтому BazOS (которая явно посредственна в обоих случаях) на самом деле имеет лучшую производительность, потому что ваше приложение является многопоточным и интенсивно писать.
Если вы просто смотрите на «Linux», различия здесь будут незначительны (или «исправимы» путем поворота sysctl
ручки). Если вы расширите свой поиск ОС, включив в него другие системы (BSD, OS X, Solaris, AIX, HP-UX, Windows), вы можете начать видеть некоторые реальные различия в характеристиках производительности или нагрузочной способности.
Здесь также есть некоторые нетехнические соображения. Если у вас есть выбор между двумя гипотетическими системами: одна - это бесплатная ОС, а другая - система с оплатой за лицензию, которая в два раза быстрее, но стоит 5000 долларов за каждое ядро ЦП для лицензирования, возьмите бесплатную. Ваш двухпроцессорный четырехъядерный сервер будет стоить вам 40 000 долларов в виде лицензионных сборов, и даже если мы ошибаемся в отношении дорогостоящего оборудования, это НАМНОГО больше серверов с бесплатной ОС. Даже если вы платите за питание и охлаждение, довольно ясно, кто выиграет по метрике цены на единицу производительности ...
Можем ли мы управлять ОС?
Есть ли в ОС инструменты, которые позволят вам управлять ею (или она хорошо работает с инструментами, которые вы уже используете / знаете, как использовать / хотите использовать, например, Puppet и Chef)?
Достаточно ли комфортно вашей команде ОС, чтобы управлять ею? Сможете ли вы справиться со следующим обновлением основной версии, или вы запаникуете и просто будете зацикливаться на том, что вы установили в день развертывания, и постоянно расстраиваться, когда новые функции, которые вам нужны, отсутствуют?