Управление развертыванием сайта между демонстрацией / подготовкой / реализацией на производственных серверах - PullRequest
2 голосов
/ 08 октября 2009

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

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

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

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

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

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

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

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

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

1 Ответ

1 голос
/ 13 октября 2009

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

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

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

...