Каков наиболее эффективный способ развертывания веб-сайта?

8

Мне известно о нескольких способах развертывания веб-сайтов:

  • FTP
  • Экспорт из контроля источника
  • Основать сайт на проверке исходного кода

Я вижу некоторые плюсы и минусы каждого. Есть ли консенсус относительно наиболее эффективного способа развертывания новых сайтов ИЛИ модификаций сайтов?

Грант Пэйлин
источник
1
Очень тесно связано с некоторыми другими вопросами и довольно субъективно. Это может превратиться в дискуссию. На самом деле, если это вообще касается контроля версий, это обычно превращается в дискуссию.
Тим Пост
1
Меня интересует не столько контроль версий, сколько сравнение разных методов развертывания. Я думаю, что можно ожидать разумных сравнений за и против.
Грант Пэйлин

Ответы:

6

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

Мы используем .NET- версию CruiseControl , с захватывающим названием. CruiseControl.NET :)

Некоторые из ключевых функций включают в себя:

  • Интеграция с различными системами контроля версий
  • Интеграция с другими внешними инструментами, такими как NAnt и Visual Studio
  • Может строить несколько проектов на одном сервере
  • Удаленное управление и отчетность

Мы были очень довольны этим программным обеспечением с открытым исходным кодом и рекомендуем его любой команде, желающей упростить процесс сборки.

Джаррод Диксон
источник
2
Я думал, что Caps Lock был круиз-контролем ... круто
Марк Хендерсон
3

Я предпочитаю развертывания, которые автоматизированы и повторяемы. Вы определенно хотели бы начать с тега управления исходным кодом, чтобы точно знать, что вы развернули, и можете повторно развернуть его в любое время. Затем используйте сценарии, чтобы передать это на сервер, что-то вроде Capistrano, или просто самодельный сценарий bash или что-то в этом роде.

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

Мэтью Шенли
источник
1

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


источник
На каком языке написан сценарий? Баш? Можешь дать нам взгляд?
Паан
@paan: это на Perl. Извините, но я не могу выпустить весь сценарий.
0

Я использую git с парой настраиваемых хуков для развертывания. Это даже имеет то преимущество, что я могу запускать несколько веток для сайтов dev / test / beta / production и выполнять некоторые CI. Для срочных патчей git всегда позволяет выбирать определенные коммиты из одной ветки в другую.

txwikinger
источник