FIWARE.ArchitectureDescription.Cloud.Edgelets R3

From FIWARE Forge Wiki

Jump to: navigation, search

Contents

FIWARE WIKI editorial remark:
This page corresponds to Release 3 of FIWARE. The latest version associated to the latest Release is linked from FIWARE Architecture

Copyright

Copyright © 2013 Thales Communications & Security

Legal Notice

Please check the following Legal Notice to understand the rights to use these specifications.

Overview

This specification describes the Edgelets Generic Enabler, which is designed for improving the end-users web experience by allowing some of web interactions (media upload or download, logical interaction, ...) to happen on devices located near the user with high data rates and low latency.

GE Description

The Edgelets GE provides the means to manage and deploy a set of distributed pieces of applications called "edgelets". The edgelets are software pieces used to move some of the logic or ressources for a web application close to the user.

Two main use cases are envisioned:

Logic Distribution Network

This use case can be seen as some kind of "dynamic CDN" (Content Delivery Network). Whereas CDNs are mainly targetting at delivering static content to end-users, edgelets can be used to deliver logical pieces of a web application, like captchas, buttons (like the twitter or facebook buttons which displays number of tweets or likes), or to realize some services like transcoding of videos to a format that is best suited for the end-user.

Local Webapp Companion

In this use cas, edgelets are installed proactively by the end-user (for example on the user's set-top box) in order to enhance its web experience twoards a specific website using capabilities offered by the edgelet (storage, computation, ...). This allows to quickly upload movies or pictures to the local edgelet, that are then synchronized with the remote web site, while keeping the website usage flow untouched (It should introduce as less extra complexity and differences in the interface as possible).

GE Architecture and Components

Edgelets Infrastructure

The edgelet infrastructure is composed of:

  • A master node that manages slave nodes
  • A set of slaves nodes, distributed accross the internet and running the edgelets

[[

File:Edgelet_infrastructure.png|center|700px|Edgelets infrastructure]]
Basic infrastructure of the Edglets GE

Edgelets Main Components

The following diagram shows the main components of the Edgelets GE:

Edgelets Architecture
High level architecture of the Edglets GE

Master Node Components

The master node is the central point for managing the Edgelets GE infrastructure.

The Node Management component is the most important components since it handles:

  • which nodes belong to the Edgelets infrastructure
  • which edgelets should run on the different slave nodes
  • from a centralized point

The Monitoring component aggregates the monitoring information from the different slave nodes and provides an API for requesting such information.

These two components are highly interacting with two web portals:

  • the User Portal used by end-users for proactively managing edgelets deployed on nodes when relevant (especially for the local webapp companion use case)
  • the Platform Management Portal is used by Edgelet Developers and the Platform Administrator for:
    • Edgelet Developer
      • managing its own software releases
      • managing and monitoring the deployment of the edgelets on the slave nodes for the logic distribution network use case
    • Platform Administrator
      • managing the list of available edgelets
      • managing the deployment and life-cycle of the edgelets
      • managing the slave nodes
      • monitoring the edgelets and nodes

Slave node components

A slave node only has minimal software requirements in order to be able to run edgelets (A Linux based OS and some build tools).

The Management component is in charge of managing the edgelets running on the device:

  • Synchronize with the master node in order to know which edgelets should run
  • Download and build the software used to run a specific edgelet
  • Run an edgelet

The Monitoring component is used to report usage and statistics on the device and the edgelets to the master node.

The edgelets themselves are instances of software releases running inside a container.

Basic Concepts

The key concepts of the GE are:

  • The edgelets can be deployed on a wide variety of devices, with only minimal requirements. They could be as well deployed in a datacenter, on set-top boxes, or any kind of connected device (tablets, smart tvs, ...), as long as they fullfil the basic requirements. The overhead of the edgelets is minimal compared to running several virtual machines on a device with limited resources.
  • The edgelets are useful when they are close to the end-user (the idea is the same as the one behind CDNs). In order to achieve this, slave nodes are spread in various locations over the entire Internet, and the node management has knowledge about the location of the slave nodes. It enables a fine deployment of the edgelets in the different use cases.
  • Several edgelets can be run on each of the slave nodes
  • Monitoring is used to ensure the optimal use and deployment of the edgelets throughout the distributed infrastructure

API Operations

The main interfaces of the Edglets GE for its first release are listed below. These are the interfaces provided by the Master node and exposed to the users (Platform admins, edgelet developers, end users, ...)

Slave nodes

  • listSlaveNodes -- return a list of registered slave nodes
  • getSlaveNodeDetails -- return information on the slave node (state, capabilities, ...)

Edgelets

  • listEdgelets -- return a list of edgelets available on a node
  • getEdgeletDetails -- retrieve information on an edgelet on a node (state, metrics, ...)
  • provisionEdgelet -- build the software necessary to run an edgelet
  • startEdgelet -- start and edgelet
  • stopEdgelet -- stop an edgelet
  • updateEdgelet -- update an edgelet to a newer version
  • deleteEdgelet -- delete an edgelet

Software repository

  • listSoftwareReleases -- return a list of available edgelets releases
  • getSoftwareReleaseDetails -- return information on a edgelet release (author, version, ...)
  • uploadSoftwareRelease -- upload a new edgelet release in the catalogue

Basic Design Principles

When applied to DCRM, the general design principles outlined at Cloud Hosting Architecture can be translated into the following key design goals:

  • Ability to dynamically control the deployed edgelets as well as to monitor the actual usage
  • Avoid non-authorized access to the slave nodes and deployed edgelets
  • Automated provisioning and life cycle of the edgelets
  • Broad network access -- portals can be accessed by several heterogeneous end-devices
Personal tools
Create a book