Orion
Orion is the management server for Axyon. It manages Axyon Agents and provides application deployment capabilities for the platform.
A major goal of Orion is to maintain a simplistic design to make it easy to understand. With that, there are a few concepts to know.
Providers
At the core of an Orion workload is the concept of a provider. A provider is a defined template for a service. It provides a base configuration that can be overridden by the user at service creation. This allows operators to set items such as base resources in the provider and the user does not need to know or use those. Let's see an example:
ax providers create \
--id com.example.redis.v1 \
--image r.axyon.io/library/redis:7.4.2
--cpus 1 \
--memory 512M \
--storage 512M \
--arg "console=hvc0" \
--arg "root=/dev/vda" \
--runtime vz
In this example, we are creating a provider that uses the image r.axyon.io/library/redis:latest
. This enables us to update the provider to a different image in the future without the user needing to rebuild anything. For example, if we want to bump to 8.0
, we simply update the provider. All future services (or those that choose to be redeployed) will get the updated image. This gives a lot of flexibility. For example, if we want to offer another provider that has more resources we can do that as well.
For more information on creating Axyon images to be used as providers, see the Axyon Application Overview.
Services
A service is the user facing unit of deployment in Orion. A service is created specifying a provider and any configuration overrides. Let's see an example:
ax services create \
-n demo \
-p com.example.redis.v1
This is all that is needed. This will deploy a workload using the provider defaults. Of course, we can specify overrides such as CPUs, Memory, etc. but that isn't required. Again, this gives a lot of flexibility in the platform.
Secrets
Orion provides the ability to define AES-256 bit encrypted secret data. Secrets can then be referenced in services that are available to the workload. Here's an example:
First, we define a secret:
ax secrets create \
--file /path/to/my/file
mysecret
Info
Secrets can be created either using --file
from a file path or if no file path is specified it will prompt for command line input.
Agents
Agents are the worker nodes that run the application workloads. Agents connect and maintain a GRPC streaming connection to an Orion server to receive commands and send agent related data such as application status, logs etc. Agents execute the application workload using configured runtimes. By default, this is the Virtualization framework on macOS but other runtimes can be added.