火出邊際的Serverless,你居然還不了解?


摘要:圖靈獎獲得者David A. Patterson和Spark共同創始人Ion Stoica,在19年伯克利的會議上發布Serverless將是下一代默認的計算范式。

本文分享自華為雲社區《聽說最近Serverless很火?一文讀懂什么是下一代雲計算范式》,作者:敏捷的小智 。

雲計算發展至今涌現出一系列改變傳統IT架構和運維技術的服務,從IaaS、PaaS服務被人們熟知,到容器、微服務技術家喻戶曉,技術的每一次變革都是圍繞如何提升資源利用率降低成本,幫助開發者從繁重地機房建設和運維等基礎設施管理工作中解放出來,簡化編程方式,讓企業和開發人員釋放更多時間精力聚焦業務創新。

近來, Serverless進入人們視線,成為學術界以及工業界研究的熱點。圖靈獎獲得者David A. Patterson和Spark共同創始人Ion Stoica,在19年伯克利的會議上發布Serverless將是下一代默認的計算范式。國內外大型雲服務商紛紛布局Serverless領域。那么,究竟什么是Serverless?它的出現能否顛覆目前已有的開發方式呢?

Serverless的誕生

近十年,軟件開發領域大熱的話題莫過於敏捷和DevOps,我們從敏捷和DevOps角度,結合敏捷和DevOps的誕生路線來了解一下Serverless。

敏捷的誕生

2001年的敏捷軟件開發宣言標志着敏捷開發的誕生,以Scrum、XP、Kanban為代表的一眾敏捷開發模式被大家所熟識和接受,並應用在軟件開發中取代了瀑布模式。敏捷的小步快跑、快速交付、及早反饋解決了業務和開發之間的矛盾,通過關注價值的優先級排序方法,保證開發團隊一直走在正確的路上。

DevOps的誕生

快速交付是一個端到端的過程,只有開發的敏捷是無法實現運維端也同樣敏捷的,DevOps在2009年應運而生,目的是解決Dev(開發)和Ops(運維)之間的矛盾,打通從客戶提出需求到交付產品給客戶一個全流程的價值鏈。

當今主流的微服務架構,它的最佳實踐是建立一個 2 Pizza團隊,應用按照微服務粒度進行拆分,打通應用DevOps全流程,接口標准化,環境標准化,開發單元可以按天或周進行升級發布,基礎設施具備高可用能力和可擴展性,幫助應用實現較大程度上的快速迭代。然而微服務架構並非是應用開發的銀彈,技術的發展是無止境的,計算架構正在不可阻擋地走向無服務器時代。

Serverless的誕生

團隊是否可以只聚焦在Dev即業務和代碼交付層面,而不去關心Ops的部分,減少部署、提高擴展性並減少維護基礎設施的負擔?由此對軟件架構和工具平台的需求從微服務和PaaS轉變為軟件架構上更小粒度的解耦和平台更多的服務功能。基於此,Amazon在2014年發布的AWS Lambda,標志着Serverless商業化時代的開啟,Serverless也從概念、願景逐步走向落地。

什么是Serverless

Serverless直譯過來就是無服務器。根據 CNCF 的定義,Serverless 旨在構建和運行不需要服務器管理的應用程序。那么,Serverless真的沒有服務器嗎,程序不需要服務器托管和運行嗎?其實不然,無服務器架構只是服務器調配、維護、更新、擴展和容量規划等繁瑣工作逐步下放到無服務器服務提供者(如華為雲函數工作流FunctionGraph),解放開發者的生產力,讓開發者專注於編寫應用程序的業務邏輯,運維工程師能夠將精力放在業務運維上。

目前業界普遍認為Serverless = FaaS + BaaS,FaaS(Function as a Service,函數即服務),開發者實現的服務器端應用邏輯以事件驅動的方式運行在無狀態的臨時容器中,這些容器和計算資源完全由雲提供商管理。BaaS(Backend as a Service,后端即服務), 由第三方提供的包含某一塊功能的微服務,開發者以 API 形式接入。比如雲數據庫、對象存儲、消息隊列等。

