In the previous article, we talked about what is AWS IoT Greengrass and how it can help business owners in their edge computing implementation. We will now look at Azure IoT Edge, which is a service that is similar to AWS IoT Greengrass, and compare between the two services.
What is Azure IoT Edge?
Note: Azure IoT Edge Version 1.2.0 is discussed here.
Azure IoT Edge helps device owners to extend functionality to their edge devices. It also allows device owners to manage their device, either individually or in groups. Azure IoT Edge allows custom logics and cloud services to be pushed to the edge devices, allowing the system at the edge to operate as expected with or without connectivity to the cloud. Azure IoT Edge has a device runtime called Azure IoT Edge runtime as well as a cloud service that allows device owners to monitor and manage their devices.
The Azure IoT Edge Runtime
The Azure IoT Edge runtime is a software that can be installed on devices that meet the device specifications. Once installed and running, the runtime allows the edge device to synchronize with the cloud and install other software called IoT Edge modules (similar to AWS IoT Greengrass components). Things that the runtime manages include:
- IoT Edge module installation, lifecycle, and update on edge device
- IoT Edge security standards on device
- Connectivity and synchronization with Azure IoT cloud
- Communication between IoT Edge Modules (via IPC)
- Communication between IoT Edge device and the other devices that are connected to it
- OTA device software updates
IoT Edge modules can be any software that can run in a Docker compatible container. The modules must be developed in a supported programming languages. Once deployed to device, each module will run as a container on the device. With IoT Edge modules, device owners can convert a simple device into a smart device.
The Azure IoT Edge Cloud Service
Azure IoT Edge cloud service is part of the Azure IoT Hub. It allows device owners to monitor the status of their device and deploy IoT Edge modules to a single device or a fleet of devices. IoT Edge devices can be grouped by adding tags, and different sets of modules can be deployed to different groups of devices.
Overall, the runtime in each IoT Edge device and the cloud services interacts with each other to help device owners seamlessly control and monitor the capabilities and statuses of their edge devices.
Both AWS IoT Greengrass and Azure IoT Edge are very similar in terms of their purpose. In this section, we will compare the 2 services based on different aspects to see which one is a better fit for your needs.
Although both AWS IoT Greengrass and Azure IoT Edge has come up with ways to simplify the device provisioning process, we feel that it is more convenient to provision devices in AWS IoT Greengrass. One big advantage of AWS IoT Greengrass is that it provides X.509 device identity certificates to new devices automatically unlike Azure IoT Edge. This can make large-scale provisioning simpler as the device owners do not need to produce a large number of X.509 certificates themselves.
Edge Device Software
The software running on the edge device is a critical part that makes the edge device “smart”. Since both software runtimes have similar features, we can look at some of their key differences to see which one is better.
|AWS IoT Greengrass Core||Azure IoT Edge Runtime|
|Components/Modules||– Each component runs on the core device’s software environment|
– Can be any software written in any language as long as the edge device has the necessary software environment to support it
|– Each module runs is a container and the application runs inside the container|
– Must be developed in one of the supported programming languages
|Device Hierarchy Setup||– Need to implement yourself using custom components||– Supports multi-level device hierarchy|
AWS IoT Greengrass components do not need to run as a container (but it is possible to configure a component to run a container image), which allows components to be lightweight and easier to develop. The choice of programming languages to develop AWS IoT Greengrass components is also much more flexible as it can support any language that the edge device supports, unlike Azure IoT Edge.
However, AWS IoT Greengrass (Version 2.1.0) does not natively support hierarchical device setups unlike the Azure IoT Edge runtime. This means that developers have to develop and implement their own device hierarchy logic through custom AWS IoT Greengrass components. Azure IoT Edge already has SDKs that allow developers to conveniently setup parent and child relationships between devices.
Both AWS IoT and Azure IoT services support X.509 certificate authentication. However, device owners using Azure IoT services have to get their own X.509 certificates for their devices. AWS IoT automatically issues X.509 certificates signed by AWS’ own Certificate Authority (CA) to devices that are registered. Beside basic device authentication using X.509 certificates, security implementations that uses Trusted Platform Module (TPM) are also supported by both AWS IoT and Azure IoT.
Overall, both AWS IoT and Azure IoT has high security standards that goes along with their edge computing services. However, it is important to note that the cloud providers are not fully responsible for on-site security. Businesses should perform their due diligence to secure their IoT edge systems.
It is not much of an issue to increase the scale of edge computing implementations with AWS IoT Greengrass and Azure IoT Edge as both services taken into account large scale device provisioning and deployment. However, it is important to note that each device needs to hit a certain device specifications to be able to run the AWS IoT Greengrass Core software or the Azure IoT Edge runtime. This means the cost of purchasing such devices could be slightly higher as compare to simple microcontrollers and the difference in cost can add up as the number of devices increase.
Integration with Cloud Services
One of the selling points of AWS IoT Greengrass and Azure IoT Edge is the ability to deploy cloud services to edge devices, allowing the system at the edge to perform complex analysis. Both services have made it easy for device owners to do that. Pre-built cloud service components/modules are available for deployment to edge devices and there are SDKs for developers to create their own components/modules that uses the cloud services.
In terms of cloud services, AWS is the winner. The breadth and depth of the services that AWS provides truly impressive. However, with the flexibility of AWS IoT Greengrass components and Azure IoT Edge modules, it is possible to use AWS and Azure cloud services together if a hybrid option is best for your business needs.
If your business is looking to implement edge computing and is considering to use AWS IoT Greengrass or Azure IoT Edge, we would recommend starting out with AWS IoT Greengrass due to its flexible and lighter software, convenience in provisioning and better cloud services. However, do note that AWS IoT Greengrass and Azure IoT Edge are 2 of the many edge computing services out in the market. They are relatively new and are continuously developing and improving. Do explore and seek out other services that best fit your business needs.
You can contact us if you need any help!
Author: Tay Wee Kiam
Hi! I am a software engineer at MaCh eX. You can contact me at firstname.lastname@example.org or connect with me on LinkedIn