As highlighted in the original post an end-to-end Internet of Things (IoT) platform needs to provide more than just data collection and data analysis capabilities. The following outlines the list of capabilities desired in an IoT platform.
- SDK that can be used as part of firmware in IoT enabled devices
- Device and related firmware/software management
- Potential for plug and play global connectivity – GPRS/3G/4G/LTE
- Support for standard protocols
- Bi-directional communication for data transfer and control
- Processing of streaming data
- Time-series data management
- Archiving and large scale data storage
- Data analysis
The following picture provides a simplified view and potential architecture of a connected product/service, a typical scenario for IoT.
Now let’s look at how each of the Cloud Computing platforms do with respect to the above list of desired capabilities.
SDK that can be used as part of firmware in IoT enabled devices
- Amazon Web Services offers a compelling device SDK that is clearly well adopted by a number of chipset manufacturers based on the listings in Amazon marketplace.
- Google Brillo is a great starting point for IoT development and operations. It would be a lot better if it came with in-built support for supporting backend IoT data management and analytics services (Big Table, Big Query) like Amazon’s SDK does. But it may only take small amount of code to accomplish that.
- Windows 10 for IoT is part of the Universal Windows environment and should be an obvious candidate for Windows developers.
Device and related firmware/software management
IoT-centric design offers a great opportunity to continuously improve products and services with over-the-air (or via any network) software updates. This is a much desired capability if the platform and related SDKs can offer the capability.
- Amazon Web Services offers a continuous delivery and integration service with Code Pipeline.
- Google Brillo seems to offer core capabilities for managing device firmware and updates.
- Similarly Windows Update Service support is now added to Windows IoT core
In general, all IoT platforms require a sophisticate continuous delivery and integration and update service to manage millions of devices and related firmware/software in the field. The Big 3 have significant experience managing millions of devices and related software with their Kindle/Echo, Nexus/Android and Windows/XBox businesses. You should be confident that they do the job for you too rather easily.
Potential for plug and play global connectivity (GPRS/3G/LTE…)
This is usually something a telecommunications service provider offers to customers. However, the Big 3 of Cloud Computing could make the on-ramp for IoT easier by creating some sort of an MVNO. In fact, Google is well on its way with Fi.
Support for Standard Protocols
It can seem like there are as many IoT protocols as there as IoT consortiums. There is AllSeen, Weave from Google, MQTT and so on. The device SDK teams are most likely waiting to see which ones of these protocols will become the dominant one. MQTT is the standard that Amazon supports and MQTT client for Windows IoT can be found in the open source community.
Security should be paramount in all IoT design and platform discussions. Every layer of the IoT platform should provide exceptional support for security.
- Brillo seems to offer strong security at the hardware and software level
- Windows IoT has been making strong strides when it comes to security
- Amazon IoT SDK and supporting IoT connection services offer a strong security model based on certificates, authentication and authorizations
Stream Data Processing
One of the most common things IoT devices do is to generate and in many cases send a torrent of data to Cloud services. It is ideal if the Cloud Platform offers a stream data processing as a service that can be made part of the overall IoT information architecture
- Amazon Kinesis is where you start if you select AWS as your IoT platform
- You can use 2 very fine services from Google Cloud Platform – Cloud Pub/Sub and Cloud Dataflow
- And here is the Stream Data Processing service of Microsoft Azure
Time-series Data Management
You would be surprised how often you need to store and analyze time-series data in an IoT application. From metering to monitoring performance, time-series is every where. Capabilities offered by solutions like KairosDB, which is built on Cassandra, are what one could use as core capabilities of IoT platform. Unfortunately, none of the Big 3 cloud vendors offer it yet. Of course, you could easily develop time-series data management capabilities on top of BigTable, Dynamo or SQLServer. But it would be a lot more convenient if time-series data management is a core capabilities of IoT platforms.
Archiving and Large Scale Data Storage
In large scale IoT scenarios before you know it you can find yourself knee deep in data that you may or may not need. First and foremost, the IoT platform should be able to support managing large amount (often in terabytes or more) of measurement and event data cost-effectively. Secondly, the IoT platform should provide and easy way to archive data in various tiers since historical data does not always require low latency storage and your organization may need to keep historical data for regulatory reasons.
- Amazon has Dynamo, S3 and Glacial that can meet large scale data management and archiving requirements of typical IoT scenarios
- Google Cloud Platform provides a host of services, including Cloud DataStore, Cloud BigTable and Cloud Storage
- Microsoft Azure provides DocumentDB, Event Hubs and many other supporting services
Now that you have managed to set up your IoT service on one of the IoT platforms from the Big 3 you will find a need to conduct simple to sophisticated analysis. The Big 3 provide a rich suite of analysis capabilities that range from simple data warehousing to sophisticated machine leaning.
Overall, if you are looking to set up a moderate to large scale IoT infrastructure you will go wrong with any of the IoT platforms from the Big 3. Amazon’s IoT Stack and Microsoft Azure’s IoT Suite look especially attractive given the breadth and depth of coverage of IoT stack.
Latest posts by Kris Gorrepati (see all)
- Serverless Computing on Cloud Platforms – The Game Changer - January 15, 2017
- Modeling and understanding complex cyber-physical systems - January 15, 2017
- IoT Platform Comparison – Amazon Web Services vs. Google Cloud Platform vs. Microsoft Azure - January 15, 2017