国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Serverless的前端開發(fā)模式研究

2019-12-16 01:48:12李莎莎
電腦知識(shí)與技術(shù) 2019年29期
關(guān)鍵詞:設(shè)計(jì)思路

李莎莎

摘要:最近關(guān)于Serverless的研究逐步升溫,Serverless將對(duì)前端開發(fā)模式產(chǎn)生變革性的影響。該文主要從前端開發(fā)模式的演進(jìn)、ServerZess的優(yōu)點(diǎn)和缺點(diǎn)以及Serverless設(shè)計(jì)思路等方面,探討Serverless中的前端開發(fā)模式。

關(guān)鍵詞:Serverless;前端開發(fā);設(shè)計(jì)思路

中圖分類號(hào):TP3 文獻(xiàn)標(biāo)識(shí)碼:A

文章編號(hào):1009-3044(2019)29-0240-02

1概述

回顧前端開發(fā)模式的演進(jìn),主要有四個(gè)階段:(1)基于模板渲染的動(dòng)態(tài)頁面;(2)基于AJAX的前后端分離;(3)基于Node.js的前端工程化;(4)基于Node.is的全棧開發(fā)。每一次前端開發(fā)模式的變化,都因某個(gè)變革性的技術(shù)而起。先是AJAX,而后是Node.js。那么下一個(gè)變革性的技術(shù)是什么?不言而喻,就是Serverless。最近半年Serverless這個(gè)詞匯以及其引發(fā)的熱烈的討論,Serverless可能會(huì)是接下來引起前端領(lǐng)域革命性變化的技術(shù)之一。Serverless是一種“無服務(wù)器架構(gòu)”,允許用戶專注于業(yè)務(wù)邏輯,而無需擔(dān)心程序的運(yùn)行環(huán)境,資源和數(shù)量。對(duì)業(yè)務(wù)前端開發(fā)人員而言,Serverless會(huì)改變前后端接口定義規(guī)范;將改變前端聯(lián)合模式,讓前端參與服務(wù)器邏輯開發(fā);顯著降低Nodejs服務(wù)器維護(hù)閾值,只要您編寫Js代碼來維護(hù)Node服務(wù)而無須學(xué)習(xí)Devops。對(duì)于免費(fèi)的開發(fā)人員,未來的服務(wù)器部署更靈活,更具成本效益;部署更快,更不容易出錯(cuò)。

前端框架總是帶來后端思維,而Serverless則為前端操作和維護(hù)帶來了前端思維。前端開發(fā)人員不需要擁有自己的服務(wù),甚至不需要自己的瀏覽器,他們可以在每個(gè)用戶的計(jì)算機(jī)上均勻地運(yùn)行JS代碼并進(jìn)行負(fù)載均衡。從技術(shù)角度來說,Serverless就是FaaS和BaaS的結(jié)合。Serverless=FaaS+BaaS。FAAS(作為服務(wù))+BAAS(后臺(tái)即服務(wù))可以稱為無服務(wù)器的完整實(shí)現(xiàn),如圖1所示。除此之外,還有PASS(平臺(tái)即服務(wù))的概念。通常,平臺(tái)環(huán)境由容器技術(shù)實(shí)現(xiàn),最終實(shí)現(xiàn)NoOps(無管理),或至少Devops(開發(fā)操作和維護(hù))。

2Serverless的優(yōu)點(diǎn)及缺點(diǎn)

2.1Serverless主要優(yōu)點(diǎn)

Serverless架構(gòu)的優(yōu)點(diǎn)如下:

(1)降低運(yùn)營成本。Serverless是非常簡(jiǎn)單的外包解決方案。它允許您委托服務(wù)提供商來管理服務(wù)器,數(shù)據(jù)庫,應(yīng)用程序甚至邏輯,或者您必須自己維護(hù)它。由于該服務(wù)的用戶數(shù)量將非常大,因此將具有規(guī)模經(jīng)濟(jì)。降低成本有兩個(gè)方面,即基礎(chǔ)設(shè)施成本和人員成本(運(yùn)營/開發(fā))。

(2)降低開發(fā)成本。成功的無服務(wù)器服務(wù)提供商應(yīng)該能夠提供一系列補(bǔ)充服務(wù)。這意味著您只需要在配置文件中記下數(shù)據(jù)庫的名稱,然后我們的數(shù)據(jù)將存儲(chǔ)在相應(yīng)的數(shù)據(jù)庫中。即使一個(gè)服務(wù)提供者提供了一系列功能計(jì)算模板,那么我們只需要編寫我們的配置。這一系列事情可以自動(dòng)有效地完成。

(3)擴(kuò)展能力。Serverless架構(gòu)一個(gè)顯而易見的優(yōu)點(diǎn)即“水平擴(kuò)展是完全自動(dòng)的,彈性的,并由服務(wù)提供商管理”。受益于基礎(chǔ)架構(gòu)的最大好處是,您只需支付所需的計(jì)算能力。

(4)更簡(jiǎn)單的管理。Servefless架構(gòu)明顯比其他架構(gòu)更簡(jiǎn)單。更少的組件意味著更少的管理開銷。

