Подготовка базы данных передового опыта - PullRequest
34 голосов
/ 19 мая 2010

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

Мой общий план состоит в том, чтобы сначала разработать и протестировать локально, передать простые изменения (небольшие исправления ошибок, HTML / CSS, JS и т. Д.) Непосредственно в производство, а для более крупных изменений сначала перейти к промежуточному субдомену для тщательного тестирования, а затем производство.

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

Буду признателен за любые общие мысли / советы / опыт.

UPDATE:

Спасибо за комментарии, я понял суть. Я думаю, стоит подумать об этом. Принято популярный ответ.

Ответы [ 2 ]

30 голосов
/ 19 мая 2010

Обход постановки и внесение изменений в производство - это путь к катастрофе и неиспользованию. Когда вы делаете эти изменения, определение несовершеннолетнего начинает меняться. Во-вторых, когда две среды уходят (т. Е. Подготовка больше не соответствует производству), вещи ломаются, и ты теряешь уверенность в среде подготовки. Чтобы получить максимальную отдачу от промежуточного сервера, вы должны выполнять автоматическое развертывание на нем, полностью тестировать и только затем развертывать (автоматизировать) в рабочей среде (независимо от того, насколько малы изменения). Вы также должны убедиться, что вся среда настолько похожа, насколько это возможно, и оставаться такой. Это, очевидно, включает в себя БД. Обычно я настраиваю синхронизацию ежедневно или ежечасно (в зависимости от того, как часто я создаю сайт или приложение) для обслуживания БД, и часто выполняю это как часть процесса сборки.

8 голосов
/ 19 мая 2010

Как разработчик программного инструмента , который помогает на каждом этапе процесса развертывания, я могу сказать, что наилучшая практика, когда речь идет о промежуточных средах, - это зеркальное отражение вашей производственной среды точно . Это включает в себя идентичную схему базы данных (данные не имеют значения, иногда выполняется резервное копирование / обновление), та же версия операционной системы, обновленные пакеты обновления, настройки веб-сервера и т. Д.

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

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

...