1. Introduction
This section covers the image management required for application deployment to Edge Nodes. It also covers the overview of the storage management on the Edge Node.
2. Data Store
DataStore object in ZEDEDA captures the file/image storage service. ZEDEDA supports both cloud storage-based datastore and local storage-based datastore. The images/files themselves are not used and stored anywhere in our ZEDEDA management platform, as long as devices in customer enterprises can reach data store locations and images are directly downloaded from the storage service. Multiple images can be hosted on a single service.
The following Cloud Storage Services are supported for the images/files:
-
AWS S3
-
Azure Blob Storage
The following services are supported for containers:
-
Docker container registry
-
Azure ACR
-
Your own private container registry
On-Premise/hosted file servers:
-
Support HTTP/HTTPS based file servers
-
SFTP based file servers
Datastore objects capture all the command attributes like access parameters, URLs, and additional resources required to reach the service. The specific details depend on the type of service and describe it in the operational document.
3. Images
The image object captures the metadata about the image. The image binary is not stored with ZEDEDA. It is stored on datastores. The image object captures the image name, which datastore is stored on, and the SHA256 checksum of the image if available. The Images are directly pulled from the Edge Node after it receives the metadata from the ZedControl. Each time device downloads the image. It will always make sure the SHA256 checksum matches before using it.
Enterprise users can upload their Edge Application images into Datastores and update them.
ZEDEDA releases EVE images periodically and makes them available to Enterprise users.
Only a single copy of the image is downloaded, even though multiple applications may be using that. Each application can have one more image. Once they are downloaded, each image(s) is represented as a volume instance object on the Edge Node.
4. Volume Instances
A volume instance manages the storage of data in the Edge Node. It can store image binary data or application runtime data. A volume instance can be persistent and independent of the edge applications using this volume instance for storage. A volume instance can also be transient and tied up with the lifecycle of an edge application that may be using it for storage.
This edge storage solution supports different use cases:
-
An edge application may want to refresh its version while retaining the data contents.
-
Multiple edge applications may want to share data (volumes) between them.
-
An Enterprise may want to pre-load an Edge Application binary to a persistent volume before shipping it to its customers. This allows the Edge Node not to download the image binary again and is helpful in deployment with low bandwidth availability.
-
An Enterprise may want to backup and restore volumes periodically.
-
An Enterprise will migrate its applications orchestrated by docker-compose or Kubernetes in Data Centre seamlessly to the edge. This volume instance supports 'volumes' as specified in a docker-compose.yaml, Kubernetes.yaml, helm chart, etc.