Какие методы развертывания рельсов лучше всего преодолевают экологические различия?


Я работаю над Ubuntu, разрабатывая приложение Rails для моей церкви. Мы используем размещенный VPS также на Ubuntu. Я использую Capistrano для развертывания периодических обновлений. Однако неизбежно приложение, которое работает на моем локальном ящике, всегда имеет несколько проблем после развертывания на хосте, скорее всего, потому, что среды отличаются.

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

Моей первой мыслью является разработка / работа в локальном образе VPS, который сам в конечном итоге будет развернут (своего рода виртуальное устройство). Кто-нибудь этим занимается?

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

4 2

4 ответа:

По мере возможности убедитесь, что вы используете точно такую же версию Ruby, точно такую же версию Rails, точно такую же настройку базы данных и точно такое же все остальное. Чем больше различий между вашей живой установкой и настройкой разработки, тем больше проблем вы, вероятно, столкнетесь.

Попробуйте создать сценическую среду, максимально имитирующую вашу производственную. Я фактически использую некоторые из моих серверов, создавая поддомен (staged.mydomain.com), чтобы проверить, что драгоценные камни на правильной версии и так далее.

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

Этот подход помогает нам быть уверенными, что новое развертывание будет работать просто отлично, решая проблемы заранее.

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

Ну, вы на самом деле ответили на свой собственный вопрос.

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

По моему опыту, это необходимо только в действительно критических ситуациях. Если ваши Ruby / Rails (версии gem, которые вы можете указать в своей среде) одинаковы, у вас не должно быть никаких проблем с развертыванием приложения Rails.

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

Имейте в виду, что большинство разработчиков Rails запускают OS X и развертываются на сервере UNIX, и у нас никогда не возникает никаких проблем из-за этого.

Версий рабы, рельсы, MySQL и т. д.. должно быть то же самое, конечно.