如何在 DevOps 阶段以编程方式配置可用性监控以进行蓝绿部署?
How to programatically reconfigure Availability Monitoring in DevOps stage for Blue-Green deployment?
我正在使用基于 Cloud Foundry 模板的 IBM devops 管道。该模板为您提供蓝绿部署。
我的阶段部署脚本如下所示:
#!/bin/bash
cat << EOF > ${WORKSPACE}/manifest.yml
declared-services:
my_cloudant:
label: cloudantNoSQLDB
plan: Lite
my_messagehub:
label: messagehub
plan: standard
my_autoscaling:
label: Auto-Scaling
plan: free
my_availability_monitoring:
label: AvailabilityMonitoring
plan: Lite
applications:
- name: movie-recommend-demo
host: movie-recommend-demo
buildpack: https://github.com/cloudfoundry/python-buildpack.git#v1.5.18
memory: 128M
instances: 2
path: web_app
services:
- my_cloudant
- my_messagehub
- my_autoscaling
- my_availability_monitoring
timeout: 180
env:
# these are set in the devops stage ENVIRONMENT PROPERTIES
BI_HIVE_USERNAME: ${BI_HIVE_USERNAME}
BI_HIVE_PASSWORD: ${BI_HIVE_PASSWORD}
BI_HIVE_HOSTNAME: ${BI_HIVE_HOSTNAME}
EOF
# Push app
if ! cf app $CF_APP; then
cf push $CF_APP
else
OLD_CF_APP=${CF_APP}-OLD-$(date +"%s")
rollback() {
set +e
if cf app $OLD_CF_APP; then
cf logs $CF_APP --recent
cf delete $CF_APP -f
cf rename $OLD_CF_APP $CF_APP
fi
exit 1
}
set -e
trap rollback ERR
cf rename $CF_APP $OLD_CF_APP
cf push $CF_APP
cf delete $OLD_CF_APP -f
fi
# TODO:
# - Reconfigure Availability Monitoring on Green deployment
# - Reconfigure Autoscaling on Green deployment (https://console.bluemix.net/docs/cli/plugins/auto-scaling/index.html)
# Export app name and URL for use in later Pipeline jobs
export CF_APP_NAME="$CF_APP"
export APP_URL=http://$(cf app $CF_APP_NAME | grep urls: | awk '{print }')
# View logs
#cf logs "${CF_APP}" --recent
在设置和 运行 阶段之前,我在我的 Cloud Foundry 应用程序上设置了可用性监控。 运行 该阶段导致我的可用性监控配置被删除。
如何使用脚本在新的 'green' 部署中自动重新配置可用性监控?
我有一个关于 Auto Scaling 的类似问题,但似乎有一个 API/CLI 可以用来重新配置该服务。但是,我 运行 使用 cf oauth-token
进入
这是目前正在积极处理的服务中的一个缺陷,应该会在今年晚些时候提供。
目前,保持配置的方法是不删除应用程序,而是重复使用 2 个应用程序。即使您只将服务绑定到一个应用程序,特别是如果您使用监控选项卡,这也会让您对哪个应用程序进行测试感到有些困惑。
自我监控时我们所做的是在 space 中创建一个虚拟应用程序并将服务绑定到它(它甚至不需要是 运行)。然后我们用它来监控 blue/green 应用程序。这里我们同样不删除应用,只是重复使用应用。
我正在使用基于 Cloud Foundry 模板的 IBM devops 管道。该模板为您提供蓝绿部署。
我的阶段部署脚本如下所示:
#!/bin/bash
cat << EOF > ${WORKSPACE}/manifest.yml
declared-services:
my_cloudant:
label: cloudantNoSQLDB
plan: Lite
my_messagehub:
label: messagehub
plan: standard
my_autoscaling:
label: Auto-Scaling
plan: free
my_availability_monitoring:
label: AvailabilityMonitoring
plan: Lite
applications:
- name: movie-recommend-demo
host: movie-recommend-demo
buildpack: https://github.com/cloudfoundry/python-buildpack.git#v1.5.18
memory: 128M
instances: 2
path: web_app
services:
- my_cloudant
- my_messagehub
- my_autoscaling
- my_availability_monitoring
timeout: 180
env:
# these are set in the devops stage ENVIRONMENT PROPERTIES
BI_HIVE_USERNAME: ${BI_HIVE_USERNAME}
BI_HIVE_PASSWORD: ${BI_HIVE_PASSWORD}
BI_HIVE_HOSTNAME: ${BI_HIVE_HOSTNAME}
EOF
# Push app
if ! cf app $CF_APP; then
cf push $CF_APP
else
OLD_CF_APP=${CF_APP}-OLD-$(date +"%s")
rollback() {
set +e
if cf app $OLD_CF_APP; then
cf logs $CF_APP --recent
cf delete $CF_APP -f
cf rename $OLD_CF_APP $CF_APP
fi
exit 1
}
set -e
trap rollback ERR
cf rename $CF_APP $OLD_CF_APP
cf push $CF_APP
cf delete $OLD_CF_APP -f
fi
# TODO:
# - Reconfigure Availability Monitoring on Green deployment
# - Reconfigure Autoscaling on Green deployment (https://console.bluemix.net/docs/cli/plugins/auto-scaling/index.html)
# Export app name and URL for use in later Pipeline jobs
export CF_APP_NAME="$CF_APP"
export APP_URL=http://$(cf app $CF_APP_NAME | grep urls: | awk '{print }')
# View logs
#cf logs "${CF_APP}" --recent
在设置和 运行 阶段之前,我在我的 Cloud Foundry 应用程序上设置了可用性监控。 运行 该阶段导致我的可用性监控配置被删除。
如何使用脚本在新的 'green' 部署中自动重新配置可用性监控?
我有一个关于 Auto Scaling 的类似问题,但似乎有一个 API/CLI 可以用来重新配置该服务。但是,我 运行 使用 cf oauth-token
这是目前正在积极处理的服务中的一个缺陷,应该会在今年晚些时候提供。 目前,保持配置的方法是不删除应用程序,而是重复使用 2 个应用程序。即使您只将服务绑定到一个应用程序,特别是如果您使用监控选项卡,这也会让您对哪个应用程序进行测试感到有些困惑。 自我监控时我们所做的是在 space 中创建一个虚拟应用程序并将服务绑定到它(它甚至不需要是 运行)。然后我们用它来监控 blue/green 应用程序。这里我们同样不删除应用,只是重复使用应用。