Note: if your application's manifest is "complete", use Autopilot instead. More info below, in the Autopilot README, and in this Issue.
Allows zero-downtime deployments of applications within Cloud Foundry, with no additional setup needed.
- Install the
cf
CLI v6.12.4+. - Run
npm install -g cf-blue-green
.- See Notes below for non-Node installation.
- Run
cf-blue-green <appname>
(instead ofcf-push
) from your application directory to deploy.
This creates a copy of your already-running application, and safely switches traffic over to it. It's recommended that you try this script on a non-production application environment first, just to ensure that everything is switched over properly.
The script is distributed via NPM, but doesn't actually require Node.js beyond that. If you don't want to install Node, simply:
- Download the script.
- Run
chmod a+x cf-blue-green
. - Move the file somewhere in your PATH.
Travis supports continuous deployment, which will automatically deploy your application after its tests pass on a specified branch. To use cf-blue-green
with Travis, you need to use a script provider instead of the default Cloud Foundry provider. Your Cloud Foundry settings are read from environment variables.
Set up continuous deployment with the following settings in your .travis.yml
file:
sudo: true
env:
global:
- CF_APP=[app name]
- CF_API=[API endpoint]
- CF_USERNAME=[user]
- CF_ORGANIZATION=[organization]
- CF_SPACE=[space]
- secure: [CF_PASSWORD=[encrypted with Travis](http://docs.travis-ci.com/user/environment-variables/#Encrypted-Variables)]
before_deploy: npm install -g cf-blue-green
deploy:
provider: script
script: cf-blue-green-travis
on:
branch: [git branch you want to deploy]
cf-blue-green
creates a temporary manifest from your live application, meaning that it ignores the manifest.yml
in your directory, if you have one. To deploy any changes to your manifest, use cf push
directly.
More information about blue-green deployment, all of which this script drew from.