In our earlier blog posts, we have described how to build and deploy Concourse, BOSH and cf-release on OpenPOWER systems, an alternative processor architecture based on IBM POWER systems. In separate performance experiments, we have run up to 10,000 containers in a single IBM POWER system and run workloads such as IBM WebSphere Liberty in Docker containers with better price performance on IBM POWER systems.
In this post, we are describing how to build and deploy Cloud Foundry with Diego, for running Docker containers, as a BOSH release on OpenStack on OpenPOWER systems. Diego release installation steps with BOSH documented here require OpenPOWER specific binaries to deploy on OpenPOWER. We are providing a base Diego release which contains three OpenPOWER binaries: golang 1.7.1, jq and docker. We will provide other OpenPOWER specific BOSH releases required for the Cloud Foundry deployment: cf, etcd, garden-linux and cflinuxfs2-rootfs. We are also pointing to steps for building and deploying these releases.
Prepare the environment:
- Install BOSH on OpenStack on OpenPOWER as described in this blog.
- Specify a Cloud Config as described in this sample.
- BOSH upload a stemcell for OpenPOWER. Download stemcell v3232 from here.
Deploy Diego
- Download pre-built Diego-release (v.0.1487.0) from here. Alternatively, the latest release can be built from source using instructions from here.
- Download a pre-built Etcd-release (v78) from here. Alternatively, the latest release can be built from source using instructions from here.
- Download a pre-built Garden-linux-release (v0.342.0) from here. Alternatively, the latest release can be built from source using instructions from here.
- Download a pre-built cf-release (v240) from here. Alternatively, the latest release can be built from source using instructions from here.
- Download a pre-built cflinuxfs2-rootfs-release (v1.37.0) from here. Alternatively, the latest release can be built from source using instructions from here.
- Download and customize deployment manifest using this example for OpenPOWER based on this generic example manifest.
- Upload these BOSH releases using ‘BOSH upload release’ command. See the example for the Diego release here.
- Verify the releases for Diego deployment.
- Deploy using BOSH deploy. The output of the BOSH deploy command should be similar to this output. The results can be seen with the following commands: bosh deployments and bosh vms.
Run a container in Cloud Foundry Diego deployment on OpenPOWER platform
- Create a simple https server application (example in Golang)
- Create a Dockerfile for this application; see the example
- Build Docker image and publish it to Docker hub; see the example
- Login to Cloud Foundry using cf login command
- Create a new space with ‘cf create-space’ command
- Target the space using ‘cf target’ command
- Enable docker support using ‘cf enable-feature-flag diego_docker’ command
- Push the docker image from docker hub to Diego with ‘cf push’ command
- Check the status of cf diego applications:
Finally, it is possible to verify that the application is running using ‘curl’ command:
or, in the web browser:
Compiled by Konstantin Maximov, Yulia Gaponenko and Indrajit Poddar at IBM