Article / 文章中心

Serverless 在阿里集团的大规模落地案例(上)

发布时间:2022-02-10 点击数:600

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 微服务体系

图片7.png

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 后,再进行服务。所以扩容中新增的流量会依然派发到”正在服务中“的实例,不会触发冷发动。