Technical Lexicon
Below are concepts and terms utilized throughout the Margo Specification along with their associated description/definition.
Concepts
Interoperability
Interoperability is an overloaded term that has different meanings depending on the context. For Margo, interoperability is about achieving the following:
- Defining a common approach for packaging Components so they can be deployed as Workloads to any compatible Margo-compliant Edge Compute Devices via any Margo-compliant Workload Fleet Manager.
- Defining a common approach for packaging device software and firmware updates so they can be deployed to any Margo-compliant Edge Compute Devices via any Margo-compliant Device Fleet Manager.
- Defining a common API to enable communication between any Margo-compliant Edge Compute Devices and any Margo-compliant fleet management software.
- Defining a common approach for collecting and transmitting diagnostics and observability data from a Margo-compliant Edge Compute Device
Orchestration
Orchestration is an overloaded term that has different meanings depending on the context. For Margo, orchestration is about the deployment of Workloads and device software updates to Margo-compliant Edge Compute Devices via Margo-compliant fleet management software. Margo depends on container orchestration platforms such as Kubernetes, Docker and Podman existing on the Edge Compute Devices and is not an attempt to duplicate what these platforms provide.
Fleet Management
Fleet Management represents a concept or pattern that enables users to manage one to many set of workloads and devices the customer owns. Many strategies exist within fleet management such as canary deployments, rolling deployments, and many others. Below are two fleet management concepts that have been adopted by Margo.
State Seeking
The state seeking methodology, adopted via Margo, is enabled first by the Workload Fleet Manager when it establishes the "Desired state". The Edge Device then reconciles it's "Current state" with the "Desired state" provided by the Fleet Manager and reports the status.
Provider Model
The provider model within Margo describes a service that is able to orchestrate or implement the desired state within the Edge Device. Current providers supported:
- Helm Client
- Compose Client
Technical Terms
Application
An application is a collection of one, or more, Components, as defined by an Application Description, and bundled within an application package.
Application Package
An Application Package is used to distribute an application. According the specification, it is a folder in a Git repository referenced by URL, which contains the Application Description (that refers to contained and deployable Components) as well as associated resources (e.g., icons).
Component
A Component is a piece of software tailored to be deployed within a customer's environment on an Edge Compute Device. Currently Margo-supported components are:
- Helm Chart
- Compose Archive
Workload
A Workload is an instance of a Component running within a customer's environment on a Edge Compute Device.
Edge Compute Device
Edge Compute Devices are represented by compute hardware that runs within the customer's environment to enable the system with Margo Compliant Workloads. Edge Compute Devices host the Margo compliant management agents, container orchestration platform, and device operating systems. Margo Edge Compute Devices are defined by the roles they can facilitate within the Margo Architecture. Supported Device roles are shown below:
- Standalone Cluster(Leader and/or Worker)
- Cluster Worker
- Standalone Device
Workload Fleet Manager
Workload Fleet Manager (WFM) represents a software offering that enables End Users to configure, deploy, and manage edge Workloads as a fleet on their registered Edge Devices.
Application Registry
An Application Registry holds Application Packages. It is used by developers to make their applications available. An Application Registries MUST be a Git repository.
Workload Fleet Managers cannot access Application Registries directly, they can only access Application Catalogs.
Application Catalog
An Application Catalog holds Application Packages that were preselected to be install-ready for the edge environment of a Workload Fleet Manager to deploy them to managed Edge Compute Devices.
An Application Catalog obtains the offered Applications from one or more Application Registries.
Component Registry
A Component Registry holds Components (e.g., Helm Charts and Compose Archives) for Application Packages. When an application gets deployed through a Workload Fleet Manager, the components (linked within an Application Description) are requested from the Component Registry.
This can be implemented, for example, as an OCI Registry.
Workload Fleet Management Client
The Workload Fleet Management Agent is a service that runs on the Edge Compute Device which communicates with the Workload Fleet Manager to receive Components that will be instantiated as Workloads and configurations to be applied on the Edge Compute Device.
Device Fleet Manager
Device Fleet Manager (DFM) represents a software offering that enables End Users to onboard, delete, and maintain Edge Compute Devices within the ecosystem. This software is utilized in conjunction with the Workload Fleet Manager software to provide users with the features required to manage their Edge Device along with Workloads running on them.
Device Fleet Management Client
The Device Fleet Management Agent is a service that runs on the Edge Compute Device which communicates with the Device Fleet Manager to receive device configuration to be applied on the Edge Compute Device.
Workload Marketplace
Workload Marketplace is the location where end users purchase the rights to access Workloads from a vendor.
Functional Requirements of the Workload Marketplace:
- Provide users with a list of Workloads available for purchase
- Enable users to purchase access rights to a Workload
- Enable users with the meta data to access associated Workload Registries/Repositories
Note: The Workload Marketplace component is out of scope for Project Margo. However, it is necessary to define to clarify the full user workflow.