應(yīng)用

技術(shù)

物聯(lián)網(wǎng)世界 >> 物聯(lián)網(wǎng)新聞 >> 物聯(lián)網(wǎng)熱點新聞
企業(yè)注冊個人注冊登錄

從四種場景出發(fā),詳細(xì)解讀無服務(wù)器架構(gòu)的落地應(yīng)用

2018-12-06 14:01 高效能服務(wù)器和存儲技術(shù)重點實驗室

導(dǎo)讀:從四種場景出發(fā),詳細(xì)解讀無服務(wù)器架構(gòu)的落地應(yīng)用 無服務(wù)器架構(gòu)作為一種新的技術(shù)概念迅速涌現(xiàn)出來。由于無服務(wù)器解決方案能夠幫助企業(yè)輕松構(gòu)建輕量級、高度靈活和無狀態(tài)的應(yīng)用程序,因此得到了很多企業(yè)的青睞,許多企業(yè)已經(jīng)開始將無服務(wù)器產(chǎn)品納入他們的解決方案。

近年來,無服務(wù)器架構(gòu)作為一種新的技術(shù)概念迅速涌現(xiàn)出來。由于無服務(wù)器解決方案能夠幫助企業(yè)輕松構(gòu)建輕量級、高度靈活和無狀態(tài)的應(yīng)用程序,因此得到了很多企業(yè)的青睞,許多企業(yè)已經(jīng)開始將無服務(wù)器產(chǎn)品納入他們的解決方案。使用此架構(gòu),開發(fā)人員可以為各種行業(yè)創(chuàng)建各種應(yīng)用程序。在這篇文章中,我們將借助阿里巴巴云功能計算服務(wù)器,通過四種實際應(yīng)用場景來探討應(yīng)用程序在無服務(wù)器架構(gòu)上的實際操作。

在開始之前,讓我們先來熟悉一下無服務(wù)器架構(gòu)的歷史和主要優(yōu)勢。

無服務(wù)器技術(shù)的演進(jìn)

每一個新技術(shù)概念的引入伴隨著生產(chǎn)力的提高,無服務(wù)器技術(shù)也不例外。開發(fā)人員一直在尋找更有效的方法來維持軟件開發(fā)生命周期,而無服務(wù)器架構(gòu)且可以幫助企業(yè)專注于應(yīng)用程序開發(fā),不再需要擔(dān)心服務(wù)器等基礎(chǔ)設(shè)施的部署建設(shè)和運維管理,這即可以很好的降低開發(fā)成本和縮短開發(fā)周期。

無服務(wù)器體系結(jié)構(gòu)的開發(fā)建立在從虛擬化(云計算)開始的先前成就的基礎(chǔ)上,雖然這個過程是相當(dāng)連續(xù)的,但它有幾個值得注意的里程碑:

1、引入虛擬化技術(shù)替代大型物理服務(wù)器虛擬化為獨立的虛擬機資源。

2、虛擬化集群被移動到簡單的O.M的云計算平臺。

3、基于最小化操作空間的原則,將每個VM細(xì)分為Docker容器。

4、構(gòu)建在Docker容器上的應(yīng)用程序不需要任何運行時的環(huán)境管理,只需要核心代碼的無服務(wù)器體系結(jié)構(gòu)。

5、Server是為了幫助開發(fā)人員專注于應(yīng)用程序邏輯而不是為服務(wù)器基礎(chǔ)結(jié)構(gòu)引入的。

無服務(wù)器架構(gòu)具有以下特點:

1、粒度計算資源;

2、資源不需要預(yù)先分配;

3、高度可伸縮和靈活的體系結(jié)構(gòu);

4、用戶只需要支付所使用的資源即可。

具體來說,阿里巴巴云函數(shù)計算為用戶提供以下優(yōu)點:

1、沒有基礎(chǔ)設(shè)施管理。函數(shù)計算使用戶能夠?qū)W⒂陂_發(fā)具有低操作和維護(hù)成本的主業(yè)務(wù)邏輯。

