谷歌想要让Serverless计算足够容易,连大企业都易于使用。本周,谷歌公开发布了一个名为Knative的新开源项目(https://github.com/knative),旨在让企业组织和服务提供商得以搭建这样的Serverless基础设施:可以跨多个公共云或者在企业内部运行同样的容器化代码,基本上不需要开发人员操心什么。
谷歌云的产品管理总监奥伦•泰奇(Oren Teich)在近日召开的谷歌Next 2018大会上介绍这项技术时说:“Knative的目的完全在于,将Serverless的构建模块整合起来,为你提供工作负载易于移植的这个优点。”
Knative建立在Kubernetes编排引擎和Istio服务网格之上,不过开发人员不需要了解这两者的复杂性,就能享受到好处。泰奇告诉与会人士:“Knative不是为最终用户设计的,它是为用户能够在其上面构建产品的基础设施部分设计的。”软件让用户无需操心在云原生环境中准备和运行应用程序的所有步骤,包括容器构建过程、编排、路由及流量管理、负载均衡及自动扩展以及服务绑定。
Knative有三个不同的组件来处理下列任务:容器自动构建(automated container builds)、容器服务(container serving)和事件绑定(event binding)。构建服务充分利用Kubernetes基元,在集群上利用源代码构建容器。服务组件提供了中间件,以快速部署容器和根据需求扩展容器,路由和获取已部署的代码和配置的时间点快照。
泰奇说:“最终,我们的目标是依托该项目将Serverless界整合起来。我们的希望是打造整个生态系统,以便推出的Serverless产品能够兼容、可移植。”
为此,SAP、IBM、Red Hat、Pivotal及其他公司都为该项目做出了贡献。SAP计划使用Knative为自己的开发人员简化开发过程,开发人员只需操心自己编写的代码。SAP使用KNative的早期封闭测试版,构建了一个名为Kyma的轻量级框架,用于将SAP的商业产品组合扩展到云原生环境。
Red Hat计划将Knative与其OpenShift这个商业Kubernetes发行版及自己的Operators框架结合起来,提供一种实现自动化运维的多云容器平台。Pivotal正将Knative纳入到即将发布的Pivotal Function Server,得到了该公司用于构建事件驱动型函数的Riff软件的帮助。
IBM院士兼IBM云副总裁杰森·麦吉(Jason McGee)在介绍Knative与IBM自己的函数即服务软件OpenWhisk如何联系时写道:“有朝一日,Knative让开发人员能够使用Apache OpenWhisk,以Serverless的方式编排云应用程序的所有部分,比如运行容器和函数即服务事件,这一切都按需提供、按需实现。这有望显著扩大可以使用OpenWhisk等Serveless工具的范围,从原来的函数进化成生产环境中全尺寸应用软件的完整基础。”
谷歌最先提出了这个想法,以此为谷歌应用引擎和谷歌云功能(GCF)提供Serverless容器服务。根据谷歌规范的定义,这些容器并不写到本地磁盘,完全采用请求-响应模式来运行。
谷歌预览了GCF上的一种新服务:Serverless Containers,它可以运行符合规范的任何容器。现在,除了接纳代码外,GCF还接纳容器并执行容器。该服务定于今年晚些时候亮相,不过现对alpha测试人员开放。
泰奇说:“我们意识到容器不仅仅是包装格式,还是交换格式。”泰奇演示了如何使用服务,结合了开源Blender 3D渲染软件包的容器化版本。
在谷歌Next 2018大会上首次亮相的还有GKE On-Prem,GKE的这个发行版可以在内部运行。它包括一个基于Knative而建的Serverless附件,让针对GCF容器化的应用软件可在内部运行,因而消除了重复代码。