You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
IoT Edge moves your existing business logic to devices operating at the edge. To prepare your applications and workloads to run as [IoT Edge modules](iot-edge-modules.md), you need to build them as containers. This article provides guidance around how to configure your development environment so that you can successfully create an IoT Edge solution. Once you have your development environment set up, you can learn how to [develop your own IoT Edge modules](module-development.md).
16
+
IoT Edge moves your existing business logic to devices operating at the edge. To prepare your applications and workloads to run as [IoT Edge modules](iot-edge-modules.md), you need to build them as containers. This article provides guidance on how to configure your development environment so that you can successfully create an IoT Edge solution. Once you set up your development environment, you can learn how to [develop your own IoT Edge modules](module-development.md).
17
17
18
-
In any IoT Edge solution, there are at least two machines to consider: the IoT Edge device (or devices) that runs the IoT Edge module, and the development machine that builds, tests, and deploys modules. This article focuses primarily on the development machine. For testing purposes, the two machines can be the same. You can run IoT Edge on your development machine and deploy modules to it.
18
+
In any IoT Edge solution, consider at least two machines: the IoT Edge device (or devices) that runs the IoT Edge module, and the development machine that builds, tests, and deploys modules. This article focuses primarily on the development machine. For testing purposes, the two machines can be the same. You can run IoT Edge on your development machine and deploy modules to it.
19
19
20
20
## Operating system
21
21
22
22
IoT Edge runs on a specific set of [supported operating systems](support.md). When developing for IoT Edge, you can use most operating systems that can run a container engine. The container engine is a requirement on the development machine to build your modules as containers and push them to a container registry.
23
23
24
24
If your development machine can't run IoT Edge, skip to the [Testing tools](#testing-tools) section of this article to learn how to test and debug locally.
25
25
26
-
The operating systems of the development machine and IoT Edge devices don't need to match. However, the container operating system must be consistent with the development machine and the IoT Edge device. For example, you can develop modules on a Windows machine and deploy them to a Linux device. The Windows machine needs to run Linux containers to build the modules for the Linux device.
26
+
The operating systems of the development machine and IoT Edge devices don't need to match. However, the container operating system must be consistent between the development machine and the IoT Edge device. For example, you can develop modules on a Windows machine and deploy them to a Linux device. The Windows machine needs to run Linux containers to build the modules for the Linux device.
27
27
28
28
## Container engine
29
29
30
30
The central concept of IoT Edge is that you can remotely deploy your business and cloud logic to devices by packaging it into containers. To build containers, you need a container engine on your development machine.
31
31
32
-
Any container engine compatible with the Open Container Initiative, like Docker, is capable of building IoT Edge module images. Moby is the supported container engine for IoT Edge devices in production. If you're using Ubuntu Core snaps, the Docker snap is serviced by Canonical and supported for production scenarios.
32
+
Any container engine compatible with the Open Container Initiative, like Docker, is capable of building IoT Edge module images. Moby is the supported container engine for IoT Edge devices in production. If you're using Ubuntu Core snaps, Canonical services the Docker snap and supports it for production scenarios.
33
33
34
34
## Development tools
35
35
@@ -65,9 +65,9 @@ The Azure IoT Edge tools for Visual Studio provide an IoT Edge module template b
65
65
66
66
## Testing tools
67
67
68
-
Several testing tools exist to help you simulate IoT Edge devices or debug modules more efficiently. The following table shows a high-level comparison between the tools and the following individual sections describe each tool more specifically.
68
+
Several testing tools exist to help you simulate IoT Edge devices or debug modules more efficiently. The following table shows a high-level comparison between the tools. The following individual sections describe each tool more specifically.
69
69
70
-
Only the IoT Edge runtime is supported for production deployments, but the following tools allow you to simulate or easily create IoT Edge devices for development and testing purposes. These tools aren't mutually exclusive, but can work together for a complete development experience.
70
+
Only the IoT Edge runtime supports production deployments, but the following tools support development and testing. Use these tools to simulate or easily create IoT Edge devices. These tools aren't mutually exclusive, but can work together for a complete development experience.
71
71
72
72
| Tool | Also known as | Supported platforms | Best for |
@@ -78,7 +78,7 @@ Only the IoT Edge runtime is supported for production deployments, but the follo
78
78
79
79
The Azure IoT EdgeHub Dev Tool provides a local development and debug experience. The tool helps start IoT Edge modules without the IoT Edge runtime so that you can create, develop, test, run, and debug IoT Edge modules and solutions locally. You don't have to push images to a container registry and deploy them to a device for testing.
80
80
81
-
The IoT EdgeHub Dev Tool was designed to work in tandem with the Visual Studio and Visual Studio Code extensions, and with the IoT Edge Dev Tool. The dev tool supports inner loop development and outer loop testing, so it integrates with other DevOps tools too.
81
+
The IoT EdgeHub Dev Tool works with the Visual Studio and Visual Studio Code extensions, and with the IoT Edge Dev Tool. The dev tool supports inner loop development and outer loop testing, so it integrates with other DevOps tools too.
82
82
83
83
> [!IMPORTANT]
84
84
> The IoT EdgeHub Dev Tool is in [maintenance mode](https://github.com/Azure/iotedgehubdev/issues/396). Consider using a [Linux virtual machine with IoT Edge runtime installed](quickstart-linux.md), physical device, or [EFLOW](https://github.com/Azure/iotedge-eflow).
@@ -93,9 +93,9 @@ For more information, see [Azure IoT Edge Dev Container](https://github.com/Azur
93
93
94
94
## DevOps tools
95
95
96
-
When you're ready to develop at-scale solutions for extensive production scenarios, take advantage of modern DevOps principles including automation, monitoring, and streamlined software engineering processes. IoT Edge has extensions to support DevOps tools including Azure DevOps, Azure DevOps Projects, and Jenkins. If you want to customize an existing pipeline or use a different DevOps tool like CircleCI or TravisCI, you can do so with the CLI features included in the IoT Edge Dev Tool.
96
+
When you're ready to develop at-scale solutions for extensive production scenarios, take advantage of modern DevOps principles including automation, monitoring, and streamlined software engineering processes. IoT Edge has extensions to support DevOps tools including Azure DevOps, Azure DevOps Projects, and Jenkins. If you want to customize an existing pipeline or use a different DevOps tool like CircleCI or TravisCI, use the CLI features included in the IoT Edge Dev Tool.
97
97
98
-
For more information, guidance, and examples, see the following pages:
98
+
## Next steps
99
99
100
100
*[Continuous integration and continuous deployment to Azure IoT Edge devices](how-to-continuous-integration-continuous-deployment.md)
Azure IoT Edge lets you deploy and manage business logic on edge devices using *modules*. Azure IoT Edge modules are the smallest unit of computation managed by IoT Edge, and can contain Azure services (such as Azure Stream Analytics) or your own solution-specific code. To understand how modules are developed, deployed, and maintained, consider the four conceptual elements of a module:
22
+
Azure IoT Edge lets you deploy and manage business logic on edge devices by using *modules*. Azure IoT Edge modules are the smallest unit of computation managed by IoT Edge. They can contain Azure services, such as Azure Stream Analytics, or your own solution-specific code. To understand how modules are developed, deployed, and maintained, consider the four conceptual elements of a module:
23
23
24
24
* A **module image** is a package containing the software that defines a module.
25
-
* A **module instance** is the specific unit of computation running the module image on an IoT Edge device. The module instance is started by the IoT Edge runtime.
26
-
* A **module identity** is a piece of information (including security credentials) stored in IoT Hub that is associated to each module instance.
27
-
* A **module twin** is a JSON document stored in IoT Hub that contains state information for a module instance, including metadata, configurations, and conditions.
25
+
* A **module instance** is the specific unit of computation running the module image on an IoT Edge device. The IoT Edge runtime starts the module instance.
26
+
* A **module identity** is a piece of information, including security credentials, that IoT Hub stores and associates with each module instance.
27
+
* A **module twin** is a JSON document that IoT Hub stores and contains state information for a module instance, including metadata, configurations, and conditions.
28
28
29
29
## Module images and instances
30
30
31
-
IoT Edge module images contain applications that take advantage of the management, security, and communication features of the IoT Edge runtime. You can develop your own module images, or export one from a supported Azure service, such as Azure Stream Analytics.
32
-
The images exist in the cloud, and you can update, change, and deploy them in different solutions. For example, a module using machine learning to predict production line output is a separate image from a module using computer vision to control a drone.
31
+
IoT Edge module images contain applications that take advantage of the management, security, and communication features of the IoT Edge runtime. You can develop your own module images or export one from a supported Azure service, such as Azure Stream Analytics.
32
+
You manage images in the cloud. You can update, change, and deploy them in different solutions. For example, a module that uses machine learning to predict production line output is a separate image from a module that uses computer vision to control a drone.
33
33
34
-
Each time the IoT Edge runtime deploys and starts a module image on a device, it creates a new instance of that module. Two devices in different parts of the world could use the same module image. However, each device would have its own module instance when the module is started on the device.
34
+
Each time the IoT Edge runtime deploys and starts a module image on a device, it creates a new instance of that module. Two devices in different parts of the world can use the same module image. However, each device has its own module instance when the module starts on the device.
35
35
36
36

37
37
38
-
In implementation, modules images exist as container images in a repository, and module instances are containers on devices.
38
+
In implementation, module images exist as container images in a repository, and module instances are containers on devices.
0 commit comments