How to get connected apps right: looking to Platform-as-a-Service

Internet of Things
Some 26 billion devices will be internet-connected by 2020

The Internet of Things (IoT) enables us to connect every device we own to the internet. This could be linking light bulbs to the web, or even the dishwasher, coffee machine and doorbell.

Looking outside the home, commercial applications of IoT devices include sensors in plant machinery, or biochips in farm animals, all the way to sensors in the ground detecting temperature and moisture content in sports fields. Not only will every device with a circuit board have some kind of connection with the internet, but so will those systems we might never have considered to be electrical a decade ago.

This interconnected world produces a number of hurdles for the internet in its current state. We've already heard about core infrastructure upgrades taking place to move from IPv4 to IPv6 to cater for all of these additional addressable devices.

So we have seen bandwidths increasing not only across fixed lines but also, more importantly, over wireless connections as well, such as LTE. These are critical to the success of IoT, but are our applications ready for the influx of additional data collection, storage and processing that they now have to handle?

Ubiquitous connectivity

There are billions of new devices connecting to the internet and many billions more on their way, with Gartner predicting 26 billion connected devices by 2020. As a result, the scale of the computer systems required to manage these units has grown considerably.

We've seen this in the past few years with the growth of the number of smartphones and tablets, and how enterprise IT departments have had to scale to handle these additional devices on their networks as well as within their applications. For instance, they're now having to consider additional software licenses, increased RAM, enhanced CPUs, more storage and faster networking to name a few.

Managing these ever increasing demands, as well as providing a scalable and highly available service is a tough ask. But there are a number of technology solutions coming to the forefront to help address these issues.

What is PaaS?

Platform-as-a-Service (PaaS) provides a mechanism that allows enterprises to control the whole application environment from a single place.

Leveraging the investment in the virtualised layer of Infrastructure-as-a-Service (IaaS), the PaaS sits on top and uses the required infrastructure resources. This enables application developers to build applications without worrying about the execution environment of the app, or how to scale it or provide high availability. The application describes to the PaaS the resources that it needs to run and the operator of the platform controls how much memory and storage the application requires from a management console.

Choosing a language

There are a number of programming languages available to develop applications, and different languages can be used in tandem to meet business needs. For example, developers can write a high throughput Node.js application that uses Web Sockets to serve their clients within the same PaaS as they are running a Java application that executes CPU intensive image manipulation.

Establishing control

Operators are able to manage how a deployed application behaves and what resources it has access to. From a single place, the operator has complete control over the runtime characteristics of an application, what data sources it has access to, what compute it's permitted to use and how to handle failures. For example, if there was a sudden increase in site traffic due to a marketing push, adding additional instances of the application could be handled via a single click, or it could be automatically handled in some cases (although down-scaling is hard to predict precisely).

PaaS also gives the developer control over the services that their applications can access. This is critical in IoT application development as the volume of sensor data that is expected to be transmitted over the network is increasing, and as a result, the ingestion of this data needs to be controlled.

The PaaS provides another abstraction layer where the data providers can be separated from the applications accessing them, meaning the amount of throughput for each application can be easily governed.

A high throughput example would be an application that ingests data from sensors distributed around a railway network, where the processing and storage of this data is not only business critical but also potentially harmful to life if it's not handled expediently. At the other end of the scale, a lower class of application that is storing data collected from dishwashers and processing it to provide better servicing plans to customers wouldn't require such high throughput compute and storage.

As IoT becomes an increasingly integral part of everyday life, so too does the ability to securely receive data from everywhere, process it quickly, store it and scale as business demands dictate. Those businesses that take advantage of new technologies such as PaaS will be able to control and scale their business needs to meet the increasing demands of their customers.