5. Install the a9s Backup Service
The a9s Backup Service provides backup and restore functionality to all a9s Data Services, and to a9s-pg. The deployment of the a9s Backup Service is mandatory. The a9s Data Services Framework cannot be operated without it.
It is mainly comprised of two components: the a9s Backup Manager and the a9s Backup Monit.
The a9s Backup Manager is responsible for orchestrating the creation, restoration, and deletion of backups of Service Instances created by the a9s Data Services Framework. For further details on the specifications of this component, see a9s Backup Manager.
The a9s Backup Manager components are NOT horizontally scalable, so it is not possible to increase the number of VMs.
The a9s Backup Monit is deployed as part of the a9s Backup Service in order to monitor backups of both Service Instances and a9s-pg. For further details on the specifications of this component, see a9s Backup Monit.
5.1. Backup Stores
The anynines Data Services Framework supports several storage services as its backup store, however only one storage service can be enabled at a time. This contrasts with the different types of Data Services that a Platform Operator can offer. This means it is a "one storage, many Data Services" offering.
The following tabs explain how to use the a9s Backup Service with a specific storage service. This means that, with the exception of AWS S3, an Ops file, specific for each storage service, must be applied when deploying the a9s Backup Service.
- AWS S3
- Azure Blob Storage
- Aliyun Object Storage Service
- Generic S3 API
In order to use AWS S3 as a backup store, the following variables must be configured in CredHub:
| Variable name | Description |
|---|---|
/backup_access_key | The AWS access key |
/backup_secret_access_key | The AWS secret key |
/backup_bucket | The AWS bucket name |
/backup_region | The AWS region where the bucket is |
While the a9s Backup Framework supports AWS S3 as a backup store, this does not extend to every AWS S3 Storage Class.
Currently, the supported AWS S3 storage class is S3 Standard.
In order to use Azure Blob Storage as a backup store, the a9s Backup Service must be deployed with the ops/backup-on-azure.yml Ops file. Furthermore, the following variables must be configured in CredHub:
| Variable name | Description |
|---|---|
/azure_storage_access_key | The Azure storage access key |
/azure_storage_account_name | The Azure storage account name |
/azure_container | The Azure container name |
In order to use Aliyun Object Storage Service as a backup store, the a9s Backup Service must be deployed with the ops/backup-on-alicloud.yml Ops file. Furthermore, the following variables must be configured in CredHub:
| Variable name | Description |
|---|---|
/aliyun_accesskey_id | The Aliyun Object Storage Service access key ID |
/aliyun_accesskey_secret | The Aliyun Object Storage Service access key secret |
/aliyun_oss_bucket | The Aliyun Object Storage Service container name |
/aliyun_oss_location | The Aliyun Object Storage Service location |
/aliyun_oss_endpoint | The Aliyun Object Storage Service endpoint |
In order to use a generic S3 API as a backup store, the a9s Backup Service must be deployed with the ops/backup-on-generic-s3.yml Ops file. Furthermore, the following variables must be configured in CredHub:
| Variable name | Description |
|---|---|
/generic_s3_access_key_id | The generic S3 API access key |
/generic_s3_secret_access_key | The generic S3 API secret key |
/generic_s3_bucket | The generic S3 API bucket name |
/generic_s3_region | The generic S3 API region where the bucket is |
/generic_s3_endpoint | The generic S3 API endpoint |
/generic_s3_path_style | The generic S3 API path style |
5.2. Register the a9s Data Services
In order to enable the a9s Data Services to use the a9s Backup Service, the corresponding Ops file must be applied to the a9s Backup Service deployment manifest. Each individual Ops file adds the Data Service specific a9s Service Broker to the a9s Backup Service configuration.
The supported Ops files are:
- a9s-pg: ops/add_broker_to_backup_service/a9s-pg.yml
- a9s KeyValue: ops/add_broker_to_backup_service/keyvalue.yml
- a9s LogMe2: ops/add_broker_to_backup_service/logme2.yml
- a9s MariaDB: ops/add_broker_to_backup_service/mariadb.yml
- a9s MongoDB: ops/add_broker_to_backup_service/mongodb.yml
- a9s PostgreSQL: ops/add_broker_to_backup_service/postgresql.yml
- a9s Messaging: ops/add_broker_to_backup_service/rabbitmq.yml
- a9s Search: ops/add_broker_to_backup_service/search.yml
Multiple a9s Data Services can be enabled by adding the corresponding Ops file, one after the other, on the same command.
5.3. Deploy the a9s Backup Service
The a9s Backup Service is deployed alongside any a9s Data Service by executing:
For AWS S3:
bosh -d backup-service deploy backup-service/backup-service.yml \
-o ops/add_broker_to_backup_service/<data-service>.yml \
-l config/iaas-config.yml
For all other storage services:
bosh -d backup-service deploy backup-service/backup-service.yml \
-o ops/add_broker_to_backup_service/<data-service>.yml \
-o ops/backup-on-<storage-service>.yml \
-l config/iaas-config.yml
5.4. a9s Backup Monit
The a9s Backup Monit component is deployed by default as part of the a9s Backup Service deployment. It fetches backup metrics from the a9s Backup Manager and exposes them to Logstash for monitoring and alerting purposes. The component runs colocated with Logstash on a dedicated VM within the backup-service deployment.
No additional configuration is required for a9s Backup Monit; it operates automatically once the a9s Backup Service is deployed.
5.4.1. Disable a9s Backup Monit (Optional)
If backup monitoring through a9s Backup Monit is not required, the component can be disabled by applying the ops/disable-backup-monit.yml Ops file during deployment:
bosh -d backup-service deploy backup-service/backup-service.yml \
-o ops/add_broker_to_backup_service/<data-service>.yml \
-o ops/disable-backup-monit.yml \
-l config/iaas-config.yml