- 華為Serverless核心技術與實踐
- 劉方明等
- 1437字
- 2022-05-06 18:19:52
序三
Serverless將成為微服務架構的終極模式
計算范式演進的最終目標是為開發者提供高階編程抽象,從而將他們從煩瑣的工作中解脫出來,更加專注解決業務本身的問題,進而使得開發者可以方便地使用更高效(往往也更復雜)的算法,或者解決更大規模的問題。在過去的數十年中,為了應對應用快速大規模發展的需要,我們的軟件開發模式從客戶端/服務器模式(C/S),發展到模型/視圖/控制(MVC),再到面向服務的架構(SOA),直至當前的微服務;應用的類型也從單體的企業應用,演化到大規模的分布式微服務應用。每一次這樣的演進,都給我們的開發范式帶來更大的靈活性,更高的可伸縮性,以及由此帶來的性能提升,但是卻使得開發范式本身變得更加復雜。相比數十年以前的單體應用,開發、調試、部署和維護大規模分布式微服務要復雜和困難許多。這不僅造成開發者的學習曲線相當陡峭,而且開發、維護一個微服務架構往往需要較高的初始成本。這種情況對于中小型應用是非常不友好的,這些應用的開發者在項目初期就需要面臨兩難的選擇:要么在創業之初就承擔昂貴的開發成本,要么在發展到一定規模之后承擔痛苦的重構。云計算技術發展之初,盡管通過計算資源的虛擬化和池化,降低了我們部署應用的成本,但并沒有從本質上解決上述計算范式演進面臨的問題。而當前,伴隨著企業數字現代化進程的加快,越來越多的應用“為云而生”,因而旨在簡化云開發、方便構建分布式應用的新一代“云原生”Serverless技術應運而生了。
在華為2012實驗室,有一支長期研究分布式并行和云計算技術的團隊。從2017年起,他們就開始對Serverless技術進行深入研究和探索,從架構到理論,再到系統實現。華為元戎[1](分布式內核)就是他們在過去四年中不斷求索的成果。何為Serverless?從狹義上講,就是面向“函數”的計算(或稱“函數即服務”,FaaS);從廣義上講,還包含函數可以調用的一系列后端服務,如對象存儲、數據管理、增長運營等。相比業界類似的Serverless技術,華為元戎首次將“狀態”納入函數計算的概念體系,從而可以方便高效地實現多函數協同的、復雜的有狀態服務。同時,華為元戎進一步提出了統一、標準化的后端平臺概念(Event Bridge和Service Bridge),不僅方便函數和后端服務的集成,而且有助于Serverless應用的跨云部署。可以說,華為元戎將Serverless技術推進到了一個新的高度。2020年,通過各方通力合作,華為終端云服務推出基于華為元戎的Serverless解決方案,面向廣大的開發者提供開發、構建、增長/運營及質量分析等一系列服務。本書通過對華為Serverless技術剖析,深入淺出地講解了Serverless的原理、架構、系統實現,以及相應的關鍵技術,并列舉了若干實戰示例,幫助讀者深入理解和學習Serverless技術。
值得一提的是,Serverless技術本身也是在持續發展的。從某種意義上講,Serverless將會成為微服務架構的終極模式。那時,應用的模塊化、獨立部署、可擴縮、高可用和云計算技術可實現高度統一和深度結合。最終通過Serverless技術,云原生應用將會像單機應用一樣可以簡單便捷地進行開發,同時擁有高性能和高可擴縮的能力,從而徹底解決前文提到的云時代計算范式演進的困局。這種“單機思考,集群并行執行”的體驗會深刻地改變云原生應用的開發模式,實現跨越式的生產力變革。正如伯克利RISE Lab主任Ion Stoica教授所言:“Serverless將會成為云時代默認的計算范式,并取代Serverful的計算模式”。我們希望借助本書,為廣大的讀者和工程技術人員提供一些靈感和啟發,共同促進Serverless技術的進一步發展。
華為分布式與并行軟件Lab主任 譚焜博士
[1]唐·柳宗元《劍門銘》:“鼖鼓一振,元戎啟行”,其中元戎是“大兵車”,在本書中寓意為分布式并行系統“大軍出行”,打造新時代的Serverless 架構與技術。