KubeCon 2019 上海大会的 Serverless 专场,信息量确实不小。几场分享下来,从冷启动优化到深度学习平台重构,再到事件标准与工作流编排,基本覆盖了当下无服务器生态的核心议题。这里把各场演讲的要点整理出来,供参考。
Knative 及 Serverless 相关会议
加速:无服务器平台中的冷启动优化
时间:上午11:00~11:35
这个分享聚焦于 Serverless 函数服务的冷启动痛点,从四个维度给出了优化方案。轻量级 VM 方面,基于 QEMU 构建更轻量的虚拟机,预先配置好 VPC 路由,并通过 VM 模板快速生成实例。代码缓存采用两级策略:节点缓存加 Zone(机房)缓存,减少重复拉取。实例预热则通过算法提前扩容,并预先加载函数依赖。VPC 网络加载环节,将网络袋里的创建从代码运行时提前到代码创建时,提前申请 ENI,从而缩短函数运行时的网络绑定耗时。
利用 Knative 发展深度学习平台
时间:上午11:45~12:20
这场分享介绍了如何用 Knative 重构深度学习平台。镜像构建方面,使用 Tektoncd-pipeline(后续会替换 Knative Build)替代原有方式,通过 Task 来构建镜像。流量管理上,借助 Knative 的 Route 实现灰度发布等需求,并利用极致的弹性能力实现自动扩容。自定义 autoscale 能力让不同弹性策略可以灵活适配。冷启动处理做了三件事:升级 Istio 解决 sidecar 注入延迟、提前拉取镜像、activator 收到请求时提前进行扩容。资源层面,通过 Virtual Kubelet 构建资源池,满足 Serverless 按需分配的需求。还提到了 Knative 与 Edge 的结合,实现边缘端的极致弹性。最后,利用 Knative Eventing 构建基于事件的业务处理。
Knative Serving 内部介绍
时间:下午 13:35~14:10
从灰度发布场景切入,对比 Kubernetes 中的实现方式,由浅入深地介绍了 Knative Serving 中 Service、Configuration、Route、Revision 四个角色的作用,最后演示了如何通过 Knative Serving 实现灰度发布。
CNCF CloudEvents 项目:迈向无服务器互操作的一步
时间:下午14:20~14:55
来自 IBM 的 Da vis 介绍了 CloudEvents 的诞生与发展,以及协议的具体内容。CloudEvents 统一了事件标准,促进了系统间的跨平台集成。最后演示了一个基于 CloudEvents 事件驱动的动画 Demo——不同 Coffee 屋供应商可以基于统一的事件模型进行驱动,直观体现了事件的互操作性。
通过 Knative 和 Apache Camel 构建云集成应用
时间:下午15:05~15:45
这个主题主要介绍了如何将 Apache Camel 与 Knative 结合使用。通过 Camel-K 事件源接入 Camel,接收消息事件并进行处理。
CNCF 无服务器工作组:我们要发展到哪里
时间:下午16:00 ~16:30
同样是 IBM 的 Da vis,继 CloudEvents 之后继续分享了无服务器工作组接下来的发展方向。针对事件处理缺乏编排方式的问题,构建 Workflow 工作流(即事件编排)成为下一步重点。下面是 Workflow 处理流程的示意图。
在无服务器平台 Apache OpenWhisk 上创建物联网应用
时间:16:45 ~17:20
最后一场是关于无服务器平台与物联网结合的实践,来自 IBM 的嘉宾分享了开源 Serverless 平台 Apache OpenWhisk 如何与 IoT 场景结合。具体包括:通过 OpenWhisk 进行数据格式转换、过滤清洗等数据存储后的处理;利用事件驱动调用服务进行数据分析、机器学习等;流数据检测方面,对检测到的异常事件进行告警;边缘计算上的 Serverless 能力还在探索中,比如针对跨云端和边缘的业务实现统一事件驱动。
感想
从本次 KubeCon 会议上 Serverless 及 Knative 的议题和观众反馈来看,无服务器标准的制定、实际场景的应用以及未来的发展正在吸引越来越多的关注。而作为 CNCF 标准下的 Serverless 编排工具,Knative 也开始初露锋芒。可以预见,接下来会有更多企业及用户参与到 Serverless 的探索与实践中。
