The pairing of OpenStack and Kubernetes has been likened to the dynamic duo and a May-September romance.
Still, some question why you’d need these robust, community-driven platforms that provide computing and application resources together. At the recent OpenStack Days Silicon Valley, Sumeet Singh of AppFormix launched a fireside chat by asking Craig McLuckie, product manager for Kubernetes at Google and Brandon Phillips, CTO of CoreOS, why a company would need OpenStack if they were using Kubernetes.
McLuckie’s response: Today, the world doesn’t fit into a straight-up cloud-native computing box. The enterprise world is hybrid in terms of the application patterns that people need to use, the types of infrastructure people need access to and the way that people want to run their workloads.
“Enterprise needs a set of familiar infrastructure primitives,” McLuckie adds, “and this are really well embodied in OpenStack today. It’s also interested in transitioning to more cloud-native progressive computing, which is what Kubernetes can provide.”
Companies have invested in virtual machine (VM) computing of the OpenStack variety, and there will continue to be VM users well into the future, said Phillips. As teams begin to demand more cloud-native systems, it makes more sense to blend systems like Kubernetes into the fold, as it were.
McLuckie remembers when companies like eBay who were heavily invested in OpenStack started to look at finding ways to integrate technologies such as containers and cloud-native computing into the traditional infrastructure as a service environment.
There are several problems within each ecosystem that are unaddressed as standalone products. It’s hard to deal with the operationalization of a very rich portfolio of services in OpenStack, said McLuckie, making it tough to roll out OpenStack, version it, update it, and manage it. Cloud-native computing systems like Kubernetes, then, make it a lot easier with a simple logical compute substrate into which you can deploy your services.
There was also a significant gap between the efficiencies customers could get out of more traditional, monolithic, VM-based scheduling versus the much more agile dynamic systems. Technologies like Kubernetes can bring much richer efficiencies to a traditional ecosystem. On the flip side, said McLuckie, customers who were using Kubernetes on its own were asking for extensions that would bring more traditional services like block and object storage integrated within the cloud-native ecosystem. OpenStack has a very robust set of services that naturally complements these technologies and integrates well with current physical infrastructures.
“Kubernetes solves a whole bunch of problems and offers a window into a new way of thinking about deploying, managing, and scheduling your applications,” says McLuckie. “OpenStack provides a very robust set of infrastructure primitives that you can bring in together.”
Phillips agreed, pointing to the way his company’s customers were searching for ways to more consistently manage the way they deployed OpenStack. His team worked on a way to manage OpenStack as complex application inside of containers. Now, they use Kubernetes in a similar way, with compassion for the OpenStack operator’ difficult task of deploying, updating, and managing OpenStack.
McLuckie said that the adoption of Kubernetes is far quicker than any other software he’s ever worked with, and that it’s the most widely used container orchestration technology out there. In a sense, added Phillips, the success of OpenStack has lead to a larger addressible market in which Kubernetes can thrive.
Still, the community-led Kubernetes and OpenStack projects will benefit greatly from collaborative development. OpenStack provides the infrastructure needed, like object storage and Keystone authentication, both things that were brought into the Kubernetes project itself.
“There’s a bunch of opportunities here to mix and match the components,” said Phillips. “Enterprises today have large OpenStack application deployments and want to utilize that stored data but also want to bring containerized applications into the ecosystem.”
The base integration work needs to be done, said McLuckie, and doing that will help optimize the strong synergies between the two projects. But that’s not all the community needs to do, he says.
Some of the needed work, said McLuckie, is around some higher-level concepts, like how next-generation enterprise applications are described, composed and distributed.
“It’s a amazing opportunity to come together across communities that are doing cloud-native work as well as more traditional infrastructure communities like OpenStack,” he said.
The communities need to rally together to help the software vendors that are building distributed systems and deploying them into these environments to have a set of common standards for how to actually describe, package and distribute their applications.
There’s also a potential for deeper integration between OpenStack and Kubernetes, says McLuckie. The idea is to continue to advance what container technologies while preserving the best attributes of traditional infrastructure and VM-based models, and then bringing that to both communities at the same time.
The trick to enabling this collaboration, said McLuckie, is at the foundation level. The OpenStack Foundation and the Cloud-Native Computing Foundation serve overlapping communities already, so why not create working groups that span the two foundations to help cross-polinate these technologies.
“Hopefully, over time, we can tear down the boundaries that exist between the two foundations themselves, and harmonize them together,” he said.