BLOG
IoT Platforms: Build vs Buy Your Back End Infrastructure
Here at Very, we’ve spoken before about whether building or buying is the best option for custom software development. We think it’s worth mentioning again, specifically to dive into the key considerations for building your IoT platform back end.
You may already be asking yourself: which option is best, to build or to buy?
To put it succinctly, unless the IoT infrastructure is the product you sell, buying will almost always win out. But we’re not here to dissuade anyone from taking on the challenge of building their own; innovators are crucial in the IoT ecosystem, from the engineers who create foundational infrastructure to those developing high-level IoT applications. However, it’s best to approach building an IoT platform with the right blend of realism and optimism.
Here’s why.
Building an IoT Platform: Key Considerations
Ultimately, deciding whether it makes sense to build an IoT platform often comes down to finances. To this end, Rich Mironov warns against the DIY illusion, or “the idea that broadly available commercial products don’t give us exactly what we want, but our internal team can whip up just the right thing.” While the benefits exist, they usually don’t justify the costs.
Developing an advanced, production-ready IoT infrastructure requires a great deal of time, effort, and knowledge. Choosing to build instead of buy also entails incurring greater risks, challenges, and expenses. That being said, building your own IoT platform isn’t impossible. Let’s first take a look at its benefits.
Pros of Building Your Own IoT Platform
1. Full Customization
The best reason to build an IoT platform is that it gives full customization capabilities. IoT is still a young field, and it’s growing fast. If you have a truly innovative IoT product idea and the tech that you need to make it happen simply doesn’t exist yet, building it yourself can be a great option.
“If you decide to build an IoT platform on your own, you’ll have complete control over the solution,” writes Riya Savjani for IoTnews.
“You can customize it to make it a good fit for your industry and business. Everything from the data collection to the end-user experience is yours to modify, merge, and maintain.”
2. Comprehensive In-House Tech Expertise
Another reason to build is leveraging in-house tech expertise. If your team has the right skills and know-how — from electrical engineering to IoT development to cloud administration — then putting great minds to the task of building something truly unique can pay dividends.
3. Technology R&D Is a Good Thing
Lastly, we believe that technology R&D is inherently worthwhile. We actively contribute to open source projects like Nerves because we understand that furthering our collective knowledge makes the world a better place.
After all, if Linus Torvalds had decided in 1992 that UNIX was good enough as it was, we wouldn’t have anywhere close to the nearly one thousand Linux distributions that we enjoy today.
Cons of Building Your Own IoT Platform
1. Higher Costs
Building a DIY IoT platform has some downsides as well, the most obvious of which is that it costs a lot more. As Daniel Elizalde puts it, “You CAN’T build an IoT platform for less than what it would cost to adopt a commercial one.”
Let’s take a moment to consider what goes into an IoT platform. You need to buy tons of hardware, write lots of code, and pay your employees. Depending on how much you want to build from scratch, your total costs can easily balloon to millions before you even have a minimum viable product (MVP). Plus, don’t forget about the ongoing maintenance costs for the product’s entire lifespan.
2. Slower Time To Market
Building a product from scratch takes a lot longer than buying a product that’s ready out of the box. IoT is no different. Prototyping, developing, debugging, and troubleshooting always take more time than expected. It’s probable you’ll need a year or two before your product is in manufacturing.
Over that time, your company has to shoulder all the costs without seeing any return. On top of that, you’ll also bear the opportunity cost of devoting time and resources elsewhere.
3. Higher Risks
Finally, building a platform brings higher risk to your business. Building is a process riddled with challenges. Cisco reports only 26% of surveyed companies said their IoT initiatives were a “complete success,” while 60% report failed IoT projects during the early proof of concept stages.
It goes without saying that building a working IoT system isn’t easy. Even seasoned IoT developers encounter problems. Building an IoT platform entails risks that span improper security practices to failed GDPR compliance to misconfigured firmware that leads to bricked IoT devices. Realizing just one of these incidents can spell instant disaster for a project.
Food For Thought: Necessary Features For Building Your Back End
If you’re ready to take on the challenge of building your own back end, you should be able to support these key features.
Conducting OTA Firmware Updates
Many businesses need to remotely perform firmware updates “over the air” (OTA). That’s because the initial vision for a product is almost never perfect, among other reasons.
Here at Very, we primarily use the Nerves framework and Elixir programming language for embedded software development. Nerves supports OTA firmware updates “batteries included,” which is one of the many reasons we use it. (For resource-constrained devices, we also use C firmware with Zephyr, which requires a different approach to OTA updates.)
We pair that with Very Device Management, a web service to manage OTA firmware updates for IoT devices in the field. Very Device Management isn’t the only player on the field, but it is one of the more user-friendly systems out there. We recommend comparing what you can build with what you can buy from Mender, Balena, or Nerves and Very Device Management. That comparison should give a clear indication if building or buying is right for you.
Managing Device Communication
Devices need to exchange information — there’s no question about that. That communication generally occurs with a messaging protocol such as MQTT. Standing up an MQTT broker is a reasonable expectation for many operations teams. Properly securing your deployments is another game altogether if your deployment team or strategy is less mature.
Investing in Specialized Engineering Talent
OTA updates and device communication are relatively minor considerations when building a robust IoT back end infrastructure.
Looking at the bigger picture, also consider the human cost of building your own IoT infrastructure as well. You need to have access to embedded software engineers and web developers either on-staff or from a trusted, reliable development partner. Hiring and maintaining a team is expensive and time consuming.
Of course, all this is assuming that you’ve taken the time to validate your idea by doing market research. Building your own IoT back end infrastructure is even riskier if you aren’t sure that your product concept actually has legs.
IoT Back End: To Build or To Buy?
Opting to purchase an IoT platform can be a swift and efficient means to kickstart your project. This path offers a mature solution that has already been tested and debugged.
However, buying your back end won’t always give you the exact features and functionality you require. An off-the-shelf solution can be either too complex or too limited for your purposes, so you should make sure that the different technologies you use cover all your bases. There’s wisdom in the advice “trust but verify” — this is definitely applicable when you’re about to invest in infrastructure.
Before you dive headlong into a purchase or start building a custom solution, here’s a summary of high-level factors to consider.
1. Desired Customization Levels
A highly-customized solution with specialized features will generally require a new build. The alternative is to tailor a pre-built IoT solution to your needs and objectives, which is likely an inefficient use of your resources.
2. Time to Market
If you want to push your product to market fast but don’t have the bandwidth to build it yourself, then buying is likely the right choice.
Remember: time spent ideating and constructing a solution is also an expense. Buying your IoT infrastructure means that you’ll pay upfront to get something that works, lowering the risk of a project that never gets off the ground.
3. Skill Sets of Existing Staff
Do you already have employees on your team who are capable of designing, developing, testing, deploying, and maintaining an IoT back end infrastructure?
The right choice between build vs. buy may depend on how you plan to use your IoT platform — whether it’s your company’s main product, or whether it’s only an auxiliary part of your business plan.
In the former case, you can probably sustain with your existing employees. In the latter case, hiring, onboarding, and training a new team is likely not going to be cost-effective.
4. Compliance and Security
Meeting regulatory compliance and security requirements can be a make-or-break factor when choosing an in-house or vendor-provided IoT platform. If you can’t meet the appropriate security standards for sensitive data, your organization may be subject to fines and other penalties.
Using mature public cloud solutions incurs less risk. For example, AWS offers GovCloud, a cloud computing service that’s compliant with U.S. government regulations. Microsoft and Google also have their own government-compliant cloud solutions.
5. Ongoing Maintenance
The question of ongoing maintenance is relevant whether you decide to build or buy an IoT platform.
If you build the platform in-house, then you likely want to retain your current staff so that they’ll continue to work on it. Otherwise, you need a guarantee from your vendor that they can provide long-term support and maintenance.
The Likely Choice? “Buy.”
Our deep dive into the build vs. buy decision presented a number of key questions you need to answer. How high are your customization needs? What’s your timeline for hitting the market? What skills do your current team bring to the table? And how will you tackle compliance and security, or maintain the solution over the long haul?
“Buy” is the choice we see win out most often after these questions are answered, but let’s face it — there’s no one-size-fits-all answer. If you’re wrestling with the build vs. buy decision, check out our approach to IoT development to discover how we transform ideas into tangible solutions.