fogØ5: unifying the computing, networking and storage ... · system-level, abstractions to...

9
See discussions, stats, and author profiles for this publication at: https://www.researchgate.net/publication/326507665 fogØ5: Unifying the computing, networking and storage fabrics end-to-end Conference Paper · July 2018 DOI: 10.1109/CIOT.2018.8627124 CITATIONS 2 READS 414 2 authors: Some of the authors of this publication are also working on these related projects: fog05: The Fog Computing Operating System View project INPUT - In-Network Programmability for next-generation personal cloUd service supporT View project Angelo Corsaro ADLINK Technology 64 PUBLICATIONS 694 CITATIONS SEE PROFILE Gabriele Baldoni ADLINK Technology 7 PUBLICATIONS 17 CITATIONS SEE PROFILE All content following this page was uploaded by Gabriele Baldoni on 20 July 2018. The user has requested enhancement of the downloaded file.

Upload: others

Post on 26-May-2020

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: fogØ5: Unifying the computing, networking and storage ... · system-level, abstractions to distribute computing, storage, control and networking functions closer to the user along

See discussions, stats, and author profiles for this publication at: https://www.researchgate.net/publication/326507665

fogØ5: Unifying the computing, networking and storage fabrics end-to-end

Conference Paper · July 2018

DOI: 10.1109/CIOT.2018.8627124

CITATIONS

2READS

414

2 authors:

Some of the authors of this publication are also working on these related projects:

fog05: The Fog Computing Operating System View project

INPUT - In-Network Programmability for next-generation personal cloUd service supporT View project

Angelo Corsaro

ADLINK Technology

64 PUBLICATIONS   694 CITATIONS   

SEE PROFILE

Gabriele Baldoni

ADLINK Technology

7 PUBLICATIONS   17 CITATIONS   

SEE PROFILE

All content following this page was uploaded by Gabriele Baldoni on 20 July 2018.

The user has requested enhancement of the downloaded file.

Page 2: fogØ5: Unifying the computing, networking and storage ... · system-level, abstractions to distribute computing, storage, control and networking functions closer to the user along

fog?5:Unifying the computing, networking and

storage fabrics end-to-endAngelo Corsaro, PhD

Advanced Technology LaboratoryADLINK Technologies, Inc.

28 rue Jean Rostand, 91400 Orsay, France

Gabriele BaldoniAdvanced Technology Laboratory

ADLINK Technologies, Inc.28 rue Jean Rostand, 91400 Orsay, France

Abstract—Fog computing aims at providing horizontal,system-level, abstractions to distribute computing, storage,control and networking functions closer to the user along acloud-to-thing continuum. Whilst fog computing is increas-ingly recognized as the key paradigm at the foundation ofConsumer and Industrial Internet of Things (IoT), most ofthe initiatives on fog computing focus on extending cloudinfrastructure. As a consequence, these infrastructure fallshort in addressing heterogeneity and resource constraintscharacteristics of fog computing environments.

In this paper, we (1) explain the requirements of fogcomputing infrastructure and how they extend well be-yond those traditionally addressed by Cloud Computinginfrastructures; (2) introduce fog?5, a fog Infrastructurethat unifies computing, networking and storage fabricsend-to-end, while addressing the challenges imposed byresource heterogeneity, (3) explain the novel architecturalapproach adopted by fog?5 to have a server-less data-centric architecture that is scalable, secure, and highlyresilient to failures, (4) demonstrate the use of fog?5 insome real-world use cases and (5) conclude and reports onfuture works.

Index Terms—IIoT; Fog Computing; Edge Comput-ing; MEC; Internet of Things; cyber-physical sys-tems;virtualisation;IoT infrastructure;fog05;fog comput-ing platform;function virtualization; platform-as-a-servicelayer; Multi-Access Edge Computing;

I. INTRODUCTION

Early Internet of Things (IoT) applications adoptedcloud-centric architectures where information collectedfrom things is processed in a cloud infrastructure anddecisions are pushed back from the cloud to things.

While this architectural paradigm is suitable for asubset of Consumer IoT (CIoT), it quickly shows itslimitation in the context of Industrial IoT (IIoT). Morespecifically, the following assumptions, at the foundationof cloud-centric architectures, are generally violated inIIoT applications:

