Cloud-Agnostic or Cloud-Aware — What’s the Best Way to Launch an IoT Startup?

The desire to be unique in every way can play a cruel joke on the founders of an Internet of Things (IoT) startup. When entrepreneurs decide to build their own IoT cloud platform instead of using an existing one, investors can recognize it as yet another irrational move, not a brilliant way to distinguish themselves. But what can you do if the desire to show off is in your startup’s blood? The immediate answer is to be scrupulous. The next is to read this article and weigh the pros and cons of building and buying an IoT cloud service and its infrastructure.

What to consider when selecting the right approach to IoT cloud services

You should consider dozens of factors when selecting an approach to IoT cloud services, such as the best way to connect hardware and software, coordinate network and sensor operations, and provide adequate data security. One more thing you must decide is whether to develop everything in-house or make use of existing IoT hosting platforms. The founders of IoT startups face a dilemma: to invest or not to invest in ready-to-use technical solutions.

If you decide to invest, the first thing you’ll need to do is dip into your pockets. The top cloud platforms are expensive. Giants like Amazon, Microsoft, and Google spend billions of dollars developing their IoT cloud services. At the same time, the more exclusive a startup’s idea is, the more specific features it will require — and existing cloud platforms may be missing them.

For this reason, many founders consider building an IoT platform with the specific features they need. And it’s reasonable provided you ask yourself the right questions and weigh all the challenges. Consider the following factors:

  • The time you’ll need to build your own platform compared to the time spent adopting and learning a ready-to-go cloud platform
  • The cost of building an in-house solution compared to the price of buying a system or paying for a subscription
  • Scalability, regardless of the option you choose

Choose an IoT cloud service to help your startup succeed by outpacing the competition

The ability to propel the company’s own IoT initiatives through a self-hosted IoT platform can increase the credibility of a startup in the eyes of investors and help to fight competitors. Or at least it’s supposed to. But building your own IoT cloud platform requires extensive engineering efforts to set up the hardware, software, network, and servers required to run an IoT cloud service. It’s a tall order. If the people you’re working shoulder-to-shoulder with are capable of doing all that stuff, good for you. But if they aren’t…

Time & expertise

If you don’t have specialists who are determined enough to build an IoT cloud platform from scratch, no worries. You can hire some. Just mind the salaries such specialists will expect. The harsh truth is that startups rarely take off and run their projects successfully without external help. Their attempts to do so only exceed their timelines and lead to extra development costs until they finally ask for help from experts. With managed cloud platforms like the Amazon IoT platform, it’s much easier. Amazon is extremely startup-oriented and cherishes the culture of entrepreneurship.

Whatever you choose — to outsource development or hire qualified IoT engineers in-house — there’s something that any team will require: time. Developing your own IoT cloud platform is extremely time-consuming. It usually takes at least a year, usually longer. And that’s only for the development, not to mention the time for hiring experts, initial investigations, and roll-out.

IoT build vs buy: Figures and timeline

The IoT Dilemma: Build or Buy an IoT Platform?

Cost

The overall cost of building a custom IoT cloud platform includes the cost of the technology and specialists needed to design, develop, and maintain the platform. It also depends on the deployment size, solution complexity, and business cases. Only the simplest IoT solutions can be built relying mostly on open-source components. In general, a startup will need to set up its own IoT hosting, real-time communication channels, API infrastructure, etc. From the beginning (and as the project goes further), expenditures will only increase, and often they’re hard to estimate, as they require cooperation with third-party vendors.

To get a more precise estimate of the cost and effort necessary to build a cloud IoT platform, consider the following:

  • The number of IoT devices your platform will support now and in the future
  • The type of IoT devices your platform will support
  • Edge processing requirements
  • The number of IoT applications to be supported over the course of 5 years
  • Required platform management capabilities
  • Annual inflation rate
  • IoT platform deployment model
  • Costs
    • Upfront cost for the on-premise server
    • Cost per device connected to the on-premise server
    • Cost of design and development
    • Cost of maintenance

Scalability

One more factor in favor of established IoT cloud services is the necessity to keep the platform’s features up-to-date. IoT solutions usually have complex infrastructure including hardware, software, business processes, APIs, and data analytics technologies. For this reason, scaling can be tricky. Of course, all these issues won’t go away as soon as you buy from a vendor. Moreover, working with a vendor will involve extra charges every time you scale. However, your startup won’t grow at all without scaling. It’s better to pay for the infrastructure you need than to jeopardize the stability of the entire system.

Considering cost, development resources, scalability, and other factors, starting the development of an in-house IoT platform doesn’t seem that reasonable. In most cases, it’s more expensive and time-consuming than going with an existing platform. When a startup decides not to reinvent the wheel but still feels uneasy about surrendering to vendor lock-in, there’s another option: being cloud-agnostic.

Should you be cloud-agnostic?

Put simply, being cloud-agnostic means that when a startup builds and deploys their apps, they make it possible to run them on any number of cloud platforms, ideally without being modified. The target is a repeatable deployment that will work irrespective of the infrastructure you’re deploying it on.

