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