2、與Alibaba Cloud服務(wù)無縫集成。函數(shù)計算有助于快速構(gòu)建應(yīng)用程序,例如用戶可以用OSS連接一個函數(shù)來進(jìn)行圖像和視頻數(shù)據(jù)處理。當(dāng)新數(shù)據(jù)上傳到OSS時,自動觸發(fā)一個函數(shù)來處理上傳的數(shù)據(jù)。

3、在毫秒內(nèi)實現(xiàn)彈性縮放。

4、按需付費。只收取實際使用的計算資源,大大降低了成本,尤其適用于具有不可預(yù)測的業(yè)務(wù)模式場景。

應(yīng)用場景一:事件觸發(fā)計算

無服務(wù)器可應(yīng)用于涉及多個設(shè)備訪問各種文件類型的場景,例如移動電話和PC上傳圖像、視頻和文本文件。

通過使用帶有對象存儲服務(wù)(OSS)的函數(shù)計算,用戶可以為阿里巴巴云上的多個設(shè)備訪問各種文件類型的場景應(yīng)用使用無服務(wù)器體系結(jié)構(gòu)。在用戶將視頻文件上傳到OSS之后,觸發(fā)Function Compute以獲取對象元數(shù)據(jù)并將其傳輸?shù)胶诵乃惴◣熘?。基于該算法,核心算法庫將相關(guān)視頻文件推送到CDN源站點,對指定的視頻進(jìn)行熱加載。在另外一個場景中,視頻文件上傳到OSS后,觸發(fā)Function Compute以同步多個轉(zhuǎn)碼率并將處理后的視頻文件存儲在OSS中,這樣即提供了輕量級的數(shù)據(jù)處理的解決方案。

在多媒體處理場景中,大量的文件通常被上傳到OSS進(jìn)行處理,如水印、代碼轉(zhuǎn)換、文件屬性數(shù)據(jù)獲取等。函數(shù)計算可以通過以下特性幫助用戶快速解決事件觸發(fā)計算場景中的技術(shù)困難:

1、函數(shù)計算可以設(shè)置OSS觸發(fā)器來接收事件通知。在函數(shù)計算中,用戶可以編寫代碼來處理文件,并通過內(nèi)聯(lián)網(wǎng)將文件傳輸?shù)絆SS,整個過程即簡單又可以輕松擴展。

2、用戶可以將核心代碼構(gòu)建為函數(shù)計算,并使用代碼并發(fā)處理事件通知。

3、函數(shù)計算目前已經(jīng)提供與其他產(chǎn)品的內(nèi)部交互支持。

應(yīng)用場景二:實時視頻廣播的彈性調(diào)整

無服務(wù)器架構(gòu)是實時視頻廣播應(yīng)用場景的理想選擇。在下面的圖片中,廣播室客戶端收集來自主機和觀眾的音頻和視頻流,并將它們發(fā)送到Function Compute進(jìn)行多路復(fù)用。函數(shù)計算器將收集到的數(shù)據(jù)發(fā)送到多路復(fù)用服務(wù)進(jìn)行合成,并將合成的視頻流推送到CDN。觀眾可以實時地觀看直播流以查看多路復(fù)用和合成視頻。

在某些實況視頻應(yīng)用場景中,多個觀眾成員能夠交互,因此主機可以同時連接到多個麥克風(fēng)。主機可以將多個觀眾或朋友連接到屏幕上,并將圖片合成為單個場景,然后將其提供給現(xiàn)場觀眾。

無服務(wù)器架構(gòu)解決了在這樣的應(yīng)用場景中可能出現(xiàn)的困難。作為主機和連接麥克風(fēng)的實時音頻和視頻轉(zhuǎn)發(fā)集群,F(xiàn)unction Compute根據(jù)并發(fā)卷自動調(diào)整用于處理實時數(shù)據(jù)流的多個執(zhí)行環(huán)境的大小。在流量高峰之后,功能計算可以適當(dāng)?shù)販p少資源量。由于代碼管理功能部署在云上,因此允許用戶隨時修改和維護(hù)代碼迭代,不再需要管理多個軟件運行時的環(huán)境。

應(yīng)用場景三:物聯(lián)網(wǎng)數(shù)據(jù)處理

無服務(wù)器架構(gòu)可以應(yīng)用于物聯(lián)網(wǎng)(IOT)場景中,如下圖所示:

該應(yīng)用體系結(jié)構(gòu)分為兩個部分:

