by Omar Mahdi Kais
We are happy to announce the public release of the first open source Ceph object storage service broker that is compliant with the Open Service Broker API V2, now available on GitHub.
At the ICCLab, we are building a strong PaaS installation for our staff and students at ZHAW, using the University’s own cloud infrastructure built on OpenStack. The core of our Platform is based on Cloud Foundry, using BOSH for deployment and management.
To ensure the success of the platform, we want to make a selection of essential services available through the Cloud Foundry Marketplace, providing most of what a cloud application developer might need, including databases, storage solutions and messaging services.
Among these platform services we wanted to provide an object storage service, as its commonly used by developers. Because we are already running a Ceph cluster in our local infrastructure, we decided to use that also for our platform object storage service. An additional bonus to using Ceph is the fact that it provides access via both S3 and Swift APIs, which will let developers very easily migrate their applications from another platform.
The next step was to get a service broker that supports the Open Service Broker API (OSB API) so that it can be registered with Cloud Foundry as a service. However, we were somewhat surprised by the fact that we couldn’t find any open source, or even publicly available closed source service brokers which provided an object storage service through Ceph.
As such, we decided to develop our own highly available Ceph object storage broker written in Go that conforms to the OSB API and release it in open source.
As of today, the broker is fully documented and available on our GitHub page and ready for use. The broker provides easy configuration, such that the plans offered and the details about the Ceph cluster backend can easily be changed to suit the needs of the operator. The implementation already supports deployment and registration on Cloud Foundry, OpenShift and Kubernetes, with support for deploying with BOSH coming soon.
In the near future, we will publish a technical post discussing more about the specifics of how this service broker was developed, so make sure to check back for all the interesting details from setting up a test Ceph cluster to making the broker stateless by offloading its state without requiring any additional data services.