從行業趨勢看,Serverless 是雲計算必經的一場革命
2019 年,Serverless 被 Gartner 稱爲最有潛力的雲計算技術發展方向,並被賦予是必然性的發展趨勢。Serverless 從底層開始變革計算資源的形態,爲軟件架構設計與應用服務部署帶來了新的設計思路。數據庫
爲此,咱們策劃了 Serverless 技術專欄,從基礎概念入門,到先後臺架構設計、應用拓展、最佳實踐等多維度,揭開 Serverless 的面紗,帶你走進無服務器的世界。小程序
Serverless ,按中文翻譯,稱爲「無服務器」。後端
這到底是一種什麼樣的形態或產品呢?無服務器,就是真的沒有服務器嗎?緩存
其實,在行業內,目前對於 Serverless 有幾種解讀方法:服務器
在提及 Serverless 架構時,Serverless 表明的是利用 Serverless 形態的產品實現的應用架構,這種架構徹底依託於雲廠商或雲平臺提供產品完成系統的組織及構建。在這種架構中,用戶無需關注支撐應用服務運行的主機,而將關注點投入在系統架構,業務開發,業務支撐運維上。網絡
而提及 Serverless 產品時,表明的是無需理解、管理服務器,按需使用,按使用付費的產品。Serverless 產品中,其實也能夠包含存儲、計算等多種類型的產品。而典型的計算產品,就是雲函數這種形態。架構
雲函數,或者稱爲函數即服務 (Function as a Service),它和後端即服務 (Backend as a Service) 一塊兒,均可以稱爲 Serverless 產品。經過組合使用這些產品,開發者能夠構建自身的業務 Serverless 架構。併發
Serverless 技術爲何會得到愈來愈多的關注?咱們能夠從幾個角度來看。app
首先,從開發者使用的來講,不用更多地去考慮服務器的相關內容,無需再去考慮服務器的規格大小、存儲類型、網絡帶寬、自動擴縮容問題。同時,也無需再對服務器進行運維,無需不斷打系統補丁、應用補丁,無需進行數據備份、軟件配置等工做。less
其次,Serverless 產品是徹底自動化的彈性擴縮容的。在業務高峯時,產品的計算能力、容量自動擴容,承載更多的用戶請求,而在業務降低時,所使用的資源也會同時收縮,避免資源浪費。
再次,跟隨着徹底自動化的彈性所帶來的,是全新的計量計費模式。開發者僅需根據使用量來付費,而在深夜無業務量的狀況下,不會有空閒資源佔用,所以也不會有費用產生。
隨着如上提到的特性,Serverless 給開發者或用戶帶來了具體的商業價值:
這裏提到的技術特色的對象,特指 Serverless 產品中的計算產品,也就是雲函數。雲函數包含了以下的技術特性:
Serverless 架構或者技術,能夠用在什麼樣的場景下,來充分發揮它的優點呢?以下的場景,都適合使用 Serverless 架構或產品,來實現所需的業務邏輯。
經過結合使用雲函數和 API 網關或 HTTP 觸發器,能夠對外提供 URL 訪問地址,成爲 Web、小程序、或移動應用等的後端服務。Serverless 架構既能夠直接用於構建後臺來服務應用,也能夠經過相似 BFF 模式,構建中臺和應用間的橋樑。
Serverless 架構提供的強彈性能力,使得能夠支撐業務或應用的暴漲;而提供的低運維需求,使得開發者能夠專一於業務實現和優化;同時,按實際使用量的付費方式,使得開發者無需預配置資源,無需擔憂預配置資源的浪費。
Serverles 架構的應用自己是由事件觸發的,所以極其適合於進行消息處理。不管是消息隊列中傳遞的業務消息,仍是 Kafka 中採集應用日誌,都可以對接到雲函數上,進行實時的消息處理、分析。
在 Serverless 應用場景中,由對象存儲中的文件上傳事件,來觸發雲函數的運行,也是一種常見場景。
針對圖片文件的上傳,能夠藉助雲函數完成圖片的縮略圖生成、二維碼或水印標記、圖片優化處理;而針對數據文件的上傳,能夠啓動數據的自動化分析
物聯網意味着成千上萬的設備會連入網絡,時刻在不斷的產生數據,這對數據的分析、處理的及時性提出了很高的挑戰。經過使用 Serverless 架構,物聯網設備所採集的數據將能夠做爲雲函數的觸發事件,而實現數據的實時處理、分析和應用。
隨着物聯網設備計算能力的進一步提高,雲函數做爲最小粒度的計算單元,有機會被調度到設備端運行,實現邊緣計算,達到「端 - 雲」聯合的 Serverless 架構。
經過對接雲函數以及雲上的各個產品、日誌服務、監控告警系統,雲時代的運維也均可以用雲函數來構建。定時觸發的雲函數,將能夠方便地替代須要在主機上來運行的定時任務;而日誌或告警觸發的雲函數,將能夠對雲中的事件做出馬上回應及處理。
雲計算已經進入了新的時期,目前上雲已經不是應不該該,而是如何上雲的問題。在這種狀況下,雲原生的概念也隨之而生。雲原生的架構或應用,是基於雲而設計的,充分利用現代雲計算平臺所具有的彈性和分佈式特性來實現應用架構。
而 Serverless 架構、產品、以及應用,均是徹底依託於雲而構建的,是典型且徹底的雲原生的架構、產品或應用。Serverless 產品所具有的產品特性、技術、費用等優點,將成爲新一代雲產品的發展方向;而基於 Serverless 架構推動完成開發的應用或架構,將充分享受到雲時代帶來的強大助力,使得雲計算能真正成爲業務的助推器。
Serverless 的計算產品 —— 雲函數,做爲雲虛擬機、容器技術以後的下一代計算形態,將引來雲計算中新的熱潮。圍繞着雲函數而建設的產品能力、工具、生態、以及應用開發,也將引來新的一輪發展。隨着無服務器的產品和生態走向成熟,將逐步承載起企業核心業務。在這個持續向前高速發展的過程當中,騰訊雲的雲函數,將做爲騰訊云云原生的重點發力領域,跟隨客戶需求、行業發展、技術發展,爲用戶提供完整的 Serverless 解決方案。
歡迎關注:騰訊雲 Serverless 團隊咱們專一於 Serverless 架構的最佳實踐!