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