Какие мелочи мне нужно сделать перед развертыванием рельсового приложения
-
01-07-2019 - |
Вопрос
РЕДАКТИРОВАТЬ
Какие мелочи, которые слишком легко упустить из виду, мне нужно сделать перед развертыванием приложения Rails?
я настроил Другой вопрос для любой задачи, которая занимает больше минуты или двух и поэтому должна быть запланирована в процессе развертывания.В этом вопросе меня больше всего интересуют параметры онлайн-конфигурации и тому подобное, которые можно сделать, но их часто не учитывают в ходе цикла разработки, поскольку они не имеют никакого значения до развертывания.
Решение
- Заморозьте драгоценные камни, которые вы используете.
rake gems:unpack
- Изменить секрет в
config/environment.rb
- Фильтруйте конфиденциальную информацию, например пароли:в
app/controllers/application.rb
filter_parameter_logging :password, :password_confirmation
Другие советы
- Убедитесь, что БД настроена на вашем рабочем сервере.
- Настройте capistrano для правильного развертывания вашего приложения.
- Проведите пробный прогон капистрано
- Убедитесь, что Rails упакован в папку поставщика/rails.
- Убедитесь, что все драгоценные камни заморожены в вашем приложении или установлены на вашем производственном сервере.
- Запустите тесты на производственной машине
- Включите фрагмент Google Analytics (или другую аналитику)
Проверить журнал медленных запросов, и добавьте в модели любые индексы, вызывающие обход всей таблицы.
Также
grep -ril ИСПРАВИТЬ
Настройте файлы и папки, которые будут использоваться совместно развернутыми копиями приложения, включая (но не ограничиваясь) просмотр кэшей, конфигурацию базы данных, страницу обслуживания...
На самом деле это не специфичные для Rails задачи развертывания, но я слишком много раз видел, как их упускали из виду для развернутых систем:
- Резервные копии;по общему признанию, это может оказаться большой задачей, но это не обязательно.Зачастую достаточно просто запланировать ночное резервное копирование базы данных и программного обеспечения.
- Тестирование процедуры восстановления
- Ротация и архивирование журналов
- Уведомление об исключении
- Убедитесь, что в месте, где вы выполняете развертывание, правильно установлена переменная RAILS_ENV.Либо через среду, либо через обратный вызов capistrano.
- Убедитесь, что все ваши тесты проходят успешно, запустив rake spec, musta, модульные тесты или что-то еще, что вы используете для тестирования.
- Распакуйте свои драгоценные камни с помощью rake gems: распакуйте
- Решите, нужно ли вам заморозить Rails.грабли рельсы:freeze:gems
- Дважды проверьте, установлены ли на сервере зависимости, если вам нужно больше, чем просто драгоценные камни (memcached, почтовый сервер и т. д.).
- Если вы используете MySQL, скомпилируйте и установите на сервер библиотеку MySQL на основе C (это может занять больше времени, чем несколько минут, но обычно выполняется довольно быстро, если все зависимости удовлетворены).
- Если вы используете git, отправьте свой код в ветку master.При необходимости отметьте его.
- Если вы используете SVN, отметьте релиз.