DeployHub interacts with Cloud Foundry by using the command line process (cf) to connect to the Cloud Foundry Endpoint. To deploy a new Application (or to make changes to an existing Application) DeployHub uses the “cf push” command to upload the Application to the Cloud Foundry Endpoint.
DeployHub Environments are the same as Cloud Foundry “spaces”. Since DeployHub is an agentless solution, it can deploy to Cloud Foundry by executing the cf command automatically as part of the deployment process. It can extract your DeployHub Application code from any Repository and push the changes up to the Cloud Foundry Endpoint. It can then track which version of the Application is installed in which Cloud Foundry space.
To use the DeployHub integration with Cloud Foundry, you must install Cloud Foundry’s Command Line Interface (cf CLI) in a location that can be accessed by DeployHub for execution cf the commands.
To call the cf processes, you define your Component to use a Custom Action that executes a Procedure that calls the cf commands on that Clound Foundry Endpoint. For instance, a Cloud Foundry application named my_app could be started by writing a script named startMyApp.sh that looks like:
#!/bin/sh cf api https://myexample.com cf auth myname mypassword cf target -o myorg -s myspace cf push `my_app` -c null
DeployHub must be able to access your script in order for the Custom Action to work. Deploying the Application that contains the Component causes the Action to be called, which runs the script and starts the Cloud Foundry Application named my_app.
Cloud Foundry is ideal for Blue-Green deployment strategies. In such a scenario, Production is mirrored across two distinct environments - “blue” and “green”. End Users point to one of these Environments whilst deployments are made to the other. Once testing is complete on the deployed Environment, users are switched over to this Environment and the deployment is performed again to the other Environment. This maximizes uptime and minimizes the risks in performing a Rollback.
DeployHub supports such a Blue-Green deployment strategy. Both Environments can be targeted individually as part of two separate deployments or you can deploy to both with DeployHub deploying to the second Environment automatically following successful test and switch-over.
For more information see: