當(dāng)前位置:首頁(yè) > 芯聞號(hào) > 充電吧
[導(dǎo)讀]無(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)

無(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ù)端直接訪問(wèn)一部分?jǐn)?shù)據(jù)庫(kù)內(nèi)容,這部分?jǐn)?shù)據(jù)完全由第三方托管(如 AWS Dynamo),這里我們會(huì)用一些安全配置來(lái)管理客戶(hù)端訪問(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ù)或者需要訪問(wèn)大量數(shù)據(jù)的操作。這里以“搜索”為例,搜索功能可以從持續(xù)運(yùn)行的服務(wù)端中拆分出來(lái),以 FaaS 的方式實(shí)現(xiàn),從 API 網(wǎng)關(guān)(后文做詳細(xì)解釋?zhuān)┙邮照?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)。

原文:https://martinfowler.com/articles/serverless.html

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶(hù)希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱(chēng),數(shù)字世界的話(huà)語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱(chēng)"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