With Serverless being the new next big thing and FaaS-on-Kubernetes projects popping up left and right, it was only a matter of time before Google drove its stake in the ground too.
The platform is based on the container orchestrator Kubernetes, but relies on additional open source projects such as the service mesh Istio and the eventing model Pivotal uses in their Function as a Service project for Kubernetes, riff. At the moment, Knative’s structure is made up of three loosely-coupled components called Build, Eventing, and Serving, which are still very much work-in-progress and will offer developers APIs for deploying serverless functions, applications, and the like.
Build is supposed to provide a method for defining and running on-cluster container image builds. Eventing will help developers let functions publish or subscribe to event streams. Serving – which uses Istio to route traffic – enables deploying and scaling functions. Similar elements are also present in projects such as OpenFaaS, Fission or kubeless, but going by Pivotal’s Dan Baskette, the companies behind Knative hope it will become the go-to-tooling for building functions on Kubernetes, which can then be used in most cloud offerings, since most of them back K8.
According to the documentation, users will still have to implement components to do initial steps like retrieving the function’s code from their repositories, running sequential jobs against shared file systems, building container images and pushing them to a registry or deploying them to a cluster, although templates might be offered. It should also be noted, that the events system, though consistent with the design goals of the CloudEvents specification of the CNCF, is still evolving and will see quite a few changes in the upcoming months.
The Build element in particular might be of interest to the cloud native computing community, since Continuous Integration for containerized applications was one of the issues named as something to work on at the 2018 CloudNativeCon/KubeCon Europe. Though not a standalone solution to the problem, it might serve as a building block to integrate into a larger system. Knative also starts tackling the concern mentioned at the same event, that it is applications and not containers developers want to deploy, which is why some companies seem to struggle with the adoption of Kubernetes.
That being said, Knative isn’t aimed at end-users, but should serve as infrastructure for businesses to build end-user products on top of – which might be the reason for Google Cloud Platform’s initial choice of partnering organisations: SAP, Pivotal, IBM, and Red Hat. Most of them then went on and used Next ‘18 to announce respective products, such as SAP’s open source project Kyma which should help extending traditional SAP applications – and going by its project page also weirdly uses the Kubernetes Native Serverless Framework Kubeless – or Pivotal’s Function Service. Meanwhile Red Hat plans building OpenShift Cloud Functions on Knative.
For anyone interested to learn more about Knative, Kubernetes veteran Joe Beda’s live video stream TGI Kubernetes on Friday, July 27 might be a good place to start.