开发者学堂课程【Serverless 在阿里巴巴的实践:Serverless 在阿里集团的大规模落地案例(上)】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/847/detail/14016
Serverless 在阿里集团的大规模落地案例(上)
内容目录:
一、 为什么选择函数计算 FC
二、 FC 集团规模化落地技术方案
三、 FC 集团规模化落地案例
一、为什么选择函数计算 FC
(一) Serverless 未来趋势
l 函数计算 (FC):
面向函教,基于事件驱动与云产品间集成提供端到端的爆决方案,用户只需编写代码上传后,为代码实际产生的请求资源消耗付费。
l Serverless 应用引擎( SAE):
面向应用,提供面向微服务的 U I 和 API,抽象了应用的概念并对用户屏蔽底层,Kubemetes 的技术细节, 降低用户的使用门槛。
l Serverless Kubernetes Serverless Addon:
面向容器,底层使用 ECI,标准的 Kubernetes UI 和 API 用户界面,主要提供原生Kubernetes 的生态。
l ECI:
面向 laaS 资源层,提供容器 /Pod 级别的运行环境,用户快速运行容器,只为容器实际消。
l 函数计算 FC 是国内出现最早、应用最广泛的 Serverless 形态,是云原生产品技术的全面升级。
(二)全面 Serverless—中间件 4.0战略
l 云上服务的“集大成者”,Serverless 计算平台可以轻松应对各种突发流量,最大化云原生价值
l Serveress ( No Server,提升研发和运维效率)
l Serveress ( No Server,提升研发和运维效率)
l BaaS(Backend As Serice ,产品化,全部采用公有云产品,提供 99.9% 高可用, 统一控制面,提供灵活调度能力,支持中心容灾)
l 微服务体系
l 消息体系
l 可观测体系
l 高可用
(三)Serverless 软件架构
(四)阿里云函数计算核心优势
l 智能弹性
l 极致效率
l 开放标准
l 安全稳定
l 函数计算能力全面升级,新发布包括容器镜像、APM、消息生态全面集成等领先功能
(五)集团 Serverless 的痛点
l 弹性弱
l 不降本
l 非标准
l 重复造轮子,不专一,产品化不够
(六)集团 Serverless 平台的优势
l 集成度高
l 技术生态强
l 业务流量大
l 深度融入集团内技术体系,切合集团内用户习惯
二、FC 集团规模化落地技术方案
(一)函数计算是如何工作的
事件源:
l 日志服务
l 对象存储
l 表格储存
l 消息服务
l API网关
l CDN
直接调用:
l Node.js SDK
l Python SDK
l Java SDK
l PHP SDK
l Golang SDK
函数计算:
l APL Server接受请求
l 分配环境
(一) 函数计算同步调用
特性:
1. 服务端会立即返回计算结果
2. 执行过程中遇到错误,会将错误返回客户端,函数计算不会对错误进行重试,需要客户端添加重试机制
(三)函数计算异步调用
特性:
1. 异步调用将触发请求放到队列中就返回,不会等待函数调用结束。
2. 执行过程中遇到错误,会对错误进行重试,函数错误重试三次,系统错误会以指数退避方式无限重试。
3. 适用于批量数据处理。
(四)函数计算事件源集成
丰富的事件源:
l 对象存储
l API网关
l 消息服务
l 表格存储
l 日志服务
l HTTP
l 定时器
l IOT
l DataHub
l CDN
l 云监控
l 云呼叫中心
事件驱动,简化编程模型,编写少量的代码即可串联多个服务实现复杂的功能
l 全托管 serverless
l 任意类型任务编排
l 分布式协调、 状态管理
(五)集团落地 FC 整体架构方案
(六)极致 Serverless 性能—消除冷启动
系统冷启动
l 调度实例
l 下载并解压代码
l 启动实例
避免冷启动
l 使用预留实例可以完全避免冷启动
l 降低代码包大小
l 使用 Initializer 函数
l 保持请求连续稳定
预留模式+按量模式=保证资源弹性+消除冷启动方案:
预留实例:
l 根据产品流量曲线,很容易得出固定流量是多少。
l 这部分流量用“预留模式”
l 适合冷启动敏感的业务
按量模式:
l Brust 流量可以用按量模式,支持二种模式扩容 KPA:按照用户设置的并发度进行扩容
l HPA:按照用户设置的 CPU 利用率阅值进行扩容
l 如果两者都进行设置,两个指标谁先到达,就会触发扩容
扩容中的实例,不会立即接收流量,而是实例 Ready 后,再进行服务。所以扩容中新增的流量会仍然派发到”正在服务中“的实例,不会触发冷启动。