Table of Contents

    Challenges With Modern IoT Device Management

    The Internet of Things (IoT) has revolutionized how we interact with technology in our daily lives. From smart thermostats to connected cars, IoT devices are everywhere. But what exactly is IoT, and how can you get started building your own connected devices?

    The Current State

    There is no doubt that in the past couple decades, there have been enormous strides made to faciliate the mass production and management of IoT devices at scale. Today, there are a plethora of tools and/or platforms designed to help provision, configure, monitor, and maintain these devices at scale.

    Key Players In The IoT Management Industry

    1. Balena

      • Key Features: Public URL, containerized update process, USB flash install/provisioning.
      • Use-Case: Ideal if you run multiple containerized (Docker) services on the IoT edge devices.
      • Cautions: Pseudo vendor-locking by installing a custom Balena OS that modifies the bootloader.
    2. Mender

      • Key Features: Robust OTA update mechanism to perform updates at the operating system level.
      • Use-Case: Ideal if you need reliable OS-level or firmware updates on Linux-based IoT devices.
      • Cautions: Mender has a steep learning curve and can be overwhelming to start.
    3. JFrog Connect

      • Key Features: Integration with greater JFrog platform and advanced monitoring tools.
      • Use-Case: Ideal if well-integrated into the JFrog ecosystem (e.g. leveraging Artefactory).
      • Cautions: More suited for DevOps workflows and can be quite expensive to use.
    4. Azure IoT Hub

      • Key Features: Advanced device security, Azure integration, enterprise scalability.
      • Use-Case: Ideal if well-integrated into Azure and require enterprise-grade security.
      • Cautions: Complex setup and limited ability to remotely control/troubleshoot devices.
    5. Particle

      • Key Features: Provides hardware, built-in OTA and device management features.
      • Use-Case: Need an end-to-end solution from hardware, software, networking, and cloud.
      • Cautions: You are effectively vendor locked as you use their hardware and platform.

     
     

    PlatformUse Case
    BalenaFleet Management at scale with containerized (Docker) update workflow
    MenderOS-level updates done at scale by leveraging A/B partitions
    JFrog ConnectOTA updates with strong integration into the greater JFrog platform
    Azure IoT HubSecure device management with tight integration into Microsoft Azure ecosystem
    ParticleSells and provides hardware that integrates with their PaaS (end-to-end solution)

    The Missing Piece(s)

    In spite of the major advancements in IoT device management software and utilities, there are two fundamental shortcomings:

    1. Limited Offline Support: The major players in the IoT management industry operate under the assumption that network devices have reliable and stable connection to the internet.
    2. DevOps Only Utility: Outside of DevOps or technical folks, interfacing with the IoT devices is cumbersome and error-prone, especially with limited technical support (e.g. working underground).

    Limited Offline Support

    While “Internet” is in the name, there is unfortunately no guarantee that your IoT devices will get internet or remain connected throughout a deployment lifecycle.

    This is especially true if you’re operating in a client environment without any control over their network topology and unpredictable day-to-day operations (e.g. underground in a mine).

    In such an event, there is no longer any insight into that device. Maybe the services are still running, but can you be sure data collection is still operating as normal? How do you offload that data?

    You either need to wait until the network connection gets fixed (if it does), or someone needs to go down there and do regular device maintenance (e.g. file offloads, software updates, etc.).

    DevOps Only Utility

    Consider a scenario where a contractor is deploying your IoT devices may need to configure a static IP address on the devices, or connect it to a transient Wi-Fi network to validate connectivity.

    Consider again a scenario where your device(s) lose connection underground in a mine and a technician needs to go and investigate. How will they be enpowered to determine if the device is operating correctly?

    There are a couple ways to go about this:

    1. Leverage An Offline Manager Tool: The ideal situation where you expose some sort of easily accessible web application that the operator can use to easily perform his/her tasks.

    2. Perform A Device Hotswap: In an ideal world this may be the simplest option and the most reliable. Unfortunately, this isn’t always easy to do, as the devices can be deployed in areas that are difficult to setup and uninstall.

    3. Use The Terminal: If all else fails, use the terminal to run the commands needed to get the device(s) back operational. This requires some level of technical expertise, is insecure, and can be error prone, especially if instructions are not clearly communicated.

    Overcoming These Challenges

    To overcome the challenges mentioned above, it is necessary that there is a GUI (graphical user interface) that can enpower users to manage and maintain device state. In particular, a tool that has:

    1. Device Overview: Display the running services, system logs, memory usage, CPU usage, and storage usage.
    2. Network Interface Management: Allow users to set static/DHCP addresses and connect to Wi-Fi networks.
    3. Update Utility: Mechanism to allow for device and/or software updates by uploading a bundle/script.
    4. RBAC: Manage user access to the application to prevent unauthorized device access.
    5. File Transfer: Upload/download files to/from the IoT device.
    6. Terminal Access: An emergency option to allow advanced troubleshooting in the event that it’s needed.

    Have questions about IoT development? Feel free to reach out in the comments below or connect with our community of makers and developers.

    R

    About Randy Kay

    IoT specialist and technology enthusiast passionate about connecting devices and creating smart solutions for the modern world.