Bloomberg is a big believer in open source. Not only does Bloomberg use open source software widely, but its engineers contribute widely. In the case of Kubernetes, says Drew Rapenchuk, team lead for Bloomberg’s Kubernetes-as-a-Service offering (which is meant to provide a unified method for provisioning Kubernetes infrastructure internally), it was a particularly easy sell. “As engineers, this is something that we want to be involved in,” he says. “The community around Kubernetes is so awesome. There are all these people from different backgrounds, and interacting with each other makes us better engineers.”
But the reasons for contributing to open source projects go well beyond personal and professional development, says Steven Bower, Bloomberg’s Data & Analytics Infrastructure Engineering lead. “If you’re going to use a piece of open source software, you have to be willing to contribute back to the project,” says Bower. “Because when it falls over in the middle of the night, there is no one to call. We have to be able to solve that problem.”
The team from Bloomberg has made such significant contributions to the cloud native ecosystem, specifically to the Kubernetes and Prometheus projects, that Bloomberg was voted the first recipient of the CNCF End User Award by the Cloud Native Computing Foundation’s End User Community and TOC. The Award was presented earlier today to Bower and Andrey Rybka of Bloomberg’s Office of the CTO at KubeCon + CloudNativeCon Europe 2018 in Copenhagen.
Bower says Bloomberg started investigating Kubernetes about two-and-a-half years ago, after building a tool to manage the deployment of about 6,000 instances of Apache Solr, an open source enterprise search platform, across roughly 1,000 servers. Bloomberg also started writing containerization software and orchestration software to support it. “Then we started looking at, why do we have to build all this code ourselves? Why are we spending all this time?” says Bower. And, importantly: “Is there something better?”
At the same time, Bloomberg engineers began poking around Kubernetes, trying to understand what the gaps were, how stable it was, how it could be monitored, and how it would fit into the existing Bloomberg tech stack. About a year ago, Bloomberg starting running its first production software on top of Kubernetes.
Bloomberg recently completed building a Data Science Platform that uses Kubernetes. “The Data Science Platform has given us a huge amount of knowledge about how we can monitor and run Kubernetes,” says Bower. “Now we can begin running more complex services and sharing that experience and insight with other teams of engineers.”
“Kubernetes, as a project, has grown really rapidly,” says Bower. Crucial to Bloomberg’s continued involvement is that Kubernetes has an unusually strong governance model. There is a detailed schedule of releases, and a list of features that are to be included in each release. “The releases and the features get delivered, and if there are changes, there’s clear communication around it,” says Bower. Late last year, Bloomberg officially joined the CNCF End User Community.
As different teams at Bloomberg got deeper into Kubernetes, engineers across the organization started contributing bug fixes and patches to the core project and community tools like kubeadm, kube-ops-view and Kubo. They also contributed towards a way to manually create a Job instance from a CronJob that will run right away, rather than periodically.
In addition, they started developing new functionality for the community of Kubernetes users, such as PowerfulSeal, a tool for doing failure testing on Kubernetes clusters. They contributed to the larger spark-on-k8s (a native Kubernetes scheduler for Apache Spark™) effort to get Apache Spark to natively support Kubernetes. And some Bloomberg engineers are currently working on a set of utilities that will enable developers to follow a defined pattern to come up with a clean and easy way to build controllers in Kubernetes.
And they are regular presenters of use cases, implementations, best practices and lessons learned at technical conferences and meetups, including KubeCon + CloudNativeCon, Strata and the San Francisco Kubernetes meetup.
“A good chunk of the work we’re doing can be contributed to the open source community around Kubernetes,” says Rapenchuk. “We’re addressing our own challenges, but making sure we’re solving them in a way that we can contribute so that everyone else in the community wins too.”