Процесс выпуска / развертывания / обслуживания веб-службы - PullRequest
2 голосов
/ 10 декабря 2008

Я изучаю некоторые нехрупкие методы выпуска в среде веб-служб 24x7x365. Какие ваши любимые методы выпуска кода из среды разработки в критически-производственную среду? Это включает в себя не только изменения кода - но и изменения схемы базы данных. Давайте предположим, что все было проверено и одобрено в экосистеме среды разработки.

Какие шаги вы предпримете для оптимизации производства? Перенаправить трафик в кластер простоя и запустить несколько автоматических сценариев? Если так, что делают ваши сценарии? Если не сценарии, какую рутину вы любите?

Нужны только технические знания. Пожалуйста, не отвечайте на запросы типа «предупредить клиентов».

Спасибо!

Ответы [ 2 ]

1 голос
/ 10 декабря 2008

Есть несколько принципов, которые я считаю важными для обеспечения:

  1. Выпуск только из системы контроля версий (либо выделенная ветка, либо тег на главной линии). Нет возможности выхода прямо из рабочего каталога.
  2. Полностью автоматизировать процессы «push-to-production» и «push-to-staging» (включая обновления схемы)
  3. Имейте под рукой автоматический скрипт отката, и не бойтесь использовать его, если что-то кажется неправильным.
  4. Все изменения схемы базы данных выполняются с помощью инкрементного инструмента с возможностью отката / отката (например, ActiveRecord или Liquibase). Требовать полного восстановления БД должно быть редко.
  5. (для действительно больших кластеров). используйте два балансировщика нагрузки, один для версии N и один для версии N + 1. Тестируйте непрерывно, поскольку дополнительные узлы присоединяются к группе N + 1.
0 голосов
/ 10 декабря 2008

Денис Хеннесси написал прекрасное резюме. Что касается инструментов, взгляните на Capistrano .

...