The Internet of Things (IoT) has become a trending phrase for consumers and a top priority for businesses embarking on their digital transformation.

As worldwide spending on IoT devices skyrockets,  IDC’s Worldwide Semiannual Internet of Things Spending Guide predicts that global spending in IoT will leap from over $800 billion in 2017 to $1.4 trillion by 2021. While this increase is attributed to continued investments made by organizations in  hardware, software, services, and connectivity to enable IoT, the goal of driving operational efficiency and increasing revenue through improved consumer experience faces increased software complexity. Why is understanding this complexity important and what should developers keep in mind?

The proliferation of IoT devices
The IoT is a network of things connected to the Internet and is uniquely identifiable through its embedded computing system. These “things” may include a variety of devices like home appliances, commercial vending machines, fitness trackers, industrial gateways, connected cars, and smart factories. For instance, the transportation industry is using sensors to improve fuel usage in planes and trucks, the industrial sector is using IoT to reduce gas leaks and sectors like retail, automotive, and media are focused on providing consumers with a rich experience by enabling new device interactions and avenues to consume data.

The retail industry specifically is using devices such as smart shelves, point of sale, and digital signage to significantly improve consumer experience in brick-and-mortar stores to drive more sales. There are also voice-controlled devices like the Amazon Echo and Google Home, which offer a premium experience by allowing consumers to play music, stream podcasts, provide weather updates, control your smart home, and more.

Monitoring IoT performance
As the number of IoT devices in the consumer and business space increase, so will the complexity of the infrastructures needed to support the new services and touch points. With this increasing software complexity, there is also a correlated demand from users for highly-responsive, real-time digital services. For developers creating tools, this will create challenges as they are often charged with ensuring perfect experiences in the applications they develop.

Before operations teams can begin managing IoT applications efficiently, developers need to understand the monitoring requirements from both the technical and business end. To help simplify this process, considering the following will be key.

Technical requirements

  • Ability to monitor IoT applications that run on devices with different processor architectures (e.g., ARM7, x86, Cortex-M series), and a multitude of operating systems. (e.g., embedded Linux, QNX, mbed OS, VxWorks)
  • Ability to monitor IoT applications written in multiple languages (e.g., C, C++, Java, Python, Javascript, Node.js).
  • Overhead for monitoring IoT applications should be minimal and operate within device constraints such as memory, computing resource, and network connectivity.
  • Ability to ingest data generated by IoT applications that can vary significantly based on application type. For example, an industrial gateway device might generate gigabytes of sensor data whereas a point-of-sale device may trigger thousands of user transactions per day.

Business requirements

  • Ability to manage the complexity of software and services offered on the new IoT device types and applications. IT needs to detect issues proactively and keep MTTR low.
  • Ability to provide the same user experience, independent of device type.
  • IoT devices generate tremendous amounts of data and it’s important to be able to get insights into the business performance quickly.
  • Ability to correlate business performance with IoT application performance. For example, when a business is losing money, it should be easy to quickly identify the root cause of a performance issue.
  • Ability to react to real-time alerts on application or business performance issues.

Once these requirements are understood and implemented, developers will see improvements in the IoT applications they are building. Developers will be able to truly understand how their applications are performing, thus turning the IoT into a real business opportunity and more than just a trending phrase.