我想在 cloudbees 上对应用程序进行零停机部署(我正在使用持续部署) - 但我的应用程序需要时间预热?
另外,如果事情发生严重错误,我希望能够快速回滚,有没有办法做到这一点?
我想在 cloudbees 上对应用程序进行零停机部署(我正在使用持续部署) - 但我的应用程序需要时间预热?
另外,如果事情发生严重错误,我希望能够快速回滚,有没有办法做到这一点?
你想要的,但可能没有意识到 - 是蓝绿色部署,你总是有一个活动/备用应用程序对 - 并且总是部署到备用,准备好时切换。
请参阅此处以获得更好的描述。
好吧,好消息 - 这里有一个插件。
您甚至可以将其作为 Jenkins 构建的一部分自动执行,例如,在您的自由式作业脚本中执行类似的操作(假设您已按照上面的链接设置了一个应用程序:
# 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