BOSH, the de facto deployment mechanism for Cloud Foundry, is being tightly integrated into the Google Cloud Platform. The software is also being expanded beyond Cloud Foundry to manage other complex VM-based workloads.
Google engineers are nearing completion of the first edition of a BOSH Cloud Provider Interface (CPI) that would allow Cloud Foundry to be easily deployed on the Google Cloud Platform, and take advantage of many of GCP’s native services, such as preemptible VMs, and custom-sized VMs.
“I’d say we are pretty close to calling it done,” said Eric Johnson, a Google technical lead for the Google Cloud Platform, of the BOSH CPI for Cloud Foundry.
Nor are BOSH’s capabilities limited to streamlining Cloud Foundry deployments. In fact, the software could be handy in installing any sort of complex distributed applications or even platforms, such as Hadoop or OpenStack.
One company, the newly launched Dozer.io, is looking to commercially extend BOSH as a configuration management and orchestration tool, by offering commercial support and a BOSH GUI that would simplify the management of many Bosh instances within an enterprise.
Built as a deployment subsystem for Cloud Foundry, “BOSH is our platform for platforms. This is what gives us its multi-cloud capability, so we can support all these different clouds,” said Sam Ramji, CEO of the Cloud Foundry Foundation, speaking at the Cloud Foundry Europe Summit 2016, being held this week in Frankfurt, Germany.
BOSH, also described as an outer shell, was designed to manage the entire lifecycle of virtual machines (VMs) in a reproducible manner, incorporating versioning, packaging and deployment in a reproducible manner.
Although built for Cloud Foundry, BOSH can serve many of the same duties as traditional IT configuration tools such as Puppet and Chef, though it also supports orchestration of immutable infrastructures, ala Google’s Kubernetes.
Beyond GCP, BOSH supports infrastructure services like VMware vSphere, vCloud Director, Amazon Web Services EC2, and OpenStack. The CPI format can be used to extend Bosh to work with other cloud services, and work is under way to develop a single CPI that could encompass multiple clouds.
Google software engineer Colleen Briant is working a Cloud Foundry service broker for GCP, which would provide Cloud Foundry users to natively tap into Google services such as PubSub, CloudSQL, Cloud Storage, Machine Learning, and BigQuery.
“There’s a lot of behind-the-scenes work to configure databases, set up users and [manage] authentication,” Briant said. The service broker would streamline a lot of this work, she said.
“The power of BOSH is that it is a deterministic approach to system deployments,” explained Omar Reiss, one of the engineers working at Dozer. The software assumes that the configuration, as described in the manifest, is the way the software should be deployed across a system. By relying on the configuration, BOSH can maintain the software in a healthy state, automatically correcting any drifts from the ideal configuration.
A BOSH release, or a “BOSH,” contains a package of the software being managed, along with any supporting libraries, as well as instructions on how the packages should be unpacked and deployed. The package also includes specific monitoring instructions on how to start, stop and restart the different processes. A deployment manifest specifies how many instances of a certain job should be running and what IPs they should use.
When a VM is updated, BOSH automatically mounts it into service, deleting the older version of the VM and updating the networking information.
“This is a powerful concept,” Reiss said. Whenever a VM arrives at an error state for some reason, BOSH first tries to restart a process, and, if it doesn’t come back up, BOSH will then try to recreate the VM. “It expects you to deploy your infrastructure in a standard way,” he said.
Dozer.io is mulling the idea offering pre-configured “BOSHes” to the enterprise, which could simplify the deployments of complex distributed software, such as Cloud Foundry.
Dozer has run across a number of companies that have initially used BOSH to deploy Cloud Foundry, but are expanding it for other jobs as well, some even previously handled with traditional configuration management tools such as Puppet, explained Ruben Koster, another engineer of the Dozer team.
BOSH is also good for testing software before it goes into deployment, providing a way to quickly spin up an instance of a complex app as to reproduce bugs that may only occur within certain combinations of software. Recreating the exact setup in a testing environment could take a day or longer.
“Once people start using BOSH, they start using it for every environment,” Koster said.
Cloud Foundry is a sponsor of The New Stack
Feature image: Dozer’s Ruben Koster (left) and Omar Reiss.