<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          獨(dú)家連載!阿里云官方出品《Serverless 架構(gòu)下的 AI 應(yīng)用開發(fā)》

          共 9868字,需瀏覽 20分鐘

           ·

          2022-08-25 23:03


          隨著時間的推移,Serverless 架構(gòu)變得越來越火熱,憑借著極致彈性、按量付費(fèi)、低成本運(yùn)維等特性,在很多領(lǐng)域發(fā)揮著越來越重要的作用;機(jī)器學(xué)習(xí)領(lǐng)域在近些年也非常火熱,并在越來越多的行業(yè)中得到應(yīng)用。

          實(shí)際上,機(jī)器學(xué)習(xí)項(xiàng)目中一直存在兩大難題:

          • 資源占用率高、利用率低,尤其在流量波峰和波谷差值較大的項(xiàng)目中,資源浪費(fèi)更為顯著

          • 部署、更新、維護(hù)復(fù)雜度高;

          而 Serverless 具有極致彈性、按量付費(fèi)、低成本運(yùn)維等特性,若將 Serverless 架構(gòu)應(yīng)用在機(jī)器學(xué)習(xí)項(xiàng)目中,在保證機(jī)器學(xué)習(xí)項(xiàng)目性能的同時,降低成本,又能提高資源利用率,是非常值得研究和探索的課題。

          基于此,由阿里云官方出品,來自阿里云、螞蟻集團(tuán)的 4 位專家劉宇、田初東、盧萌凱、王仁達(dá)(排名不分先后)系統(tǒng)梳理阿里在 Serverless 架構(gòu)下的 AI 經(jīng)驗(yàn),聯(lián)袂推出新書??《Serverless 架構(gòu)下的 AI 應(yīng)用開發(fā):入門、實(shí)戰(zhàn)與性能優(yōu)化》 


          新書將在免費(fèi)在 Serverless  公眾號連載,歡迎大家訂閱關(guān)注


          -關(guān)注我們-


          了解Serverless最新動態(tài),獲取更多技術(shù)干貨!



          前言




          本書是一本關(guān)于 Serverless 架構(gòu)下機(jī)器學(xué)習(xí)實(shí)戰(zhàn)的技術(shù)書,通過對 Serverless 架構(gòu)的基礎(chǔ)介紹、項(xiàng)目開發(fā)經(jīng)驗(yàn)總結(jié),以及常見的機(jī)器學(xué)習(xí)算法、模型、框架的學(xué)習(xí),對將機(jī)器學(xué)習(xí)項(xiàng)目應(yīng)用到 Serverless 架構(gòu)、不同機(jī)器學(xué)習(xí)項(xiàng)目與 Serverless 架構(gòu)結(jié)合以及基于 Serverless 架構(gòu)進(jìn)行機(jī)器學(xué)習(xí)應(yīng)用開發(fā)等內(nèi)容進(jìn)行了探索。

          我們希望通過簡單明了的語言、真實(shí)的案例,以及開放的源代碼,為讀者介紹 Serverless 架構(gòu)與機(jī)器學(xué)習(xí)相關(guān)的基礎(chǔ)知識。希望讀者可以通過本書真正理解 Serverless 架構(gòu)與機(jī)器學(xué)習(xí)結(jié)合的重要價值,并能順利在 Serverless 架構(gòu)下開發(fā)、上線機(jī)器學(xué)習(xí)項(xiàng)目,從而更加直接地獲得云計算帶來的技術(shù)紅利。


          本書不僅有基礎(chǔ)理論知識,還有大量的經(jīng)驗(yàn)分享,以及對最新技術(shù)點(diǎn)的實(shí)踐應(yīng)用,包括但不限于 Serverless 架構(gòu)下 GPU 實(shí)例的上手、多維度的冷啟動優(yōu)化方案、Serverless 架構(gòu)多模調(diào)試能力等。
          我們希望讀者通過對本書的學(xué)習(xí),可以對 Serverless 架構(gòu)有一個更加全面、直觀的了解,對 Serverless 架構(gòu)下的機(jī)器學(xué)習(xí)有更加深入的認(rèn)識。同時,希望通過本書的拋磚引玉,幫助讀者將機(jī)器學(xué)習(xí)項(xiàng)目在 Serverless 架構(gòu)下落地,獲得云計算發(fā)展的技術(shù)紅利。

          本書共 8 章內(nèi)容,可上拉下滑查看目錄 ↓

          序言
          前言
          第1章 初識Serverless架構(gòu)
          1.1 Serverless架構(gòu)的概念
          1.2 Serverless架構(gòu)的特點(diǎn)
          1.2.1 優(yōu)勢與價值
          1.2.2 面臨的挑戰(zhàn)
          1.3 Serverless架構(gòu)的應(yīng)用場景
          第2章 Serverless架構(gòu)下的應(yīng)用開發(fā)
          2.1 Serverless架構(gòu)下的應(yīng)用開發(fā)流程
          2.2 與ServerFul應(yīng)用開發(fā)流程對比
          2.3 傳統(tǒng)Web框架部署與遷移
          2.3.1 請求集成方案
          2.3.2 其他方案
          2.4 Serverless應(yīng)用的開發(fā)和部署
          2.4.1 如何開發(fā)、部署Serverless應(yīng)用
          2.4.2 如何對Serverless應(yīng)用進(jìn)行調(diào)試
          2.4.3 通過開發(fā)者工具進(jìn)行依賴安裝和項(xiàng)目構(gòu)建
          2.4.4 Serverless架構(gòu)與CI/CD工具的結(jié)合
          2.5 Serverless應(yīng)用的可觀測性
          第3章 機(jī)器學(xué)習(xí)入門
          3.1 什么是人工智能
          3.1.1 人工智能、機(jī)器學(xué)習(xí)和深度學(xué)習(xí)
          3.1.2 人工智能的發(fā)展
          3.1.3 人工智能的典型應(yīng)用場景
          3.2 常用的機(jī)器學(xué)習(xí)算法
          3.2.1 常見的監(jiān)督學(xué)習(xí)算法
          3.2.2 常見的無監(jiān)督學(xué)習(xí)算法
          3.2.3 其他常見的深度學(xué)習(xí)模型
          第4章 主流機(jī)器學(xué)習(xí)框架與Serverless架構(gòu)結(jié)合
          4.1 scikit-learn與Serverless架構(gòu)結(jié)合
          4.1.1 scikit-learn介紹
          4.1.2 scikit-learn實(shí)踐:鳶尾花數(shù)據(jù)分類
          4.1.3 與Serverless架構(gòu)結(jié)合:文本分類
          4.2 TensorFlow與Serverless架構(gòu)結(jié)合
          4.2.1 TensorFlow介紹
          4.2.2 TensorFlow實(shí)踐:基于人工智能的衣物區(qū)分
          4.2.3 與Serverless架構(gòu)結(jié)合:目標(biāo)檢測系統(tǒng)
          4.3 PyTorch與Serverless架構(gòu)結(jié)合
          4.3.1 PyTorch介紹
          4.3.2 PyTorch實(shí)踐:圖像分類系統(tǒng)
          4.3.3 與Serverless架構(gòu)結(jié)合:對姓氏進(jìn)行分類
          4.4 PaddlePaddle與Serverless架構(gòu)結(jié)合143
          4.4.1 PaddlePaddle介紹
          4.4.2 PaddlePaddle實(shí)踐:手寫數(shù)字識別任務(wù)
          4.4.3 與Serverless架構(gòu)結(jié)合:Paddle-OCR項(xiàng)目開發(fā)與部署
          第5章 Serverless架構(gòu)下的AI項(xiàng)目實(shí)戰(zhàn)
          5.1 Serverless架構(gòu)下的AI應(yīng)用
          5.1.1 項(xiàng)目的開發(fā)與部署
          5.1.2 冷啟動優(yōu)化
          5.1.3 訓(xùn)練與推理性能優(yōu)化
          5.1.4 模型更新迭代方案
          5.2 模型升級在Serverless架構(gòu)下的實(shí)現(xiàn)與應(yīng)用
          5.2.1 模型升級迭代需求背景介紹
          5.2.2 貓狗識別項(xiàng)目訓(xùn)練
          5.2.3 將模型部署到Serverless架構(gòu)
          5.2.4 用戶反饋與模型迭代
          5.2.5 項(xiàng)目總結(jié)
          5.3 人臉識別在Serverless架構(gòu)下的應(yīng)用
          5.3.1 人臉識別技術(shù)介紹
          5.3.2 人臉識別模型訓(xùn)練
          5.3.3 人臉識別模型的應(yīng)用
          5.3.4 項(xiàng)目Serverless化
          5.3.5 項(xiàng)目總結(jié)
          5.4 文本情感分析在Serverless架構(gòu)下的應(yīng)用
          5.4.1 文本情感分析介紹
          5.4.2 情感分析模型的訓(xùn)練
          5.4.3 部署到Serverless架構(gòu)
          5.4.4 項(xiàng)目Serverless化
          5.4.5 項(xiàng)目總結(jié)
          第6章 基于Serverless架構(gòu)的智能問答系統(tǒng)
          6.1 需求分析
          6.2 整體設(shè)計
          6.2.1 數(shù)據(jù)庫設(shè)計
          6.2.2 原型圖設(shè)計
          6.2.3 接口設(shè)計
          6.2.4 架構(gòu)設(shè)計
          6.3 項(xiàng)目開發(fā)
          6.3.1 項(xiàng)目初始化
          6.3.2 數(shù)據(jù)庫與表的建設(shè)
          6.3.3 管理后臺相關(guān)能力的配置
          6.3.4 業(yè)務(wù)邏輯開發(fā)
          6.4 項(xiàng)目部署與運(yùn)維
          6.5 項(xiàng)目預(yù)覽
          6.6 項(xiàng)目總結(jié)
          第7章 基于Serverless架構(gòu)的人工智能相冊小程序
          7.1 需求分析
          7.2 整體設(shè)計
          7.2.1 數(shù)據(jù)庫設(shè)計
          7.2.2 原型圖設(shè)計
          7.2.3 細(xì)節(jié)設(shè)計
          7.2.4 架構(gòu)設(shè)計
          7.3 項(xiàng)目開發(fā)
          7.3.1 項(xiàng)目初始化
          7.3.2 小程序開發(fā)
          7.3.3 服務(wù)端開發(fā)
          7.3.4 管理系統(tǒng)開發(fā)
          7.4 項(xiàng)目預(yù)覽
          7.5 經(jīng)驗(yàn)積累
          7.5.1 Web框架與阿里云函數(shù)計算
          7.5.2 如何進(jìn)行本地調(diào)試
          第8章 Serverless應(yīng)用的優(yōu)化與注意事項(xiàng)
          8.1 函數(shù)基礎(chǔ)與資源編排
          8.1.1 函數(shù)并不是“函數(shù)”
          8.1.2 對無狀態(tài)性的認(rèn)識
          8.1.3 資源評估的重要性
          8.1.4 工作流的加持
          8.2 警惕冷啟動
          8.2.1 云廠商側(cè)的冷啟動優(yōu)化方案
          8.2.2 開發(fā)者側(cè)降低冷啟動影響的方案
          8.3 應(yīng)用開發(fā)注意事項(xiàng)
          8.3.1 如何上傳文件
          8.3.2 文件讀寫與持久化方法
          8.3.3 慎用部分Web框架的特性
          8.3.4 應(yīng)用組成結(jié)構(gòu)注意事項(xiàng)
          8.3.5 如何實(shí)現(xiàn)WebSocket
          8.3.6 善于利用平臺特性


          第 1 章:介紹 Serverless 架構(gòu)基礎(chǔ),包括 Serverless 架構(gòu)的發(fā)展、優(yōu)勢、面臨的挑戰(zhàn)等;
          第 2 章:從 Serverless 架構(gòu)的開發(fā)流程、與 ServerFul 開發(fā)流程的對比、傳統(tǒng)框架遷移等多個方面,對 Serverless 架構(gòu)下的應(yīng)用開發(fā)進(jìn)行相關(guān)介紹;
          第 3 章:介紹機(jī)器學(xué)習(xí)相關(guān)的探索,包括對支持向量機(jī)、神經(jīng)網(wǎng)絡(luò)等算法和模型的學(xué)習(xí)與研究;
          第 4 章:介紹常見的機(jī)器學(xué)習(xí)框架以及在實(shí)戰(zhàn)項(xiàng)目中的應(yīng)用,便于讀者了解常見的機(jī)器學(xué)習(xí)框架,以及部署到 Serverless 架構(gòu)的方案等;
          第 5 章:介紹幾個機(jī)器學(xué)習(xí)應(yīng)用較為廣泛的領(lǐng)域的項(xiàng)目實(shí)戰(zhàn),包括圖像識別領(lǐng)域、情感分析領(lǐng)域以及對模型升級迭代相關(guān)領(lǐng)域的探索,涉及容器鏡像、預(yù)留實(shí)例、GPU 實(shí)例等諸多 Serverless 架構(gòu)的新功能和特性;
          第 6 章和第 7 章:介紹兩個完整的 Serverless 架構(gòu)與 AI 結(jié)合的案例,從項(xiàng)目背景開始到相關(guān)模塊的設(shè)計、項(xiàng)目的開發(fā)與部署,通過完整的流程講解 Serverless 架構(gòu)下機(jī)器學(xué)習(xí)項(xiàng)目的上手、開發(fā)、維護(hù)全過程;
          第 8 章:針對 Serverless 架構(gòu)進(jìn)行相關(guān)開發(fā)經(jīng)驗(yàn)的分享以及 Serverless 應(yīng)用調(diào)優(yōu)方法的總結(jié),包括 Serverless 架構(gòu)下的冷啟動優(yōu)化方案、開發(fā)注意事項(xiàng)等內(nèi)容。

          第一章




          初識 Serverless 架構(gòu)


          本章通過對 Serverless 架構(gòu)概念的探索,對 Serverless 架構(gòu)的優(yōu)勢與價值、挑戰(zhàn)與困境進(jìn)行分析,以及 Serverless 架構(gòu)應(yīng)用場景的分享,為讀者介紹 Serverless 架構(gòu)的基礎(chǔ)內(nèi)容。通過本章的學(xué)習(xí),讀者將對 Serverless 架構(gòu)的理論基礎(chǔ)有一定的了解和認(rèn)識。

          Serverless 架構(gòu)的概念


          隨著云服務(wù)的發(fā)展,計算資源被高度抽象化,從物理機(jī)到云服務(wù)器,再到容器服務(wù),計算資源逐漸細(xì)膩化。
          2012 年,Iron.io 的副總裁 Ken Form 在 “Why The Future of Software and Apps is Serverless” 一文中首次提出了無服務(wù)器的概念,并指出 “即使云計算已經(jīng)逐漸興起,但是大家仍然在圍繞著服務(wù)器轉(zhuǎn)。不過,這不會持續(xù)太久,云應(yīng)用正在朝著無服務(wù)器方向發(fā)展,這將對應(yīng)用程序的創(chuàng)建和分發(fā)產(chǎn)生重大影響”。
          2019 年,UC Berkeley 發(fā)表論文 “Cloud Programming Simplified: A Berkeley View on Serverless Computing”。在文章中,作者犀利斷言 “新的 BaaS 存儲服務(wù)會被發(fā)明,以擴(kuò)展在 Serverless 計算上能夠運(yùn)行更加適配的應(yīng)用程序類型。這樣的存儲能夠與本地塊存儲的性能相匹配,而且具有臨時和持久可供選擇特性。基于 Serverless 計算的價格將低于 ServerFul 計算,至少不會高于 ServerFul 計算。Serverless 計算一旦取得技術(shù)上的突破,將會導(dǎo)致 ServerFul 服務(wù)的下滑。Serverless 將會成為云時代默認(rèn)的計算范式,將會取代 ServerFul 計算,這也意味著服務(wù)器—客戶端模式的終結(jié)”。
          Serverless 架構(gòu)從 2012 年首次走進(jìn)大眾視野到 2019 年成為 UC Berkeley 對云計算領(lǐng)域犀利斷言的主角,完成了從一個 “新的觀點(diǎn)” 向 “萬眾矚目的架構(gòu)” 轉(zhuǎn)身。在這 7 年時間里,Serverless 架構(gòu)從鮮為人知到被商業(yè)化應(yīng)用,再到頭部云廠商紛紛布局 Serverless 架構(gòu)作為云計算戰(zhàn)略,逐漸成為人盡皆知的新技術(shù)范式。
          當(dāng)然,在這 7 年間,Serverless 不僅僅在技術(shù)架構(gòu)方面逐漸升級和完善,概念也越來越明確,發(fā)展方向也逐漸清晰、明朗。關(guān)于 Serverless 的定義,Martin Fowler 在 “Serverless Architectures” 一文中指出 Serverless 實(shí)際上是 BaaS 與 FaaS 的組合。
          這個簡單明了的定義為 Serverless 架構(gòu)組成結(jié)構(gòu)奠定了基礎(chǔ)。如圖 1-1 所示,Martin Fowler 認(rèn)為,在 Serverless 架構(gòu)中,應(yīng)用的一部分服務(wù)器端邏輯依然由開發(fā)者完成,但是和傳統(tǒng)架構(gòu)不同,它運(yùn)行在一個無狀態(tài)的計算容器中,由事件驅(qū)動、生命周期很短(甚至只有一次調(diào)用)、完全由第三方管理,這種情況被稱為 Functions as a Service(FaaS)。
          除此之外,Serverless 架構(gòu)還要有部分依賴第三方(云端)應(yīng)用或服務(wù)來管理服務(wù)器端邏輯和狀態(tài)的應(yīng)用,這些應(yīng)用通常是富客戶端應(yīng)用(單頁應(yīng)用或者移動端  App),建立在云服務(wù)生態(tài)之上,包括數(shù)據(jù)庫(Parse、Firebase)、賬號系統(tǒng)(Auth0、AWS Cognito)等,而這些服務(wù)最早被稱為 Backend as a Service(BaaS)。

          1-1 Serverless 架構(gòu)組成結(jié)構(gòu)


          同樣認(rèn)為 Serverless 是 FaaS 與 BaaS 結(jié)合而成的 CNCF 在 CNCF WG-Serverless Whitepaper v1.0 中對 Serverless 架構(gòu)的定義進(jìn)行了進(jìn)一步完善:Serverless 是指構(gòu)建和運(yùn)行不需要服務(wù)器管理的應(yīng)用程序概念;它描述了一種更細(xì)粒度的部署模型,其中將應(yīng)用程序打包為一個或多個功能模塊,上傳到平臺,然后被執(zhí)行、擴(kuò)展和計費(fèi),以響應(yīng)當(dāng)時確切的需求。
          與此同時,2019 年 UC Berkeley 的文章 “Cloud Programming Simplified: A Berkeley View on Serverless Computing” 中同樣從 Serverless 架構(gòu)特性角度,對什么是 Serverless 進(jìn)行了補(bǔ)充描述和定義:簡單地說,Serverless = FaaS + BaaS,必須具備彈性伸縮和按量付費(fèi)的特點(diǎn)。
          在中國信息通信研究院(以下簡稱“信通院”)云原生產(chǎn)業(yè)聯(lián)盟所發(fā)布的《云原生發(fā)展白皮書(2020 年)》中對 Serverless 的概念也有相關(guān)的描述:無服務(wù)器(即 Serverless)是一種架構(gòu)理念,其核心思想是將提供服務(wù)資源的基礎(chǔ)設(shè)施抽象成各種服務(wù),以 API 接口的方式供給用戶按需調(diào)用,真正做到按需伸縮、按使用收費(fèi)。
          這種架構(gòu)體系消除了對傳統(tǒng)的海量持續(xù)在線服務(wù)器組件的需求,降低了開發(fā)和運(yùn)維的復(fù)雜度,降低運(yùn)營成本并縮短了業(yè)務(wù)系統(tǒng)的交付周期,使得用戶能夠?qū)W⒃趦r值密度更高的業(yè)務(wù)邏輯開發(fā)上。
          至此,Serverless 架構(gòu)從結(jié)構(gòu)、行為以及特性方面的定義可以總結(jié)為圖 1-2。

          1-2 從不同角度對 Serverless 架構(gòu)進(jìn)行定義

          Serverless 架構(gòu)的特點(diǎn)

          眾所周知,事物具有兩面性。時至今日,云計算的發(fā)展已經(jīng)取得了巨大的進(jìn)步,但是作為云計算最新產(chǎn)物的 Serverless 架構(gòu),在巨大的優(yōu)勢背后,仍然面臨著不可忽略的挑戰(zhàn)。
          優(yōu)勢與價值
          亞馬遜 AWS 首席云計算技術(shù)顧問費(fèi)良宏曾說:今天大多數(shù)公司在開發(fā)應(yīng)用程序并將其部署在服務(wù)器時,無論選擇公有云還是私有的數(shù)據(jù)中心,都需要提前了解究竟需要多少臺服務(wù)器、多大容量的存儲和數(shù)據(jù)庫的功能等,并需要部署、運(yùn)行應(yīng)用程序和依賴的軟件到基礎(chǔ)設(shè)施之上。
          假設(shè)不想在這些細(xì)節(jié)上花費(fèi)精力,是否有一種簡單的架構(gòu)能夠滿足這種需求?時至今日,伴隨 Serverless 架構(gòu)逐漸 “走進(jìn)尋常百姓家”,答案已經(jīng)很明顯了。
          在項(xiàng)目上線過程中,我們一般需要申請主機(jī)資源,這時候需花很多時間和精力去評估峰值最大開銷,即使給某些服務(wù)按照最大消耗申請資源,也要有專人在不同時間段進(jìn)行資源的擴(kuò)容或縮容,以達(dá)到保障業(yè)務(wù)穩(wěn)定與節(jié)約成本的平衡。
          對于一些服務(wù)來說,有時候申請的資源還需要在最大開銷基礎(chǔ)上評估,即使可能出現(xiàn)很多流量波谷,并產(chǎn)生大量的資源浪費(fèi),也不得不這樣做,比如數(shù)據(jù)庫這種很難擴(kuò)展的應(yīng)用就是 “盡管浪費(fèi)資源也比峰值到來時應(yīng)用程序因?yàn)橘Y源不足而無法服務(wù)好”。
          正如費(fèi)良宏所說,在 Serverless 架構(gòu)下,這個問題得到了比較好的解決,不用計劃到底需要使用多少資源,而是根據(jù)實(shí)際需要來請求資源,根據(jù)使用時間來付費(fèi),根據(jù)每次申請的計算資源來付費(fèi),且讓計費(fèi)的粒度更小,更有利于降低資源的開銷。
          Serverless 架構(gòu)具有 6 個潛在優(yōu)勢。
          • 按需提供無限計算資源。
          • 消除云用戶的前期承諾。
          • 根據(jù)需要在短期內(nèi)支付使用計算資源的能力。
          • 大規(guī)模降低成本。
          • 通過資源虛擬化簡化操作并提高利用率。
          • 通過復(fù)用來自不同組織的工作負(fù)載來提高硬件利用率。

          相對于傳統(tǒng)架構(gòu),Serverless 架構(gòu)確實(shí)具備業(yè)務(wù)聚焦、彈性伸縮、按量付費(fèi)等優(yōu)勢。這些優(yōu)勢往往是開發(fā)者在技術(shù)選型時的重要參考。
          1.業(yè)務(wù)聚焦
          所謂的業(yè)務(wù)聚焦,指的是讓開發(fā)者將更多精力放在自身的業(yè)務(wù)邏輯之上,而不需要再花費(fèi)更多精力關(guān)注底層資源。
          眾所周知,單體架構(gòu)時代應(yīng)用比較簡單,物理服務(wù)器的資源足以支撐業(yè)務(wù)的部署。隨著業(yè)務(wù)的復(fù)雜程度飆升,功能模塊復(fù)雜且龐大,單體架構(gòu)嚴(yán)重阻塞了開發(fā)部署的效率。于是,業(yè)務(wù)功能解耦,可并行開發(fā)和部署單獨(dú)模塊的微服務(wù)架構(gòu)逐漸流行開來。業(yè)務(wù)的精細(xì)化管理不可避免地推動著基礎(chǔ)資源利用率的提升。
          如圖 1-3 所示,虛擬化技術(shù)不斷被完善和廣泛運(yùn)用之后,打通了物理資源隔閡,減輕了用戶管理基礎(chǔ)架構(gòu)的負(fù)擔(dān)。容器和 PaaS 平臺則進(jìn)一步抽象,提供了應(yīng)用的依賴服務(wù)、運(yùn)行環(huán)境和底層所需的計算資源。這使得應(yīng)用的開發(fā)、部署和運(yùn)維的整體效率再度提升。Serverless 架構(gòu)則將計算抽象得更加徹底,將應(yīng)用架構(gòu)堆棧中的各類資源的管理全部委托給平臺,免去基礎(chǔ)設(shè)施的運(yùn)維,使用戶能夠聚焦高價值的業(yè)務(wù)領(lǐng)域。

          1-3 虛擬機(jī)、容器、Serverless 架構(gòu)演進(jìn)簡圖


          2.彈性伸縮

          所謂的彈性伸縮,指的是可以根據(jù)業(yè)務(wù)流量波動,自動進(jìn)行資源的分配和銷毀,以最大限度地實(shí)現(xiàn)平衡穩(wěn)定、高性能以及提高資源利用率。

          眾所周知,從 IaaS 到 PaaS 再到 SaaS 的過程中,去服務(wù)器化越來越明顯。到了Serverless架構(gòu),去服務(wù)器化已經(jīng)上升到一個新的高度。相對于 ServerFul 而言,Serverless 對業(yè)務(wù)用戶強(qiáng)調(diào)的是 Noserve r的心智。

          所謂的 Noserver,不是說脫離了服務(wù)器或者說不需要服務(wù)器,而是去除有關(guān)對服務(wù)器運(yùn)行狀態(tài)的關(guān)心和擔(dān)心,這也就意味著原先需要對服務(wù)器進(jìn)行擴(kuò)容和縮容的操作也都不再需要業(yè)務(wù)人員關(guān)注了,都交給云商場進(jìn)行管理。如圖 1-4所 示,折線為一個網(wǎng)站在某天的流量走勢。

          1-4 傳統(tǒng)云主機(jī)架構(gòu)與Serverless架構(gòu)彈性模式下流量與負(fù)載對比示意圖
          圖 1-4a 的分析如下:
          • 技術(shù)人員需要對網(wǎng)站資源用量進(jìn)行評估,評估結(jié)果是這個網(wǎng)站最大的流量峰值為800PV/小時,所以購買了對應(yīng)的云服務(wù)器。
          • 但是在當(dāng)天的10時,運(yùn)維人員發(fā)現(xiàn)網(wǎng)站流量突然增加,逐漸臨近800PV/小時。此時,運(yùn)維人員在線上購買了一臺新的云主機(jī)并進(jìn)行了環(huán)境的配置,最后在Master機(jī)器上添加了對應(yīng)的策略,度過了10~15時的流量峰值。
          • 過了15時,運(yùn)維人員發(fā)現(xiàn)流量恢復(fù)正常,對后加入策略的云主機(jī)進(jìn)行停止,并將額外的資源釋放。
          • 到了18時,再次發(fā)現(xiàn)過載流量的到來……

          從圖 1-4b 可以清晰地看到,負(fù)載能力始終和流量是匹配的(當(dāng)然,這個圖本身存在一定問題,即真實(shí)的負(fù)載能力在一定程度上可能略高于當(dāng)前流量),即并不需要像傳統(tǒng)云主機(jī)架構(gòu)那樣在技術(shù)人員的干預(yù)下應(yīng)對流量的波峰和波谷,其彈性能力(包括擴(kuò)容和縮容)均由云廠商提供。
          通過對圖 1-4 的分析不難看出,Serverless 架構(gòu)所具備的彈性能力在一定程度上來源于廠商的運(yùn)維技術(shù)支持。
          Serverless 架構(gòu)所主張的 “把更專業(yè)的事情交給更專業(yè)的人,讓開發(fā)者更加專注自身的業(yè)務(wù)邏輯即可”,在彈性模式上也是一個非常直觀的體現(xiàn)。
          3.按量付費(fèi)
          所謂的按量付費(fèi),指的是 Serverless 架構(gòu)支持用戶按照實(shí)際的資源使用量進(jìn)行付費(fèi),可以最大限度提高用戶側(cè)資源使用效率,降低成本。
          在傳統(tǒng)云主機(jī)架構(gòu)下,服務(wù)器一旦被購買和運(yùn)行,就在持續(xù)消耗資源,并且持續(xù)產(chǎn)生費(fèi)用。盡管每臺服務(wù)器的可用資源是有限的,通常也是固定的,但是服務(wù)器每時每刻的負(fù)載是不同的,資源使用率也是不同的,這就導(dǎo)致傳統(tǒng)云主機(jī)架構(gòu)下,會比較明顯地產(chǎn)生一定的資源浪費(fèi)。
          一般情況下,白天資源利用率相對較高,資源浪費(fèi)少一些;夜間資源利用率較低,資源浪費(fèi)會相對高一些。按照《福布斯》雜志的統(tǒng)計,商業(yè)和企業(yè)數(shù)據(jù)中心的典型服務(wù)器僅提供 5%~15% 平均最大處理能力的輸出,這無疑證明了剛剛對傳統(tǒng)云主機(jī)架構(gòu)的資源使用率和浪費(fèi)程度分析的正確性。
          Serverless 架構(gòu)則可以讓用戶委托服務(wù)提供商管理服務(wù)器、數(shù)據(jù)庫和應(yīng)用程序,甚至邏輯。這種做法一方面減少了用戶自己維護(hù)的麻煩,另一方面用戶可以根據(jù)自己實(shí)際使用的粒度進(jìn)行成本的支付。
          對于服務(wù)商而言,它們可以將更多的閑置資源進(jìn)行處理。這從成本、“綠色” 計算角度來說,都是非常不錯的。

          1-5 傳統(tǒng)云主機(jī)架構(gòu)與 Serverless 架構(gòu)彈性模式下流量與費(fèi)用支出對比示意圖
          如圖 1-5 所示,折線為一個網(wǎng)站在某天的流量走勢圖。
          圖 1-5a 是傳統(tǒng)云主機(jī)架構(gòu)下流量與費(fèi)用支出示意圖。通常,業(yè)務(wù)在上線之前是需要進(jìn)行資源使用量評估的。工作人員在對該網(wǎng)站的資源使用量評估之后,購買了一臺可以承受每小時最大 1300PV 的服務(wù)器。
          在一整天內(nèi),這臺服務(wù)器所提供的算力總量為陰影面積,所需要支出的費(fèi)用也是陰影面積對應(yīng)算力的費(fèi)用。但是很明顯可以看出,真正有效的資源使用與費(fèi)用支出僅僅是流量曲線下的面積,而流量曲線上方的陰影部分則為資源損耗與額外的支出部分。
          圖 1-5b 是 Serverless 架構(gòu)彈性模式下費(fèi)用支出示意圖。可以清晰地看到,費(fèi)用支出和流量基本是正比關(guān)系,即當(dāng)流量處于一個較低數(shù)值時,對應(yīng)的資源使用量是相對較少的,對應(yīng)的費(fèi)用支出也是相對較少的;當(dāng)流量處于一個較高數(shù)值時,資源使用量和費(fèi)用支出為正相關(guān)增長。
          在整個過程中,可以清晰地看出 Serverless 架構(gòu)并未像傳統(tǒng)云主機(jī)架構(gòu)樣產(chǎn)生明顯的資源浪費(fèi)與額外的成本支出。
          通過對圖 1-5 的分析,不難看出 Serverless 架構(gòu)所具備的彈性伸縮能力與按量付費(fèi)模型進(jìn)行有機(jī)結(jié)合,可以最大限度地避免資源浪費(fèi)、降低業(yè)務(wù)成本。
          4.其他優(yōu)勢
          除前面所說的業(yè)務(wù)聚焦、彈性伸縮、按量付費(fèi)等優(yōu)勢,Serverless 架構(gòu)還具備其他優(yōu)勢。
          • 縮短業(yè)務(wù)創(chuàng)新周期:由于 Serverless 架構(gòu)在一定程度上是 “云廠商努力做更多,讓開發(fā)者更關(guān)注自身的業(yè)務(wù)” 的模式,因此我們可以認(rèn)為開發(fā)者將會付出更少的時間、精力在 ServerFul 架構(gòu)所需要關(guān)注的 OS 層面、云主機(jī)層面、系統(tǒng)環(huán)境層面,更專注自身的業(yè)務(wù)邏輯,這帶來的直接效果就是提高項(xiàng)目的上線效率、降低業(yè)務(wù)的創(chuàng)新周期、提高研發(fā)交付速度。


          • 系統(tǒng)安全性更高:雖然 Serverless 架構(gòu)在一定程度上有一種 “黑盒” 即視感,但正因?yàn)槿绱耍琒erverless 架構(gòu)往往不會提供登錄實(shí)例的功能,也不會對外暴露系統(tǒng)的細(xì)節(jié)。同時,操作系統(tǒng)等層面的維護(hù)也都交給云廠商,這意味著在一定程度上 Serverless 架構(gòu)是更加安全的:一方面表現(xiàn)在 Serverless 架構(gòu)只對外暴露預(yù)定的,且需要暴露的服務(wù)和接口,相對云主機(jī)在一定程度上免去了被暴力破解的風(fēng)險;另一方面表現(xiàn)在云廠商有 更加專業(yè)的安全團(tuán)隊(duì)和服務(wù)器運(yùn)維團(tuán)隊(duì)來幫助開發(fā)者保障整體的業(yè)務(wù)安全與服務(wù)穩(wěn)定。


          • 平穩(wěn)的業(yè)務(wù)變更:Serverless 架構(gòu)是由云服務(wù)商提供的一種天然分布式架構(gòu),同時又因?yàn)?Noserver 的特性免除了開發(fā)者對服務(wù)器運(yùn)行狀態(tài)的關(guān)心和擔(dān)心,所以在 Serverless 架構(gòu)下,開發(fā)者對業(yè)務(wù)代碼、配置的變更操作非常簡單,只需要通過云廠商所提供的工具進(jìn)行更改即可,待新的業(yè)務(wù)邏輯平穩(wěn)生效后則不再需要開發(fā)者關(guān)注。所以,Serverless 架構(gòu)在業(yè)務(wù)的平滑升級、變更、敏捷開發(fā)、功能迭代、灰度發(fā)布等多個層面有著極大的優(yōu)勢。

          當(dāng)然,即使上面已經(jīng)舉例說明了很多 Serverless 架構(gòu)的優(yōu)勢,我們?nèi)匀粵]辦法枚舉出其全部的優(yōu)勢和價值。但不可否認(rèn)的是,Serverless 架構(gòu)正在被更多人關(guān)注,也正在被更多團(tuán)隊(duì)和個人所接受和應(yīng)用,其價值已快速突顯出來。

          END


          ??提前解鎖書籍全部內(nèi)容:

          https://item.m.jd.com/product/13247975.html


          相關(guān)閱讀



          Serverless  架構(gòu)下的  AI  應(yīng)用開發(fā)【送新書】

          點(diǎn)擊閱讀原文,直達(dá)阿里云函數(shù)計算 FC!

          瀏覽 32
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  高清一级片在线播放 | 色色色热热热 | 天天狠操 | 成人毛片18女人毛片免费看dvd | 中外毛片 |