The Kubernetes serverless space just got a lot more interesting with the public announcement of the Knative open source project from Google - https://github.com/knative/
The Knative docs (https://github.com/knative/docs) and this Hacker News thread (https://news.ycombinator.com/item?id=17602377) provide more context on what Knative is and who the target audience is. Essentially, Knative is a set of building blocks that can be used to create a serverless platform on top of Kubernetes. It's not something intended to be used directly by serverless developers but instead integrated into other projects and vendor platforms. Several OpenWhisk contributors are involved in Knative, as are contributors from a number of other projects in the Kubernetes serverless space. I believe we're going to see the combined knowledge of all Kubernetes serverless projects end up in these common building blocks. And this combined community will improve the serverless experience on Kubernetes for all that layer on top of it. So, to that end, I'd like to open a discussion on whether and how we should rearchitect OpenWhisk to take advantage of Knative. To kick things off, here's my personal opinion: Kubernetes has won the container orchestration battle. Knative builds on top of Kubernetes and will make Kubernetes the best place to build serverless platforms. Apache OpenWhisk should go all-in on Knative and Kubernetes. We should become the best serverless platform that can be deployed by any cloud provider or company in their own datacenter. We should take the best parts of the OpenWhisk server-side components and get those concepts and knowledge, even if not the direct code, into Knative. OpenWhisk has a lot of real-world knowledge around container pooling, load-balancing, warm and pre-warm containers, etc that Knative will need. Then, we should take the OpenWhisk client tools and extend them to work not just with functions and containers but also more traditional applications. Knative brings the concept of event-driven autoscaling to more than just functions and we should embrace that. We should also integrate Knative's concept of Builds into OpenWhisk client tools, which fills a gap we have today. Finally, we need to reach out to other serverless projects and figure out how we can work together. There's going to be a lot of overlapping and wasted effort in OpenWhisk, Riff, Kubeless, Fission, OpenFaaS, and so on all competing on the developer experience when we're all running on top of Kubernetes and Knative. OpenWhisk is already at the Apache Foundation which makes us a natural vendor-neutral choice for a combined effort. So, discuss! Ben
