Knative, 读成Kay.Native, 是一个所谓的基于Kubernetes的serverless实现。跨平台,autoscaling,试图包含软件开发流程的3个主要部分: build, serving, eventing
其中Build包含了如何从程序到容器,serving包含了rollout和autoscaling,eventing包含了事件的管理和事件的消费。
Knative其实和我们传统意义上理解的serverless还不太一样,特别是serverless这个词被Amazon lambda借着Funtion as a Service垄断之后。
它更像是个PaaS+,帮助用户(Dev和Ops)更方便的使用Kubernetes。
叫做Serverless是因为开发人员不再需要worry about具体的程序在哪里部署。但它提交的不是个function。而是个真正的程序。比如官方的例子helloworld,就需要写一个“http:/”的handler。要handle其它更复杂的/path也是可以理解的吧。
这和serverless最初的定义比较吻合吧,比较灵活。但是失去了FaaS的优点,FaaS可是故意把功能缩减,是利用Function之间来构造逻辑的。
这个东东不知道未来前景怎么样。本人的观点是这个东西么有本质上帮助开发人员。Build部分大部分系统都已经有build程序,而这个并没有更好用。Serving也许在autoscaling上有提高就好。Eventing我也比较怀疑能不能比自己subscribe MQ来的更好。
反正不是最热门,也许只是Google想占个地方的努力,serverless+kubernetes俺也有,这么个意思。借着Kubernetes的东风巩固地盘。