當(dāng)前位置: 首頁(yè) > 能源互聯(lián)網(wǎng) > 云計(jì)算

云計(jì)算未來(lái)的發(fā)展趨勢(shì)之無(wú)服務(wù)器架構(gòu)簡(jiǎn)介

TechWeb發(fā)布時(shí)間:2020-06-01 11:51:46

  無(wú)服務(wù)器計(jì)算(Severless computing,簡(jiǎn)稱(chēng) Serverless)現(xiàn)在是軟件架構(gòu)圈中的熱門(mén)話(huà)題,三大云計(jì)算供應(yīng)商(Amazon、Google 和 Microsoft)都在大力投入這個(gè)領(lǐng)域,涌現(xiàn)了不計(jì)其數(shù)的相關(guān)書(shū)籍、開(kāi)源框架、商業(yè)產(chǎn)品、技術(shù)大會(huì)。但是什么是無(wú)服務(wù)器,為什么值得考慮?我希望在本文中對(duì)這些問(wèn)題有所啟發(fā)。

  什么是Serverless?

  就像軟件行業(yè)中的很多趨勢(shì)一樣,Serverless 的界限并不是特別清晰,尤其是它還涵蓋了兩個(gè)互相有重疊的概念:

  1)Serverless 最早用于描述那些大部分或者完全依賴(lài)于第三方(云端)應(yīng)用或服務(wù)來(lái)管理服務(wù)器端邏輯和狀態(tài)的應(yīng)用,這些應(yīng)用通常是富客戶(hù)端應(yīng)用(單頁(yè)應(yīng)用或者移動(dòng)端 App),建立在云服務(wù)生態(tài)之上,包括數(shù)據(jù)庫(kù)(Parse、Firebase)、賬號(hào)系統(tǒng)(Auth0、AWS Cognito)等。這些服務(wù)最早被稱(chēng)為 “(Mobile) Backend as a Service”,下文將對(duì)此簡(jiǎn)稱(chēng)為 “BaaS”。

  2)Serverless 還可以指這種情況:應(yīng)用的一部分服務(wù)端邏輯依然由開(kāi)發(fā)者完成,但是和傳統(tǒng)架構(gòu)不同,它運(yùn)行在一個(gè)無(wú)狀態(tài)的計(jì)算容器中,由事件驅(qū)動(dòng)、生命周期很短(甚至只有一次調(diào)用)、完全由第三方管理。這種情況稱(chēng)為 Functions as a service / FaaS。AWS Lambda 是目前的熱門(mén) FaaS 實(shí)現(xiàn)之一,下文將對(duì)此簡(jiǎn)稱(chēng)為 “FaaS”。

  界面驅(qū)動(dòng)的應(yīng)用(UI-driven applications)

  我們來(lái)設(shè)想一個(gè)傳統(tǒng)的三層C/S 架構(gòu),例如一個(gè)常見(jiàn)的電子商務(wù)應(yīng)用(比如在線(xiàn)寵物商店),假設(shè)它服務(wù)端用 Java,客戶(hù)端用 HTML/JavaScript:

  

  在這個(gè)架構(gòu)下客戶(hù)端通常沒(méi)什么功能,系統(tǒng)中的大部分邏輯——身份驗(yàn)證、頁(yè)面導(dǎo)航、搜索、交易——都在服務(wù)端實(shí)現(xiàn)。

  把它改造成Serverless 架構(gòu)的話(huà)會(huì)是這樣:

  這是張大幅簡(jiǎn)化的架構(gòu)圖,但還是有相當(dāng)多變化之處:

  我們移除了最初應(yīng)用中的身份驗(yàn)證邏輯,換用一個(gè)第三方的BaaS 服務(wù)。

  另一個(gè)BaaS 示例:我們?cè)试S客戶(hù)端直接訪(fǎng)問(wèn)一部分?jǐn)?shù)據(jù)庫(kù)內(nèi)容,這部分?jǐn)?shù)據(jù)完全由第三方托管(如 AWS Dynamo),這里我們會(huì)用一些安全配置來(lái)管理客戶(hù)端訪(fǎng)問(wèn)相應(yīng)數(shù)據(jù)的權(quán)限。

  前面兩點(diǎn)已經(jīng)隱含了非常重要的第三點(diǎn):先前服務(wù)器端的部分邏輯已經(jīng)轉(zhuǎn)移到了客戶(hù)端,如保持用戶(hù)Session、理解應(yīng)用的 UX 結(jié)構(gòu)(做頁(yè)面導(dǎo)航)、獲取數(shù)據(jù)并渲染出用戶(hù)界面等等??蛻?hù)端實(shí)際上已經(jīng)在逐步演變?yōu)閱雾?yè)應(yīng)用。

  還有一些任務(wù)需要保留在服務(wù)器上,比如繁重的計(jì)算任務(wù)或者需要訪(fǎng)問(wèn)大量數(shù)據(jù)的操作。這里以“搜索”為例,搜索功能可以從持續(xù)運(yùn)行的服務(wù)端中拆分出來(lái),以 FaaS 的方式實(shí)現(xiàn),從 API 網(wǎng)關(guān)(后文做詳細(xì)解釋)接收請(qǐng)求返回響應(yīng)。這個(gè)服務(wù)器端函數(shù)可以和客戶(hù)端一樣,從同一個(gè)數(shù)據(jù)庫(kù)讀取產(chǎn)品數(shù)據(jù)。 我們?cè)嫉姆?wù)器端是用 Java 寫(xiě)的,而 AWS Lambda(假定我們用的這家 FaaS 平臺(tái))也支持 Java,那么原先的搜索代碼略作修改就能實(shí)現(xiàn)這個(gè)搜索函數(shù)。

  最后我們還可以把“購(gòu)買(mǎi)”功能改寫(xiě)為另一個(gè) FaaS 函數(shù),出于安全考慮它需要在服務(wù)器端,而非客戶(hù)端實(shí)現(xiàn)。它同樣經(jīng)由 API 網(wǎng)關(guān)暴露給外部使用。

  消息驅(qū)動(dòng)的應(yīng)用(Message-driven applications)

  再舉一個(gè)后端數(shù)據(jù)處理服務(wù)的例子。假設(shè)你在做一個(gè)需要快速響應(yīng)UI 的用戶(hù)中心應(yīng)用,同時(shí)你又想捕捉記錄所有的用戶(hù)行為。設(shè)想一個(gè)在線(xiàn)廣告系統(tǒng),當(dāng)用戶(hù)點(diǎn)擊了廣告你需要立刻跳轉(zhuǎn)到廣告目標(biāo),同時(shí)你還需要記錄這次點(diǎn)擊以便向廣告客戶(hù)收費(fèi)。

  傳統(tǒng)的架構(gòu)會(huì)是這樣:“廣告服務(wù)器”同步響應(yīng)用戶(hù)的點(diǎn)擊,同時(shí)發(fā)送一條消息給“點(diǎn)擊處理應(yīng)用”,異步地更新數(shù)據(jù)庫(kù)(例如從客戶(hù)的賬戶(hù)里扣款)。

 

  在Serverless 架構(gòu)下會(huì)是這樣:

  這里兩個(gè)架構(gòu)的差異比我們上一個(gè)例子要小很多。我們把一個(gè)長(zhǎng)期保持在內(nèi)存中待命的任務(wù)替換為托管在第三方平臺(tái)上以事件驅(qū)動(dòng)的FaaS 函數(shù)。注意這個(gè)第三方平臺(tái)提供了消息代理和 FaaS 執(zhí)行環(huán)境,這兩個(gè)緊密相關(guān)的系統(tǒng)。

