After one year, Knative is starting to emerge as one of the most exciting new developments for the Kubernetes community—let's take a look at why.
This week will be the one-year anniversary for Knative. For those who have missed out on the fun, Knative is an open source project aimed at providing a couple of key things to the cloud-native community:
- Support for the runtime features we often see in traditional serverless platforms, such as auto-scaling from zero to N
- A simplified user-experience on top of Kubernetes—something often associated with FaaS or PaaS platforms
- An eventing infrastructure to help manage and orchestrate the events destined for your applications
Why was Knative needed?
Even before Knative, there were many FaaS offerings that could sit on top of Kubernetes; however, more often than not, these were either lacking in some key features or were presented as an alternative world for hosting your applications. People might have felt that they were being forced to choose between the ease of use of FaaS and the flexibility (and yes, sometimes complexity) that comes from Kubernetes.
Knative was designed to bring these worlds together by creating an opinionated view of how to host applications in Kubernetes. At the same time, Knative was built to take a lot of the tedious (and common) tasks that people need to do in order to make their Kubernetes applications "real" and handle those automatically for them.
As a concrete example, imagine a world where you have one simple command:
With that one command, you get a new Kubernetes-hosted application that will scale down to zero when not being used, scale up as the load on it increases, and have an http-accessible, load-balancing endpoint.
As a developer, you don't need to manage any of the vast Kubernetes resources that are needed to provide all of these features. Best of all, you can still get access to those resources and integrate your Knative service with the rest of your Kubernetes infrastructure/apps seamlessly. That's pretty powerful.
There’s much more to discover about Knative, so read on and check out these links:
The Knative community
The Knative community has been quickly growing during the past year. From a codebase perspective, there have been over 80 different companies participating—that equates to around 400 unique contributors and over 6,000 PRs created.
There are 10 different work groups within the community with regular weekly calls to coordinate the global team of developers they have. Along with this, we're seeing a 20% monthly growth in participation from across the various communication and participation mechanisms available.
The project itself has gone through some significant changes. Aside from the obvious technical features/designs that have been worked on, the Knative "Build" project decided to "go its own way" and was the genesis for a new project called Tekton, which is now part of the cd.Foundation. While Tekton is not formally under the Knative umbrella of projects, it will probably still be the main "build"-related project that the Knative community looks at for building container images.
IBM and Knative
IBM is a founding member of Knative project and was one of the first to roll out Knative as part of our public cloud offering. You can play with Knative today on IBM Cloud Kubernetes Service, where it's an add-on available via a one-click install process. The add-on is "managed," which means that upgrades will be handled for you upon request.
Additionally, IBM is making Knative a central piece of our "unified platform." Our vision is to have a unified application platform that seamlessly lets developers leverage the best of containers, apps, and functions in a single integrated way. This means that Knative will be a core component of our Kubernetes, IBM Cloud Functions, and Cloud Foundry products.
Finally, IBM is, of course, very involved in the development activities within the community. With our history of running a hosted serverless platform (IBM Cloud Functions based on Apache OpenWhisk), we're bringing our expertise and customer requirements to Knative to ensure that it can meet the challenges successfully.
Come join the fun
As of today, Knative is at version 0.7 and is quickly approaching that exciting 1.0 milestone. Even before that happens though, we're already seeing Knative being offered by several platforms to help garner as much feedback from real-world experience as possible.
You can also join the community at https://knative.dev—we're constantly looking for user input. With Knative's heavy focus on presenting a simplified developer user experience, your feedback will be critical to our success – so please don't be shy.