Startups considering being cloud-agnostic should honestly answer the following questions:

  • Will we upgrade features frequently?
  • Does our startup solve short-term or long-term business/user needs?
  • Are we targeting our product at the global market?
  • Will we outsource development?

You can consider a cloud-agnostic approach if you expect multiple changes to your IoT solution that must be implemented fast and in small batches. Also, if you’ll operate over a wide geographic area, vendor lock-in may not be the best option. Although being cloud-agnostic means there will be little or no impact on IT infrastructure when changing clouds, being cloud-agnostic does have some consequences.

Being truly cloud-agnostic entails inadequate investments

The flexibility, customization, and independence that entrepreneurs can have through avoiding vendor lock-in sounds great. So does being cloud-agnostic — unless a startup faces the true complexity of creating (to say nothing of implementing) a cloud strategy with built-in portability. In reality, this usually means extra difficulties and costs. Instead of using a vendor’s IoT cloud technologies, entrepreneurs will need other technologies that are an integral part of the cloud-agnostic paradigm. There are big concerns IoT startups should consider. We explain the two biggest concerns below.

Cost, complexity, and inefficient architecture

The most popular approach to become truly cloud platform agnostic is to use a containerized version of platform elements. Kubernetes is a management system for containerized apps and is one of the most preferred ways to create a microservice architecture. However, Kubernetes-like services with huge infrastructure require additional investments to scale properly. Moreover, from the very beginning, Kubernetes necessitates a set of manual configurations, which appears to be the least of its complexities. Working with Kubernetes requires deep engineering knowledge, which once again means the need for an extensive specialist on your team.

Multiplied efforts

Among multi-cloud tools, Terraform deserves a special mention. It provides a mechanism for scripting infrastructure on top cloud providers, providing the abstraction layer to underlying API calls. Even though it’s a tool to safely and predictably create, change, and improve infrastructure, it doesn’t fix the issues. If you need truly efficient cloud services, you’ll need to write a Terraform abstraction layer that will interface with whichever cloud platform you need. To make everything right will require many scripts and the adaptation of application logic for each cloud or platform.

Microsoft Azure IoT vs AWS IoT: The cloud battle

Even if a startup finally backs away from the idea of playing the cloud-agnostic game, there’s still a big decision to make: Which cloud provider to select?

Choosing among the options IoT cloud providers offer can be stressful. The abundance of solutions on the market is overwhelming. Only careful market research can help you validate big and small proprietary solutions to see how they meet your specific infrastructure and platform requirements. In most cases, you’ll need to take your pick from either the Microsoft Azure IoT Suite or AWS IoT Core. “Amazon AWS and Microsoft Azure are the top 2 cloud services for IoT. Google Cloud Platform is failing to get traction,” reports the Eclipse Foundation in their IoT Developer Survey 2018. Other research supports this statement.

Enterprise public cloud adoption 2018 vs2017

RightScale 2018 State of the Cloud Report

When choosing an IoT cloud platform provider, startups should compare providers against the following criteria. Let’s look at our own comparison.

  • Device management. Azure and AWS provide a similar list of features, except for device management. With AWS, managing devices will require additional coding efforts.
  • Authentication and authorization. Both Azure and AWS pay due attention to security matters and offer profound authentication and authorization mechanisms. If native Active Directory support is required, Microsoft Azure IoT might be the better option.
  • Communication. We recommend using MQTT or AMQP. Over many years, MQTT has established itself as a protocol of choice for IoT, and the IoT Developer Survey 2018 confirmed that MQTT is used by over 62% of IoT developers. HTTPS has a lot of restrictions, whereas HTTP is not supported by the Azure IoT Hub. If you have devices that need HTTP, you can still use AWS or Azure with a custom gateway.
  • SDK and programing language. This criterion is not a big deal nowadays. Almost any cloud supports all popular programming languages.
  • Artificial intelligence (AI) / machine learning (ML). Although AI is a red-hot trend today, it’s not a decisive factor in our case. Both Azure and AWS use the same solutions based on Hadoop, Spark, and TensorFlow.
  • Monitoring and security. Both providers have similar features but use different tools for these purposes. We’ve detected no principal difference among them.
  • IoT platform pricing. This is the most complex and tough question. Consider all details like the data volume, ingest, egress, number of messages, message size, and query complexity that IoT cloud platform providers offer. In most cases, the Microsoft Azure IoT platform is 20–50% cheaper than AWS IoT Core.

Bottom line

Deciding among a cloud provider, a cloud-agnostic approach, or building a private IoT cloud platform is not an easy task. Whatever you choose, consider the speed and make sure your decision won’t slow down the time to market of your product. We recommend going for a reputable cloud platform and making use of as many features as your product needs. Leave managing and supporting infrastructure to the professionals. Don’t try to beat the leaders, but rather concentrate on your product. Your idea is the most valuable thing you have to offer your customers, so don’t waste time hiding it from them.