Каков наиболее эффективный способ развертывания веб-сайта?
Я знаю несколько способов развертывания веб-сайтов:
- FTP
- Экспорт из системы управления версиями
- Основывайте сайт на проверке системы управления версиями
Я вижу некоторые плюсы и минусы каждого из них. Существует ли какой-либо консенсус относительно наиболее эффективного способа развертывания новых сайтов ИЛИ изменений сайта?
4 answers
Что лучше всего сработало для нас при переполнении стека (и соответствует пункту 2 теста Джоэла ), так это решение непрерывной интеграции , позволяющее одним щелчком мыши создавать наши производственные площадки, а также автоматизированные сборки нашего уровня разработчиков при регистрации нового кода.
Мы используем.ЧИСТЫЙ аромат CruiseControl, с захватывающим названием.. CruiseControl.NET :)
Некоторые из ключевых функций включают:
- Интеграция с различными системами управления версиями
- Интеграция с другими внешними инструментами, такими как NAnt и Visual Studio
- Может создавать несколько проектов на одном сервере
- Удаленное управление и отчетность
Мы были чрезвычайно довольны этим программным обеспечением с открытым исходным кодом и рекомендуем его любой команде, желающей упростить процесс сборки.
Я предпочитаю автоматизированные и повторяемые развертывания. Вы определенно захотите начать с тега системы управления версиями, чтобы точно знать, что вы развернули, и можете повторно развернуть его в любое время. Затем используйте сценарии, чтобы отправить это на сервер, что-то вроде Capistrano, или просто самодельный сценарий bash, или что-то в этом роде.
Для сайтов, использующих скомпилированный код, если тестовые серверы совпадают с производственными серверами, вероятно, лучше всего скомпилировать код один раз и отправить тот же скомпилированный версия для производства, как только она будет протестирована.
Я использую пользовательские скрипты. Для статических (на основе HTML) веб-сайтов я использую двойные каталоги с новыми и установленными версиями, затем скрипт запускает рекурсивный diff
для новых и установленных версий и загружает только измененные файлы.
Я использую git с несколькими настраиваемыми крючками для развертывания. Это даже имеет то преимущество, что я могу запустить несколько ветвей для сайтов разработки/тестирования/бета-тестирования/производства и выполнить некоторые CI. Для срочных исправлений git всегда позволяет выбирать конкретные коммиты из одной ветки в другую.