Serverless對大前端技術演進價值巨大,助力前端向全棧高效開發(fā)轉(zhuǎn)變
前端的技術近幾年發(fā)展非常迅速。我們可以從兩個維度去看前端技術的發(fā)展——一個是前端復雜度,一個應用的廣度。單看復雜度,從HTML、JS、CSS的階段向DOM操作框架,從DOM到MVC,再到MVVM框架,再到現(xiàn)在assembly技術標準的出現(xiàn),讓前端工程師開發(fā)復雜度應用的能力不斷提高。而從廣度來看,前端也一直在拓展,從瀏覽器到服務器端,再到移動端,小程序,前端邊界在不斷擴大。然而在這個發(fā)展的過程中,有一個很深的隔離,這個隔離本質(zhì)上就是物理隔離,比如前端和后端,存在手機和服務器之間的物理隔離。而serverless,函數(shù)即服務對前端來說,后端服務是一個函數(shù),函數(shù)就是前端代碼的一部分,后端服務和前端完全融合在一種代碼體系里去。從這個層面來說,severless打破了物理隔離,幫助前端真正做到了全棧。
云開發(fā),是騰訊云和微信團隊聯(lián)合開發(fā)的,集成于小程序開發(fā)者工具(IDE)的原生serverless云服務。它進一步降低小程序開發(fā)門檻,讓前端可以包辦小程序開發(fā),提升開發(fā)效率,像調(diào)用API一樣便捷,用戶其實完全不用擔心哪些是服務器的邏輯,他們都去向了哪里,只需要像前端函數(shù)一樣去理解就可以。
騰訊云TVP、Layabox合伙人李明同時也提到,在傳統(tǒng)開發(fā)模式下前后端、運營溝通成本非常高,Serverless確實是未來研發(fā)團隊都應該考慮的一個新的選擇方向。但自行探索或許成本比較高。因為如果把這個事情交給前端開發(fā),對于他們來說有學習運維和后端的成本;若交給后端開發(fā),對于他們來說其實又沒有任何關系。如果交給云廠商呢?這或許是一個不錯的選擇。因為這樣的話,大家都可以專注于自己的業(yè)務,也不需要花費大量時間和精力學習額外知識,從而提高產(chǎn)品研發(fā)團隊的整體效率。
貓眼資深工程師高英健認為,Serverless的支持對于前端日常業(yè)務的開發(fā)已非常重要,讓前端開發(fā)可以獨立去支持一些業(yè)務需求。比如貓眼在運營工具的實際開發(fā)過程中,由于項目主要用于配置日常運營活動,與后端核心邏輯沒有任何關系,后端也不想主動配合。這種情況下借助騰訊云推出的大前端Serverless產(chǎn)品——云開發(fā),讓前端通過調(diào)用API的方式實現(xiàn)后端業(yè)務邏輯,對于前端開發(fā)效率有很大的改善,邏輯、數(shù)據(jù)、資源均由前端工程師包辦,大大降低了項目的開發(fā)門檻,提升開發(fā)效率。
大前端Serverless,讓前端開發(fā)者可以更輕量地做后端的事情,大大提升開發(fā)效率,這無論是對企業(yè),還是對市場,都是一件好事。
從傳統(tǒng)模式到Serverless模式,目前仍存在難點
騰訊云TVP、友浩達科技CTO張善友 認為,Serverless需要統(tǒng)一的行業(yè)標準。目前Serverless服務廠商眾多,但各自都是獨立的玩法,目前若想從A服務商遷移到B服務商,成本高、難度大。若一套Serverless代碼能夠在騰訊、阿里、微軟、亞馬遜等云服務上都能運行,足以降低遷移成本,有效降低客戶使用Serverless服務前的顧慮。
騰訊云TVP、北京竹間科技技術負責人朱峰 認為,從重構的角度來看,Serverless無法做到真正的技術重構,后端仍然是冗雜的面向過程函數(shù)不便于管理。如果能解決重構的問題,才能真正地降低使用門檻。
另外,數(shù)據(jù)安全仍然是大部分嘉賓的一個主要關注點,而這個問題的本質(zhì)是公有云數(shù)據(jù)安全的問題。有意思的是,云開發(fā)模式下,每個用戶的環(huán)境資源是獨立的,也即是私有的,并且云開發(fā)提供與自有數(shù)據(jù)庫打通的能力。這樣,用戶的數(shù)據(jù)都存在用戶自己的云開發(fā)環(huán)境資源下面,一定層面保障了用戶的數(shù)據(jù)安全與穩(wěn)定性。?
此外,從傳統(tǒng)模式到Serverless模式的轉(zhuǎn)變,阻力還有錯誤排查問題,無法跨云等問題,這也導致很多業(yè)務無法直接從傳統(tǒng)模式向serverless模式遷移。
serverless開發(fā)模式下,我們開發(fā)者或者開發(fā)團隊要做什么樣的改變?
即速應用后臺開發(fā)工程師提到,在Serverless下,前端和后臺結合的話,他們操作后臺給出的數(shù)據(jù),包括創(chuàng)造數(shù)據(jù),改數(shù)據(jù)等,這完全是數(shù)據(jù)層面的操作,而不僅僅是UI層面,不只是UI的性能問題;同時還要考慮后端的一些數(shù)據(jù)的性能問題,還有特殊的后端需要使用的模式,比如隊列、定制任務。這就有可能分化成兩個后臺,有的做serverless服務,有的做serverless工具和技術建設。
Node js核心成員張秋怡說到,未來前后端將趨近于系統(tǒng)化、全棧式,按照這種發(fā)展模式勢必會帶來思維的轉(zhuǎn)變,前端需要考慮后端,后端需要考慮前端,慢慢形成一個完整的產(chǎn)品開發(fā)模式,Serverless的出現(xiàn)則很好的順應了這種新開發(fā)模式的發(fā)展,我們需要做好準備迎接這一大趨勢。
凹凸實驗室核心成員馬劍從團隊分工角度提到,這些年在組建團隊的時候,我們前端做一些事,后端用node來解決很籠統(tǒng)的場景。但是再往后發(fā)展,我們發(fā)現(xiàn)過去前端同學做node,或者node的同學做前端,其實都是不專業(yè)的。所以發(fā)展到今天,我們團隊內(nèi)部也是細分了UI開發(fā)的一波人,專業(yè)做后端服務的一波人,順著這個思路往下發(fā)展,大前端Serverless一定也是會繼續(xù)拆分的,即使Serverless做得再好,一定會拆分出來一波人專業(yè)在搞,可能另外一波人還是搞業(yè)務開發(fā)了。
整整一個下午,30多位嘉賓圍繞大前端Serverless各抒己見,同時也為騰訊云【云開發(fā)】提出豐富的產(chǎn)品優(yōu)化建議。在未來,云開發(fā)團隊將與大家一起,共同探索和推進大前端Serverless的發(fā)展,為大家提供更簡便,更好用的開發(fā)工具。