Новичок в RoR. Я понимаю принцип работы Rack, но нигде не могу найти внятной информации по работы в production и development окружениях.
Ответ
Окружения - не уровень Rack - он одинаково будет работать во всех окружениях, окужения - это просто удобное средство организации проекта, его конфигурационных файлов и наборов гемов для среды разработки (development) и эксплуатации в условиях сервера (production).
При разработке вам могут потребоваться различные отладочные гемы, облегчающие разработку, настройка хостов, аккаунтов для локальных баз данных. В эксплуатационной среде, на сервере, вам не нужна половина гемов, или наоборот, могу потребоваться гемы мониторинга или гем для production-сервера, которые бесполезны в development-среде.
Лишние гемы будут просто зря занимать место на диске и в памяти. Кроме того локально и на сервер, вам нужны другие настройки для баз данных. Часто окружения используются для задания разных Web-серверов в условиях эксплуатации и разработки. Например, локально можно использовать сервера Webrick или thin, а в production-окружении сервера Unicorn или Puma.
Помимо production и development вы можете вводить свои собственные окружения. Например, очень часто используется staging-окружение для демонстрационо-тестового сервера, где вы сначала проверяете работоспособность, демонстрируете наработки заказчику перед выкаткой их на production-сервер. Часто прибегают к test-окружению, в котором прогоняют тесты. Последнее связано с тем, что для изоляции тестов часто перед каждым новым тестом удаляют содержимое базы данных - важно, чтобы такое удаление не касалось вашей development-базы данных, или не дай бог production-базы данных.
Т.е. окружения - это просто удобный способ организации работы над проектом, разные режимы работы вашего приложения. Rack будет одинаково работать во всех окружениях.
Комментариев нет:
Отправить комментарий