• Connectivity. Cloud-centric architectures assumethat things are sufficiently often connected. Whilethis is mostly true for IoT applications, it is far

from being the common case in IIoT applications.As an example, autonomous agricultural vehicles,or robots in a smart farm are often deployed inlocations with very poor connectivity.

• Latency. Cloud-centric architectures assume ap-plications can tolerate the latency associated withpushing data from things to the cloud, processinginformation on the cloud and eventually sendingback some control information. This latency, isorders of magnitude higher of the reaction timesrequired by several IIoT applications, such as, au-tonomous vehicles, smart factories and smart grids.

• Throughput. Cloud-centric architectures assumethat the throughput required to push data fromthings to the cloud may be massive when lookingat the aggregate traffic, but it is generally composedby limited individual flows. In IIoT the situation isquite different as, often, there are data flows withhigh individual throughput and in several applica-tions the aggregate volume is incredibly high. Thismakes it unfeasible or not very effective to streamthis massive volumes of data to a data center.

• Cost of Connectivity. CIoT commonly assume thatthe cost of connectivity is negligible. This stemsfrom the fact that consumer pays for connectivity –either via their mobile data plan or their home inter-net connection. In IIoT the situation is completelydifferent, it is the owner of the system that paysfor connectivity. This cost is non-negligible in ap-plications with large number of data streams, suchas Smart Grids as well as for applications deployedin remote areas such as oil exploitation rigs thatcan only rely on expensive satellite communicationwhere 1MByte of data can cost as much as $8!

• Security. Cloud-centric architectures operate underthe assumption that end-users are comfortable ingiving away their data. While this may be truefor CIoT applications, the situation is completely

Page 3: fogØ5: Unifying the computing, networking and storage ... · system-level, abstractions to distribute computing, storage, control and networking functions closer to the user along

different in IIoT. Information is a strategic assetwhich the vast majority of companies, operating inan industrial, do not want to leave their premises.

Fog computing has emerged as an architectural ap-proach to deal with the limitations exposed by cloud-centric architectures in the context of IIoT applications.

A. Fog Computing

Early fog computing initiatives and demonstra-tions [9], focused on enabling cloud-less architecturesby leveraging edge infrastructure. The main aim wasexploiting relatively capable edge infrastructure to bringcomputing closer to were data was being produced andcontrol needed to be actuated. Things were left outof the picture. In other terms we had moved froma cloud-centric to an edge-centric architecture but notnecessarily toward an end-to-end solution. As a result,mist-computing [5], [10] was evoked as the virtualisationof computing, storage and communication resources onthings. Thus, for some time, instead of unifying theperspective, the community was segregating around thethree tiers found in a typical CIoT and IIoT, in otherterms the cloud, the edge and the things.

The segregation was eventually resolved by theOpenFog Consortium Architecture Working Group inthe vision paper [7], where the authors of this paper,along with the key companies driving fog computingagreed on the definition reported below.

Fog computing. A system-level architecture thatdistributes computing, storage, control and networkingfunctions closer to the users along a cloud-to-thingcontinuum [7]

In other terms, fog computing aims at addressingthe technological fragmentation existing today acrossthe cloud the edge and things, by providing a unifyingabstraction. This should sound completely logic as ingeneral CIoT and IIoT applications will span across thethree tiers and it would be ideal to have a unified set ofabstractions to manage them.

B. Multi-Access Edge Computing

While the IoT community was debating about the needof fog computing, the telecommunication communitystarted working on the concept of Multi-Access EdgeComputing (MEC). Whilst MEC and fog computingemerged from different communities the main problemthey try to solve is essentially the same, exception madefor few differences w.r.t. the application domain and theinduced constraints.

In other terms, MEC aims at providing unifiedmanagement across the cloud down to the networkedge. Fog computing, on the other end, expands down

to things. The other big difference, is that as fogcomputing infrastructures have to deal with industrialreal-time applications. As such, their ability to manageand virtualize resources in a real-time environmentsis essential. Beside this differences, MEC and fogcomputing share very similar requirements, this hasbeen acknowledged by the collaborations between ETSIand the OpenFog Consortium, announced in September2017, for driving the convergence.

