每个CIO需要了解的有关无服务器的内容:FaaS与Serverless的区别和Knative定位 - triggermesh


无服务器通常与函数即服务(FaaS)产品等同,例如AWS Lambda。但是,无服务器不仅仅是FaaS,FaaS平台允许用户编写在事件发生时执行的小段代码,该平台透明地负责配置运行时,自动扩展和安全性。
FaaS可以看作是将云服务连接在一起并在某些事件发生时执行的粘合剂。Serverless使开发人员可以专注于由事件驱动函数组成的应用程序,这些功能函数可以响应各种触发器。FaaS则平台负责其余工作,例如触发函数的逻辑,从一个函数传递到另一函数的信息,容器的自动配置和运行时(何时,何地和什么),自动缩放,身份管理等。

Knative
Knative是一个开放源代码的无服务器平台,它提供了一组中间件组件,以构建可在任何位置运行的现代,以源为中心和基于容器的应用程序:本地,云中或在第三方数据中心。借助Knative,您可以同时获得–零接触配置的容器灵活性和无服务器的快速迭代。
Knative做两件事:服务和事件。

  • 服务基于Kubernetes构建,以支持无服务器应用程序和功能的部署和服务。服务提供了FaaS的自动缩放(包括缩放到零)函数以及使用现代网络网关进行的细粒度流量控制。
  • 事件提供了使用和生成符合CloudEvents规范(CNCF工作组开发的规范)的事件的构建块。它包括来自事件源的抽象,以及通过可插入发布/订阅代理服务支持的消息传递通道进行的分离传递。

服务:Knative Serving将一组对象定义为Kubernetes自定义资源定义(CRD)。这些对象用于定义和控制无服务器工作负载在集群上的行为。
事件:生产者创建事件之前,任何事件消费者都可以对事件或事件类别表达兴趣。从v0.5开始,Knative Eventing定义了Broker和Trigger对象,使过滤事件变得更加容易。
  1. 经纪人提供事件的桶,可以通过属性选择事件。它接收事件并将其转发给由一个或多个匹配触发器定义的订户。
  2. 触发器描述了事件属性的过滤器,该事件应传递给可寻址对象。您可以根据需要创建任意数量的触发器。

Tekton
Tekton是Kubernetes原生的开源框架,用于创建持续集成和交付(CI / CD)系统。通过抽象出基础实施细节,它使您可以跨多个云提供商或本地系统构建,测试和部署。
作为Kubernetes原生框架,Tekton使跨多个云提供商或混合环境的部署变得更加容易。通过利用Kubernetes中的自定义资源定义(CRD),Tekton使用Kubernetes控制平面来运行管道任务。通过使用标准的行业规范,Tekton将与现有的CI / CD工具(如Jenkins,Jenkins X,Skaffold和Knative)良好地配合使用。
Tekton是持续交付基金会(CDF)的最初项目之一,成员超过25个,是快速发展的CI / CD项目的理事机构,以鼓励和维持与供应商无关的协作和参与。