If there’s one thing volunteer developers working on an open source project hate -- that Platform as Service (PaaS) can alleviate -- it’s laborious tasks: provisioning, maintenance, anything that distracts from writing code.
That was the situation at jclouds, an open source community library that allows developers to migrate their code between more than 30 different cloud providers including Amazon, vCloud, OpenStack and Windows Azure. A volunteer-centric organization, jclouds didn't want its developers spending their hours maintaining build environments instead of writing code.
Adrian Cole, the founder of jclouds, said that volunteers were keeping the project alive but weren’t able to move it forward.
“We had to spend a lot of time maintaining our build environment, which was an interesting challenge but not necessarily the thing we wanted to focus on,” Cole said. “It was painful for me to have [volunteer] Andrew [Phillips], who was much more interested in the platform work, [to fill the role of the] ‘I don’t know how to get this working properly’ person.”
The most time-consuming task for jclouds was manually maintaining its Jenkins CI infrastructure. Jenkins CI is a continuous integration service for software developers that provides quality control.
Cole and the jclouds staff knew they needed a cloud provider to fix their problem. It came in the form of DEV@cloud, an offering from Woburn, Mass.-based PaaS provider CloudBees that enabled the jclouds staff to continue to use Jenkins CI as a continuous integration platform without requiring them to manage it themselves. While jclouds leadership considered other options, they couldn’t find any that fit their unique needs quite like CloudBees.
“Even though we have our heads in the cloud a lot, there weren’t 15 companies doing the same thing as CloudBees,” Cole said. “If there was a competitor to that cloud at the time, I wasn’t aware of it.”
After testing an evaluation version of CloudBees and finding no issues, the jclouds staff migrated to DEV@cloud. Running in a public cloud environment went smoothly, and the entire implementation took just a few days.
“If I compare [implementation] to the time I was spending on a regular basis just keeping the other thing in the air, I would say the ROI [return on investment] was huge,” Phillips said.
Life with CloudBees
The jclouds staff immediately realized the benefits. Cole estimated that the team is saving as much as four hours a week, with Phillips adding that he saves between two and three hours each week -- a major savings given that he volunteers for six to eight hours a week.
“Every change we make goes live right away,” Phillips said. “Build time is much more predictable and our builds break a lot less. General operational failures are down to nothing and server side build failures happen rarely, if ever. The whole environment is easier to navigate now -- and all without an admin resource on the back end.”
CloudBees support staff can help jclouds with more than just cloud-related issues, including solving technical problems with Jenkins CI.
“CloudBees does what needs to be done to resolve our issues,” Cole said. “Our ambition is not to be Jenkins experts. We are a cloud project and we want to focus on our application. If we think about developer resources available to us, I would classify CloudBees as another productivity tool for the team.”
Cole is looking forward to future additions that will include a way to deal with all the credentials jclouds handles in the cloud.
“It would be cool to be able to have a trusted way to provide credentials, like my Amazon credentials, in a way that only my build can see them,” Cole said. “For example, I could run all of my live tests against Amazon in a safe way, so those credentials didn’t end up in the wrong hands.”
Advice for others looking for PaaS providers
Cole has two pieces of advice for other developers searching for a PaaS provider -- understand internal requirements and throw out preconceived notions.
“Throw out your assumptions, give yourself a chance to make a what-if,” Cole said. “ ‘What if I could have as much memory as I need?’ ‘What if I could get on a network that didn’t cost anything?’ ”
He also believes developers should focus on the network side of their business and have a firm understanding of what they will need to make development easier and where it will need to be.