In this paper we introduce fog?5 a fog computinginfrastructure that unifies compute, storage andnetworking across cloud, edge and things. The reminderof the paper is organized as follows. Section IIsummarizes the state of the art and identifies the gapsand the weakness intrinsic in the approach taken thusfar, i.e., that of reusing cloud-based infrastructuresfor fog computing; Section III introduces fog?5, itsgoals and its core abstractions; Section IV explains indetails the architecture of fog?5 and how it enablessecurity and decentralization; Section V describes theuses cases for which fog?5 has been adopted and thosewe are working on; finally in Section VI we draw theconclusions and summarize future work.

II. STATE OF THE ART

The research and development on fog computing hasfocused on adapting infrastructures conceived for cloudcomputing, such as the OpenStack, to fog computing.For instance, in [4] an OpenStack based infrastructureis proposed to serve as a fog layer for smart cities. In[8], the authors identify some of the limitations inducedby OpenStack’s centralized architecture and proposethe use of a distributed key value store to eliminatethe dependency on a centralized database. While thesecontributions are on the right track toward enabling fogcomputing, they are biased toward virtualizing the edgeinfrastructure as opposed to providing an end-to-endsolution that can virtualize, manage and operate fromthe cloud to the thing while addressing the heterogeneityspecific to fog computing.

In the reminder of this section we present a summaryof the key architectural aspects of OpenStack. Then, wemotivate the need for a different solution by showcasinghow OpenStack fails in addressing the key requirementsof fog-computing.

A. OpenStack Overview

OpenStack adopts a modular service-oriented architec-ture, where each component provides a service to othercomponents. Only a minimal set of services is requiredin order to run a minimal OpenStack deployment, theseare:

Page 4: fogØ5: Unifying the computing, networking and storage ... · system-level, abstractions to distribute computing, storage, control and networking functions closer to the user along

Requirement OpenStack Fog Computing Platform

Dynamic discovery of new hosts/devices/VIM no yesDiscovery of specific HW and I/O the devices no yes

Decentralized Architecture no yesLow Latency no yes

Low Resource Utilisation no yesGeneralized Constraint-based Deployment no yes

Devices assignment to entities PCI Only yesSupport for resource constrained devices no yes

Unification of computing, networking and storage end-to-end no yesLarge scale deployment complex simple

Extensibility partial plugin architecture full plugin architectureSupport for Real-Time OS no yes

TABLE IFOG COMPUTING REQUIREMENTS

• Horizon. This component provides a web dash-board used to interact with OpenStack.

• Nova. This component provides the virtualisationlayer and controls the instantiation of VMs andLinux Containers (Nova-LXC). Nova is is com-posed by a number of sub-components usuallyinstalled in different machines, the most importantof these being:

– nova-compute. Enables the communicationwith the underlying hypervisor.

– nova-api. Provides a RESTful API for access-ing the nova service.

– Advanced Message Queueing Protocol(AMQP) MessageQueue. Provides the RPCmechanism used inside nova.

These services rely on a database for storing stateinformation about VMs and a RabbitMQ server forproviding the AMQP message queue.

• Glance. This service is responsible for storingimages. It is in charge of the creation of VMs’virtual drives and for managing base images usedto provision the VMs. It uses a database to storeinformation about virtual disks and images. It alsoprovide a RESTful API for interaction.

• Neutron. This component provides the provisioningof networks, for virtual (overlay networks) andphysical networks. Neutron exposes a RESTful APIfor interacting with other components and externalworld. For internal communication it uses an RPCmechanism based on AMQP. Finally, it relies ona database to store information about the networkstate.

• KeyStone. It provides the identity service used bycomponents for authentication. It also exposes aRESTful API to interact with other services as wellas external components.

In summary, all of these components use (1) a REST-ful API for external or inter-component communication,(2) an AMQP based RPC for inter-component communi-

cation, and (3) a data-base for storing component relatedstate.

The minimal OpenStack deployment requires twoservers hosting the following services:

• Controller Node– SQL Server Database– RabbitMQ Server– HTTP Server– Keystone– Glance– Nova– Neutron– Horizon

• Compute Node– Nova with nova-compute– Neutron

B. Fog Computing Requirements

From the list above, it emerges how OpenStack has aclear client-server architecture with dependencies towardcentralized services such as the AMQP broker and thedatabase. From the list of services required for theminimal deployment, it also follows that a minimalinstallation requires relatively resourceful hardware.

