Applications

Predix Edge Applications

Predix Edge Applications consist of a single tar file containing one or more Docker images (saved as tar files) and a docker-compose.yml.

One App or Many Apps?

Each Predix Edge application can have one or multiple containers. Each application may communicate with other applications via the Predix Edge Data Broker, as long as the containers are on the same Docker network as the one set in docker-compose.yml.

Why might you separate an application into multiple Predix Edge applications?

You might use pre-defined Predix Edge applications as components of your larger application.

Alternatively, the needs of your release cycle, performance considerations, or scheduling considerations might require that you divide your application into several applications.

Use cases that require distinct containers to share a common /data folder should bundle their containers into one application. For example, one container might pull data off of the Data Broker, run some analysis, and store analyzed data in the /data directory. Another container might provide a web server that enables users to browse the data and download those files locally or view them inside a web browser.

Application Packaging

Application tar files should be uploaded to Predix Edge Manager and stored. Once in Edge Manager, they can be deployed to many remotely managed Predix Edge devices. Application tar files may also be uploaded to a single device using the Predix Edge Technician Console (PETC).

The Edge Manager UI allows you to upload application tar files. Also, an API is available for DevOps. The Predix Edge Reference App provides a tutorial and script that shows how to call this API.

Best practices include using a consistent naming pattern and adding the version to the application file name.

Docker (docker-compose.yml files)

The Predix Edge Reference App provides some advice about the development lifecycle and the use of several different docker-compose files.
  • docker-compose-local.yml - Use when testing locally on your VM, Windows, or OSX.
  • docker-compose-edge-broker.yml - Use a separate .yml file for the Predix Edge Data Broker because Predix Edge OS is shipped with the broker already running inside, so it won't need to be packaged.
  • docker-compose.yml - This is the default name and is required when packaging the Predix Edge application.

Application Size Limitations

Edge Manager and PETC enforce application size limitations. Before starting the development process, ensure your tar files sizes, container sizes and config sizes do not exceed these limits.

Application Signing

Before they can be deployed to a Predix Edge production OS, applications must first be signed. For more information, see Application Signing.