Analysts predict that there will be billions of internet connected devices by the year 2020. While analyst reports range from 24 billion to upwards of 150 billion, what all analysts seem to agree on is that the Internet of Things (IoT) is big.

The reality, however is that the Internet of Things is already here and the potential that IoT represents for your business, you’re client’s business and you as a technologist cannot be overstated. As this technology makes its way from the consumer space to the enterprise, no industry or vertical will be unaffected by this change. Beyond the hype, whether one subscribes to modest predictions or more bullish figures the implications to business and IT organizations of all shapes and sizes is tremendous.

In fact, Microsoft estimates a nearly $2T (two-trillion US) market by calendar year 2017 with the majority of opportunity existing in the transportation, manufacturing, energy/utilities, healthcare, retail, computing and the consumer spaces.

I believe that the disruptive nature of IoT to existing businesses and the fierce battle for innovation it will drive into new business models cannot be understated. Put simply, I believe that organizations that do not adopt an IoT strategy to learn about their products, customers and processes will not be around 10 years from now. To put this in perspective, consider what the word looked like in 2004. There were movie rental and book store giants in every suburb in America which today have largely been replaced by online streaming and digital media. I can think of two major brands that just a decade ago seemed invisible but completely missed the opportunity and threat that the Internet posed and by the time they realized how far behind they were it was to too late.

IoT is no different. In fact, I believe that the Internet of Things is just as disruptive if not more so than both cloud and mobility combined. In many ways, these are enablers to IoT but I think that IoT has the potential to be much bigger than these two forces combined.

The things is, the “Internet of Things” isn’t so much about things as it is about learning about systems in the context of their environments and learning from the information/data gleaned from devices deployed in these environments. In other words, IoT really isn’t so much about “things” as it is about the insights gleaned from devices ranging in size from a common table coaster to the size of a postage stamp. Where things get most interesting is at scale- thinking thousands and hundreds of thousands of devices that communicate information about their surroundings and either automatically react to their environment or do so in response to a request from an external system.

These kinds of data-driven insights will both propel new business ventures and force existing, established businesses to rethink their strategy, service lines, and business models in order to survive. By taking action on the data and insights gleaned:

  • Customer relationship management evolves into product relationship management.
  • Physical assets in your organization are composed with line-of-business systems through automation to improve service delivery by reducing or eliminating human intervention.
  • The longevity of the products you purchase are vastly improved by sharing usage and diagnostic details to automatically remediate common issues and proactively address defects.
  • Your car reports its location via in-vehicle LTE (which will soon be standard, BTW) several times a day so that finding your vehicle is as simple as glancing at your smart phone.
  • Supply chains can be more intelligently managed to optimize the consumption of raw materials and vastly increase the lifetime of their production expensive machinery.
  • Retail stores and hotels can learn more about their guests to anticipate their needs without depending on a clunky loyalty card.

And these are just a few examples which represent both a tremendous opportunity and a significant challenge. While historically, IT has largely focused on the design, development, deployment and management of applications, systems and servers, IoT introduces new concerns. When planning for, designing, deploying and managing IoT solutions, new concerns such as device provisioning, physical security, deployment, connection and interaction with these devices (some of which are no larger than the head of a pencil eraser) which all must all be managed at scale- typically hundreds and thousands of devices within an organization or solution- must be considered. This poses some new challenges that traditional IT must contend with including:

  • Provisioning – How do I deploy, register and manage hundreds if not thousands of devices at scale?
  • Connectivity – How do I connect both IP and non-IP capable devices across a vast array of network and application protocols?
  • Addressability – How will my external systems and applications communicate with these new devices?
  • Security – How do I ensure that data coming from a device is in fact originating from the device (as opposed to some intermediary) and how do I protect the contents of the data while in transit?
  • Reliability – How can I reliably store all of this data?
  • Performance – How can I process and take action on this massive amount of data quickly enough to realize the benefits?
  • Scalability – How do I ensure that my infrastructure is capable of meeting the vast data storage and messaging requirements at scale?