This is a consequence of the fact that OpenStackwas designed for resourceful, symmetric and relativelystatic environments such as data centers. A typical fogdeployment is rather the opposite as (1) nodes may notbe extremely resourceful, (2) the system is highly asym-metric w.r.t. computational and connectivity capabilities,and (3) nodes have a high degree of churn which besidefrom failures and intermittent connectivity stems frommobility – consider for instance autonomous drivingvehicles in a factory.

Another key characteristic of fog environments is theneed for supporting low reaction times, as well as theprovisioning, in addition to VM and containers, of differ-ent kinds of deployable units, such as unikernels, micro-services, and binary executables, some of which may

Page 5: fogØ5: Unifying the computing, networking and storage ... · system-level, abstractions to distribute computing, storage, control and networking functions closer to the user along

need to run on real-time operating systems and leveragereal-time networks such as Time Sensitive Networking(TSN) (IEEE 802.1) [11].

OpenStack, operates at a time scale that is incom-patible with these kinds of systems. As an example theinstantiation of a unikernel is dominated by OpenStackas opposed to the unikernel boot time. This clearlyoffsets the advantage of using unikernels for fast boot.

Table I summarizes some of the key requirementsof a fog infrastructure and evaluates their support inOpenStack. From this table it emerges that OpenStackis ill-suited as the starting point for fog infrastructures.

III. FOG?5 OVERVIEW

As described in the previous sections, the fog in-frastructures proposed thus far in literature [3], [6],[9], [12], while being a step in the right direction,fall short in addressing the end-to-end unification ofresources. The main limitations of previous solutions canbe summarized as (1) deployment limited mostly to VMand/or Containers, (2) lack of support for real-time, (3)lack of mudularity with consequences on extensibility,and (4) limited security.

fog?5 defines a set of abstractions to unify the com-pute, storage and communication fabric end-to-end andthus allow applications to be managed, monitored andorchestrated across the cloud to thing continuum.

Before delving into the architectural details offog?5 let’s see the key abstraction that it uses in order toprovision, manage and orchestrate, generic applicationsend-to-end.

Fig. 1. fog?5 unified abstraction

A. fog?5 EntityThe abstraction used by fog?5 to provision, manage

and orchestrate applications, or network functions, isthe entity. An fog?5entity is either an atomic entity,

such as a Virtual Machine, a container, a Unikernel, abinary executable, or a Directed Acyclic Graph (DAG) ofentities (see Figure 1). Where the set of atomic entitiessupported by fog?5 can be extended through plugins.

Entities and Atomic Entities have a FSM that definesthe legal state transitions. These FSM have been definedto be sufficiently generic to encompass essentially anykind of atomic entity ranging from a VM to a binaryexecutable. Entities may define a deployment affinityw.r.t. to each other as well as with respect to compute,storage, I/O and accelerators such GPUs and FPGAs.

The state machines that define the legal state tran-sitions for entities and atomic entities are depicted inFigure 2a and and Figure 2b respectively.

As shown in Figure 2b, the statuses of an atomicentity are distinguished from those of an instance ofan atmic entity. This is similar to the difference be-tween the Virtual Network Function (VNF) Descriptor(VNFD) and theVNF Record (VNFR), were the firstrepresents the template and the latter instance for thattemplate. fog?5 also provides an implementation forthe ETSI VNF Managment and Orchestration (MANO)framework. Additional MANO can be supported byimplementing a plugin.

In Figure 2a it can also be seen how entities have aFSM describing their legal state transitions. Each entityis described as a DAG of atomic entities or entities.The DAG defines a partial order indicating the start-updependencies. Additionally, an entity affinity graph canbe defined to provide hints concerning the entities thatneed to be close to each other.

B. fog?5 Resourcesfog?5 uses resources, expressed as URI, to represent

everything in the system. For instance, a node is aresource, as is a resource a FPGA or a specific GPIOavailable on that node, a fieldbus interface, and so on.Resources are organized as a tree whose root indicatesthe administrative domain. The syntax used for resourcesis reported below:<a | d>f o s : / / < sys t em id >/<node id >/< t y p e o f r e s o u r c e>

