Azure IoT Edge Module Deployment: Layered Deployment in Microsoft Azure

Which Modules Cannot be Part of Layered Deployment?

Question

You have 50 edge devices in your IoT ecosystem and each of them must run several modules depending on the leaf devices connected to them.

The leaf devices change from time to time so do the set of modules to be deployed to a given edge.

In order to automate your work and to minimize the deployments needed, you decide to use layered deployment.

Which of the following modules cannot be part of a layered deployment?

Answers

Explanations

Click on the arrows to vote for the correct answer

A. B. C. D.

Correct Answer: A.

Option A is CORRECT because layered deployments are useful in scenarios where the same modules must be used in different combinations in several deployments.

Any modules can be deployed by the layered method except for the system runtime modules, the edgeAgent and edgeHub.

Target devices of the layered deployment must have the runtime modules deployed beforehand.

Option B is incorrect because any type of custom modules (e.g.

modbusTcpModule for communicating with industrial devices) can be deployed by layered deployment.

Option C is incorrect because any type of custom modules (e.g.

streamAnalytics jobs for performing data pre-processing locally) can be deployed by layered deployment.

Option D is incorrect because any type of custom modules (e.g.

avroWriter for writing data files locally) can be deployed by layered deployment.

References:

Layered deployment is a deployment technique used in Azure IoT Edge that allows the deployment of modules to edge devices in a hierarchical manner. It enables the deployment of common modules across multiple devices and specific modules based on the device's needs. In a layered deployment, a parent module is deployed on the edge device, and this parent module is responsible for deploying its child modules.

Now, let's look at each module listed in the question and determine if it can be part of a layered deployment.

A. edgeAgent module: The edgeAgent module is a required module that acts as a runtime agent for the Azure IoT Edge device. This module is responsible for managing the deployment of modules on the device and is always part of the deployment manifest. Therefore, it can be part of a layered deployment.

B. modbusTcpModule: The modbusTcpModule is a custom module that enables communication with Modbus devices using TCP. This module can be specific to certain edge devices and may not be required for all devices. As a result, it can be part of a layered deployment.

C. streamAnalyticsJob module: The streamAnalyticsJob module is an Azure Stream Analytics job module that can be used to process data on the edge device. This module is not a module that can be deployed to an edge device as part of a layered deployment. It is used to define a Stream Analytics job in the cloud, which can then be deployed to an edge device. Therefore, this module cannot be part of a layered deployment.

D. avroWriter module: The avroWriter module is a custom module that can be used to write data in the Apache Avro format. This module can be specific to certain edge devices and may not be required for all devices. As a result, it can be part of a layered deployment.

In summary, modules A, B, and D can be part of a layered deployment, while module C cannot.