Today, I publish my Bachelor thesis that examined if and how Container Virtualization can be useful for the IoT.

In
this post I will paste the first and last chapter – introduction and
summary – which give a good overview about the details to expect in
between.

You find the PDF including footnotes and references here.

Indroduction: New Challenges in the Internet of Things

In
2015, the Internet of Things (IoT) received much attention. While the
term roots back to 1991 (presented in section 2.1) IoT has become one of
the most often discussed and most promising topics in the IT industry.
For instance, Gartner — a major IT research firm specialized on market
analysis — put IoT on the peak position of 37 emerging computing
technologies in a recently published report. Some say that the IoT is
the next industrial
revolution.

The
concept of IoT denotes an infrastructure that allows many devices to
communicate with one another. Moreover, the IoT focuses on transforming
tiny devices into computing objects, which are then called IoT devices.
Doing so, a tooth brush, a coffee machine, or air quality sensors in
commercial buildings provide capabilities to retrieve and distribute
information. As a result, information technology becomes pervasive: both
in private life and in enterprises.

The
number of IoT devices is already high. Several companies and research
institutions have published numbers on present and forecasted future use
of IoT devices. One recent study published in July of 2015 estimated
the number of connected devices at 13.4 billion, which is nearly twice
the entire human population. Despite differing forecasts, the estimated
number of devices in 2020 ranges from 26 to 200 billion, greatly
exceeding present day numbers. 
These 200 billion devices divided by
every of the 7 billion humans on earth is equal to around 28 devices per
person. Assuming a majority of the people able to buy such devices live
in developed countries, the average number of devices in developed
countries is expected to be much higher.

Despite
the popularity of IoT, critics have emerged and spoken against IoT. Its
ubiquity in private life offers the opportunity to gather more data
about people’s lives than is already done today. Across enterprises
harvesting such data, security leaks are expected to arise more often.
The IoT’s pervasiveness in an enterprise might simplify industrial
espionage, due to the plethora of information retrieved by IoT devices.
Thus, it is required to emphasize solutions that are capable of
minimizing the risk this incurs.

An
IoT infrastructure requires a different design than today’s Internet
infrastructure. The central issue is related to security: How can we
isolate software on an IoT device from its environment in order to
restrict its access to information it should not handle? Furthermore,
how can devices be updated in a secure way? Applications frequently need
security updates in order to fix loopholes and software issues. This is
especially important to IoT applications on devices that are
permanently connected to the Internet. The process of updating an
application sometimes requires the user to completely reinstall the
application. The question arises: how can applications be installed and
updated in a secure way? Maintaining a fleet of IoT devices needs to be
done automatically to gain a high level of efficiency. How can this be
achieved? Next, how can we deal with configurations that are initialized
when an application is deployed? How can applications be securely
reconfigured? Finally, an important issue is limited availability of
resources of IoT devices because many of them are equipped with little
computing capabilities. Thus, solutions need to be applicable for these
resource-poor devices as well.

Potential
solutions need to address IoT’s architecture by design instead of a
feature built on top. Doing so will further minimize risks because
problems are already addressed in the IoT’s core functions. For
instance, a core function could be the isolation of any application
running on IoT devices. This limits the application to accessing only
the information it is told to deal with. By isolating an application
running on an IoT device, it cannot cause further problems due to its
isolated environment and access restrictions.

This
work focuses on the design of application deployment in an IoT
infrastructure in order to offer solutions to solve the aforementioned
issues. Potential solutions will be evaluated. The objective is to
identify an optimal way to distribute, deploy and integrate applications
into IoT’s infrastructure. Thereby, any evaluation will be performed
against requirements of the IoT in order to retain results that make
this work useful in practice.

The
research evaluates container technology as a promising solution for the
deployment of IoT applications. Container technology offers multiple
features that address the presented challenges, including: isolation of
applications from their surrounding area, resource restrictions against
applications, and a standardized method to package, distribute, and
deploy applications onto devices.

Procedure Model and Structure of this Thesis

The
objective of this thesis is to identify challenges induced by the IoT
that are different from contemporary, common IT infrastructures. Based
on these results, container technology as a potential solution is
evaluated, which can deal with the majority of new challenges. The
proposed solution will be implemented in a test environment.

The
procedure model this work follows can be described as a stepwise
identification, evaluation, and implementation. First, basic concepts of
the IoT will be presented to describe common terminology to the reader.
Next, central requirements in an IoT infrastructure will be identified,
including those for hardware and software. Also, a concept to reach a
high level of standardization will be established, which together with
container technology will simplify deployment of any application on
almost any IoT device that can run container technology. In subsequent
chapters, different container technologies will be compared in order to
select one that is most suitable for an IoT infrastructure.

In
the final chapter, the results of all preceding chapters will be used
to build an IoT infrastructure in a test environment using container
technology.

Main Part

To read the main part of the thesis, download the PDF.

Summary and Outlook