評(píng)論

用戶(hù)名:   匿名發(fā)表  
密碼:  
驗(yàn)證碼:
最新評(píng)論0

相關(guān)閱讀

云計(jì)算的技術(shù)優(yōu)勢(shì)和商業(yè)優(yōu)勢(shì)是什么?

近年來(lái),云計(jì)算發(fā)展迅猛,同時(shí)隨著大數(shù)據(jù)、人工智能等研究的不斷深入,云計(jì)算作為其重要技術(shù)和支撐,未來(lái)仍會(huì)有巨大的發(fā)展空間。下面和千鋒廣州小編一起來(lái)看看吧。
云計(jì)算2020-05-26

2020年云計(jì)算產(chǎn)業(yè)鏈現(xiàn)狀及發(fā)展趨勢(shì)

中國(guó)云計(jì)算市場(chǎng)處于快速發(fā)展階段,容器、微服務(wù)等技術(shù)的不斷成熟,推動(dòng)著云計(jì)算的變革。隨著云計(jì)算的應(yīng)用場(chǎng)景的不斷拓展,云計(jì)算的應(yīng)用已深入達(dá)到政府、金融、工業(yè)、交通、物流等傳統(tǒng)行業(yè)。

云計(jì)算戰(zhàn)火再燃,企業(yè)級(jí)市場(chǎng)能否成就金山云?

金山云專(zhuān)注于為企業(yè)提供云服務(wù)。從2014年提出“All in Cloud”開(kāi)始,金山云已經(jīng)成長(zhǎng)為中國(guó)第三大互聯(lián)網(wǎng)云服務(wù)提供商,以及最大的獨(dú)立云服務(wù)提供商。眼下,金山云更是成功登陸納斯達(dá)克,股票代碼為“KC”。
云計(jì)算2020-05-09

