生產部署範例

本文介紹兩個 Azure IoT 操作 部署範例,這些部署會從邊緣收集資料並傳輸至雲端。 這些範例是以實際案例為基礎,且會考慮硬體功能和資料量。 利用這些範例來更好地了解 Azure IoT 操作 在特定硬體下能處理多少資料。

Microsoft 也使用類似的配置與資料量來驗證 Azure IoT 操作 並衡量其效能。

單一節點叢集

此範例展示了 Azure IoT 操作 在硬體規格較低的主機上運行時的能力。 在此範例中,Azure IoT 操作 部署於單一節點叢集。 資產產生的資料會先透過 PLC 彙整,然後傳送至 OPC UA 的 Azure IoT 操作 連接器。

組態

範例硬體規格:

  • Azure 虛擬機上的 K3s(Standard_D4ds_v5搭載 Intel Xeon Platinum 8370C),四核心(四顆 vCPU),16 GB 記憶體,30 GB 儲存空間。

  • P3 Tiny Workstation 上的 AKS-EE (第 13 代 Intel® Core™ i7-13700 vPro® 處理器)、16 核心 (24 個執行緒)、32 GB 記憶體、1 TB 儲存空間。

重要事項

目前,Ubuntu 24.04 上的 K3s 與 vSphere Kubernetes Service 是唯一能在生產環境中部署 Azure IoT 操作 的平台。 若要深入了解,請參閱支援的環境。

下表顯示單一節點範例的 MQTT 代理程式組態:

參數 值
frontendReplicas 1
前端工作者 2
後端冗餘係數 2
backendWorkers 1
backendPartitions 1
memoryProfile low

範例中的端對端資料流程看起來像這樣:

Assets -> PLC -> Connector for OPC UA -> MQTT broker -> Data flows -> Event Hubs

範例中的資料量如下:

  • 由單一 OPC UA 伺服器彙總的 125 個資產。
  • 6,250 個標籤,以每個資產 50 個標籤為基礎。 每個標籤都會更新 2 次/秒,且平均大小為 20 個位元組。
  • OPC UA 連接器會將 125 則訊息/秒傳送至 MQTT 代理程式。
  • 一個資料流程管線會將 6,250 個標籤推送至事件中樞端點。

在這個例子中,Microsoft 建議使用 Event Hubs,因為你只能用四核心 CPU 建立一個資料流實例。 如果您選擇事件方格,它只能處理 100 則訊息/秒。

效能

此範例的主要效能計量包括:

  • Azure IoT 操作 及其依賴關係會消耗 6 GB 至 8-GB RAM。
  • Azure IoT 操作 及其相依關係平均消耗 2,400-2,600 毫核心。
  • 100% 的資料會推送至事件中樞。
  • 在理想的網路狀況下,端對端資料處理延遲小於 10 秒。

多節點叢集

當 Azure IoT 操作 運行於多節點叢集時,能處理更多資料並善用 Kubernetes 的高可用性能力。 在此範例中,Azure IoT 操作 託管於一個由五節點組成的叢集上,並每秒處理來自兩個不同資料來源的約 50,000 個資料點。

組態

範例硬體規格:

  • 5節點 K3 配備 Azure 台虛擬機(Standard_D8d_v5 配備 Intel Xeon Platinum 8370C)、8 核心(8 顆 vCPU)、32 GB 記憶體、30 GB。

  • 具有 P3 Tiny Workstations 的 5 節點 K3S (第 13 代 Intel® Core™ i7-13700 vPro® 處理器)、16 核心 (24 個執行緒)、32 GB 記憶體、1 TB 儲存空間。

重要事項

目前,Ubuntu 24.04 上的 K3s 與 vSphere Kubernetes Service 是唯一能在生產環境中部署 Azure IoT 操作 的平台。 若要深入了解,請參閱支援的環境。

下表顯示多節點範例的 MQTT 代理程式組態:

參數 值
frontendReplicas 5
前端工作者 4
後端冗餘係數 2
backendWorkers 4
backendPartitions 5
memoryProfile 高

在此範例中,有兩種類型的資料來源。 其中一個會透過 OPC UA 連接器進行連線,另一個會透過 MQTT 代理程式進行連線。

在此範例中,資產不代表實際一台設備,而是彙總資料點並傳送訊息的邏輯分組。

範例中的第一個端對端資料流程看起來像這樣:

Assets -> PLC -> Connector for OPC UA -> MQTT broker -> Data flows -> Event Hubs

範例中第一個資料流程中的資料量如下:

  • 85 個資產,由五部 OPC UA 伺服器彙總。
  • 以每個資產 1,000 個標籤為基礎的 85,000 個標籤。 每個標籤都會更新 1 次/秒,且平均大小為 8 個位元組。 每個週期大約 50% 的標籤會變更。 資料點更新速率為 45,000/秒。
  • OPC UA 連接器會將 85 則訊息/秒傳送至 MQTT 代理程式。
  • 一個資料流程管線會將 85,000 個標籤推送至事件中樞端點。

範例中的第二個端對端資料流程看起來像這樣:

MQTT client (Paho) -> MQTT Broker -> Data flows -> Event Hubs

範例中第二個資料流程中的資料量如下:

  • 兩個直接連線到 MQTT 代理程式的 MQTT 用戶端。
  • 每個客戶端都會發佈 10,000 個值/秒。
    • 每個週期大約 1/3 的標籤值會變更。
    • 使用 JSON 格式編碼。 每個項目 (值) 的大小大約為 180 個位元組。

效能

此範例的主要效能計量包括:

  • Azure IoT 操作 及其依賴關係會消耗 25 GB 至 30 GB RAM。
  • Azure IoT 操作 及其相依關係平均消耗 2,500-3,000 毫核心。
  • 100% 的資料會推送至事件中樞。
  • 在理想的網路狀況下,端對端資料處理延遲小於 10 秒。