- 華為Serverless核心技術與實踐
- 劉方明等
- 1922字
- 2022-05-06 18:19:52
前言
風起云涌的云計算,在以虛擬化和容器化為技術特征的“資源云化”階段,極大地簡化了基礎設施運維。如今,在以Serverless新理念標志的“應用云化”階段,云計算的目標是進一步簡化云開發,屏蔽云端分布式系統和中間件等的復雜性。Serverless不但能使開發者聚焦業務邏輯以實現跨越式生產力變革,而且以極致彈性和免運維等優勢幫助應用降低成本、開發增效,已成為云計算“下半場”中各大廠商和開源社區競相擁抱的戰略方向和新興技術。甚至伯克利在《簡化云編程:伯克利視角下的Serverless計算》一文中預言:Serverless將會成為云時代默認的計算范式,并取代Serverful(傳統云)計算模式,而其商業模式變革也被生動地類比為從傳統的“租車”服務發展為真正隨用隨付的“計程車”服務。
廣大開發者、科研人員和信息專業的本科生與研究生應該如何把握快速發展的Serverless技術浪潮呢?最為行之有效的方法之一是,通過完整剖析一個有代表性的Serverless平臺的設計思路和實現方案,來深入學習和掌握Serverless的技術原理與架構精髓,這亦是本書創作的初衷。本書以華為2012實驗室研制的分布式內核——華為元戎在Serverless方向的創新探索為例,詳細闡述了新一代Serverless編程模型、高性能運行時、后端服務對接等一系列關鍵技術,并深入剖析了華為終端云基于Serverless實現快速開發和上線翻譯業務的端到端商用案例,幫助讀者從理論走向系統實踐,身臨其境地體會如何靈活運用Serverless高效構建應用。
本書的第1章重點介紹了Serverless的基礎知識、關鍵技術和生態現狀。通過對第1章的閱讀,讀者可以了解Serverless如何解決微服務實施的痛點,了解當前典型的Serverless平臺(如Lambda)和開源系統(如OpenWhisk)等的差異化設計,以及Serverless的周邊組件,如開發與部署框架、事件總線、函數工作流等,進而通過總結當前Serverless系統的不足之處及下一步技術探索方向,為讀者設計Serverless應用架構提供啟發和技術參考。
本書的第2~5章詳細介紹構建新一代Serverless平臺的核心技術。第2章以華為的華為元戎為例介紹新一代Serverless平臺的設計理念與技術架構,第3~5章分別對一系列核心技術展開剖析。其中,第3章介紹有狀態函數編程模型的設計原理和技術實現,并通過生動的場景案例展示有狀態函數編程模型的用法與優勢。第4章分析如何在函數運行時中優化冷啟動、彈性伸縮和函數調度的性能,并提供具體設計方案和范例性能評測。第5章涉及用函數對接各種BaaS服務的通用框架,以華為元戎的Event Bridge和Service Bridge為例分別詳解云上各種服務如何規范化觸發函數,以及在函數中如何標準化調用各種后端服務,如云存儲和云數據庫等。
完備的后端服務如云托管、云數據庫和云存儲等也是Serverless平臺必不可少的組成部分,因此第6~8章介紹了華為終端云為用戶和開發者提供的配套服務。其中,云數據庫服務是一款Serverless化的數據庫,提供簡單易用的端/云SDK,適用于移動應用、網頁和服務器開發,方便應用數據在各個客戶端之間、客戶端與服務端之間自動保持同步,幫助應用開發者快速構建安全可靠且多端協同的應用程序,從而讓應用開發者聚焦業務邏輯,無須關注后端系統的復雜搭建、用戶數據的安全保護、多端數據的同步及服務器部署維護等,可顯著提高業務構建、部署和運營效率。云存儲服務用于圖片、視頻、文件等內容的上傳、下載、歸檔和備份等。相比于傳統的存儲服務,云存儲服務具有支持斷點續傳、網絡加速、可靠安全和彈性伸縮等特性,更適合移動應用的文件管理。云托管服務為開發者的網頁內容提供快速和安全的全球托管服務,支持自定義域名和證書管理,開發者只需提供申請的域名,無須關注CDN加速和SSL配置,通過控制臺一鍵發布版本即可向全球用戶分發網站內容。
雖然Serverless平臺為開發者提供了一系列開箱即用的云函數和后端服務,但是開發者在嘗試用新模式構建實際業務時難免會面臨各種挑戰,例如,業務函數的劃分粒度和策略、由數據變更觸發的業務流程執行及事件驅動編程等。鑒于此,本書的第9~10章以華為的實踐為例,從技術選型、架構設計到業務函數的劃分,再到云函數、云托管、云數據庫和云存儲服務的搭配使用和代碼示例,對基于Serverless技術構建的翻譯服務進行端到端完整解析,讓讀者能夠快速學習和全面掌握如何運用Serverless技術高效構建應用。
“眾人拾柴火焰高”,感謝華為公司2012實驗室中央軟件院分布式與并行軟件實驗室的大力支持,以及華為元戎團隊的不懈投入,感謝華為終端云同仁們的傾力貢獻和緊密協作。大家共同踐行了“研發一代、應用一代”的務實創新精神,促成了本書中的Serverless架構和技術從原型逐步走向商用,未來更加可期!感謝電子工業出版社的寶貴建議與細致工作,這保證了本書的質量和盡早問世。另外,本書部分內容參考了公開資料和網上調研成果,在此也對相關參考文獻的作者及同行致以誠摯的謝意。
由于水平有限,加之Serverless技術日新月異且應用領域廣泛,書中難免有疏漏和不足之處,懇請廣大讀者批評指正,以便我們在后續版本中改進,并共同推動Serverless生態的蓬勃發展!