Serverless 在阿里集團(tuán)的大規(guī)模落地案例(上)
Serverless 在阿里集團(tuán)的大規(guī)模落地事例(上)
內(nèi)容目錄:
一、 為什么選擇函數(shù)核算 FC
二、 FC 集團(tuán)規(guī)?;涞丶寄苡?jì)劃
三、 FC 集團(tuán)規(guī)?;涞厥吕?
一、為什么選擇函數(shù)核算 FC
(一) Serverless 未來趨勢(shì)
l 函數(shù)核算 (FC):
面向函教,根據(jù)事情驅(qū)動(dòng)與云產(chǎn)品間集成供給端到端的爆決計(jì)劃,用戶只需編寫代碼上傳后,為代碼實(shí)踐產(chǎn)生的懇求資源耗費(fèi)付費(fèi)。
l Serverless 使用引擎( SAE):
面向使用,供給面向微服務(wù)的 U I 和 API,抽象了使用的概念并對(duì)用戶屏蔽底層,Kubemetes 的技能細(xì)節(jié), 下降用戶的使用門檻。
l Serverless Kubernetes Serverless Addon:
面向容器,底層使用 ECI,規(guī)范的 Kubernetes UI 和 API 用戶界面,首要供給原生Kubernetes 的生態(tài)。
l ECI:
面向 laaS 資源層,供給容器 /Pod 級(jí)別的運(yùn)轉(zhuǎn)環(huán)境,用戶快速運(yùn)轉(zhuǎn)容器,只為容器實(shí)踐消。
l 函數(shù)核算 FC 是國內(nèi)呈現(xiàn)最早、使用最廣泛的 Serverless 形狀,是云原生產(chǎn)品技能的全面晉級(jí)。
(二)全面 Serverless—中間件 4.0戰(zhàn)略
l 云上服務(wù)的“集大成者”,Serverless 核算渠道能夠輕松應(yīng)對(duì)各種突發(fā)流量,最大化云原生價(jià)值
l Serveress ( No Server,提高研制和運(yùn)維功率)
l Serveress ( No Server,提高研制和運(yùn)維功率)
l BaaS(Backend As Serice ,產(chǎn)品化,悉數(shù)選用公有云產(chǎn)品,供給 99.9% 高可用, 統(tǒng)一控制面,供給靈敏調(diào)度能力,支撐中心容災(zāi))
l 微服務(wù)體系
l 音訊體系
l 可觀測(cè)體系
l 高可用
(三)Serverless 軟件架構(gòu)
(四)阿里云函數(shù)核算中心優(yōu)勢(shì)
l 智能彈性
l 極致功率
l 敞開規(guī)范
l 安全安穩(wěn)
l 函數(shù)核算能力全面晉級(jí),新發(fā)布包含容器鏡像、APM、音訊生態(tài)全面集成等搶先功用
(五)集團(tuán) Serverless 的痛點(diǎn)
l 彈性弱
l 不降本
l 非規(guī)范
l 重復(fù)造輪子,不專注,產(chǎn)品化不夠
(六)集團(tuán) Serverless 渠道的優(yōu)勢(shì)
l 集成度高
l 技能生態(tài)強(qiáng)
l 事務(wù)流量大
l 深度融入集團(tuán)內(nèi)技能體系,切合集團(tuán)內(nèi)用戶習(xí)氣
二、FC 集團(tuán)規(guī)?;涞丶寄苡?jì)劃
(一)函數(shù)核算是如何工作的
事情源:
l 日志服務(wù)
l 目標(biāo)存儲(chǔ)
l 表格儲(chǔ)存
l 音訊服務(wù)
l API網(wǎng)關(guān)
l CDN
直接調(diào)用:
l Node.js SDK
l Python SDK
l Java SDK
l PHP SDK
l Golang SDK
函數(shù)核算:
l APL Server接受懇求
l 分配環(huán)境
(一) 函數(shù)核算同步調(diào)用
特性:
1. 服務(wù)端會(huì)立即回來核算結(jié)果
2. 履行過程中遇到過錯(cuò),會(huì)將過錯(cuò)回來客戶端,函數(shù)核算不會(huì)對(duì)過錯(cuò)進(jìn)行重試,需要客戶端添加重試機(jī)制
(三)函數(shù)核算異步調(diào)用
特性:
1. 異步調(diào)用將觸發(fā)懇求放到行列中就回來,不會(huì)等待函數(shù)調(diào)用結(jié)束。
2. 履行過程中遇到過錯(cuò),會(huì)對(duì)過錯(cuò)進(jìn)行重試,函數(shù)過錯(cuò)重試三次,體系過錯(cuò)會(huì)以指數(shù)退避方法無限重試。
3. 適用于批量數(shù)據(jù)處理。
(四)函數(shù)核算事情源集成
豐厚的事情源:
l 目標(biāo)存儲(chǔ)
l API網(wǎng)關(guān)
l 音訊服務(wù)
l 表格存儲(chǔ)
l 日志服務(wù)
l HTTP
l 定時(shí)器
l IOT
l DataHub
l CDN
l 云監(jiān)控
l 云呼叫中心
事情驅(qū)動(dòng),簡(jiǎn)化編程模型,編寫少量的代碼即可串聯(lián)多個(gè)服務(wù)完成雜亂的功用
l 全托管 serverless
l 任意類型使命編列
l 分布式協(xié)調(diào)、 狀況管理
(五)集團(tuán)落地 FC 整體架構(gòu)計(jì)劃
(六)極致 Serverless 性能—消除冷發(fā)動(dòng)
體系冷發(fā)動(dòng)
l 調(diào)度實(shí)例
l 下載并解壓代碼
l 發(fā)動(dòng)實(shí)例
防止冷發(fā)動(dòng)
l 使用預(yù)留實(shí)例能夠完全防止冷發(fā)動(dòng)
l 下降代碼包巨細(xì)
l 使用 Initializer 函數(shù)
l 保持懇求連續(xù)安穩(wěn)
預(yù)留形式+按量形式=保證資源彈性+消除冷發(fā)動(dòng)計(jì)劃:
預(yù)留實(shí)例:
l 根據(jù)產(chǎn)品流量曲線,很簡(jiǎn)單得出固定流量是多少。
l 這部分流量用“預(yù)留形式”
l 合適冷發(fā)動(dòng)靈敏的事務(wù)
按量形式:
l Brust 流量能夠用按量形式,支撐二種形式擴(kuò)容 KPA:依照用戶設(shè)置的并發(fā)度進(jìn)行擴(kuò)容
l HPA:依照用戶設(shè)置的 CPU 利用率閱值進(jìn)行擴(kuò)容
l 如果兩者都進(jìn)行設(shè)置,兩個(gè)指標(biāo)誰先到達(dá),就會(huì)觸發(fā)擴(kuò)容
擴(kuò)容中的實(shí)例,不會(huì)立即接納流量,而是實(shí)例 Ready 后,再進(jìn)行服務(wù)。所以擴(kuò)容中新增的流量會(huì)依然派發(fā)到”正在服務(wù)中“的實(shí)例,不會(huì)觸發(fā)冷發(fā)動(dòng)。