我想在cloudbees上暂停部署应用程序(我正在使用持续部署) - 但我的应用需要时间来预热吗?
此外,如果事情发生可怕的错误,我希望能够迅速回滚,有没有办法做到这一点?
答案 0 :(得分:4)
你想要什么,但可能没有意识到 - 是蓝绿色的部署,你总是有一个活动/备用的应用程序对 - 并且总是部署到备用数据库,准备好后切换。
有关更好的说明,请参阅here。
嗯,好消息 - 有plugin for this here。
您甚至可以将其作为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