Serverless時代已來,你準備好了么?
原創【51CTO.com原創稿件】縱觀云計算的發展歷程,可以分為四個階段。首先在沒有云之前,用戶大多使用的是物理服務器托管的方式,采購一些服務器在機房里托管。這時,用戶需要選擇物理機型號,做好IDC網絡,這些設備的投入和運維成本很高。云時代到來之后,在虛擬化技術的影響下,云主機開始投入使用。用戶直接在云上購買云主機,開通就可以使用,無需運營物理機。之后隨著容器技術的發展,容器平臺把云計算歷史帶到了第三個階段。在容器平臺階段,仍然存在著一部分的基礎設施運維問題,但此時,基礎設施已經逐漸下沉給運維人員進行操作,應用開發人員不用再去關心虛擬機或者操作系統,只需關注應用所需的計算資源或存儲資源的使用情況。
技術發展的腳步從沒有停歇,Serverless進入了大眾的視野。Serverless讓運維人員無需關注底層的運維,而只要關注按需運行的能力,業務人員能夠進一步關注在與業務相關的事情上。
2014 年年底 AWS 推出 Lambda 產品在業界被公認為標志著 Serverless 發展的開始。2016 年 Google Cloud Function 和微軟 Azure Function 兩款產品的商業化,標志著 Serverless發展到了成熟期。騰訊云在2017年 4 月正式推出了無服務云函數(Serverless Cloud Function)產品,簡化了用戶運維成本,只需要上傳代碼就可以開發運行。2018年9月,騰訊云和微信共同推出集成于小程序IDE里,云能力和微信開放能力都可以開箱即用,讓前端也可以全棧開發的Serverless云服務——云開發。
近日,51CTO記者對騰訊云·云開發團隊的產品經理王斌進行了專訪,對騰訊云Serverless的發展及對前端開發的影響進行了梳理。
三大適用場景
Serverless架構由兩部分構成:函數即服務(FaaS)和后端即服務(BaaS)。與傳統架構相比,開發者只需要專注于業務邏輯即可,開發效率更高。
說到Serverless的適用場景,王斌總結為三個方面。
一是應用負載有顯著的波峰波谷。一個公司的業務負載有波峰波谷時,機器資源要按照峰值的需求預估,而在波谷時機器利用率明顯下降,導致了極大的浪費。如果做到Serverless化之后,以函數來進行按量計費,峰值高的時候,為高峰值進行付費,峰值低的時候,為低峰值進行付費,而不再為整體的服務器進行付費,這樣就把資源成本降了下去。
二是高并發的場景。以前的業務邏輯是在Docker的層面上來做,粒度比較粗。如果把邏輯進行函數化,像編程一樣,在并發很高的情況下,平臺會根據事件的堆積情況,或者事件到達的速度,自動把同一份代碼和配置拉起多個實例進行并發處理。而原有的容器或者虛擬機如果要進行并發的話還是要有一定的手工參與,比如啟動更多的容器,或者加入更多的虛擬機來承載高并發的請求,而Serverless的函數即服務是完全自動的運行。
三是與現有的小程序進行結合。把現有的API服務向Serverless架構演進,在不改變 API 的情況下,它的前端瀏覽器應用、APP、小程序,都可以無縫對接上來。而使用API網關來承接 API 請求,當這個請求來到API網關,由它轉發給云函數,觸發云函數執行。云函數起到的是業務邏輯處理的作用,而狀態數據或者其他業務數據的存儲則依賴于后面的文件存儲或者數據庫進行。API服務也是Serverless最常用的一種適用場景。
大前端Serverless的技術價值
前端開發者是最早受益于Serverless的群體。目前,前端技術正在向兩個方向發展:一是前端復雜度,二是應用的廣度。從復雜度來說,自HTML、JS、CSS向DOM操作框架,從DOM到MVC,再到MVVM框架,再到現在assembly技術標準的出現,讓前端工程師開發復雜度應用的能力不斷提高。從廣度來看,前端也一直在拓展,從瀏覽器到服務器端,再到移動端,小程序,前端邊界在不斷擴大。然而在這個發展的過程中,有一個很深的隔離,這個隔離本質上就是物理隔離,比如前端和后端,存在手機和服務器之間的物理隔離。而serverless,函數即服務對前端來說,后端服務是一個函數,函數就是前端代碼的一部分,后端服務和前端完全融合在一種代碼體系里去。從這個層面來說,Severless打破了物理隔離,幫助前端真正做到了全棧。
云計算的本質就是要讓業務開發專注于業務邏輯,而硬件及軟件設施都是按需采買,開箱即用。Serverless的理念及相關技術,使開發人員不再需要關心機器的問題,甚至連流量也不必再關心,Web開發人員的運維成本會大大降低,前端也可介入到BFF層的開發,而后端可以聚焦于數據處理、業務邏輯與算法。
Serverless是必然發展趨勢
王斌表示,未來,Serverless是技術架構發展的必然方向。“不管是兩年,或者放遠一點,十年,我相信大家都是完全Serverless化的去開發。”從前端的角度來說,前端的一個發展目標就是做全棧,Serverless把做全棧的物理隔離打通了,讓前端和后端的開發沒有任何界限,感覺是開發一套代碼來做前端和后端,所以能夠幫助前端全棧開發快速的發展下去。
此外,Serverless化會帶動其他的服務,能夠進一步的將運維體系變成底層的能力,讓Serverless提供商來負責,開發者只專注于代碼邏輯。
此次專訪后,由騰訊云+社區舉辦的TVP&騰訊云技術交流日云開發專場,暨"云開發圓桌論壇"在北京、深圳兩地同步舉行。騰訊云·云開發團隊與貓眼娛樂商業平臺前端負責人王克淼、京東Taro團隊負責人李偉濤、轉轉前端公共支撐負責人王澍、aybox合伙人李明、Node js CTC成員張秋怡等26位前端領域大佬參與交流,圍繞大前端Serverless的技術價值,傳統模式向Serverless模式的轉變阻力,以及Serverless技術趨勢下對人及技術管理的新訴求,進行了深刻的討論和探究。
據悉,TVP(Tencent Cloud Valuable Professional,騰訊云***價值專家)是騰訊云實現數字化轉型、建設智慧生態的重要戰略計劃,旨在通過建立與行業技術專家的交流平臺,促進騰訊云與技術專家和用戶之間的有效溝通,從而提升騰訊云產品能力,打造云計算技術生態,實現“用科技影響世界”的美好愿景。
【51CTO原創稿件,合作站點轉載請注明原文作者和出處為51CTO.com】