本概觀介紹 Azure IoT 解決方案中可擴縮性、高可用性和災害復原選項的重要概念。 每個小節都包含有可提供進一步詳細資訊和指引的內容連結。
下圖顯示一般 邊緣型IoT解決方案中元件的高階檢視。 本文著重於邊緣型IoT解決方案中延展性、高可用性和災害復原的相關領域:
延展性
IoT 解決方案可能需要支援數百萬個連線的資產和裝置。 您必須確保解決方案中的元件是可調整的狀態,以符合需求。
在多節點叢集上部署 Azure IoT 作業,以確保您可以處理增加的流量或工作負載需求。 當 Azure IoT 作業在多節點叢集上執行時,它可以處理更多數據,並利用 Kubernetes 的延展性和高可用性功能。
您可以藉由新增更多前端復本和後端分割區,水平調整 Azure IoT 作業的 MQTT 訊息代理程式。 前端復本負責接受來自用戶端的 MQTT 連線,並將其轉送至後端分割區。 後端分割區負責儲存和傳遞訊息給用戶端。 前端 Pod 會將訊息流量分散到後端 Pod。 後端備援因素會決定數據復本數目,以針對叢集中的節點失敗提供復原能力。 若要深入瞭解,請參閱 設定 Broker 設定以取得高可用性、擴展和記憶體使用量。
Azure Device Registry 是一項後端服務,可讓雲端和邊緣管理資產。 Device Registry 會將邊緣環境中定義為雲端中的 Azure 資源的資產。 它提供單一整合登錄,讓與資產互動的所有應用程式和服務都可以連線到單一來源。 Device Registry 也會管理雲端中的資產與在邊緣 Kubernetes 中作為自訂資源的資產之間的同步處理,使您能夠擴展解決方案至數百萬個連線資產。
您可以調整數據流配置檔,以調整執行數據流的實例數目。 增加實例計數可以藉由建立多個用戶端來處理數據,來改善數據流的輸送量。 搭配每個用戶端有速率限制的雲端服務使用數據流時,增加實例計數可協助您保持在速率限制內。 調整也可以藉由在失敗時提供備援來改善數據流的復原能力。 若要深入瞭解,請參閱 調整數據流配置檔。
高可用性和災害復原
IoT 解決方案通常是業務關鍵。 您必須確保解決方案在失敗時能夠繼續運作。 您也需要確保可以在下列災害時讓解決方案恢復正常。
Azure IoT 作業具有符合標準的 MQTT 訊息代理程式。 MQTT 訊息代理程式可調整、高可用性和 Kubernetes 原生。 它提供IoT作業的傳訊平面、啟用雙向邊緣/雲端通訊,以及為邊緣的事件驅動應用程式提供動力。 為了確保部署升級期間零數據遺失和高可用性,MQTT 訊息代理程式會在 MQTT 訊息代理程式 Pod 上實作滾動更新。
狀態存放區是分散式記憶體系統,部署為 Azure IoT 作業的一部分。 使用狀態存放區,應用程式可以取得、設定和刪除機碼/值組,而不需要安裝更多服務,例如 Redis。 狀態存放區也提供數據的版本控制,以及建置分散式鎖定的基本類型,非常適合高可用性應用程式。 若要深入了解,請參閱在狀態存放區中保存資料 (部分內容可能是機器或 AI 翻譯)。
在具有至少三個節點的多節點叢集上,您可以選擇在部署 Azure IoT 作業時,使用 Azure Arc 所啟用的 Azure 容器記憶體來啟用記憶體容錯。
Dapr 是 MQTT 訊息代理程式提供的一部分,它能將 MQTT 會話管理、訊息 QoS 和通知的複雜細節抽象化,並包含內建的索引鍵/值存放區,這使其成為開發高可用性應用程式的實用選擇。
Azure IoT 作業 SDK(預覽版)是跨多種語言的工具和連結庫套件,旨在協助開發適用於 Azure IoT 作業的高可用性應用程式。
如需 Azure Device Registry 跨可用性區域和區域的高可用性資訊,請參閱 Azure Device Registry 中的可靠性。