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