Choosing Your IoT Platform  Should You Go Open Source?

This detailed analysis of managed cloud IoT services vs. open source IoT platforms considers essential criteria for IoT development and the costs to be aware of.

Once an AWS IoT-based system processes beyond 1718 messages per second, its time to start thinking about moving to another IoT platform to reduce operating costs. Moreover, the cost per message drops dramatically after 20 messages per second for an open-source IoT platform and continues to decrease with the growing message rate, while remaining constant for serverless IoT.

In most cases, when considering a custom or open-source IoT platform, its important to remember that its deployment, operations, and maintenance are also part of the equation.

Also, an important benefit is a dashboard displaying the overall system statistics and health information, status of each particular module or service, with an option for notifications in case of an emergency.

The price often doesnt include the cost of the infrastructure to host the IoT solution, and its usually the biggest part of the bill. I am going to break it down in the next section.

Lets take a look at the below charts to see the monthly cost and cost per message correlation to a number of messages sent per second.

Choosing Your IoT Platform:  Should You Go Open Source?

To make sure that the platforms flexibility is not limited, it should be deployable for operations in any infrastructure, be it cloud, on premises, or a hybrid. If the platform heavily relies on particular cloud services, it will likely only work with this particular cloud. While it may be a good immediate decision to go with the cloud lock-in option, what if you decide to move to another cloud considering how quickly they evolve and how much they compete? You will end up changing the whole platform, which is a great waste of effort.

parent.isLimited ? Remove comment limits : Enable moderated comments

Different IoT system developers provide different pricing models. In most cases, an open source platform can be used for free. Below are the most common pricing models for IoT:

If the business is not expected to grow fast, or for business concept validation, a cloud-based solution is best. Otherwise, if the IoT platform matches most of the criteria above, then my advice:  go with an open-source solution.

While it is hidden behind the scenes with the serverless approach, a custom IoT solution must provide options to scale itself with predictable performance, memory, and throughput metrics. Some IoT frameworks provide more advanced and fine-grained scaling options that are more efficient but may require a skilled team or advanced operations.

The case with AWS vividly shows the enormous cost difference between the two approaches. It may not be obvious on small message volumes with other IoT cloud platforms, but its only a matter of finding that point when serverless approach becomes cost ineffective.

And finally, here is the monthly cost chart for a highly loaded IoT system. You can make your own conclusions.

parent.isLocked ? Enable : Disable comments

Choosing Your IoT Platform:  Should You Go Open Source?

One node instance can handle 5,000 msgs/sec with reasonable latency, less than or equal to 200 ms.

It scales linearly and predictably    each additional node can handle a constant number of messages per second.

parent.title parent.header.title

Published at DZone with permission ofIgor Ilunin .See the original article here.