The
objective of this thesis was to evaluate, whether Linux container
technology (LCT) satisfies challenges and requirements set in place by
IoT’s infrastructure. Therefore, IoT’s requirements were discussed in
order to form the basis for subsequent evaluations and tests. Extensive
comparisons were conducted to identify concepts with potential benefits
from the use of LCT over the classical Full Virtualization (FV). Upon
finding extraordinary advantages of concepts used by LCT compared to FV,
the most appropriate implementation of LCT was identified. Comparing 15
solutions demonstrated that only four solutions meet IoT’s
requirements: LXC, LXD, Docker and rkt. Subsequently, detailed
comparisons suggested that even if LXC and LXD were considered as LCT
solutions, they do not offer reasonable advantages for use in the IoT.
While Docker technology is currently the only solution that meet IoT’s
requirements, rkt is anticipated to do so in the near future. Between
Docker and rkt, rkt exhibited better security and higher levels of
standardization than Docker. However, because Docker was production
ready, it was selected for practical evaluation in a test environment
similar to that of an IoT infrastructure.

The
test results have indicated that Docker meets central IoT requirements
through a rich set of features. Through such features (detailed in the
preceding sections) it is capable of handling all major challenges of
the IoT including high levels of automation and manageability, support
for a wide range of hardware and software platforms, and the ability to
maintain safety of multiple IoT devices.

Even
though there is still potential for improvements. Docker’s developers
have not recognized its potential as middleware for the IoT, which has
been identified in this work. Docker is encouraged to publish the latest
version of the precompiled binary for ARM rather than having users
download it from other websites.

Furthermore,
Docker needs to extend its security features. Presently, the defaults
do not support digital signing or container encryption, nor does it
fully implement user namespaces. The last of which is a Linux OS feature
that is required to harden Docker onto a similar level of that of VMs.

Apart
from security topics in LCT, software defined networking (SDN) has been
presented as a technology with tremendous potential to secure IoT
networks. Open vSwitch (OVS) is a high performance SDN software proven
to successfully separate network traffic using tunnels. In addition, OVS
provides a level of flexibility for configuring networks that surpasses
capabilities offered by those of classical managed switches. Despite
these positive results, enabled encryption does not offer reasonable
network performance. This could only be achieved with hardware support
in the form of an encryption accelerator. Because network performance
and levels of security are particularly important in the IoT, more
research should be conducted in this field.

New
network topologies are expected to evolve that extend today’s concepts
of cloud computing. Cloud computing 2 is necessary for processing data
gathered in IoT networks. Cloud computing instances are part of the
wider communication network and are often far away from local IoT
networks due to high levels of centralization. Therefore the bandwidth
between an IoT network and the cloud is not sufficient of delaying
sensitive services, such as health care. The new concept of Fog
Computing addresses low bandwidth by colocating cloud computing clusters
next to the IoT networks from which they receive data. Interest in Fog
Computing is expected to rise proportionally with that for IoT.
Therefore, further research is expected in the near future.

As
shown in section 1.1, the IoT receives much attention from major
companies and research institutions worldwide, not only in the field of
IT. Some even speak of a fourth industrial revolution to follow, after
innovations such as the steam engine, mass production, and the World
Wide Web. All of these preceding revolutions changed fundamental
paradigms in the societies’ infrastructure, which hold for IoT as well.
Furthermore, the IoT changes information infrastructures, allowing
today’s information society to apply it at a much faster rate than
preceding revolutions. Because each human being is expected to own
dozens of IoT devices in the near future, new physical infrastructures
are also required to provide energy for all these devices. Communication
networks that ensure Internet connectivity for each device — regardless
of location — will also induce an extraordinary expansion of
communication infrastructures compared to those found today.

In
summary, the IoT has the potential to provide tremendous transformation
for many industries. Because the IoT is agnostic to its application
domains, any industry may make use of and benefit from a communication
based infrastructure of it. The IoT is like the network of public roads:
although everyone can use the network — the individual can specify the
make and model of vehicle they choose to drive and utilize within the
infrastructure. A wide range of industries, including that of
automobiles, health care, and energy have already started to take part
in this revolution. At the least, we can conclude without doubt, that in
the long run, IoT influences everyone’s life in some way or another.

The
present influences on the IoT are just the beginning. Technology, which
powers IoT infrastructures still has much potential for improvements as
identified in this work. A potential solution has been identified in
this thesis: Linux container technology addresses all major challenges
in the IoT and is therefore proposed as the optimal middleware
technology as we move into the future.

Edit this post on GitHub.

Leave a Reply

Your email address will not be published. Required fields are marked *

Related Posts

Infrastructure

Optimize Ubuntu 18.04 for privacy, security and usability

A tool for everyone to improve Ubuntu 18.04 – fully automized within just 5 Minutes!

IT

New tool “Add timestamp to files” enhances productivity in KDE & Dolphin

Today, I am proud to share a new open source tool that I just created: It adds timestamps to files. Yes, simply, but mighty for your productivity!

IT

Tool „Add timestamp to files“ enhances productivity in GNOME & Nautilus

I am proud to share a new open source tool: It adds timestamps to files in the Nautilus file manager.