(5)實(shí)現(xiàn)快速上線。對(duì)于Web項(xiàng)目,啟動(dòng)項(xiàng)目需要一系列”hello,world”。無服務(wù)器部署的優(yōu)勢(shì)使其易于上線。

(6)“綠色”的計(jì)算。據(jù)“福布斯”雜志報(bào)道,商業(yè)和企業(yè)數(shù)據(jù)中心的典型服務(wù)器僅提供平均最大處理能力輸出的5%至15%。這無疑是一種資源的巨大浪費(fèi)。隨著無服務(wù)器架構(gòu)的出現(xiàn),服務(wù)提供商能夠提供我們的計(jì)算能力,以最大限度地滿足實(shí)時(shí)需求;這將使我們能夠更有效地利用計(jì)算資源。

2.2Serverless主要缺點(diǎn)

作為在運(yùn)行時(shí)啟動(dòng)的應(yīng)用程序,Serverless也有一個(gè)我們需要的問題。

(1)不適合長時(shí)間運(yùn)行應(yīng)用。Serverless在請(qǐng)求到來時(shí)才運(yùn)行。這意味著當(dāng)應(yīng)用程序未運(yùn)行時(shí),它將進(jìn)入“休眠狀態(tài)”,并且下次請(qǐng)求到來時(shí),應(yīng)用程序?qū)⑿枰粋€(gè)啟動(dòng)時(shí)間,即冷啟動(dòng)。這個(gè)時(shí)候,可以結(jié)合CRON的方式或者CloudWatch來定期喚醒應(yīng)用。如果您的應(yīng)用程序需要長時(shí)間不間斷運(yùn)行并處理大量請(qǐng)求,那么您可能無法采用無服務(wù)器架構(gòu)。

(2)完全依賴于第三方服務(wù)。當(dāng)您決定使用云服務(wù)時(shí),您只能在無服務(wù)器上放置不重要的API。當(dāng)您擁有大量基礎(chǔ)架構(gòu)時(shí),無服務(wù)器并不是一件好事。使用無服務(wù)器架構(gòu)時(shí),它與特殊服務(wù)提供商捆綁在一起。服務(wù)遷移變得困難。

(3)冷啟動(dòng)時(shí)間。無服務(wù)器應(yīng)用程序的冷啟動(dòng)時(shí)間存在問題,盡管這種冷啟動(dòng)時(shí)間在大多數(shù)情況下可以在50ms內(nèi)。對(duì)于帶有Node.js應(yīng)用程序虛擬機(jī)的Java和C#,這可能不是那么幸運(yùn)。

(4))缺乏調(diào)試和開發(fā)工具。當(dāng)使用Serverless Framework的時(shí)候,遇到了這樣的問題:缺乏調(diào)試和開發(fā)工具。每次調(diào)試都需要反復(fù)上傳代碼。每次上傳似乎都在部署服務(wù)器。

(5)構(gòu)建復(fù)雜:Serverless便宜并不意味著簡(jiǎn)單。無服務(wù)器框架的配置比普通的Lambda配置稍微復(fù)雜一些。但是真正的應(yīng)用場(chǎng)景遠(yuǎn)比這復(fù)雜。

(6)語言版本落后。在Node.js 6出來的時(shí)候,AWS Lambda只支持Node.js 4-3.2;在Node.js 9.0出來的時(shí)候,AWS Lambda支持到6.10.3。對(duì)于Java和Pvthon來說,他們的版本上可能基本都是夠用的,我不知道C#怎么樣。但是Node.js的版本顯然是有點(diǎn)老舊的,但是都Node js 9.2.0了。

2.3Serverless給后臺(tái)帶來的好處

未來后端開發(fā)的經(jīng)驗(yàn)可能類似于前端:您無須關(guān)心運(yùn)行代碼的服務(wù)器,您不需要關(guān)心服務(wù)器環(huán)境,不必?fù)?dān)心負(fù)載平衡,并且可以隨時(shí)調(diào)用中間件服務(wù)。盡管前后端共享代碼不止有Serverless才能做到。但是,無服務(wù)器基于功能粒度的功能更符合前后多路復(fù)用代碼的概念。雖然這不是一項(xiàng)新發(fā)明,但它足以被稱為一項(xiàng)偉大的變革。對(duì)于前端開發(fā)人員,您會(huì)發(fā)現(xiàn)后臺(tái)服務(wù)很簡(jiǎn)單。對(duì)于后端開發(fā)人員來說,發(fā)現(xiàn)服務(wù)更厚,面臨更多挑戰(zhàn)。

無服務(wù)器為后端帶來的好處遠(yuǎn)遠(yuǎn)超過了挑戰(zhàn):

(1)推進(jìn)前后端一體化。進(jìn)一步降低Node編寫服務(wù)器代碼的門檻,消除了應(yīng)用程序操作的學(xué)習(xí)成本。

(2)提高資源利用效率。消除獨(dú)占資源的應(yīng)用,切換到按需加載將不可避免地減少不必要的資源消耗,并將服務(wù)分散到集群中的每臺(tái)機(jī)器以平衡集群的CPU水位。

