2013-08-20 2 views
4

Я хочу сделать нулевое развертывание приложений в облачных средах (я использую непрерывное развертывание) - но моему приложению нужно время, чтобы разогреться?Я хочу, чтобы нулевое время простоя развернулось на CloudBees, но мое приложение должно разогреться

Кроме того, я хотел бы быстро вернуться назад, если все идет ужасно неправильно, есть ли способ сделать это?

ответ

4

Что вы хотите, но можете не осознавать этого - это сине-зеленое развертывание, где всегда есть активная/резервная пара приложений - и всегда развертывайте в режиме ожидания, разрезайте при готовности.

См. 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 
Смежные вопросы