; e.id = parsely-root; e.style.display = none; b.appendChild(e); )(document); (function(s, p, d) var h=d.location.protocol, i=p+-+s, e=d.getElementById(i), r=d.getElementById(p+-root), ; if (e) return; e = d.createElement(s); e.id = i; e.async = true; e.src= h+//+u+/p.js; r.appendChild(e); )(script, parsely, document);

The hardware manufacturing industry evolves extremely quickly, and we can observe how small and powerful edge devices could be. Most of the devices today can run operating systems, making them extremely flexible and capable of running programs written in any language.

As Head of IoT practice at DataArt, runningDeviceHive, Ive had to deal with a lot of challenges that all IoT platforms face. It helped me come up with the list of criteria to evaluate a production-grade IoT platform:

However, with low-end devices, one is constrained by their memory and computing power, and apps must be extremely efficient in resource consumption. Before choosing an IoT platform, its worth checking which devices it supports, whether it has native implementations for low-end devices, or if it supports lightweight communication protocols (MQTT or CoAP), which can run on low-end devices.

Lets look at larger numbers. What happens if we have 10,000 devices? We get $136,000 per month for AWS IoT versus $3,300 for open-source! This is indeed impressive, and if switching to another platform did not look so attractive before, now it looks like a must. The more messaging you have, the less cost efficient serverless IoT is, and the more you can save with another platform.

When considering a serverless IoT platform, you should keep in mind that it scales out automatically to serve a growing load, without prompts for action. It supports business growth, preventing blackouts due to lack of resources behind the cloud.

Lets assume that there is one device sending one message per second to the cloud. It will generate 2.628 million messages monthly, over 730 average hours a month.

by parent.authors[0].realName parent.author

Operations are a significant, and often underestimated, factor. Unlike serverless IoT platforms, where all operations are mostly hidden under the hood, it can take tremendous effort for your team to operate a custom IoT platform. You should always consider platform orchestration capabilities, especially when the platform is built using the micro-services architecture.

However, if we have ten devices sending 26.2 million messages monthly, we will get charged $140 for AWS IoT and still $225 for the open-source platform.

In this article, Ill present a more general overview of how to choose the right IoT platform for you. I will highlight the major criteria to consider and evaluate in a custom or open-source IoT platform. Finally, Ill present some math and cost analysis, comparing open-source to serverless IoT platforms, to help decide which approach to choose.

Additional flexibility is gained if the IoT solution supports APIs over WebSockets, REST, and CoAP.

AWS IoT costs $5 per 1M requests, and DynamoDB costs $0.0065 for every ten put requests per second, and the same cost for every 50 get requests per second.

Opinions expressed by DZone contributors are their own.

= partners.length !toUse) toUse = 0; if(partners) article.showLogo = (partners.length

1 && !articles[0].partner.isSponsoringArticle dc-slot=ads.sb2.slot(articles[0], 0) tags=ads.sb2.tags(articles[0], 0) size=ads.sb2.size(articles[0], 0)

Its worth considering in advance which protocols the custom IoT solution supports. If there is uncertainty about staying with a particular IoT platform in the future, I recommend checking whether it supports MQTT, the most broadly used protocol invented almost 20 years ago and a de-facto standard in IoT.

With an open-source product, you can do your personal due diligence to explore architecture and dive deep into the technology stack.

The platform should employ production-grade, well-supported frameworks, tools, and languages, while limiting their variety in order to reduce the need for developers with respective skill sets.

It provides an opportunity to almost seamlessly migrate to another IoT platform by replacing its backbone  the  MQTT broker with another IoT platform that supports MQTT. Moreover, this protocol is widely adopted by most of the cloud IoT providers, including AWS, Azure, and IBM Watson.

When choosing an IoT platform, security must be one of the top priorities, built in from the very first phase of the project. Checking security features of an existing IoT platform is a must. At the very least, it should provide transport level security (TLS) to communicate with devices and applications and authentication for devices and users.

Security in IoT is one of the hottest topics. The core problem is the absence of industry standards. While security concerns each component of the IoT ecosystem    devices, platforms, and applications   this article focuses on platform security.

Cloud giants, including AWS, Azure, IBM and Google, make considerable investments into their cloud services, which makes them cost efficient, convenient, scalable, and fault tolerant. Custom IoT platform of choice should be no different.

Join the DZone community and get the full member experience.

There are a few options for organizing platform support: hiring or educating a dedicated team, using support agreements with the company behind the platform, or relying on community support in case of an open-source platform.

The difference, which makes almost $1.6 million a year, should be enough to hire an engineering team to operate the product or build custom features, spin up a few extra instances for automatic orchestration, and get into a support contract with the company that develops the platform.

Support is one of the services provided at extra cost by the companies that develop IoT platforms, ensuring that the most recent updates, security issues, and bugfixes are delievered in a timely manner. Support allows custom features to be developed and the platform to be operated on ones behalf.

In this article, Ill present a more general overview of how to choose the right IoT platform for you. I will highlight the major criteria to consider and evaluate in a custom or open-source IoT platform. Finally, Ill present some math and cost analysis, comparing open-source to serverless IoT platforms, to help decide which approach to choose.

With open-source IoT solution hosted on AWS infrastructure, we will get a bill close to $225.

1024 && edition) class=content-right-images ntent