大數(shù)據(jù)、云計(jì)算…34億的新基建,怎么才能薅到這波“數(shù)字紅利”

十年前,我們錯(cuò)過(guò)了傳統(tǒng)基建這一風(fēng)口上的紅利,十年后,新基建帶著新的風(fēng)口向我們招手,沒(méi)薅到傳統(tǒng)基建的羊毛,這次就一定要薅到新基建的羊毛,但是我們應(yīng)該怎么才能薅到這波“數(shù)字紅利”?
深度閱讀2020-04-30

云計(jì)算沖刺2020:華為云躋身前三 HAT爭(zhēng)霸賽開(kāi)啟

都說(shuō)華為進(jìn)入一個(gè)行業(yè),就將重構(gòu)產(chǎn)業(yè)格局。云計(jì)算領(lǐng)域延續(xù)了這一定律,新晉者華為云在三年內(nèi),就躋身國(guó)內(nèi)前三、全球排名進(jìn)入前六。
云計(jì)算2020-04-24

新基建有望拉動(dòng)10萬(wàn)億投資 中外巨頭爭(zhēng)奪云計(jì)算市場(chǎng)

新冠疫情令全球經(jīng)濟(jì)陷入了一場(chǎng)空前危機(jī)。經(jīng)濟(jì)學(xué)家預(yù)計(jì),今年全球經(jīng)濟(jì)將出現(xiàn)衰退,中國(guó)將是為數(shù)不多的仍然實(shí)現(xiàn)增長(zhǎng)的經(jīng)濟(jì)體。對(duì)新基建等領(lǐng)域的投資將成為拉動(dòng)中國(guó)經(jīng)濟(jì)增長(zhǎng)的重要驅(qū)動(dòng)力。

3年投2000億加碼新基建,阿里云還欲在滬落地新經(jīng)濟(jì)發(fā)展

 4月20日,阿里云宣布,未來(lái)3年再投2000億元,用于云操作系統(tǒng)、服務(wù)器、芯片、網(wǎng)絡(luò)等重大核心技術(shù)研發(fā)攻堅(jiān)和面向未來(lái)的數(shù)據(jù)中心建設(shè)。

騰訊云全面擁抱工業(yè)互聯(lián)網(wǎng) 助力數(shù)字新基建

 在垂直行業(yè)領(lǐng)域,騰訊與富士康、三一重工等領(lǐng)軍企業(yè)深度合作,并協(xié)助企業(yè)推出了各自的工業(yè)互聯(lián)網(wǎng)平臺(tái),一方面滿(mǎn)足集團(tuán)內(nèi)部集約化管理和服務(wù),實(shí)現(xiàn)IT基礎(chǔ)資源彈性伸縮、工業(yè)軟件服務(wù)共享、軟件開(kāi)發(fā)敏捷化、數(shù)據(jù)互聯(lián)互通、業(yè)務(wù)場(chǎng)景創(chuàng)新等

國(guó)家發(fā)改委發(fā)文:構(gòu)建產(chǎn)業(yè)互聯(lián)網(wǎng)平臺(tái)助力經(jīng)濟(jì)高質(zhì)量發(fā)展

日前,國(guó)家發(fā)改委發(fā)布《關(guān)于推進(jìn)“上云用數(shù)賦智”行動(dòng),培育新經(jīng)濟(jì)發(fā)展實(shí)施方案》(以下簡(jiǎn)稱(chēng)《方案》),為加快數(shù)字產(chǎn)業(yè)化和產(chǎn)業(yè)數(shù)字化,助力建設(shè)現(xiàn)代化產(chǎn)業(yè)體系,實(shí)現(xiàn)經(jīng)濟(jì)高質(zhì)量發(fā)展,提出了多項(xiàng)舉措。

國(guó)家發(fā)改委發(fā)文:構(gòu)建產(chǎn)業(yè)互聯(lián)網(wǎng)平臺(tái)助力經(jīng)濟(jì)高質(zhì)量發(fā)展

日前,國(guó)家發(fā)改委發(fā)布《關(guān)于推進(jìn)“上云用數(shù)賦智”行動(dòng),培育新經(jīng)濟(jì)發(fā)展實(shí)施方案》(以下簡(jiǎn)稱(chēng)《方案》),為加快數(shù)字產(chǎn)業(yè)化和產(chǎn)業(yè)數(shù)字化,助力建設(shè)現(xiàn)代化產(chǎn)業(yè)體系,實(shí)現(xiàn)經(jīng)濟(jì)高質(zhì)量發(fā)展,提出了多項(xiàng)舉措。