/< i d o f r e s o u r c e >/< t y p e o f s u b r e s o u r c e>/< i d o f s u b r e s o u r c e>/ . . . [ ’ ? ’ que ry ] [ ’ # ’ f r a g m e n t ]

In the URI it is possible to have wildcards, query andfragments. Sub-resources can be nested, some types ofresources and sub-resources are reserved and used by thefog?5 agent

Two types of wildcards are allowed:• * to indicate an arbitrary sub-path of length 1.• ** to indicate a sub-path of arbitrary length.URI fragments are used to represent delta-updates to

the value of a resource. Queries are used to retrieveresources matching a given predicate.

Page 6: fogØ5: Unifying the computing, networking and storage ... · system-level, abstractions to distribute computing, storage, control and networking functions closer to the user along

UNDEFINED DEFINEDdefine()

undefine()

CONFIGUREDconfigure()

clean()

RUNNING

PAUSED SCALING

start()

stop()pause()

resume()

scale()

shutdown()

Entity Entity Instance

UNDEFINED DEFINEDdefine()

undefine()

CONFIGURED

onConfigure()configure()

onClean()clean()

RUNNINGPAUSED

SCALINGonPause()

onStop()

start()

stop()

onStart()

onResume()

pause()resume() scale()

MIGRATING

migrate()

TAKING_OFF LANDING

shutdown()

Atomic Entity

Atomic Entity Instance

(a) (b)

Fig. 2. Finite State Machine (FSM) for entities (a) and atomic entities (b).

Each resource in the system has conceptually twovalues, the actual value and the desired value. Thesevalues are maintained on two separate distributed keyvalue stores. The actual state can only be changed by theowner of the resource, while the desired value is usedto request changes to the actual value. This techniqueallow us to have concurrency only on the desired valueof a resource, but never its actual actual value. As asingle writer exist for the actual value it can take care ofserializing writes on the information that represents theactual state of the system.

C. fog?5 Distributed Key/Value Store

As mentioned in the previous section, everything infog?5 is a resource and all resources are stored in a dis-tributed key value store. This store provides an eventualconsistency semantics and has built-in versioning.

The store, as explained in more detail in next thesections, has a root, a home and a cache capacity. Theroot and the home are URI indicating respectively thescope of resolution for the store and the resources tobe maintained in main memory. In other terms, a storewill keep in main memory any resource that has homeas a prefix, and will store on a fixed capacity cacheresources whose prefix is the root but not the home.Resources that are not found in the store are resolvedusing a distributed cache miss protocol. A distributedcache coherency protocol is used to ensure eventualconsistency of cached resources.

This abstraction allow to bound the amount of memoryused by a node while at the same time access a virtualmemory/storage that is distributed and potentially as bitas the sum of all memory/storage in the system. This

abstraction along to being used at the core of fog?5 isprovided to the user as a way to virtualizing memoryand storage end-to-end.

As a result this store can be used as a single andscalable abstraction across high-end and extremely con-strained nodes.

The distributed store can also be used for sharinginformation that may be useful for other application, asan example veNB may share Radio Network informationthough the distributed store, thus allowing other appli-cations and services to take decisions based on real-timedata.

The store while providing a high-level abstraction hasbeen implemented to have extremely low latency. Assuch it facilitates interaction between different servicesand allows for extremely short reaction times.

IV. FOG?5 DISTRIBUTED ARCHITECTURE

The high-level architecture of fog?5 is depicted inFigure 3. From Figure 3 it can be seen how fog?5 hasbeen designed to run as either a process on a traditionalOS or as a trusted service inside a Trusted ExecutionEnvironment (TEE). Where the TEE could be runningon an hypervisor – as depicted in Figure 3 – or on baremetal, ideally on a trust zone such as those supportedby ARM processors. This deployment ensure that allcommunications with the external network are donethrough a run-time that has a very small surface of attack.Internal communication is performed through a VPN.

This means that only the software running on theTEE can communicate with the external network, which,as such mediates communication between the internaland external network. This architecture, while not com-pulsory – as mentioned above – was motivated by the

Page 7: fogØ5: Unifying the computing, networking and storage ... · system-level, abstractions to distribute computing, storage, control and networking functions closer to the user along

Hardware

Hypervisor

TEEVMn

Node-Local VPN External Network

VM1 VM2 …

OS OS

fogOS

DDS | !"#$%

DStore

Agent

Plugins

OS

DStore

Agent

HV + SDN PluginfogOS

C N U S

C: ContainerVM: Virtual MachineN: Native ApplicationU: UnikernelS: micro-Service

DDS | !"#$%

Fig. 3. fog?5 high-level architecture.

fact that regular operating systems, such as Linux andWindows, have an extremely large surface of attack,which makes them extremely hard to secure. Finally, thefog?5 instance running on the TEE has only the pluginsfor managing the network and the hypervisor, along witha trusted implementation of the distributed store.

A. fog?5 AgentThe core component of fog?5 is the agent. The agent

represents a manageable resource on the system, whichfrom now on we’ll call a fog?5 node. Each agent hastwo stores, one representing the actual state of the nodeand the other representing the desired state for the node.The actual state of a node can only be written by theagent running on that node, while the desired state canbe written by anybody to cause state transitions, such asprovisioning a VM, or a binary executable, and so on.

Agents dynamically discover each other by leveragingthe dynamic discovery provided by the distributed store,which in turn leverage the dynamic discovery providedby the data sharing layer which may be implemented viaData Distribution Service (DDS) [1] or zenoh [2].

The set of functionalities supported by an agent iscontrolled by plug-ins. Different class of plug-ins existfor entities, network, OS, and so on. The agent ”simply”orchestrates the plug-ins state transitions.

B. fog?5 PluginsAs mentioned above, fog?5 leverages plugins to

manage just about anything. If we take as an examplethe plug-in for atomic entities, these are responsible forimplementing the state transition depicted in Figure 2 fora specific kind of deployment, unit, such as a RoboticOperating System (ROS) nodelet, a unikernel, a binaryexecutable, a container or a VM. As another example,operating system plugin, provides an implementation ofthe primitives required by fog?5 to operate on the givenOS.

C. fog?5 Distributed Storefog?5’s distributed store, is a distributed

< key, V alue > store whose protocol has been

implemented leveraging DDS or alternativelyzenoh. Both DDS and zenoh, promote decentralizedarchitectures and do not require a broker. Additionally,they have extremely low latency, high throughput andexcellent scalability.

fog?5’s distributed store exposed the following simplebut extremely poweful API:

• keys(path) list the keys under the given path.• get(k) get the resource for the given key, resolving a

miss if necessary.• put(k,v) store the information v using k as key.• dput(k,[v]) update the information for the key.• pput(k,v) persistent put, these stores the ¡k,v¿ on a

stable storage.• getAll(k) same as get(k) but k contains wildcards,

resolving a miss if necessary.• remove(k) remove the information associated to the

key• observe(k, action) register an observer for the specified

key, each time the value is update the action iscalled

• reg metares(k, action) registers a meta-resource and theaction that resolves it.

• unobserve(k) remove the registered observer.The store also supports a versioning system to allow

for (1) rollbacks in case of errors, (2) node with intermit-tent connectivity to be updated with latest version, and(3) dealing with cache miss and eventual consistency.

Finally, it should be remarked that registering an ob-server for a URI owned by another node (store) providean elegant way of monitoring resources.

D. fog?5 and Fog Computing RequirementsNow that we have provided an overview of fog?5, it

is time to review how it addresses the key fog-computingrequirements listed in Table I:

• Dynamic Discovery. fog?5 dynamic discoveryis provided by the distributed store, which in inturns, leverages the dynamic discovery providedby DDS or by zenoh. This dynamic discovery isimplemented by decentralized algorithms that donot introduce dependencies on servers and facilitatezero-conf deployments.

• HW and I/O Discovery. fog?5 provides informa-tion on any kind of I/O and hardware acceleratorsavailable on the node. This information is managedby plugins and can be extended to provide access tostandard API for dealing with embedded hardwareand I/O such as the SGET eAPI.

• Decentralized Architecture. fog?5 has a decen-tralized architecture as a consequence of the decen-tralized key/value store used at its foundation.

• Low Latency. As the distributed key/value store isimplemented using either DDS or zenoh, the latency

Page 8: fogØ5: Unifying the computing, networking and storage ... · system-level, abstractions to distribute computing, storage, control and networking functions closer to the user along

for distributing data on a LAN, is around 50 micro-seconds when using DDS and around 20 micro-seconds when using zenoh.

• Low Resource Utilization. The fog?5 agent takesaround 3MB of memory on a 64-bit machine run-ning Linux. This is for a fully functional agentwith no additional external dependency. Notice alsothat, as the architecture is decentralized, there isnothing else beside the fog?5 agent that needs tobe deployed.

• Generalized Constraint-based Deployment.fog?5 uses a plug-in for allocation. The default,plugin takes into account computational resources,networking, I/O accelerators as well as affinitieswith respect to other entities.

• Device Assignments. fog?5 can assign any kind ofdevice or I/O, such as a GPIO to an atomic entity.

• Support for Constrained Devices. The term con-strained devices may mean different things to dif-ferent people. It should be clear from the numberprovided above that something like a RaspberryPi is not a constrained target for us. We are ableto target ARM-M and even less capable hardware,such as micro-controllers.

• End-to-end Unification of Computing, Network-ing and Storage. As fog?5 can run efficiently onhigh-end hardware as well as constrained things,it can manage the compute, storage and network-ing fabric end-to-end. Additionally, fog?5 provideswith the ability to configure end-to-end networksthat span across cloud, edge and things.

• Large Scale Deployment. Thanks to the dynamicdiscovery, large scale deployments are is simpleand effective. The scalability of these deploymentsstems for the use of DDS and its dedicated infras-tructure for large scale-deployments.

• Extensibility. fog?5 has a plugin architecture thatallows for any aspect to be extended and cus-tomized.

• Support for Real-Time OS. At the present time,fog?5 can provision real-time OS and we areactively working on supporting TSN provisioningand management.

V. FOG05 REAL-WORLD USE CASES

fog?5 is currently being used in R&D laboratoriesaround the world, such as ITRI, UC3M, III and NCTU,for applications ranging from 5G VNF in heterogeneousenvironments to deployment and orchestration of com-plex services inside a smart factory to enable on-demandmanufacturing.

In these applications fog?5 is deployed on extremelydifferent hardware platforms spanning from servers toRaspberry Pis and lego mindstorms!

We are also starting to work on service provisioningfor V2X or V2V communication and collisions avoid-ance among swarm of vehicles. In general, fog?5 hasproven quite effective in enabling resource virtualisationand harvesting across a wide range of devices.

In the reminder of this section we describe a use casethat has been driven by our robotics business unit.

A. Connected RobotsIn the near future, general purpose robots will be used

in factories to accomplish a wide range of tasks throughreconfiguration achieved by simply deploying a differ-ent control logic. Flexible provisioning of robot tasks,within a swarm of robots, requires dynamic discoveryof available robots along with the discovery of theircomputational, I/O and manipulation capabilities.

Fog computing infrastructures matches well the re-quirements of next generation robotic applications withrespect to their needs for dynamic provisioning, compu-tational harvesting, minimal communication latency andjitter.

B. fog?5 in Robotics Applicationsfog?5 is used today to provision, deploy and manage

the components of a complex robotic control application,and dynamiucally decide the most suitable target amongthose spanning from the cloud to robot. For instance,fog?5 may decide to deploy analytics on the cloud oron edge nodes, while the control logic may deployed andmigrated so to remain close the robot or perhaps directlyon the robot.

As an example, one of our Business Units is usingfog?5 for provisioning, deploying and managing thenetwork as well as the applications required in swarmrobotics applications. In one of these applications, arobot equipped with a stereoscopic camera, has to followanother robot. The logic controlling the follower robot isdeployed on edge servers and live migrated as the robotmoves to minimize network latency and jitter.

In this specific a scenario the hardware platform iscomposed by:

• Two Edge Servers, one of which has a GPU accel-erator

• One RaspberryPi3 with an extra 802.11ac NIC• One Robot using Robotic Operating System v2

(ROS2), ADLINK Neuron board, a stereoscopiccamera, a set of motors to more around

• One Robot using ROS2, ADLINK Neuron board, aset of motors to move around

All robots have some computational power, multi-ple NICs and I/O interfaces. Each device runs the

Page 9: fogØ5: Unifying the computing, networking and storage ... · system-level, abstractions to distribute computing, storage, control and networking functions closer to the user along

OS

eth

eth

wlan

wlan

wlan

Phys

ical N

etwo

rk

VxLAN Network

fosAgent KVM

eth

wlan

wlan

fosAgent KVM

fosAgent LXD

fosAgent ROS2

fosAgent ROS2

veth

veth

LXD

vethveth1

Gateway

Control Logic

AccessPoint Analytics

Monitoring

CameraRobot Client

Virtual Machine

LXD Container

ROS2 Nodelet

Virtual NIC

Physical NIC

Physical NIC

Connected to overlay Network

Fig. 4. Connected Robots Use Case

fog?5 agent and has a NIC connected to the manage-ment.

The application is composed by:• Complex Robot control application• Analytics application• Virtual Access Point VNF• Gateway VNF• Image recognition client• Simple robot control logic• Simple robot client• Monitoring applicationEach entity has different requirements in terms of I/O,

compute, accelerators and networking requirements.The application components are extremely heteroge-

neous. The analytics, monitoring, and robot controllingapplications are packaged in VMs, the gateway VNF andthe Access Point VNF are LXD containers, the other areROS2 Nodelets

fog?5 greatly facilitates the provisioning, deploymentand management tasks as it dynamically discovers avail-able nodes and deploys the components of this complexapplication in the right place – where the right placedepends on resources and affinity. To maintain affinitybetween some entities it also executes live migration ofsome components.

Additionally, fog?5 is also used to create an overlaynetwork used by all components on the application.

VI. CONCLUSION AND FUTURE WORKS

This paper has provided an overview on the evolutionof fog computing and summarized the key requirementsthat fog computing platforms need to address. Theserequirements highlight how, the main stream approach ofadapting cloud-derived technologies such as OpenStackfall short in addressing the most important characteristicsof fog computing environments.

The paper has thus introduced fog?5 a novel fogcomputing infrastructure designed bottom up to addressthe key requirements of fog computing. fog?5 features

a decentralized and plug-in-based architecture that allowfor zero-conf deployment, low-latency, and extensibility.

Our future work will focus on extending the appli-cability of fog?5 to micro-controllers and providingconsolidation and placement algorithms that performdynamic resource optimization.

Finally, fog?5 is available as Open Source athttp//fog05.io.

We also working with the OpenFog consortium tomake fog?5 the Open Source reference implementationfor the OpenFog Consortium.

REFERENCES

[1] The data distribution service, 2017.[2] zenoh: The zero network overhead protocol, 2017.[3] Flavio Bonomi, Rodolfo Milito, Jiang Zhu, and Sateesh Adde-

palli. Fog computing and its role in the internet of things. InProceedings of the First Edition of the MCC Workshop on MobileCloud Computing, MCC ’12, pages 13–16, New York, NY, USA,2012. ACM.

[4] D. Bruneo, S. Distefano, F. Longo, G. Merlino, A. Puliafito,V. D’Amico, M. Sapienza, and G. Torrisi. Stack4things as afog computing platform for smart city applications. In 2016IEEE Conference on Computer Communications Workshops (IN-FOCOM WKSHPS), pages 848–853, April 2016.

[5] Angelo Corsaro. Cloudy, foggy and misty internet of things. InProceedings of the 7th ACM/SPEC on International Conferenceon Performance Engineering, ICPE ’16, pages 261–261, NewYork, NY, USA, 2016. ACM.

[6] S. K. Datta, C. Bonnet, and J. Haerri. Fog computing architectureto enable consumer centric internet of things services. In 2015International Symposium on Consumer Electronics (ISCE), pages1–2, June 2015.

[7] OpenFog Consortium Architecture Working Group. Openfogarchitecture overview. Technical report, Feb 2016.

[8] Adrien Lebre, Jonathan Pastor, Anthony Simonet, and FredericDesprez. Revising OpenStack to Operate Fog/Edge Computinginfrastructures. In IEEE International Conference on CloudEngineering, Vancouver, France, April 2017.

[9] et al. M. Yannuzzi. A new era for cities with fog computing.IEEE Internet Computing, 21(2):54–67, Mar.-Apr. 2017.

[10] J. S. Preden, K. Tammeme, A. Jantsch, M. Leier, A. Riid, andE. Calis. The benefits of self-awareness and attention in fog andmist computing. Computer, 48(7):37–45, July 2015.

[11] Seifeddine Nsaibi und Ludwig Leurs. Time sensitive networking.atp edition, 58(10):40–47, 2016.

[12] Shanhe Yi, Cheng Li, and Qun Li. A survey of fog computing:Concepts, applications and issues. In Proceedings of the 2015Workshop on Mobile Big Data, Mobidata ’15, pages 37–42, NewYork, NY, USA, 2015. ACM.

View publication statsView publication stats