We see a very affordable monthly bill at around $22.

Cloud giants, including AWS, Azure, IBM and Google, make considerable investments into their cloud services, which makes them cost efficient, convenient, scalable, and fault tolerant. Custom IoT platform of choice should be no different.

If youre familiar with these criteria, you can skip the next sections, which detail those criteria, and go directly toAnalysis/Calculations.

A serverless IoT approach allows flexibility by providing integration options with the rest of the providers cloud services. However, in most cases, we cant modify the core of the IoT service itself. A custom IoT solution should provide great built-in functionality, extensive libraries, APIs and integration options with other platforms or services, an ability to extend the core of the system by using custom plugins or integrating custom code.

In my previous articleShould you use Serverless Architecture for your IoT Solution?, I reviewed DataArts approach to building a serverless IoT solution from scratch, its pros and cons, costs, and factors to consider before committing to this approach.

No one wants their business to become a botnet of compromised devices making DDoS attacks, or scanning website vulnerabilities. Recovering such infected device-cloud-application ecosystem and fixing security issues will cost a lot and take tremendous effort. Please dont let the security criteria slip off your list.

Microservices architecture should be considered, among others. While it may be difficult to operate, it provides the most flexibility for substituting any service with a custom implementation, while keeping the rest of the system intact.

First of all, lets compare the raw infrastructure costs. To make sure we compare apples to apples, we will analyze serverless AWS IoT and open-source IoT solutionss hosted on AWS infrastructure.

Requests are evenly distributed over time with no spikes.

We will compare the costs of serverless IoT and open-source IoT platform usage in the cloud. For the sake of simplicity, well assume that an open-source IoT platform has the following attributes:

Real-time scaling out to serve the changing load demand with more compute resources is not enough. In production, you will not have the luxury of determining the reasons for messages disappearing from devices or the whole platform not responding.

A mixture of the above is probably the most effective, but it depends on a particular case. Even if no support is required anytime soon, this option should be investigated in advance to avoid dealing with a non-working or not supported product. It also makes sense to explore how often new versions are rolled out, the product features roadmap, the number of staff members involved in support and development, and whether there are actual people to talk to.

With open source solutions, we can go way beyond that. There is freedom of unlimited customization and tuning of the product to match specific needs. Open source also gives you the entire picture of its all ins and outs.

The importance of architecture and technologies used in the platform is fundamental, as its future maintainability depends on its original design.

While cloud-based serverless IoT solutions provide vast integration options out of the box and instant time to market, the numbers speak for themselves   be ready for a huge bill.

The system should support failover and have disaster recovery capabilities to support production levels of reliability. It should implement health checks, monitor its components and provide self-healing for most cases. When choosing your platform, pay attention to how its reliability can be achieved. It is usually a combination of architecture and operation-specific sets of factors.

It is also worth researching whether the platform has authorization capabilities, what kind of data lifecycle management is used, whether it provides an option to store your data encrypted, and last but not least, if there are security audit documents available.

As Head of IoT practice at DataArt, running

Our reference instance for open-source IoT solution will be c4.xlarge with a 500GB General Purpose SSD and 500 GB/mo backup space for each node. In addition, well count costs for one elastic IP address, one load balancer for cluster purposes, and outbound traffic based on 1 Kb per message. For serverless IoT, we will consider a setup from myprevious articleand count only AWS IoT itself and DynamoDB services.

In my previous articleShould you use Serverless Architecture for your IoT Solution?, I reviewed DataArts approach to building a serverless IoT solution from scratch, its pros and cons, costs, and factors to consider before committing to this approach.

The platform operates in a guaranteed message delivery mode.

parent.articleDate date:MMM. dd, yyyy parent.linkDate date:MMM. dd, yyyy

The AWS IoT pricing model is based on received and sent messages. It also counts some service messages like acknowledgments, pings, and a few others, but well skip it for simplicity.

Choosing Your IoT Platform  Should You Go Open Source?

Leave a Comment