雲計算進化進行時,Serverless會成爲終極形態嗎?

“繼OpenStack、Docker、MiscroService、Unikernel、Kubernetes和Mesos之後,Serverless正成為Google、Amazon乃至創業公司暗戰的新戰場。”

雲計算進化進行時,Serverless會成為終極形態嗎?

說到Serverless,這個概念的誕生由來已久,其首次出現是在2012年。雲基礎設施服務提供商Iron.io的副總裁Ken Fromm在一篇文章中闡述了為什麼他認為Serverless是軟件的未來。事實上,Iron.io自2012年以來就對這個概念和框架抱以支持態度。2014年,亞馬遜發佈AWS Lambda,在這之後,Serverless開始變得流行起來。

2016年,倫敦舉辦了首屆Serverless大會。在最近幾年的發展中,業界對Serverless的概念定義也逐漸清晰穩定下來。經過多年發展,雲計算逐漸進化到用戶僅需關注業務和所需的資源。通過Swarm、K8S等編排工具,容器服務讓開發者的體驗達到日臻完美的境界。

隨著Docker技術的爆發,很多從業者一度認為,Docker可以替代虛擬機,用戶只要關注自己的計算和需要的資源就可以,不需要操心到機器這一層。但因為Docker對資源的隔離不夠好,各大雲廠商的做法還是一個Docker對應一臺虛機,不僅成本高,而且給用戶暴露虛擬機也就顯得十分多餘了。

Serverless乍一看感覺荒謬,但其實際意義在於,部署軟件無需涉及基礎設施建設,它讓人們不再操心運行所需的資源,只需關注自己的業務邏輯。Serverless平臺可以根據需要自動構建、部署和啟動服務的整個過程,用戶只需註冊所需的業務功能及其資源需求。

許多新技術專家指出,Serverless架構具有縮短交付時間,改善操作和安全實踐等功能,以及創造出一種革命性的付費模式——按資源消耗付費。可以說,Serverless架構的興起,將雲計算的發展拉入到了下一個紀元時代。

雲計算進化進行時,Serverless會成為終極形態嗎?

Serverless兩種基本形態

Serverless最早用於描述那些大部分或者完全依賴於第三方(雲端)應用或服務來管理服務器端邏輯和狀態的應用。這些應用通常是富客戶端應用、單頁應用或者移動端App,他們建立在雲端服務生態之上,實現對邏輯和狀態進行管理,包括雲端數據/文件存儲(例如Parse、Firebase)、消息推送(例如極光推送、個推)、應用數據分析等等,這些服務最早被稱為Backend as a Service(BaaS,後端即服務)。

開發者通過使用這些服務,在實現自身業務功能的同時,也會對服務的能力進一步提出要求,促進後端服務的發展。BaaS是在PaaS和SaaS之間,為了滿足移動互聯網快速發展的需要,將後端的能力以服務形式提供,是在PaaS平臺開發能力的基礎上,用SaaS的思路,將後端能力服務化,讓開發者在此基礎上開發自己的解決方案。

Serverless還可以指代這種情況:應用的一部分服務端邏輯依然由開發者完成,但是不像傳統架構那樣運行在一個無狀態的計算容器中,而是由事件驅動、短時執行、完全由第三方管理,對此有一個叫法是Functions as a service(FaaS,函數即服務)。AWS Lambda 是目前的熱門FaaS實現之一。

彼時,大家對Serverless概念的認知是後端即服務(BaaS),或移動後端即服務(Mobile Backend-as-a-Service,MBaaS)。甚至有一種觀點認為,只要使用了第三方雲服務就是Serverless的一種。

但第三方雲服務的範疇很廣,包含IaaS、SaaS、PaaS三種,單純認為使用第三方雲服務就是Serverless是錯誤的看法,Serverless是更精細化的一個方向,而不是更大的範疇。

現在看來,Serverless處在技術曲線的早期階段,尚未達到炒作期的峰值,市場應用上還處於初級階段。但是,大則如同雲、小則如同微服務,Serverless將會是技術的未來趨勢。雲的進化有很多種方向,Serverless更是應用層面的進化方向。

雲計算進化進行時,Serverless會成為終極形態嗎?

積極關注與跟進 避免純技術導向的盲目嘗試

總體看來,Serverless具有低運營成本、簡化設備運維、提升可維護性、更快的開發速度等優勢。在業務突發性極高的場景下,系統為了應對業務高峰,必須構建能夠應對峰值需求的系統,這個系統在大部分時間是空閒的,這就導致了嚴重的資源浪費和成本上升。

在Serverless架構下,服務將根據用戶的調用次數進行計費,按照雲計算pay-as-you-go原則,如果沒有東西運行,就不必付款,節省了使用成本。同時,用戶能夠通過共享網絡、硬盤、CPU等計算資源,在業務高峰期通過彈性擴容方式有效的應對業務峰值,在業務波谷期將資源分享給其他用戶,有效的節約了成本。

Serverless架構中,開發人員面對的將是第三方開發或自定義的API和URL,底層硬件對於開發人員更加透明化,技術團隊無需再關注運維工作,能夠更加專注於應用系統開發。

在可維護性方面,Serverless架構中,應用程序將調用多種第三方功能服務,組成最終的應用邏輯。目前,登陸授權服務,雲數據庫服務等第三方服務在安全性、可用性、性能方面都進行了大量優化,開發團隊直接集成第三方服務,能夠有效的降低開發成本,同時使得應用的運維過程變得更加清晰,有效的提升應用的可維護性。

雲計算進化進行時,Serverless會成為終極形態嗎?

雖然Serverless架構平臺聽起來不錯,但目前仍存在一些技術弱點。平臺會提供Serverless架構給大客戶,比如AWS Lambda,運行它需要使用AWS指定服務,一旦用戶在這些服務上開發一個複雜系統,便會被AWS粘牢,以後只好任由廠商漲價定價或者下架等操作,個性化需求很難滿足,同時不能進行隨意遷移,其遷移成本較大。

2016年1月,Facebook關閉曾經花鉅額資金收購的Parse,造成用戶不得不遷移在這個平臺中產生一年多的數據,無疑需要花費較大的人力和時間成本。

另外,Serverless當前並沒有太多實踐經驗,只適合簡單的應用開發,缺乏大型成功案例的推動,市場對於Serverless也缺乏統一的認知以及相應標準,無法適應所有的雲平臺。

伴隨面向服務架構(SOA)以及微服務架構(MSA)的盛行,造就了Serverless架構的迅猛發展。雖然Serverless架構至今混淆了許多人,但這並不妨礙其成為未來雲計算的主要趨勢之一。

Serverless正在經歷爆發期,新產品和新功能紛紛出現,還有很多可能性等待發掘,其與所有主要平臺提供者提供的集成,成為當今最受歡迎的技術之一。Serverless是否會成為雲計算的終極形態?我們並不知道,唯有讓時間證明一切。對於Serverless,我們給大家的建議是:積極關注與跟進,謹慎結合自己的實際需求使用,避免純技術導向的盲目嘗試。


分享到:


相關文章: