In the early days of Microsoft Azure, there was a single Message Queue service; the Azure Storage Queue. This was way back in early 2010, however, soon after that Microsoft introduced another messaging service called Service Bus; then soon after another, and another! Over the years, there have been a few different messaging and message queue services introduced into the Microsoft Azure platform. Each of these messaging services are a little different than each other and offer a pretty wide range of messaging offerings to choose from. This article walks through the primary features of each of the Microsoft Azure messaging services, and will help give you an understanding of when to use each for your own applications and enterprise scenarios. Read More
Building out an IoT (Internet of Things) solution can be a difficult problem to solve. It sounds easy at first, you just connect a bunch of devices, sensors and such to the cloud. You write software to run on the IoT hardware and in the cloud, then connect the two to gather data / telemetry, communicate, and interoperate. Sounds easy, right? Well, it’s actually not as simple as it sounds. There are many things that can be difficult to implement correctly. The biggest problem area is Security, as it is in most other systems types as well. Then you can device management, cloud vs edge analytics, and many other aspects to a full IoT solution.
Traditionally you would need to build all this out yourself, however, with offerings from Microsoft there are a few options available for building out IoT solutions. The Azure IoT Suite offers PaaS (Platform as a Service) capabilities that are flexible for any scenario, while the newer Microsoft IoT Central is offering more managed SaaS (Software as a Service) capabilities to further assist in easing development, deployment and management.
PaaS IoT with Azure IoT Suite
There are many Microsoft Azure cloud services that can be used to build out an IoT solution. In order to more easily choose which services, Microsoft has created a marketing umbrella called the “Azure IoT Suite” that includes the following core services:
- Azure IoT Hub provides 2-way device messaging to the cloud with full device management and security integration among other IoT features.
- Azure Notification Hubs enables the ability to implement mobile push notification easily within the cloud that supports all major mobile platforms from iOS to Android and Windows.
- Azure Machine Learning provides the ability to build powerful cloud-based predictive analytics tools using pre-built machine learning algorithms that greatly lower the barrier to embracing machine learning for your solutions.
- PowerBI allows for rich visuals to be displayed providing easier analysis and reporting on your data.
- Azure Stream Analytics is a Real-Time event stream processing pipeline in the cloud thats built for high scale and ease of integration.
In addition to the listed services, you could really use any other Azure service that fits your particular solution. For example you may integrate Azure Storage, Azure CosmosDB, Azure Functions, among many others to build out the full capabilities of your own IoT solutions. It’s really up to you to choose what Azure services fit your scenario best and build out the best solution for your needs.
The Azure IoT Suite is based on using Azure PaaS (Platform as a Service) offerings to build out your solutions in a manner where you don’t need to manage any of the underlying Virtual Machine, Operating System updates / patches, and so on. These underlying VM in the PaaS services are fully managed for you within Microsoft Azure. This allows you to focus on your solution, your business, and your data; essentials you only focus on what matters to your core business in building out your IoT solutions.
SaaS IoT with Microsoft IoT Central
With the announcement of Microsoft IoT Central, Microsoft is entering into an area of offering a SaaS (Software as a Service) offering for building out and managing IoT (Internet of Things) solutions. This mean that not only do you benefit from the managed VMs and other aspects of the Azure IoT Suite PaaS offering, but you will also benefit from a great level of abstraction and managed services built / designed specifically for IoT form the ground up.
I speculate that Microsoft IoT Central is in fact running on top of Azure IoT Suite at it’s core; this is the pattern Microsoft operates with when adding higher levels of abstract in the Azure cloud. Similarly, Azure Functions provides serverless compute and execution of method of code in the cloud, and is built as an abstraction layer on top of the Azure Web Jobs PaaS feature of Azure App Service.
The further abstraction of Microsoft IoT Central creates a SaaS (Software as a Service) offering from Microsoft for more easily implementing and managing IoT solutions using a SaaS model. This is great for organizations that do not have much cloud solution and device expertise. It also helps those organizations build IoT solutions that offer more predictable pricing without the necessity to completely build the entire IoT solution themselves.
Choosing PaaS or SaaS for Your IoT Solution
Choosing PaaS (Platform as a Service) or SaaS (Software as a Service) is a choice that’s similar to the options of hosting a traditional application using either IaaS or PaaS. It’s really a comparable analogy. When deciding which of them to choose, here are some highlights of each option that you can use to help decide between a SaaS-based IoT solution or a PaaS-based IoT solution:
SaaS-based IoT Solution
- Fully managed solution
- Less flexibility – you will need to use the pre-built or builtin features to build out your IoT solution
- More features builtin – You don’t have to build everything yourself, as there are more features builtin that you can “automatically” take advantage of
- Lower barrier to entry
PaaS-based IoT Solution
- Fully customizable solution
- More flexible – you can implement pretty much any IoT solution you need
- Implement more yourself – With more flexibility, comes an increased responsibility to implement more of the various features of your IoT solutions yourself
- More expertise required
Looking at the previous highlights of PaaS vs SaaS based IoT solutions, it really does appear that SaaS is the better option. This really may be the case. Coming back to the IaaS vs PaaS analogy for hosting application, you want to start with the more managed service and then go more customizable if you need the flexibility. The same thing goes for IoT solutions as well. You’ll want to evaluate the SaaS based services that Microsoft IoT Central offer you before starting to build out your IoT solution. If SaaS offers you everything, then the more managed system will likely be best for you to use. However, if there is anything you require than SaaS (via Microsoft IoT Central) doesn’t support, and you really truly do require that feature in your solution, then you’ll likely want to go the PaaS route with Azure IoT Suite to build your own custom implementation.
I hope the outline provided in this article helps you decide whether SaaS-based or PaaS-based framework and services are the most appropriate choice for your organizations next IoT solution.
On Aug 17, 2016 I gave a “Getting Started with IoT” talk at the Milwaukee Azure group. In my talk I covered the basics of IoT Messaging Architecture and Azure IoT Suite (specifically IoT Hub and Stream Analytics), along with other Azure services such as Service Bus Queus, DocumentDB, and Azure Functions. No, IoT solution is complete with out an actual hardware device, so I showed what’s necessary to get started with Windows IoT development on a Raspberry Pi 2/3 along with an Adafruit BME280 Temp/Humidity/Pressure sensor and an LED wired up to the device. Read More
The Windows 10 Anniversary Update is a pretty big update for Windows Desktop, and it’s not any different for Windows IoT Core! It’s been an entire year since the initial release of Windows IoT Core and it’s definitely due for a major update. There are a bunch of really great features including improved performance and official support for the Raspberry Pi 3. There is also the addition of the Windows IoT Remote Client app for desktop or phone. Read More