Ten years ago, the advent of cloud computing changed the way we access and use computing resources. Instead of deploying on premise servers and data centers, the cloud computing paradigm enables users to access computing resources such as storage, processors, databases and entire applications, through a providers’ infrastructure. This minimizes Capital Expenses (CAPEX) and enables end-users to pay for what they use in the form of Operational Expenses (OPEX). Furthermore, cloud computing infrastructures provide immense capacity and scalability, which enables users to flexibly scale-up and scale-down their deployments in-line with their business needs.
The use of the cloud computing paradigm has expanded to virtually any type of computing resources and applications. Internet-of-Things (IoT) resources and applications are no exception to this rule. Nowadays, the majority of IoT deployments take place within the cloud computing infrastructures so as to enable applications to scale up and down as required. Non-trivial IoT deployments are likely to comprise of many thousands of IoT devices and data streams, which require vast amounts of computing resources for their storage and processing. This is the reason why IoT applications are increasingly delivered based on cloud computing models and infrastructures.
IoT in the Cloud: The Rationale
In practice, the convergence of IoT and cloud integration hinges on the integration of data and services from IoT devices within the cloud. This enables IoT applications to benefit from the capacity, scalability and pay-as-you-go features of the cloud. We herewith illustrate how these properties benefit IoT developers, deployers and users, through some real-life examples:
- Capacity: IoT applications for smart cities, such as smart energy and smart transport applications, tend to deploy thousands of sensors such as smart meters and transport sensors (e.g., parking sensors, traffic sensors) respectively. These sensors produce millions of data streams, which must be stored in a cost-effective way. Cloud computing infrastructures offer the capacity for storing such data cost-efficiently, while being able to accommodate more devices as IoT applications expand easily in terms of functionality and geographical scope.
- Scalability: As already outlined, cloud computing infrastructures offer cost-effective scalability, when additional capacity is needed. This is the case, not only in the smart city applications outlined above, but also in other sectors such as smart water management and smart agriculture, when deployments must be able to scale as and when new devices and features are added.
- Pay-as-you-go: Imagine a newly founded company managing information about smart buildings and facilities, which starts with few accounts and gradually acquires new customers. This company needs to invoke services and process data streams from IoT devices in the buildings. To this end, it will typically have to build a data center, which will provide the required computing resources. The dimensioning of this data center infrastructure is extremely challenging, as the company will have to accommodate existing and future customers. Alternatively, it can get increased flexibility, by deploying its applications in the cloud. It can start with a small deployment (e.g., few customers) and gradually scale it up, without any need for expensive upfront investments. In this way, the company can benefit from the cloud’s pay-as-go-nature, which can enable it to pay-as-it-grows i.e. in a way that avoids unnecessary costs and ensures positive cash flows.
The integration of IoT in the cloud entails the virtualization of the services of the various devices, as well as the storage and processing of IoT data streams. Note however that an IoT device itself cannot be easily virtualized, as each device is associated with unique properties (e.g., location, type, properties) that differentiate it from other “similar” devices. That’s a main difference between conventional cloud computing where homogeneous computing resources are virtualized and IoT-based clouds which aggregate location-dependent resources.
Cloud Computing Models for IoT
The above examples indicate ways in which IoT applications can benefit from computing infrastructures in the cloud, similar to the popular IaaS (Infrastructure-as-a-Service) cloud computing model. However, cloud-based IoT applications can benefit from other cloud computing models as well. In particular, cloud-based IoT infrastructures support the following models:
- IaaS (Infrastructure as a Service) for IoT: IaaS services for IoT enable access to IoT infrastructures in the cloud i.e. sensors and actuators. The business model of such cloud services is based on a data/sensor provider model i.e. the user of the service pays for accessing the data of a sensor or in general for using the sensor.
- PaaS (Platform as a Service) for IoT: This is the most widespread model nowadays, since it is the model followed by most enterprise-scale public IoT clouds, such as those described later in this post. PaaS for IoT is based on access to data rather than the hardware of the IoT devices. It also offers complete development environments (i.e. integrated development environments) for implementing IoT applications.
- SaaS (Software as a Service) for IoT: This refers to IoT software applications, which are deployed in the cloud. These are typically applications developed by PaaS for IoT development environments.
The dynamic nature of IoT devices and services (e.g., their mobility), along with the different properties of heterogeneous IoT resources (e.g., different types of sensors) enable new IoT-specific models of cloud delivery. As a prominent example, there are Sensing-as-a-Service IoT applications, which are deployed based on the dynamic selection of sensors for a given task (e.g., based on their location and type) and the subsequent combination of their measurements (e.g., averaging).
Enterprise Platforms and Services
The importance and momentum of cloud-based IoT platforms is reflected in the emergence and availability of cloud-based IoT platforms by all major IT vendors, including for example Microsoft Azure IoT, Amazon AWS IoT, IBM Watson IoT, SAP HANA, LogMeIN’s Xively and more. All of these platforms provide the means for scalable integration and storage of services and data streams from IoT devices. They also offer services such as dynamic discovery of devices and BigData analytics over IoT data streams, along with a range of APIs in different languages and visual tools for IoT application development. Moreover, they provide support for edge computing deployments, which complement the cloud as we have already illustrated in our earlier post: “When the cloud is not enough: Edge Computing to your rescue”. In this way, they provide the core of the IoT business ecosystem, which integrates and consolidates IoT data streams and services in a scalable fashion. While all of the above platforms provide common PaaS functionalities, they also offer features that distinguish them from competitors in the market (e.g., advanced machine learning techniques such as IBM’s cognitive analytics).
Most integrators and providers of large scale IoT solutions (such as the leaders of IoT-based industrial automation solutions) are establishing partnerships with providers of IoT/cloud infrastructure services. This is for example the case of ABB and Microsoft, but also the case of Bosch’s IoT services integration within Amazon’s IoT cloud infrastructure. Therefore, a clear distinction of business roles (IoT/cloud platform providers and IoT solution provider) is emerging in the IoT ecosystem.
Are you considering the development or deployment of an IoT solution? If yes, it’s best to plan on how you could make the most of IoT and the cloud technology partnership.