Serverless架構的前世此生

1、Serverless簡介

雲計算的不斷髮展,涌現出不少改變傳統IT架構和運維方式的新技術,而以虛擬機、容器、微服務爲表明的技術更是在各個層面不斷提高雲服務的技術能力,它們將應用和環境中不少通用能力變成了一種服務。但不管這些技術應用在哪裏,幫助企業「降本增效」是技術變革永恆的主題。數據庫

Serverless架構的出現,帶來了跨越式的變革。Serverless下主機管理、操做系統管理、基礎軟件的部署運維、資源分配和擴縮容能力所有由雲廠商提供,把計算能力作成像水電煤同樣的公共服務,這就意味着基於Serverless服務構建應用,開發者只須要專一在產品代碼上,而無需管理和操做雲端服務運行環境,計算資源從過去購買「服務器」轉向購買對應的「服務」。後端

Serverless = Faas (Function as a service) + Baas (Backend as a service)服務器

Serverless處理模型:架構

Serverless的典型工做流程:less

2、Serverless開發模式

Serverless真正作到了部署應用無需涉及基礎設施的建設,自動構建、部署和啓動服務。以大數據應用開發舉例:運維

在傳統開發流程中,咱們須要先根據大數據實際應用從採集,存儲,清洗,關聯,到分析挖掘全鏈路所涉及的組件列表,完成後端大數據平臺一系列組件的安裝部署,再等到大數據應用完成後,進行應用功能調試、應用+平臺性能調優,最終測試、上線後,還須要大數據平臺運維工程師對整個大數據平臺進行維護。整個過程涉及多個角色,而自己大數據平臺的運維和調優具有必定的技術門檻,調優效果徹底取決於自有員工的能力,而一個好的調優人員,就像一個好的數據庫DBA同樣,須要長期項目實踐積累,屬於關鍵稀缺人才。函數

基於Serverless,全部事情變得很是簡單了,雲廠商以服務的形式對外提供大數據組件能力,以往復雜的平臺搭建過程獲得徹底解放,只須要寫完大數據應用程序後部署到Serverless服務便可,後續也不須要關心任何服務器以及大數據平臺組件的運維、調優操做。雲廠商在對外提供服務的同時,背後都有一個完備的團隊7*24提供專業的支撐。所以只須要大數據應用開發工程師便可完成全部工做。固然,若是具有必定的大數據平臺能力,對大數據應用側的性能調優也是很是有利的,每每能夠事半功倍。微服務

3、Serverless帶來的價值

一、下降運營複雜度工具

Serverless架構使軟件應用和服務器實現瞭解耦,服務器再也不是用戶開發和運營應用的焦點。在應用上線前,用戶無須再提早規劃服務器的數量和規格。在運維過程當中,用戶無須再持續監控和維護具體服務器的狀態,只須要關心應用的總體狀態。應用運營的總體複雜度降低,用戶的關注點能夠更多地放在軟件應用的體驗、改進以及其餘能帶來更高業務價值的地方。性能

二、下降運營成本

服務器再也不是用戶關注的受管資源,運營的複雜度降低,應用運營所須要投入的時間和人力大大下降。在最好的狀況下,能夠作到少數幾個應用管理員便可管理一個處理海量請求的應用系統。

三、縮短產品的上市時間

在Serverless架構下,應用的功能被解構成若干個細顆粒度的無狀態函數,功能與功能之間的邊界變得更加清晰,功能模塊之間的耦合度大大減少。這使得軟件應用的開發效率更高,應用開發的迭代週期更短。

4、Serverless現存問題

對於企業來講,支持Serverless計算的平臺能夠節省大量時間和成本,釋放基礎設施相關員工,轉移到開展更有價值的工做,而不是管理基礎設施。另外一方面能夠提升敏捷度,更快速地推出新應用和新服務,進而提升客戶滿意度。可是任何事情都有兩面性,Serverless並非完美的,它也存在一些問題:

一、徹底依賴於第三方服務

當咱們採用某雲服務廠商的 Serverless 架構時,理論上咱們就和該服務供應商綁定了,那麼咱們再將服務遷到別的雲服務商上就沒有那麼容易了。但若是雲廠商自己兼容開源,甚至應用代碼能夠「0」改動遷移,這個問題就迎刃而解了,也就不存在綁定一說了。選擇雲廠商Serverless服務的時候,從產品演進的角度,這也是一個重點須要考慮的點。

二、缺少調試和開發工具

現階段基於Serverless架構服務開發時,相對比較痛苦的就是功能開發階段,每次你調試的時候,你須要一遍又一遍地上傳代碼。而每次上傳的時候,你就好像是在部署服務器,雖然應用部署很是簡單,但並不能老是快速地定位出問題在哪。不過這應該也是一個階段性的問題,後續Serverless周邊工具生態逐步完善後,相信Serverless下的開發也會擁有跟本地開發一致的體驗。

三、語言版本

通常Serverless服務內部針對單組件都是維護一個或幾個主流版本,這個策略徹底由雲廠商決定,並不會嚴格緊跟社區版本。站在個人角度,也並非版本越高越好,仍是對外提供一個長期穩定的版本,好比本來是Spark 2.3,當Spark 2.4剛面世的時候,就沒有必要立刻跟風,服務對外的穩定可用纔是最關鍵的。另外,如今基於K8S的自定義鏡像也能很好的解決組件多版本和周邊依賴問題。

5、總結

通常來講,社會愈加達、越成熟,社會分工就越明確,技術亦是如此。雲計算通過這麼多年的發展,逐漸進化到用戶僅需關注核心業務和業務運行所需的資源,基礎設施及平臺統一由雲廠商來負責看護。Serverless架構讓咱們不須要再操心服務端的運維,不須要關心咱們不熟悉的領域,只須要專一於業務的開發、專一於產品的實現。咱們須要關心的事情變少了,也意味着咱們能作的事情更多了。能夠說,隨着Serverless架構的興起,真正的雲計算時代纔算到來了。相信隨着技術的飛速發展,Serverless在將來還有無限可能!

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

相關文章
相關標籤/搜索