深入浅出介绍如何实现一个云函数的架构,函数架构中都有哪些核心的模块,以及云函数中遇到的典型的冷启动的问题及优化思路。

注脚

展开查看详情

1.云+社区技术沙龙

2.无服务器云函数(SCF)架构精解

3. 个人简介 周维跃(Scott Zhou) 目前担任腾讯云Serverless平台研发负责人 2008年加入腾讯,曾经负责过消息队列中间件、域 名&DNSPod,虚拟机等产品。其中,通过虚拟机大 规模热迁移调度技术,实现了毛利率50%以上的增长 近期聚焦在Serverless架构中函数冷启动优化、自动 扩缩容、函数与云资源互联互通等核心能力建设 平时喜欢长途自驾穿越,旅行摄影

4.大纲

5. 1.1 FaaS能做什么? FaaS让开发者更聚焦业务逻辑,把其他的事情留给平台

6.1.2 FaaS的演化 提升企业效率 降低企业支出

7. 1.3 FaaS是什么? 后台的业务逻辑以“函数”承载 公共的业务逻辑以“服务”承载

8.1.4 FaaS不仅仅是计算

9.大纲

10. 2.1 分层设计模型 FaaS平台主流的实现方案是基于K8S或容器构建

11.2.2 函数平台架构

12. 2.3 运行模式-请求和容器的关系 函数容器按需部署,客户端的并发请求数等于函数容器实例的个数

13. 2.4 问题和挑战 FaaS场景下的高并发、大规模、安全、快速启动给基础设施带来巨大的挑战

14.大纲

15.3.1 什么是函数的冷启动? 函数第一次调用时的环境准备过程

16.3.2 FaaS中的冷启动过程

17. 3.2.1 函数实例复用 保留多久合适? 3分钟,能解决95%的问题 3小时,能解决99%的问题 3天,能解决99.9%的问题 保留时间并非固定不变的值,需要分析函数特点和时间段

18. 3.2.2 容器实例预创建 预创建一批不同规格的容器(不含代码) 池子太小影响体验,池子太大占用成本

19. 3.2.3 热点代码缓存 热点代码二级缓存 一级:Node本地缓存 二级:Zone机房缓存 缓存需要资源调度的配合,找到代码在哪里

20. 3.2.4 网络优化-转发网关 函数实例启动过程中动态绑定 函数创建过程中提前绑定 优化效果:冷启动时间从秒级到毫秒级,极大的减少弹性网卡(私有IP)的消耗

21.3.2.5 预启动 核心需要解决的三个问题 1、如何确定是否需要扩容 保留固定余量、机器学习 2、提升扩容请求响应时间 3、降低函数实例启动时间 不是所有场景都需要提前扩容:异步,计划任务,间接触发

22. 3.3 链式预启动 冷启动的时延成倍增加,单函数启动时延*调用层级数

23.3.4 可预知的扩容场景

24.3.5 开发者可以做些什么? 缩短下载时间 缩短执行时间 增加缓存效果 避免资源回收

25.大纲

26.4.1 相册应用

27. 4.2 消息处理 日志处理场景、大数据场景、异步业务逻辑场景

28. 4.3 业务案例-计划任务 完全兼容Crontab的语法,避免单机故障

29.4.4 FaaS的价值