1、Web應(yīng)用:模擬社交媒體內(nèi)容更新和數(shù)據(jù)處理流程。Web用戶的請求從API網(wǎng)關(guān)轉(zhuǎn)發(fā)到函數(shù)計算以進(jìn)行處理。函數(shù)計算之后更新數(shù)據(jù)庫中的處理內(nèi)容并更新索引。另外一個Function Compute實例將索引更新推送到搜索引擎,其中新內(nèi)容由外部客戶檢索,形成一個閉環(huán)數(shù)據(jù)的處理過程。

2、智能設(shè)備:IOT網(wǎng)關(guān)將智能設(shè)備狀態(tài)推送到處理計算機的功能,函數(shù)計算使用API向Mobile Push發(fā)送消息,Mobile Push將消息推送到移動終端進(jìn)行狀態(tài)確認(rèn)和管理。

智能設(shè)備狀態(tài)處理也產(chǎn)生了幾個關(guān)鍵的技術(shù)難題,用戶必須設(shè)計一個高效的非輪詢技術(shù)框架來處理從大量設(shè)備到IoT平臺的狀態(tài)數(shù)據(jù)。然后,需要一種將處理過的數(shù)據(jù)高效透明地傳輸?shù)狡渌a(chǎn)品的方法,例如寫入數(shù)據(jù)庫或?qū)?shù)據(jù)推送到移動終端。

應(yīng)用場景四:共享遞送調(diào)度系統(tǒng)

用戶可以使用調(diào)度平臺來選擇由各種銷售商提供的服務(wù),如訂購食品或購買產(chǎn)品。然后,調(diào)度平臺通知最近的交付人員從最近的銷售者那里提取相關(guān)產(chǎn)品并將產(chǎn)品交付給客戶。如下圖所示:

工作流程分為以下5步:

1、客戶通知調(diào)度平臺訂購產(chǎn)品;

2、調(diào)度平臺通知最近的投遞人員;

3、調(diào)度平臺同時通知賣方銷售產(chǎn)品;

4、送貨人員到指定的賣家領(lǐng)取產(chǎn)品;

5、送貨人員將產(chǎn)品送達(dá)客戶所在地。

這樣的過程可以很容易地以無服務(wù)器架構(gòu)實現(xiàn)。在下面的圖表中,阿里巴巴云函數(shù)計算與其他產(chǎn)品一起使用,以開發(fā)配送調(diào)度系統(tǒng)。

操作流程由以下3步:

1、客戶應(yīng)用程序通過API網(wǎng)關(guān)透明地發(fā)送訂單請求到函數(shù)計算;

2、函數(shù)計算將處理后的數(shù)據(jù)發(fā)送到表存儲區(qū);

3、表存儲存儲路由數(shù)據(jù)、賣方信息和位置信息。

在此解決方案中,F(xiàn)unction Compute可以提供動態(tài)調(diào)整大小的能力,而API網(wǎng)關(guān)執(zhí)行身份驗證并確保安全訪問。函數(shù)計算可以與多個產(chǎn)品通信,無縫地使用其他資源和內(nèi)容。所有處理的數(shù)據(jù)都存儲在表存儲數(shù)據(jù)庫中,并且所有日志都直接加載到Log Service以供后續(xù)數(shù)據(jù)報告。

總結(jié):

通過前面四個應(yīng)用場景案例可以看出,無服務(wù)器架構(gòu)能夠為開發(fā)人員和企業(yè)帶來了許多好處,阿里巴巴云功能計算能夠幫助用戶開發(fā)無服務(wù)器體系結(jié)構(gòu),同時解決成本、效率和連接性方面的問題。

雖然函數(shù)計算適用于許多場景,但它不是一成不變的解決方案。例如,對于沒有重大請求波動的企業(yè)來說,它可能不是最具成本效益的解決方案。此外,F(xiàn)unction Compute的執(zhí)行環(huán)境不記錄狀態(tài),因此無服務(wù)器框架不適合緊密耦合的應(yīng)用程序。

至今為止,作為一種新興技術(shù),無服務(wù)器架構(gòu)仍然沒有發(fā)揮出開發(fā)者和企業(yè)的全部潛力。