首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于 Kubernetes 集群的 Serverless 在 IoT 中的应用(2)Serverless 的技术种类

基于 Kubernetes 集群的 Serverless 在 IoT 中的应用(2)Serverless 的技术种类

Serverless 的技术种类Serverless 较早在公有云上得到了实现,大多基于闭源的技术。但近年来,基于开源、可在私有云上部署的 Serverless                架构发展很快。
接下来,我们看一下主流 Serverless 技术种类和其启动的时间:
表 1. Serverless                    技术种类项目是否开源是否支持 Kubernetes启动时间  Yes  Yes  2017                         Apache OpenWhisk  Yes  Yes  2015                         Fission  Yes  Yes  2016                         Funktion  Yes  Yes  2017                         Project Riff  Yes  Yes  2017                         Amazon Lambda  No  No  2014                         Azure Functions  No  No  2016                         Google Cloud Functions (beta)  No  No  2016                        
在 Serverless 的相关开源社区中,Apache OpenWhisk 是规模最大的,同时还支持 Kubernetes,该项目由 IBM 在                2016 年公布并贡献给开源社区。因此,本文接下来将针对 OpenWhisk 在私有 Kubernetes 上展开。
OpenWhisk 的核心概念在 OpenWhisk                中有六个较为核心的概念:Triger、Action、Rule、Sequence、Package、Feeds,我们先介绍这六个概念的含义。
Trigger 是一类事件的命名通道,以便 OpenWhisk 具备事件驱动的能力。以下是触发器的示例:
  • 位置更新事件的触发器。
  • 文档上传到网站的触发器。
  • 传入电子邮件的触发器。
  • 可以使用键值对字典来触发(激活)触发器。
Action 是无状态函数,它封装了要在 OpenWhisk 平台上运行的代码。一个 Action 可以写成                JavaScript、Swift、Python 或 PHP 函数、Java 方法,任何二进制兼容的可执行文件,包括 Go 程序和打包为 Docker                容器的自定义可执行文件。
Action 可以显式调用操作,也可以响应事件运行操作。每次运行操作都会生成由唯一激活 ID 标识的激活记录。Action 的输入和 Action                的结果是键值对的字典,其中键是字符串,值是有效的 JSON 值。Action 也可以由对其他 Action 的调用或定义的 Action                序列组成。
Rule 将一个 Trigger 与一个 Action 相关联,Trigger 的每次触发都会导致以 Trigger                事件作为输入调用相应的操作。
使用适当的规则集,单个触发器事件可以调用多个操作,或者可以调用操作作为对来自多个触发器的事件的响应。
图 1.                    Trigger、Rule 和 Action 之间的关系
在了解了 Triger、Action、Rule                三个概念以及三者之间的关系后,接下来,我们再看另外三个概念:Sequence、Package、Feeds。
Sequence: 比较好理解,它创建 Action 之间的调用关系。OpenWhisk                提供将多个操作链接在一起的功能,其中一个操作的输出是另一个操作的输入。此功能称为序列。序列是完全独立的操作,并定义了执行操作的顺序。
Package: 我们可以将多个相关 Action 组合放到一个 Package 中。Package                允许将常见的资源集(例如参数)应用于多个 Action。
Feeds: 本质的作用是将环境外部的事件连接到 Trigger 上。Feed 是 OpenWhisk                中的一个高级概念,用户可以在 Package 中暴露 event producer service。Feed 由 Feed Action                控制,Feed Action 处理删除、暂停和恢复事件流。
返回列表