IBM is the latest to pile into devops darling Kubernetes, pulling its Kabanero project out the bag at the O’Reilly Open Source Software conference, currently under way in Portland, Oregon.
Kubernetes, invented by Google and affectionately known as K8s, is today's platform of choice for orchestrating microservices. It is not a complete PaaS (platform as a service) tool though, and this fact together with notorious complexity, means that a multitude of other projects have sprung up around K8s, adding missing pieces and abstracting features in order to make them easier and safer to use.
Big Blue's open source project is aimed at "lower[ing] the barrier of entry for developers to use Kubernetes", according to Nate Ziemann, product manager at IBM Cloud Developer Technologies.
Kabanero is not completely new - observant IBM watchers will have spotted its various parts coming together over the last few months - the conference announcement marked the launch of the IBM-sponsored initiative.
"Architects and operations get overloaded with choices, standards, and compliance. Kabanero speeds development of applications built for Kubernetes while meeting the technology standards and policies your company defines," the site claims.
What is Kabanero? Get ready for a blitz of projects each with its own "whimsical" name. Kabanero is composed of multiple projects, starting with three that will be familiar to most K8s developers:
Istio: a tool for managing and monitoring connected microservices, with features like load balancing, routing, access control and logging.
Knative: software components that abstract key features. There are three Knative components. Knative Build is for orchestrating the steps for fetching, building and packaging source code into container images. Knative Eventing is for creating event-driven services. Knative Serving is for deploying and auto-scaling applications.
Tekton: components for creating CI/CD (continuous integration and continuous delivery) pipelines, themselves running on K8s, for deploying to K8s or other environments.
On top of these three, Kabanero adds these new and recent projects:
Appsody: preconfigured application stacks which include a base container image and project templates. A stack is everything you need to run an application or service, including language runtimes and frameworks. There are five initial stacks:
- Eclipse MicroProfile, using IBM's Open Liberty Java application server;
- Spring, which combines Open Liberty with Pivotal's Spring framework;
- Swift, using IBM's server-side Kitura Framework; and
- Serverless, meaning a container that starts on first touch, using Open Liberty.
Appsody also offers a hub for managing stacks and a command line tool. You can update existing applications by updating a stack in the hub. The output of Appsody is container images for your application. Appsody can integrate with Tekton.
Codewind: developer tools for container-based coding. Codewind is an Eclipse project, and offers both an Eclipse plug-in and an extension for Visual Studio Code.
Razee: a tool for automating and managing the deployment of K8s resources across multiple clusters. Razee includes a continuous delivery tool called Kapitan.
A developer working with Kabanero starts by choosing a stack from the organisation's Appsody hub. This provides a ready-to-go environment complete with a skeleton project, provided you are working with either Eclipse or Visual Studio Code.
Of the various component projects that form Kabanero, it is Appsody that is perhaps the core of IBM's strategy. Open Liberty, which is prominent in the initial Appsody stacks, is based on the same source code as WebSphere Liberty, IBM's application server for microservices. As developers look to Kubernetes to solve their deployment and scalability challenges, Appsody and Kabanero make it easier for them to stay with IBM's stack and to deploy – or so IBM will hope – to Big Blue's cloud or to on-premises servers perhaps running Red Hat's OpenShift.
IBM faces several challenges here. One is to build support for Appsody and Kabanero beyond its own community. It is open source, but with a strong IBM flavour. In theory, if the open community dives in and creates numerous Appsody stacks for a diverse range of runtimes and frameworks, Kabanero could be a nice vendor-neutral tool, but winning that kind of support is hard.
Another challenge is to dissuade developers attracted to K8s from drifting towards Google Cloud Platform or AWS for their deployments.
Does Kabanero really make Kubernetes easy to use? It is early days, but while "Hello world" looks delightfully simple in the introductory video, developers will still need to dive deep into the technology to write, debug and optimise real-world applications.
Pretty much every cloud provider is engaged with making K8s easier to use, and with considerable success. IBM will find it tough to win new developers to its platform via Kabanero, but it may help IBM-centric coders to stay loyal. ®