platform
platform copied to clipboard
Manage and schedule backups
Description
Control Center makes it easy to take and restore backups for Vaadin applications using Postgres.
Tier
Premium & Ultimate
License
Vaadin Commercial License
Motivation
Background
Backing up and restoring all data is one of basic needs for any production application. At the moment Vaadin developers are on their own and Control Center does not offer any help for this either.
Problem
Setting up scheduled backups and restoring backups for an application running in a cluster is not trivial. When an application follows The Vaadin Way default choices, it not having any support from the platform is a missed opportunity to make building an application easier.
Solution
Utilize (and only support) CloudNativePG backups.
Offer Control Center UI for the deployed Vaadin application that includes:
- List of backups taken
- A simple way to restore through a backup
- Download copy of a backup (as a compressed database dump)
- Backup status (ongoing)
- Backup scheduling
- Triggering one off backup
Allow configuring the storage class in UI in the similar way as for DB configuration:
- Allow choosing one of the most common templates from UI
- Support finetuning the configuration by hand
Requirements
-
[ ] UI support backups per application
-
[ ] List of backups taken
-
[ ] Restoring a backup with a click of button
-
[ ] Backups include both application data, Keycloak, and anything else required to restore application from scratch to a newly created cluster
-
[ ] Backups can be scheduled from UI with flexible configuration of backup cadence
-
[ ] A new backup can be triggered with a click of a button
-
[ ] Delete backup from the list
-
[ ] Backup can be downloaded as a compressed database dump that can be restored to a compatible Postgres DB outside the cluster
-
[ ] Documentation: How to take and restore backups with Control Center
-
[ ] Documentation: Production FAQ
-
[ ] DX test for a taking backups, downloading backup off cluster, and restoring the application to a new cluster from backup
Nice to have features
- [ ] Email is sent to admins if backup fails
Risks
- For some reasons, the chosen approach would not be acceptable for significant number of applications for production purposes
- Backup dump might be unreliable or slow
Out of scope
- Support for other databases apart from CloudNativePG
- Any features that are not supported by CloudNativePG (for example, the granularity likely is that all db:s from instance are always backed up together)
Materials
No response
Metrics
No response
Pre-implementation checklist
- [x] Estimated (estimate entered into Estimate custom field)
- [X] Product Manager sign-off
- [x] Engineering Manager sign-off
Pre-release checklist
- [ ] Documented (link to documentation provided in sub-issue or comment)
- [ ] UX/DX tests conducted and blockers addressed
- [ ] Approved for release by Product Manager
Security review
Peer reviewed