Вы спрашиваете о Continuous Integration
/ Continuous Deployment
('CI/CD
').
По сути, вы захотите использовать тестовый сервер для тестирования вашего кода до того, как его увидит публика. Вы развертываете свой код на этом сервере и тщательно его тестируете, подтверждая, что все готово к запуску в производство. При более глубоких настройках это тестирование можно автоматизировать с помощью таких инструментов, как Selenium или TestComplete .
Теоретически вы должны развернуть рабочий процесс ' ' GitFlow для вашей среды тестирования. Это гарантирует, что все запланированные изменения были окончательно оформлены и готовы в конечном итоге быть разосланы общественности, без каких-либо других изменений, внесенных в выпуск.
Когда вы, наконец, будете готовы к отправке в производство, вам нужно спланировать релиз и встретиться со всеми связанными сторонами. Я бы порекомендовал правильный контрольный список выпусков, в котором вы подтверждаете, что все дополнительные функции работают должным образом и что вы случайно не удаляете любые существующие функции ( регрессионное тестирование ) .
Обратите внимание, что развертывание в рабочей среде не должно иметь абсолютно никаких отличий от развертывания в тестовой среде; only , что должно измениться в производственной среде, - это сервер, на котором размещена среда, наряду с конфигурациями базы данных. Это гарантирует, что вы не будете случайно тестировать / использовать любые данные, с которыми ваши клиенты также могут взаимодействовать.
Само производственное развертывание должно (по сути) быть просто «копировать-вставить» файлов на диск и часто выполняется с помощью инструмента непрерывной интеграции, такого как Jenkins или TeamCity . Предполагая, что у вас есть только небольшой веб-сайт, это должно быть почти мгновенной процедурой и даже не требовать простоев в вашей производственной среде. Если процесс может занять больше времени (например, при сложном развертывании), вы можете реализовать страницу обслуживания. Это проинформирует ваших пользователей о том, что вы работаете на веб-сайте, и сообщит им, когда они могут ожидать возобновления работы.