Управление развертыванием сайта между демонстрационными/постановочными/рабочими серверами на рабочих серверах

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

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

В настоящее время у нас есть 3 папки верхнего уровня на диске данных: «демо», «принятие» и «живое». Есть незначительные различия между тем, что классифицирует что-то как «демо» или «акцент», в которые я не буду вдаваться, достаточно сказать, что я хочу избавиться от всех аргументов / двусмысленностей.

Наша процедура развертывания выглядит следующим образом: как только сайт будет разработан, разверните его под заголовком хоста «принятие», например acceptance.project-domain.com, в папке «принятие». Клиент просматривает сайт, мы тестируем его, чтобы убедиться, что все строки подключения/разрешения и т. д. верны. Клиент дает согласие на запуск. На этом этапе мы полностью перекатываем сайт под «живую» папку и даем ему заголовок живого хоста. конечно, на данный момент сайт полностью не протестирован в развернутом состоянии (я не говорю здесь о модульных тестах, я имею в виду права доступа к файлам, ошибки установки iis и т. д.). Затем сайт должен быть повторно протестирован :(

Я думаю, что такая структура была бы намного лучше:

/<customer>/<project>/<fullversion>/wwwroot

Таким образом, новый сайт можно развернуть в папку version1 под заголовком узла "acc". Если клиент дает согласие, вы просто переключаете заголовки и уходите. Если есть запросы на изменение, они попадают под v1.1, который может иметь заголовок принятия, как только он получит одобрение, поменяйте местами заголовки, и все готово. Промыть и повторить.

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

Каковы ваши методы организации кода и управления развертыванием?


person Andrew Bullock    schedule 08.10.2009    source источник


Ответы (1)


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

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

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

person Fenton    schedule 13.10.2009