作為云計算產業公認的下一個技術風口,Serverless 對于應用開發者來說已經是耳熟能詳的概念了。根據第三方調研機構分析預測,2020 年全球 Serverless 市場規模將達到 76 億美元,而到 2025 年則會猛增到 211 億美元,年均復合增長率高達 22.7%。如今,云計算商業用戶中有超過半數開發者在采用 Serverless 構建技術架構,可以看到 Serverless 將成為應用發展創新業務必備的技術之一。
那么,究竟什么才是 Serverless 的核心概念?Serverless 誕生以來走過了怎樣的路線?有哪些特征?在 2020 年 11 月 24 日舉辦的華為應用市場 AppGallery Connect 研習社•沙龍西安站上,華為 Serverless 資深架構師們為大家帶來了 Serverless 的業界洞察與發展趨勢展望。
一、Serverless 概況與歷史軌跡
1、Serverless 特征
· 低成本。開發者用函數編寫應用后部署在云端,出現請求之后云端資源才會按需收費,顯著降低了開發者的交付成本與使用成本。
· 免運維。在 Serverless 方案中,云端服務的部署、升級、在線縮擴容等微服務時代的復雜操作都由后端服務來完成,大大減輕了開發者的運維負擔。
· 上線快。Serverless 分為兩大部分,一是 FaaS,通過開發 Function(函數)的形式實現業務邏輯;二是 BaaS,也就是云存儲、云數據庫等后端服務。通過端側直接訪問后端服務、事件觸發、端云同步、函數粒度的服務上線等機制,可極大縮短應用的迭代周期,提升業務的上線速度。
2、Serverless 發展歷史與驅動要素
自單體服務架構普遍轉向微服務架構后,雖然傳統存在的一些問題,諸如代碼變更困難、維護成本高、上線周期長等障礙得到了解決,但由于微服務需要將架構解耦成眾多獨立的小模塊,因此對這些模塊進行部署、監控、彈性伸縮等生命周期運維工作就成為了一大挑戰。
基于這樣的背景,云服務廠商開始利用 Serverless 技術來幫助開發者解決微服務的運維需求。Serverless 以云函數作為業務邏輯的基本計算單元,圍繞云函數還有對象存儲、數據庫等隊列實現 BaaS 后端服務,組成完整的 Serverless 應用來幫助開發人員的應用快速上線,并將開發者的精力從運維工作中解放出來,更多投入業務創新層面。
隨著 Serverless 技術的發展,開源領域也有許多項目為開源 FaaS 貢獻力量,從而使整個 Serverless 生態逐漸成長壯大。
3、從微服務到 Serverless 的演進
當下的微服務架構中,首選的架構設計方法就是領域驅動設計。領域驅動設計方法在落地時需要相當復雜的過程,拆分出來的時間、領域,所做的聚合都可能不夠理想。隨著架構演進,前期服務的解耦再組合也會產生相應的成本。相比之下,Serverless 最大的優勢是可以根據業務快速創新函數。業務流程的每一個步驟都可以映射為一個函數,從而實現一個業務邏輯來部署到云端,實現快速上線交付。現有微服務也可以將接口轉換為函數,實現免運維的成果。
在編碼測試層面,Serverless 可以提供比微服務更小、更細粒度的代碼實現,對應的測試單元體積也會更小,這些都能加快開發與測試的速度,縮短交付周期。
在交付和運維層面,Serverless 架構中函數的發布與治理由平臺負責,進一步加快了業務邏輯上線;運維的部署、升級、彈性縮擴容也是平臺完成,因而可以從傳統的 DevOps 演進為 NoOps 的狀態。
二、AppGallery Connect Serverless 服務
AppGallery Connect,簡稱 AGC,是華為面向全球應用開發者的一站式服務平臺。在沙龍上,華為團隊為開發者們呈現 AppGallery Connect Serverless 服務的技術愿景與特色。
1、AppGallery Connect Serverless 現狀與愿景
AppGallery Connect Serverless 的整體方案分為三大層面:
最上層對接行業解決方案,包括華為內部的音樂、視頻等應用,以及第三方的快應用、快服務等。針對這些行業方案,華為 Serverless 生態會提供一些便捷的軟件開發包。
中間層是 AGC Serverless Framework,其中包括云函數、云存儲、云數據庫,形成 BaaS+FaaS 的綜合體,共同幫助開發人員快速實現業務邏輯,卸除運維壓力。
底層依賴華為云自身的 IaaS 和 PaaS 能力,提供堅實可靠的基礎設施支持。
針對開發者的各種需求,華為 Serverless 提供了一系列 Kit(云服務 SDK),例如 Auth ServiceKit、Function Kit、CloudDB Kit、Cloud Storage Kit 等等。通過這些 Kit,開發人員可以在端側開發過程中專注于業務邏輯,并引用 Kit 完成對云端 Serverless 服務的調用。
針對行業的未來需求,華為 Serverless 也做了很多探索和創新:
為了提升開發效率,華為提供了統一的開發平臺和云函數的市場,使開發者可以直接下載所需的能力來改進升級應用。
針對 ARM、x86、GPU 等不同類型的基礎設施,華為通過異構計算的機制來分配函數調用,確保 Serverless 函數都可以在最合適的硬件上運行,從而提升效率、降低成本。
為了降低每次請求后的函數冷啟動延遲,華為通過沙箱和代碼壓縮等技術,努力做到啟動延遲低于 100 毫秒的目標。對于函數間調用,華為希望通過內部通信機制將現有的 10 毫秒左右延遲降低到 1 毫秒左右。
通過這些探索,華為希望使開發者更聚焦于業務創新,從而更好地擁抱技術風口,利用技術紅利來實現業務升級,創造更多價值。
介紹完 AppGallery Connect Serverless 整體方案特點之后,華為應用市場團隊又詳細介紹了認證服務、云函數、云數據庫、云存儲和云托管五大服務的優勢與使用方式。
2、認證服務
為簡化開發者的認證系統構建過程,AppGallery Connect 提供了托管式的認證服務,可以全方位保護開發者的數據安全。應用認證過程中涉及到的基礎設施、登錄邏輯、密碼加密、網關對接與交付、可靠性、隱私、安全和性能優化等工作,都被華為認證服務包裝成為了簡單的接口調用。開發者只需在應用內集成 SDK 即可調用這些能力,輕松組裝成適應各種需求的認證系統。認證服務在安卓、iOS、Web 端,以及快應用端都提供了 SDK,實現了跨平臺支持。認證服務還支持郵箱、微信、QQ、微博、華為帳號、Facebook、Google 等主流賬戶的認證集成。
華為認證服務提供了端側和云側 SDK、管理配置門戶界面。當應用的用戶訪問云數據庫、云存儲時,可基于認證服務的用戶憑據進行數據訪問安全控制。開發者在云函數內可以方便地從參數獲取訪問用戶的憑據及身份信息。
認證服務的驗證短信和驗證郵件可自動適配全球 78 種語言,無需開發者干預;華為每月為開發者提供 3 萬條免費短信,進一步降低了運營成本。
3、云函數服務
華為希望為開發者提供極簡開發模式,簡化微服務開發測試難度;同時幫助開發者實現免運維和自動彈性伸縮,降低運維和資源使用成本。
在華為云函數服務體系中有一個觸發器概念,負責在業務狀態數據變化時驅動函數自動執行。開發者只需完成函數開發并上傳,綁定好觸發器,全部工作就已經完成;剩余操作全部由 Serverless 自動處理,并向開發者通過多種監控指標呈現函數的運行狀況。
云函數面向通用場景設計,移動應用絕大多數后端邏輯均可基于云函數開發。云函數還可快速對接第三方服務和 API,并通過觸發器和函數自定義代碼整合 AGC 服務構建。
4、云存儲服務
針對開發者的存儲需求,華為云存儲提供了方便易用的端側和云側 SDK,使開發者將更多精力聚焦于業務場景。華為云存儲可以幫助應用向全球分發內容。針對安全性和成本控制等需求,華為還提供了邊緣節點、斷點續傳和網絡加速能力,以及彈性伸縮、按需計費和自動運維等能力。
華為云存儲在各個移動平臺都提供了封裝好的 SDK,開發者只需集成并調用 SDK 即可實現業務能力。開發者無需關心服務器物料、CDN 環境等即可自動完成運維工作。相比傳統自行搭建存儲平臺的方式,華為云存儲可以節約開發團隊的大量人力、資金和時間,還能更好地監控應用運行狀況,更彈性地應對峰值流量沖擊。
5、云數據庫服務
云數據庫是一種可擴展的 Serverless 數據庫,提供簡單易用的端云 SDK,適用于移動、網頁和服務器開發。它可以使應用數據在端端、端云間自動同步,幫助開發者快速構建安全可靠和高度協同的應用。
開發者使用云數據庫,只需集成簡單的 SDK 即可完成業務實施,免去開發部署和運維的工作負擔;云數據庫還提供了接入安全、端云全密態數據管理、安全防護和攻擊監測等安全能力,以及用戶數據的離線支持;在性能方面,華為云數據庫支持百萬端側用戶并發,以及數據并發同步等。
6、云托管服務
華為云托管服務是另一項 Serverless 服務,使開發者可以在無云側設備情況下向用戶提供網頁應用和靜態頁面訪問,并依托云托管管理平臺的一站式操作來完成版本部署。云托管服務具備歷史版本回退能力,同時可以將自有品牌關聯到華為網站。
華為云托管服務提供了豐富的 CDN 節點,可以自動分發資源滿足流暢訪問需求;服務內置配置證書以實現可信接入,并可對接云函數提供動態網頁內容。
7、AppGallery Connect 的其他服務
除上述 Serverless 服務外,華為應用市場 AppGallery Connect 平臺還提供了質量服務來為開發者解決應用上線的質量控制難題。質量服務通過跟蹤測量隨時捕捉應用指標,并通過測試實驗室的大規模自動測試來提早發現應用的問題隱患。
質量服務中的崩潰服務還可以自動監測線上用戶的崩潰情況,生成可視化報告,方便開發者解決問題。
另一項關鍵服務是性能管理服務(APM),提供分鐘級的應用性能監控能力。開發者可以在 AppGallery Connect 平臺查看性能數據,快速發現并修復性能問題。開發者只需在應用內集成 APM SDK 即可自動開啟性能分析。性能管理服務具有全流程、場景化、易集成、實時性和可視化幾大特點,可以很好地滿足開發者對于應用性能監測的各種需求。
通過本次沙龍的精彩分享,與會者不僅了解了 Serverless 技術的前世今生,對 Serverless 的各項優勢有了深度認知,還全方位體會到了華為應用市場 AppGallery Connect 技術體系的強大能力。如今,隨著華為應用市場在全球的快速成長,AppGallery Connect 的 Serverless 服務也將迎來持續增長與進化,成為國內 Serverless 應用領域的佼佼者和領導品牌。