Umbraco.Cloud.Issues icon indicating copy to clipboard operation
Umbraco.Cloud.Issues copied to clipboard

Add support for retrieving filesystem/DB backups through the portal

Open LennardF1989 opened this issue 1 year ago • 7 comments

As a customer of Umbraco Cloud, I want to have access to the backups of my environments at any point in time, without having to involve support.

It doesn't happen often, but sometimes certain situations require a backup of the filesystem or the database of a given environment to be properly resolved. For example: Information being lost after doing a Deploy Import.

Right now, we have to first convince 1st level support that we really need a backup (after going through a bunch of standard hoops like giving them access to projects, them triggering deploys themselves, etc), only for them to eventually get 2nd level support involved. It's a waste of time and resources on both our and Umbraco supports end.

Therefor, this should be an option that's available from the portal.

The faster we can get backups with the least amount of resources involved, the better. On top of that, this will also prevent us from having a lingering feeling that we should really just make our own backups on a daily basis, just to be able to access them as soon as we need them.

LennardF1989 avatar Feb 28 '23 16:02 LennardF1989

FWIW - and I know the environments are not the same - but as a user of both Umbraco-Cloud and WPengine (for client WordPress sites) this is a starkly obvious difference in the platforms.

Basically, WPengine provides a self-managed option to backup/restore an environment.

wpengine.com/support/restore/

By default, WPengine makes nightly snapshot backups of each environment, which can be used to restore a point in time.

But in addition, the admin is allowed to create environment snapshots for their own purposes - e.g. a safety snapshot before a major code change is deployed.

Snapshots for the last 60 days are always available, although only the last 40 (?) are accessible via the self-service UI, with older needing assistance from support.

I've used the WPengine backup/restore service a number of times to save my skin with a minimum of downtime, and the lack of such an easy-to-use feature is always a nagging concern with Umbraco-Cloud. It's easy enough to reset code changes, but not so much with data/content changes.

Self-managed Backup/Restore is also always an issue when proposing Umbraco-Cloud to a client, and they inevitably ask about disaster recovery from a hacked site - and the idea of not having control over the process is always problematic to sell.

c9mb avatar Feb 28 '23 21:02 c9mb

Thanks for the feature request.

We understand the importance of having easy access to backups. It is currently in our backlog and it is likely that we will look into support of a self-managed option to backup and restore environments later this year. We will keep you updated.

Thank you again for your valuable input.

sajumb avatar Mar 01 '23 13:03 sajumb

I recently had a Development > Live deployment that failed badly.

  • Umbraco Deploy failed to apply all the schema changes with SQL errors/conflicts reported
  • A Smidge error that only occurs in a Production environment became obvious, resulting in all the JS and CSS files were responding with HTTP 500, and a completely broken site front end.

The deployment also involved an Umbraco.Commerce package upgrade that upgraded the database with new tables and other changes. Naturally I was performing this deployment out of hours to avoid as little impact as possible on the e-commerce site.

So now I was in a state where I needed to roll back the deployment, Umbraco Cloud uses git so restoring the site's files was easy, simply create a backup branch, reset master back to the previous commit and force push back to the cloud.

But I was very disappointed to find no way to restore the database, so I was stuck with v13 code using a v13.1 database. Luckily this wasn't causing any errors, and I was able to scrap my development environment and create a new deployment which at least got matching database and code versions running on the Live environment.

I'd consider this a basic thing for a cloud host, it should either have enough access to the database server to perform a proper backup and restore, or a built in GUI/CLI tool to do it, it shouldn't require a support ticket. These problems will almost always occur out of hours where support isn't available.

I'm now considering if just using Azure AppService and Azure SQL is a better option, might cost more but I'd get multiple sites, deployment slots on each site and more control, I'd lose Umbraco Deploy but so far it may be causing me more headaches. 🤷🏻‍♂️

Edit: To add this needs to be a feature of the Starter version of Umbraco Cloud, if it's in higher plans only I'll be switching for sure.

BenWhite27 avatar Mar 15 '24 16:03 BenWhite27

Hi @BenWhite27, We are pleased to inform you of the recent deployment of a new feature on Umbraco Cloud: the Database Export functionality. This feature has been integrated into Umbraco Cloud and is available to all users, regardless of their Umbraco Cloud project plan.

The Database Export feature enables users to export their Umbraco databases, supporting point-in-time recovery. This enhancement is designed to facilitate a more robust data management process, allowing for efficient data backup and transfer operations.

Furthermore, we are in the final stages of preparing the Database Import feature for release. Anticipated to be available in the forthcoming weeks, this feature will complete the data management capabilities by enabling the importation of databases into Umbraco Cloud. Like the export functionality, the import feature will be accessible to users on all cloud plans.

For comprehensive details on the Database Export feature and guidance on its utilization, we encourage you to review the release notes available at Umbraco Cloud March 2024 Release Notes.

We value your feedback and are dedicated to continuously improving our services. Should you have any comments or suggestions, please do not hesitate to reach out.

sajumb avatar Mar 18 '24 10:03 sajumb

@sajumb, Thank you very much for the update. This is great news and certainly, goes a long way to restoring faith in the product. Look forward to the Import feature release!

BenWhite27 avatar Mar 18 '24 14:03 BenWhite27

@sajumb If I could just make a suggestion for consideration in the next round of upgrades - Automatic Backups.

I do quite a bit of work with small businesses and use WPengine for those who we haven't yet convinced to migrate their existing sites from WordPress to Umbraco.

WPengine has a nice option of automatic daily backups, which is essentially just default config of automatically running a backup on a pre-set daily schedule - which I believe that by default is 6:00PM regional time.

They have a total rolling limit of backups available at any given time, so your total limit is the combination of daily backups and any manual backups you have run, with the oldest popping off the stack as the latest is added. I believe that the current limit is 60 - although only the latest 40 are listed by default, and the other 20 require a request to support, as they are held on separate storage.

A "backup" in their WordPress world is the entire file system (which includes the DB) but the concept is still similar - the ability to save/restore a P-I-T and be able to recover from an unintended or malicious change of data. https://wpengine.com/support/restore/

c9mb avatar Mar 18 '24 19:03 c9mb

Hi @c9mb, Thank you for taking the time to share your suggestion regarding automatic backups. We genuinely appreciate your input and understand the value such a feature can provide, especially based on your experiences with WPengine and the convenience of their automatic daily backups.

While we see the appeal of scheduled backups, we are currently leaning towards prioritizing Point-In-Time Recovery (PITR) as a more versatile and efficient alternative for Umbraco Cloud projects. PITR offers the flexibility to restore data to any given moment, which we believe covers a broader range of use cases and provides a more robust solution for data recovery.

Moreover, from a sustainability viewpoint, implementing daily scheduled backups for thousands of cloud projects could have a significant environmental impact, something we are increasingly mindful of in our operations and feature development. It actually takes a lot of compute to create a bacpac file for larger Umbraco sites, so it naturally happens on a dedicated SQL for not performance impacting the running site, which involves of transfer and creating of temporary resources. So thousands and thousands of backups where only a small minority would be used do not match with Umbraco's take on sustainability.

That being said, we are not dismissing the idea of scheduled backups entirely. If there emerges a clear demand and identified use cases where scheduled backups would provide distinct advantages over PITR, we will certainly reconsider their inclusion in our feature set. However, at this stage, we believe that focusing on enhancing our PITR capabilities will best serve the majority of our users' needs.

sajumb avatar Mar 19 '24 10:03 sajumb