Serverless的基本運行單元為函數,是一種雲計算執行、部署和計費模型,具有以下特點:1)快速上線,Serverless 讓開發者聚焦業務邏輯,業務上線不再關注運行態的環境搭建,上線周期從周級縮短到天級。2)彈性伸縮,Serverless 讓開發者無需提前預估業務流量,系統會根據業務流量按需擴容、縮容,響應速度從秒級提升到毫秒級。3)免運維,Serverless 讓開發人員無需感知底層資源,自然也無需關注資源的分配和運維,從而實現自適應,免運維。4)按需調用、付費,Serverless讓應用按需使用資源,按量計費,提升資源使用率,幫助企業降低成本。

Serverless的應用

為了有更好的直觀體驗,我們結合具體產品來了解一下Serverless的特點和適用場景,以華為雲函數工作流(FunctionGraph)為例。

華為雲FunctionGraph是一款基於事件驅動的函數計算與編排服務,提供了界面化、一站式的函數開發、管理、上線等功能,支持6大類語言和自定義運行時,支持10+類的函數觸發器類型,可觀測性上提供了較為豐富的日志、監控等功能。

FunctionGraph具有自動分層彈性調度策略,通過代碼最小依賴、分層打包、分層加載/緩存、預測啟動、預測加載等技術,使能極速冷啟動,啟動速度達到百毫秒級;根據請求的並發數量自動調度資源運行函數,實現透明、准確和實時的伸縮,應付業務峰值的訪問;通過函數間高速總線實現低函數間通信時延(2~3ms),做到統一高速總線,支撐函數間通信事件、參數、Future等重要數據的高效傳輸;提供函數全生命周期管理能力,打通DevOps流程,包括CloudIDE/CI CD等打通,提供一站式函數開發平台,支持雲上開發、調試。

適用場景

現階段,Serverless主要應用在以下場景1)異步的並發,組件可獨立部署和擴展;2)應對突發流量或服務使用量不可預測;3)短暫、無狀態的應用,對冷啟動時間不敏感;4)需要快速開發迭代的業務。基於此,Serverless非常適合做Web類應用開發、事件驅動類應用、AI類應用開發等,這里我們分享三種具體使用場景。

Web類應用

在小程序后端、Web后端、問答機器人、前端BFF等開發場景中,Serverless整合調度后端服務,解放端側開發,讓開發者更快、更靈活開發各種應用,無需關注后端服務。

事件驅動類應用

在實時圖片處理、實時數據流處理、IoT事件處理等場景里,用戶上傳文件到對象存儲服務,觸發函數,完成對文件的處理、識別、提取、篩選等功能。此方案的優勢為事件觸發,按需供給,開發者無需關注業務波峰波谷,節省閑時成本,降低運維成本。

AI類應用

隨着各行各業智能化深入帶來更多的應用開發場景,使用Serverless與各類人工智能服務結合,可以快速構建人臉識別、車牌識別、AI推理、視頻直播等應用。

優勢為快速搭建,按需使用函數與多個智能服務集成,形成豐富的應用處理場景。並隨時根據業務改變對函數處理過程進行調整,實現業務靈活變更。且運維簡單,用戶只需開通相關雲服務並在函數服務中編寫業務邏輯,無需配置或管理服務器,專注於業務創新。

當然Serverless並非完美,也有自己的不足,如進程啟動延時、不適合長時間運行應用、無法常駐內存、細粒度的單位帶來業務拆分上的困難等。任何新技術的應用,都要和具體業務結合,取其精華解決具體問題,畢竟適合的才是最好的。

國內Serverless現狀

根據雲計算開源產業聯盟的《中國DevOps現狀調查報告》顯示,2020年,企業使用的基礎設施技術中Serverless占比為14.1%,2021年占比為16.78%,增長了2.68%。由此可見,Serverless 作為未來的雲計算范式,目前在國內的使用尚未達到規模,這也為廣大開發者提供了彎道超車的機會。畢竟Serverless憑借自身的優越特性,對於開發者來說,吸引力是巨大的。

華為一線大咖帶你輕松入門Serverless

你是否已經迫不及待要體驗Serverless的魅力了呢?華為雲傾心打造《Serverless高手偽裝者速成班》,四階課程學練結合,場景化實踐助你輕松入門Serverless,更有一線專家跟蹤教學,豐富學習獎勵等您拿哦!

立即掃碼報名,探秘Serverless吧!

 

點擊關注,第一時間了解華為雲新鮮技術~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM