邊緣狀態(tài)下應用程序需要考慮的六個設(shè)計要點
你的企業(yè)為這種新的數(shù)據(jù)環(huán)境做好準備了嗎?
邊緣計算把計算能力和數(shù)據(jù)存儲分布在更靠近數(shù)據(jù)產(chǎn)生和使用的地方。新的邊緣應用程序利用設(shè)備和網(wǎng)絡(luò)網(wǎng)關(guān)執(zhí)行任務,并取代云在本地提供服務。
這類邊緣應用程序需要一種新的數(shù)據(jù)體系結(jié)構(gòu),該體系結(jié)構(gòu)需要考慮應用程序的規(guī)模、延遲、可用性和安全需求。今天我們將研究企業(yè)在為邊緣應用程序構(gòu)建數(shù)據(jù)體系結(jié)構(gòu)時需要考慮的關(guān)鍵設(shè)計因素。
確定數(shù)據(jù)體系結(jié)構(gòu)的第一步是理解數(shù)據(jù)的生命周期——數(shù)據(jù)在哪里產(chǎn)生,需要對數(shù)據(jù)做什么(例如,分析、存儲和轉(zhuǎn)發(fā),以及長期存儲),以及在哪里使用數(shù)據(jù)??鐓^(qū)域移動數(shù)據(jù)會導致高延遲,而將數(shù)據(jù)放置在接近數(shù)據(jù)產(chǎn)生和處理的地方可以降低延遲和提高吞吐量。另一方面,當從云走向邊緣時,處理數(shù)據(jù)(相比于云端)的資源減少了,必須考慮更大的網(wǎng)絡(luò)分區(qū)和停機風險。
應用程序如何處理數(shù)據(jù)將是確定數(shù)據(jù)體系結(jié)構(gòu)需要支持的一個重要因素。例如,分析來自商店銷售點設(shè)備的數(shù)據(jù)的零售應用程序需要將數(shù)據(jù)從邊緣復制到云。因為只有在綜合查看來自所有零售點存儲的數(shù)據(jù)時,這種分析才可能有用。此外,云擁有運行高級機器學習算法所需的資源,而邊緣位置可能缺乏這些資源。但是,如果零售組織希望將一致的軟件配置部署到所有的邊緣位置,那么應該在核心創(chuàng)建一個主配置,然后將其復制到所有的邊緣位置。
在為邊緣環(huán)境設(shè)計數(shù)據(jù)架構(gòu)時,需要考慮以下幾個關(guān)鍵因素:
1.彈性
數(shù)據(jù)增長會有多快?有多少用戶和設(shè)備會生成數(shù)據(jù)?處理數(shù)據(jù)需要多少計算能力?系統(tǒng)彈性一直是應用的關(guān)鍵點,邊緣計算也不例外。
邊緣位置通常不具備對大量數(shù)據(jù)進行深度分析的計算和存儲資源。此外,邊緣的OLTP數(shù)據(jù)庫可能需要擴大吞吐量,以處理來自設(shè)備的大量數(shù)據(jù)輸入。
2.延遲和吞吐量
要寫入或讀取多少數(shù)據(jù)?數(shù)據(jù)會以突發(fā)的形式出現(xiàn),還是一個相對穩(wěn)定的數(shù)據(jù)流?用戶和應用程序需要以多快的速度使用它?
例如,對于諸如聯(lián)網(wǎng)車輛和信用卡欺詐檢測等實時應用程序,將遙測或交易數(shù)據(jù)發(fā)送回云應用程序以確定操作過程是不可行的。在這些情況下,實時分析應用于邊緣位置的原始數(shù)據(jù),以迅速生成警報提醒。
3.網(wǎng)絡(luò)連接
糟糕的網(wǎng)絡(luò)連接是現(xiàn)實中的許多邊緣位置面臨的問題。應用程序應該考慮如何處理網(wǎng)絡(luò)分區(qū)。根據(jù)邊緣和云之間的網(wǎng)絡(luò)質(zhì)量,可能會出現(xiàn)不同的運行模式:
大部分連接:應用程序可以在大部分時間連接到遠程位置執(zhí)行API調(diào)用(例如,查找數(shù)據(jù))。這些API調(diào)用中的一小部分可能會因為網(wǎng)絡(luò)分區(qū)而失敗(例如,在幾個小時的時間跨度中出現(xiàn)幾秒鐘的分區(qū))。
半連接:在這種場景中,可能存在一個持續(xù)數(shù)小時的擴展網(wǎng)絡(luò)分區(qū)。應用程序需要能夠識別在分區(qū)窗口期間發(fā)生的更改,并在分區(qū)恢復后將其狀態(tài)與遠程應用程序同步。
斷開連接:在這種情況下,主要的操作模式是應用程序獨立于任何外部站點運行??赡芘紶枙羞B通性,但這更多地被認為是一種特例,而不是常態(tài)。
在遠端運行的應用程序和數(shù)據(jù)庫應該設(shè)計為不連接或半連接操作。近邊緣應用應采用半連接或大部分連接操作。云以大部分連接模式運行。也就是說,當公共云服務遭遇停機時,其影響是嚴重的,可能會持續(xù)好幾個小時。
4.物理設(shè)備故障
在不同的位置,基礎(chǔ)設(shè)施中斷也很常見。在遙遠的邊緣,從節(jié)點和吊艙故障到整個區(qū)域故障都可能是常見的。在近邊緣和云中,雖然節(jié)點或吊艙停機很常見,但應用程序可以使用區(qū)域機架來實現(xiàn)更高的彈性。但是,即使有了這種故障隔離,區(qū)域級的中斷也可能發(fā)生。
5.軟件棧
在為軟件堆棧選擇組件時,考慮敏捷性和易用性是很重要的。業(yè)務服務涉及一套應用程序,因此工程團隊需要為應用程序的快速迭代進行設(shè)計。實現(xiàn)這一目標的一種方法是使用能夠立即提高開發(fā)人員工作效率的成熟框架,以及開發(fā)人員已經(jīng)很熟悉的、功能豐富的開源數(shù)據(jù)庫。
6.安全
對于在邊緣運行的應用程序,安全性是最重要的,特別是考慮到體系結(jié)構(gòu)固有的分布式特性,存在范圍很大的攻擊點。考慮所有服務和組件的最小權(quán)限、零信任和零接觸應用是很重要的。
下面列出了其他一些具體的安全方面:
- 傳輸過程中加密
- 數(shù)據(jù)休眠中加密
- 數(shù)據(jù)庫層的多用戶支持和各用戶隔離加密
- 數(shù)據(jù)的區(qū)域局部性,以確保遵從性,并考慮與之相關(guān)的任何地理訪問控制
邊緣計算的興起是應用程序構(gòu)建和部署方式的范式轉(zhuǎn)變,以迎合日益分散的數(shù)字世界的需求。在這種環(huán)境中,沒有適用于所有應用程序的通用數(shù)據(jù)庫參考體系結(jié)構(gòu)。但是,根據(jù)應用程序的需求和所涉及的權(quán)衡,企業(yè)將做出不同的設(shè)計選擇來滿足它們的需求,并在需求發(fā)生變化時調(diào)整這些選擇。通過關(guān)注與整個IT組織有關(guān)的設(shè)計決策,企業(yè)可以進一步將邊緣應用程序數(shù)據(jù)用作未來幾年的戰(zhàn)略資源。