无服务器通常与函数即服务(FaaS)产品等同,例如AWS Lambda。但是,无服务器不仅仅是FaaS,FaaS平台允许用户编写在事件发生时执行的小段代码,该平台透明地负责配置运行时,自动扩展和安全性。 FaaS可以看作是将云服务连接在一起并在某些事件发生时执行的粘合剂。Serverless使开发人员可以专注于由事件驱动函数组成的应用程序,这些功能函数可以响应各种触发器。FaaS则平台负责其余工作,例如触发函数的逻辑,从一个函数传递到另一函数的信息,容器的自动配置和运行时(何时,何地和什么),自动缩放,身份管理等。
Knative Knative是一个开放源代码的无服务器平台,它提供了一组中间件组件,以构建可在任何位置运行的现代,以源为中心和基于容器的应用程序:本地,云中或在第三方数据中心。借助Knative,您可以同时获得–零接触配置的容器灵活性和无服务器的快速迭代。 Knative做两件事:服务和事件。
- 服务基于Kubernetes构建,以支持无服务器应用程序和功能的部署和服务。服务提供了FaaS的自动缩放(包括缩放到零)函数以及使用现代网络网关进行的细粒度流量控制。
- 事件提供了使用和生成符合CloudEvents规范(CNCF工作组开发的规范)的事件的构建块。它包括来自事件源的抽象,以及通过可插入发布/订阅代理服务支持的消息传递通道进行的分离传递。
- 经纪人提供事件的桶,可以通过属性选择事件。它接收事件并将其转发给由一个或多个匹配触发器定义的订户。
- 触发器描述了事件属性的过滤器,该事件应传递给可寻址对象。您可以根据需要创建任意数量的触发器。