platform icon indicating copy to clipboard operation
platform copied to clipboard

Manage and schedule backups

Open jojule opened this issue 9 months ago • 0 comments

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

jojule avatar Feb 24 '25 02:02 jojule