Deciding whether to build or buy the back end infrastructure for your Internet of Things (IoT) project can be one of the most important choices you make. As the jumping off point for the rest of your project, getting infrastructure "right" can pay dividends.
Here at Very, we’ve spoken before about the “build vs. buy” question for custom software development. In this article, we’ll discuss the pros and cons of building or buying specifically as they pertain to IoT back end infrastructure.
Let's save some time, shall we? The single-sentence version of this article is:
Unless the IoT infrastructure is the product you sell, buying will almost always win out.
As a software engineer I'm behooved to acknowledge exceptions to this rule, but I would be shocked in most cases if it were broken. Let's explore why that might be.
Building an IoT Platform
Developing an advanced, production-ready IoT infrastructure takes a great deal of time, effort, and knowledge in order to do it well. Choosing to build instead of buy also usually entails greater risks, challenges, and expenses. Let's look at two features you may need to support.
OTA Firmware Updates
Many businesses will need to remotely perform firmware updates “over the air” (OTA). This is because the initial vision for a product is almost never perfect, among other reasons.
Here at Very, we 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 leverage it.
We pair that with NervesHub, a web service to manage OTA firmware updates for IoT devices in the field. NervesHub isn't the only game in town, but it is one of the friendlier systems out there. Comparing what you might build against things like Nerves and NervesHub, Mender, or Platformio should give a clear indication if building or buying is right for you.
Next we'll turn to another feature, communication. Devices need to exchange information. Often this is done using 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.
These are just two small considerations when building a robust IoT back end infrastructure.
Looking at the big picture, 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.
Buying an IoT Platform
Buying an IoT platform can work for many use cases. The benefits of buying IoT back end infrastructure include faster installation and deployment, and a mature solution that has already been tested and debugged.
However, buying an IoT 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. Like many decisions, "trust but verify" is a good approach to buying infrastructure.
Amazon Web Services, for example, offers an IoT managed cloud platform for developing your own IoT infrastructure. Given the maturity and prominence of Amazon, you could be forgiven for assuming that their flagship IoT offering would include something like firmware upgrades — not so!
As it turns out, the primary mechanism that AWS IoT has for updating firmware is to use device shadows to send "hey you should update" messages to each individual device.
In other words, AWS IoT doesn’t provide OTA firmware updates out of the box. You’ll have to either build this feature yourself, go without it, or buy another solution that includes OTA updates and one that is compatible with AWS IoT. The takeaway here is to never assume what comes in the box, and always look before you leap.
IoT Back End: To Build or To Buy?
Beyond what we've already discussed, the decision to build or to buy your IoT back end may also depend on the following factors.
1. Level of Customization
A highly customized solution with specialized features will almost necessitate that you build the IoT back end yourself. The alternative is to buy a pre-built IoT solution and then spend more time and money tailoring it 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, and you aren’t sure you have the bandwidth to build your own solution, then buying is likely the right choice.
Remember that the time you spend coming up with an idea and constructing a solution is also an expense. Buying IoT back end infrastructure means that you pay money right now to get something that works, lowering the risk of a project that never gets off the ground.
3. In-House Staff
Ask yourself: do you already have employees on your payroll 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 having all these employees on staff. In the latter case, it may not be cost-effective to hire, onboard, and train these people and pay their salaries and benefits.
4. Compliance and Security
Being able to meet regulatory compliance and security requirements can be a make-or-break factor when choosing an in-house or a vendor-provided IoT platform. If you aren’t able to meet the appropriate security standards for sensitive data, your organization may be subject to fines and other penalties.
Using mature public cloud solutions is likely the option with least risk. For example, AWS offers GovCloud, a cloud computing service which is compliant with the regulations of U.S. government customers and their partners. 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.
Knowing What you Need in an IoT Project
Building or buying your IoT back end infrastructure is a complicated and involved question. You’ll only be able to come to the right conclusion if you know your specific requirements and capabilities.
If you decide to build your own IoT back end infrastructure, you absolutely must have a team — either in-house or with a third-party development partner — that can create and maintain it for the long run. This is particularly crucial for the question of IoT security, which has been an afterthought in far too many cases.
On the other hand, if you decide to purchase a pre-built IoT solution, you need to make sure that it matches the features and functionality that your business requires.
If you’re looking for more information or advice, feel free to get in touch. At Very, we can help you figure out what you need from your IoT platform and the right way to fill in the gaps. To learn more about how we approach these issues, take a look at our complete guide to IoT development.