我希望在CloudBees上实现零停机时间 - 但我的应用程序需要预热

时间:2013-08-20 03:36:53

标签: cloudbees continuous-deployment

我想在cloudbees上暂停部署应用程序(我正在使用持续部署) - 但我的应用需要时间来预热吗?

此外,如果事情发生可怕的错误,我希望能够迅速回滚,有没有办法做到这一点?

1 个答案:

答案 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