If you think about some of the problems I outlined above, it becomes clear that IoT is very much about messaging, compute and big data. The closest example I can point to in terms of getting a sense of scale is the move from PCs to tablets and devices. Once upon a time, I had a desktop computer at home and laptop at work. Life was simple. I did personal stuff at home and work stuff at work. Today, I still have a PC at home and a laptop at work, but I also have 4 smart phones on my wireless plan, 5 tablets and another laptop. That’s 5 times the devices connected to the Internet than I had just a decade ago. That’s actually not all that impressive when you compare it to the hundreds of thousands, millions and billions of sensors, micro-controllers and other devices that will, in some way, end up talking over the internet.

Internet bandwidth concerns aside, this level of scale just isn’t practical to try to address within the traditional data center. Just as you wouldn’t try to host an API that sends hundreds of thousands of toasts to your app running across 3 platforms on-premises, the challenges that IoT poses can really only be addressed by vast investments of infrastructure.

The good news is that the technology required to address these challenges is already available. This is part of what makes IoT so exciting because the capabilities for bringing your IoT solutions to life are well within reach. And while the application and network protocol wars are only getting started- and as always, there will be winners and losers- there is really nothing stopping you from getting started today.

Beware of Snake Oil

Before I proceed, I do want to make one thing clear. IoT is not a product. It’s not an appliance. It’s not something you can buy and turn on. Anyone who tries to tell you otherwise is selling snake oil. Instead, building and delivering an IoT solution is about composing the right capabilities to deliver on the business outcome you are being employed to deliver. In that way, it isn’t all that different than any other large-scale IT project, but the shift in mindset I mentioned is important to understand the capabilities available and how they map to the IoT domain. Everything else is about developer economics.

While there are many platforms, APIs, SDKs and services out there, in this series I want to provide you with an overview of the work that Microsoft has been doing, specifically within the Azure platform to enable you to start delivering real-world IoT solutions today.

As framing for the rest of the articles in this series, I want to define a basic taxonomy that will introduce you to the capabilities in the context of the problem domain common in most IoT solutions. While not comprehensive, I like to think of a baseline architecture for IoT as including the following layers or aspects:

  • Ingest – Securely, reliably (and frugally) consume vast amounts of telemetry and data exhaust as well as support inquiries from a variety of devices with support for the most popular application and network protocols.
  • Stage – Land telemetry in temporary or long-term storage that provides unlimited capacity at a very reasonable cost.
  • Process – Glean insights both in real-time and from data at rest to support both immediate and longer term decision support with reserves of as much compute resources as required to get the job done.
  • Act – Take action on the real-time insights resulting in commands and/or notifications that securely reach the right device at the right time every single time.

One aspect not listed above is management. While the provisioning, registration and deployment of devices is a critical facet in real-world IoT solutions, I will not be covering this topic within the scope of this series. Also, as you can see, while I’ll show some actual device interaction in the Ingest and Act topics in this series, for the most part, I’m completely ignoring the digital electronics and embedded systems development aspects that are a huge part of the story. The reason for this omission is simply a scoping decision. It is highly likely that you will encounter digital electronics and embedded systems development in both brownfield and greenfield projects. While not comprehensive guides, I’d like to point you to a couple of resources that will be helpful in getting started. First, Make: Electronics by Charles Platt is a gem of a book that will teach you to distinguish between ohms and amps, build your first digital circuit, work with transistors and switches and much more. Oreilly Media also has a wonderful set of books in the Make series for getting up and running with Arduino, Netduino and Raspberry Pi to name just a few.

In this series, we’ll explore each of these aspects or layers one by one to elaborate further and discuss the capabilities on the Microsoft Azure platform that support each aspect. In the next article in this series, I’ll discuss the Ingest stage in detail.