Docker Applications

Overview

EDGEHOG Apps Manager allows managing applications based on Docker Containers on the devices remotely, in a secure way. It is possible to deploy applications and manage operations such as Install, Start, Stop, Upload remotely, even on multiple devices simultaneously.

Docker

Docker is a platform for developers and sysadmin to build, share, and run applications with containers. The use of containers to distribute applications is called containerization. Containers are nothing new, but their use to easily distribute applications is.

A Docker Container is launched by running an image. An image is an executable package that includes everything needed to run an application--the code, runtime, libraries, environment variables, and configuration files.

A container is a runtime instance of an image--what the image becomes in memory when executed (that is, an image with the state, or a user process). You can see a list of your running containers with the command, docker ps, just as you would in Linux.

Docker Compose

Docker Compose is a tool to define and run multi-container Docker applications. With Compose, you use a YAML file to configure your application's services, so with a single command, you create and launch all services from the configuration. Check the official docker-compose documentation for more info.

Applications/Apps

By Application/App we mean a set of containers (complete architecture/structure) linked together, defined by a Docker Compose YAML file. Each App is therefore defined by a name and the relative YAML file that must be able to be loaded into the EDGEHOG system from the interface.

The customer can manage their apps as well as third-party apps on the gateways on their own and deployed these apps across the entire fleet of gateways.

Create App

To create an App select Create Application.

Then enter:

  • Application Name;

  • Description;

  • Check if Start On Install/Update: If this box is checked, the application will start automatically after each Installation or Update operation performed on a device.

  • Gateway Types: Select the types of gateways that will be compatible with this Application on which you can deploy.

  • Select Tags;

  • Upload Configuration File (the Docker Compose YAML file): Once loaded the Configuration File will be validated by the system and the table below will show the individual services of which the application is composed.

The inserted.yamlfile must be formatted correctly following the YAML rules, to be accepted by the system, and need to be a valid Docker Compose file, to make the application work correctly. Use Docker Compose file version 3 by declaring it at the beginning of the YAML like this:

version: "3"

Applications List

In this section a list of all created apps and their details is available.

Here it’s possible to select a single app clicking on the line. Once the app is selected the App page is going to open.

Edit Application

To edit an app, simply modify the fields or load a new Configuration File and press the Save button.

Create App Campaign

As we saw in the OS Campaigns, the table on the right of the page is updated with the number of gateways that can be updated as information is selected and added in the filter fields on the left.

As you select and add information in the filter fields on the left, the table on the right of the page is updated with the number and specifications of the gateways that OS can be updated to.

To create an App Campaign select:

  • Application: select the App from the list;

  • Operation: Install/Update, Install, Update, Start, or Stop, these are the commands that can be sent to each device that is part of the campaign, relative to the application chosen. These commands use Docker Compose commands on the device (e.g. up, down, update).

  • Name: enter the Campaign Name;

  • Tags: Through the tags, you can filter the devices of the fleet to which the campaign should arrive.

  • Rollout Rate: Specifies the maximum number of devices that will be informed of the update per minute;

  • Execution Timeout: Specifies the maximum amount of time (in minutes) a device should take to install the update.

Once you have entered all the parameters you can create the App Campaign by clicking on the button Create Application Campaign. You will be redirected to the status page of the App Campaign to see the status of each device being updated.

Apps Campaigns List

In this section a list of all created campaigns and their status is available.

Here it’s possible to select a single campaign clicking on the appropriate line. Once the campaign is selected the Campaign Recap page is going to open.

Device Page information

Inside the page of each device, you can check the status of the associated applications and perform individual operations on each Docker Application. Go to the Device Page for more information.