Introduction
There are two distinct domains to consider when defining backup strategies and solutions, the Control Tower and the edge sites with Edge Enforcers. Different data needs to be considered in those domains.
Control Tower data:
- Control Tower configuration and state
- Customer data such as application specifications, deployment specifications, secrets, site configuration etc.
Edge site data (hosts with Edge Enforcer installed):
- Edge Enforcer configuration and state
- Application specific data stored on volumes (ephemeral and persistent)
- Other files not within the Avassa context
Below follows a walk-through of solutions for these domains
Control Tower SaaS
If you are using the hosted Control Tower provided as a service from Avassa, there is no need to consider backup strategies. That is part of the Avassa service. Avassa is periodically performing automatic backups of the Control Tower (A) as well as customer artifacts (B).
Avassa has established operational procedures to restore the corresponding complete environment.
Notes:
- Three Control Tower instances/replicas are running which manages single point of failure scenarios making backup/restore superflous in most cases.
- The backup/restore should be considered a disaster recovery in the case of a total outage for a cloud zone, not to restore a single "file".
Recommendations:
- Manage the application specifications, deployment specifications etc in a CI/CD pipeline with code repositories. Push them to the Control Tower as part of a deployment step. In that way you have full versioning and internal control of backups of those artifacts.
- Configure Avassa to use external authentication. Although Avassa has full support for built-in user management (including backup/restore) it is recommended to use your enterprise authentication method like Azure Entra ID to manage users.
On-premise Control Tower
If you are using an on-premise Control Tower follow instructions outlined in the installation guide for on-premise installations.
Edge Site backup
Avassa provides tools to backup and restore the Edge Enforcer state and configuration. Application data written on volumes is out of scope for Avassa. Any other files and data on the edge host is also out of scope for the Avassa procedures.
There are two kinds of Avassa tooling for backup and restore of a site:
- Restore from Control Tower configuration, the state for an edge site is a result of a desired configuration of the site and hosts in the Control Tower
- Local backup of Edge Enforcer per host.
Alternative 1: restore edge from Control Tower
Depending on the restore scenario, you add a host to the site or
create a new site with a new host. Since you have the previous site
and host configuration available in Control Tower you can reuse that
for the new host. This will bring the site and host up. After that
make sure you have correct site labels and deployment label match
expressions. Perform action redeploy
on deployments to deploy the
applications to the site.
If the target for the restore process is a host within a multi-host
site you can add a new host to the site. Make sure it has the same
config as the previous one. In this case you can perform a rebalance
action on the site to spread the running applications across all the
hosts including the new one.
Read more in site maintenance documentation.
Alternative 2: restore edge from Edge Enforcer backup
The Edge Enforcer has a built-in backup/restore tool for systemd
systems. This is not enabled by default when installing, but is
possible to enable with the --enable-backups
while using the supd
install script.
--enable-backups Enable backup services which will, by default, perform a daily backup.
NOTE: only applicable for systemd systems.
In case the Edge Enforces was previously installed without backups, it can be enabled:
sudo systemctl enable backup-supd.service
sudo systemctl enable backup-supd.timer
sudo systemctl start backup-supd.service
sudo systemctl start backup-supd.timer
On the host where supd
is installed the backup and restore scripts
are available at /var/lib/supd/state/bin
backup-supd
restore-supd
The backups will generate a tar.gz file in /var/lib/supd/backups
like
<host-name>-<NNN>.2025-04-11T1200Z.tar.gz
The five latest backups are saved.
Restoring this file will bring back the edge host to the state saved in the backup.
⚠️ Make sure that you automatically copy these files to a proper backup location since this is local file storage.
To simplify automatic upload of a newly created backup the
backup-supd
script checks for the environment variable
UPLOAD_SUPD_BACKUP_SCRIPT
and if it is set it executes the command:
"${UPLOAD_SUPD_BACKUP_SCRIPT}" "${bup_file}"
This makes it possble to hook in a cusomized upload
script.
⚠️ Make sure to set the environment variable
UPLOAD_SUPD_BACKUP_SCRIPT
in the correct context. By default the
backup-supd
script is invoked in the backup-supd.service
script.
💡 One way to propagate an environment variable is to:
- create a backup-service override configuration file like
/etc/systemd/system/backup-supd.service.d/override.conf
with content:
[Service]
EnvironmentFile=/etc/default/backup-supd.service.env
- create a default environment file like:
/etc/default/backup-supd.service.env
with content:
UPLOAD_SUPD_BACKUP_SCRIPT=<PATH-TO-UPLOAD-SCRIPT>
To restore a supd
backup file it is possible to either do this
during installation by using the --restore
option:
--restore BACKUP-FILE RESTORE-FILE Perform supd restore from backup file
with migration instructions from restore file
before supd is started. The RESTORE-FILE is a
'sed' command file, typically with
substitutions of IP addresses.
or using the restore-supd
script directly:
Usage: bin/restore-supd [options] <supd-backup-file> <supd-restore-file>
Options:
-v | --verbose verbose output.
--no-compression omit compression when unpacking backup file.
<supd-restore-file> is a 'sed' command file containing needed
substitutions.
Example:
s/192,168,100,102/192,168,100,112/g
s/192,168,100,103/192,168,100,113/g
s/192,168,100,104/192,168,100,114/g