Что вы хотите, но можете не осознавать этого - это сине-зеленое развертывание, где всегда есть активная/резервная пара приложений - и всегда развертывайте в режиме ожидания, разрезайте при готовности.
См. here для лучшего описания.
Хорошо, хорошие новости - есть plugin for this here.
Вы даже можете автоматизировать это как часть вашего Дженкинс построить, например, сделать что-то подобное в вашем фристайл сценарии работы (это предполагает, что вы настроили приложение в соответствии с приведенной выше ссылке:
# INSTALL AND CONFIGURE BEES SDK
export BEES_HOME=/opt/cloudbees/cloudbees-sdk/
export PATH=$PATH:$BEES_HOME
if [ ! -d ~/.bees ]; then
bees init -f -a <account name> -ep us -k $BEES_API -s $BEES_SECRET
fi
bees plugin:install com.cloudbees.sdk.plugins:bg-plugin
# DEPLOY
bees app:bg:deploy -n <your app name> target/web-webapp.war
# WARM NEW SERVERS - for example - could be a smoke test here:
echo "Preparing new servers for router switch over..."
for i in {1..50}
do
curl -s "http://yourwebsite.com/" > /dev/null
sleep 5
done
# SWITCH ROUTER
echo "Switching router over to new servers..."
bees app:bg:switch -n <your app name> -f
# SHUTDOWN OLD SERVERS
echo "Shutting down old servers..."
bees app:bg:stop -n int -f