(3)降低云平臺(tái)使用門檻。無操作和維護(hù),靈活擴(kuò)展,基于價(jià)值的服務(wù)和高可用性。

3Serverless設(shè)計(jì)思路

3.1利用Serverless嘗試服務(wù)開放

現(xiàn)在的挑戰(zhàn)之一是后端功能是開放的,因?yàn)楫?dāng)您具有提取功能的自定義要求時(shí),您可能需要自定義后端數(shù)據(jù)處理的邏輯。你現(xiàn)在可以做的是使用maven3和jdk7來構(gòu)建本地開發(fā)環(huán)境測(cè)試。如果后端構(gòu)建獨(dú)特的無服務(wù)器BAAS服務(wù),您可以執(zhí)行在線編碼,調(diào)試甚至灰度發(fā)布,以便像前端組件一樣進(jìn)行預(yù)測(cè)試?,F(xiàn)在前端云開發(fā)有很多成熟的探索。

3.2Serverless應(yīng)用架構(gòu)設(shè)計(jì)

根據(jù)市面上流行的無服務(wù)器應(yīng)用程序架構(gòu)圖并總結(jié)了一個(gè)通用的無服務(wù)器架構(gòu),如圖2所示。

底層是實(shí)現(xiàn)復(fù)雜服務(wù)的后端微服務(wù)(Backend)。然后,F(xiàn)aaS層通過一系列功能實(shí)現(xiàn)業(yè)務(wù)邏輯,并為前端提供直接服務(wù)。對(duì)于前端開發(fā)人員,前端可以通過編寫函數(shù)來實(shí)現(xiàn)服務(wù)器的邏輯。對(duì)于后端開發(fā)者來說,后端變得更靠后了。如果業(yè)務(wù)相對(duì)簡(jiǎn)單,可以實(shí)現(xiàn)FaaS層,甚至不需要微服務(wù)層。同時(shí),無論是后端還是前端,我們都可以調(diào)用云計(jì)算平臺(tái)提供的BaaS服務(wù),大大降低了開發(fā)難度,降低了開發(fā)成本。小程序云開發(fā)是直接在前端調(diào)用BaaS服務(wù)的一個(gè)示例。

4總結(jié)

現(xiàn)在的前端開發(fā)不再是過去的前端開發(fā),前端不僅可以做網(wǎng)頁,還可以做小程序,做APP,做桌面程序,甚至做服務(wù)器。前端不斷擴(kuò)大其邊界并不斷探索更多領(lǐng)域的原因是希望它能夠產(chǎn)生更大的價(jià)值。最好用熟悉的工具和熟悉的方法創(chuàng)造價(jià)值。無服務(wù)器架構(gòu)的誕生將幫助前端工程師實(shí)現(xiàn)理想的最大化。使用Serverless,您無需過多關(guān)注服務(wù)器的操作和維護(hù)。我們需要關(guān)注的事情越來越少,但我們可以做得更多。在未來,Serverless平臺(tái)還可以在如下方向進(jìn)行發(fā)展:添加更多語言,改進(jìn)基于Web的IDE的功能,配置更多技能,并整合自動(dòng)化測(cè)試系統(tǒng)。無服務(wù)器也將對(duì)前端開發(fā)模型做出巨大改變,前端工程師的功能將回歸應(yīng)用工程師的功能。

猜你喜歡
設(shè)計(jì)思路
吉祥物設(shè)計(jì)的關(guān)鍵要素與設(shè)計(jì)思路初探
基于成本控制視角的集團(tuán)預(yù)算激勵(lì)機(jī)制設(shè)計(jì)
新時(shí)期綠色建筑的結(jié)構(gòu)設(shè)計(jì)研究
建筑設(shè)計(jì)中舊建筑改造的設(shè)計(jì)思路及相關(guān)闡述
微課在職業(yè)院校英語教學(xué)中的教學(xué)設(shè)計(jì)思路探討
水利工程建筑的設(shè)計(jì)思路分析
基于中高職銜接的稅收課程設(shè)計(jì)研究 
基于人本管理的企業(yè)薪酬體系設(shè)計(jì)思路探索
商情(2016年43期)2016-12-23 14:33:57
文言文的閱讀教學(xué)改革的一點(diǎn)嘗試
飛機(jī)零件標(biāo)準(zhǔn)化的設(shè)計(jì)思路和應(yīng)用價(jià)值
科技視界(2016年23期)2016-11-04 21:37:59
卫辉市| 诏安县| 长宁县| 临洮县| 湾仔区| 黔东| 商洛市| 什邡市| 滦平县| 怀远县| 武安市| 龙州县| 屏边| 塘沽区| 鲁山县| 内江市| 拜城县| 安图县| 富阳市| 汶上县| 会理县| 隆安县| 江门市| 钟祥市| 壶关县| 囊谦县| 美姑县| 武平县| 孟村| 增城市| 阜新市| 宕昌县| 阿拉善左旗| 武汉市| 景东| 大同市| 三门峡市| 马龙县| 呼图壁县| 咸阳市| 加查县|