With IoT being the new buzzword of Silicon Valley, there is increased developer interest in building IoT solutions. Microsoft provides cloud support for building IoT solutions; however, because this is a new space, everyone will benefit from learning about the best practices for building Internet of Things solutions using an Azure stack.
1. Start Small but Never Stop Thinking Big
Because IoT is a new space, there are a lot of moving parts. It is recommended to start small, but always think big.
This is because, as you build, you will discover that the originally planned architecture might need to be tweaked/scrapped/redone. The sensors that you thought were needed might not work for the end product. Starting small will allow you to iterate, learning what needs to be added to the next iteration and continually improve the product before you build it on a massive scale.
Never ship if you do not have a good story for device management because it will turn into a maintenance and security nightmare pretty soon. Build security from the first version. On the way, you will discover security issues, but that will only make your solution more secure over time as you patch your vulnerabilities.
As you build, you will come across a wide spectrum of hardware and software to support. An iterative model will help you support heterogeneity.
Finally, build for hyper-scale and enable low latency to build a performance solution.
2. Telemetry from Day One
You never know what data you will need in the future as you build your product. Telemetry can help capture this data from Day One. Some data that you think might be useless could turn out to be priceless in case there is demand for it in the future. In today's world, data is king.
With telemetry, you can address privacy, security, and manageability before moving to command and control.
Finally, when thinking about telemetry, don't just focus on device telemetry. Include diagnostic telemetry as well.
Support for telemetry is enabled by Event Hub (which supports high scale data ingestion). You can conduct high-scale stream processing via Stream Analytics or HDInsight.
Note that Event Hub supports ingesting millions of events per second. Configurable data retention policy supports "data drowning syndrome."
3. Don't Block if You Cannot Scale
Certain services like Azure Hub and Stream Analytics support enormous scale. Event Hub data flows directly to Stream Analytics. Do not try to insert bottlenecks here because it will interrupt the high-speed lane. Because both components are designed for high scale, any data processing that you want to do from the data you are processing through Azure Hub has to scale to prevent Stream Analytics from functioning at its peak capacity.
A generic principle is to avoid processing between high-scale components unless you can handle the scale.
4. Security First
As you build your solution, security should be an integral part of it. You should think about security, identity, and lifecycle management from the get go. You owe it to your customers to build solutions that are inherently secure.
5. Use Reference Architecture
Microsoft offers reference architecture for IoT and it is easier to build to that reference. IoT Suite, an upcoming offering from Microsoft, will ease the design and deployment of IoT solutions for common scenarios. The upcoming IoT Hub will extend Event Hub and include device provisioning, dentity, command and control, and management features.
In this article, you learned about some of the best practices related to building Internet of Things solutions using a Microsoft Azure stack.
About the Author
Vipul Patel is a technology geek based in Seattle. He can be reached at firstname.lastname@example.org. You can visit his LinkedIn profile at https://www.linkedin.com/pub/vipul-patel/6/675/508.