Rethinking IoT cloud architecture design: a comparison between different approaches
This guide will explore the technologies that are needed to create a robust and scalable IoT infrastructure. We will be comparing different approaches and platform providers.
We will be comparing the AWS Serverless approach and the different IoT analytics service providers. We will be explaining concepts, pros cons, and design tips to help you choose the best IoT platform. We hope you will find this a useful reference whether you are just curious about IoT or actually planning a project.
Serverless is a cloud model which allows users to build and design their IoT infrastructure without any managed servers. There are many services provider like AWS, Azure GCP, etc which offer many microservices to design your architecture using a serverless approach. I have been using AWS for a while now. I have designed my IoT cloud architecture using AWS. Some of my previous blogs where I discussed building blocks of IoT architecture will give you a detailed description of the AWS Serverless approach that I am using in my project.
I am using the following AWS microservices to serve my operation
- AWS Lambda
- AWS Timestream
- AWS Grafana
- AWS IoT
- AWS API Gateway
- AWS SNS
AWS IOT core is responsible for device provisioning and management. It handles all the MQTT requests from the device. AWS IoT core rules and action allows us to relay these request to other microservices. it follows publish and subscribe model which helps us to perform any action on the device like configuration changes from AWS IoT.
AWS Lambda serves as the cloud bocks. It receives an event from different microservices and performs the desired action. In our case, we are using different lambda functions for performing a variety of functions. One of them is that it receives an event from AWS IoT, processes the data, convert it into AWS Timestream schema, and writes it to the AWS Timestream database. Other functions are used to handle other HTTP events, query databases sending push notifications ad handle OTA events.
AWS Timestream servers as IoT device database. It is a time-series database that can query huge amounts of data. It can automatically scale up and down depending on capacity
AWS API Gateway is responsible for handling all mobile and web HTTP requests. AWS Lambda handles AWS API Gateway HTTP events and provides desired responses.
AWS Grafana serves as an analysis tool. It provides a variety of visualization tools like graphs, gauges, maps, and more. It also has AWS Timestream as a Dataset option.
ByteBeam is an IoT cloud platform provider. It is a fully managed cloud platform specifically for IoT. Lately, I was using AWS serverless approach where I had to manage different microservices to serve my operation. Bytebeam offers me a Dashboard, device management, device provisioning, and OTA services without writing a single line of code and without any microservice management. In one of my blogs, I have gone through the concept and approach used by ByteBeam. ByteBeam provides me following services
- Device Registry
- Over The Air Updates
- Device Provisioning and management
- Data Visualization
- Role-based access control
All of these services are very easy to use and can be configured in very simple steps. I have made a simple temperature and humidity application using the Bytebeam cloud platform. Byte beam also provides me with the SDK for my IoT device.
It offers me different widgets to visualize my device data using charts and graphs. it receives MQTT messages from IoT devices and helps you to visualize the published message using different dashboarding tools.
OTA firmware updates using MQTT have always been a struggle for me. Bytebeam offers me a dedicated service for firmware and configuration updates which has immensely helped me to add new features and debug my device from remote.
The device Management service by Bytebeam is very easy to use and navigate. It gives all the important statuses about the device such as device health, ongoing action, OTA progress, and many more.
Comparing AWS Serverless and ByteBeam
I have worked with both platforms. Both of these architectures have some pros and cons. I have evaluated this architecture on the basis ease to use, scalability, features, time to set up, and Complexity.
- Ease of using: To create IoT cloud architecture using AWS. we need to define different policies, permissions, roles, etc. Sometimes when you don’t have admin permission it might take a lot of time to set up and integrate different services. Whereas In the case of ByteBeam it saves a lot of time and effort while setting it up as it excludes writing policy documents and configuration.
- Features: AWS IoT offers many microservices. AWS as a cloud service provider can help you create web, mobile, and IoT applications. Whereas ByteBeam is made specifically for IoT and its features can cater to any IoT needs
- Time To setup: It is very easy to set up the ByteBeam dashboard, action, roles, and OTA. Whereas in AWS serverless needs more time and effort.
- Scalability: AWS offers a time-series database which is scalable and fast. Bytebeam also offers a time-series database which is highly scalable
- Complexity: AWS is more complex than ByteBeam.
So far I had a great time working with AWS Serverless and ByteBeam. AWS Serverless offers me a variety of microservices that can help me create web, mobile, and IoT applications under a single roof whereas ByteBeam is a better option for creating an IoT application. Due to the large number of features provided by AWS, it's a bit complex to set up whereas ByteBeam's more specific approach has eliminated the complexity to a larger extent. I hope you find this guide useful. I would like to know your thought on any other option we have around.