Как профессионально обновлять приложения - PullRequest
0 голосов
/ 23 декабря 2010

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

Например, есть несколько серверов Glassfish, сбалансированных haproxy, и мы хотим обновить приложение, которое находится на нескольких серверах.

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

Ответы [ 2 ]

0 голосов
/ 23 декабря 2010

Классический способ сделать это в конфигурации> 1-сервер-совместно-ничего-это отключить один сервер, то есть дать указание интерфейсным веб-серверам или балансировщикам нагрузки направлять трафик только на другие серверы.

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

Выполнение этого со всеми серверами в конечном итоге приводит к полному обновлению.

0 голосов
/ 23 декабря 2010

Rails-сайты часто используют Capistrano для развертывания кода.Код обновляется на каждом сервере, и веб-сервер (в основном apache или nginx) обычно использует такой плагин, как пассажирский.Пассажир перезапускает и перезагружает базу кода, которая была обновлена ​​(выполняется касанием tmp / restart в корневом каталоге rails).Следующий веб-запрос будет отправлен Пассажиру, который использует обновленный код.

Большая часть Твиттера (насколько я знаю, бэкэнд-обработка в Эрланге), и я считаю, что почти все методы Hulu используют подобные этому.

...