April 27th, 2022 by inflectra
If you have been following the news in our industry recently, you will probably be aware that another company in our space had a multi week outage event due to backup and restore problem. It’s an important topic that is often misunderstood by customers and users. We are frequently asked about our backup process, but typically less so regarding the restore part of the equation. Understanding how to restore a system is just as important as the backing up part.
Since we offer our Spira application lifecycle management products and KronoDesk IT service desk products for both cloud and on-premise customers, this article will provide some best practices for setting up backup and restore for our self-hosted / download customers based on our cloud experiences.
The two most common acronyms you will come across when discussing backup (and restore) strategies are:
This sounds pretty simple, but what people often forget to plan for is the need to be able to selectively restore data, or the need to have frequent backup intervals so that the risk of data loss is reduced. For example, if you take backups every day at 9:00am and you have a failure at 8:00am, you have effectively lost 23 hours of data (since the last backup). If you made backups every hour, the most data you could “lose” is only 59 minutes.
One other major consideration when deciding of backup and restore strategies is to understand the tenancy of your systems and the data in them:
However, even within a single customer instance, you can have a system designed so that each project or workspace has its own data store, or a single instance for that customer for all projects.
The more granular your data tenancy is, the easier it will be to restore a customer’s data without negatively affecting other customers.
For example, imagine we have a fully multi-tenant architecture where all customers use the same database, and backups of the entire database are made every day. If a customer makes an unintended change or deletes some data, they make ask to restore back to the previous day’s data. If that database backup is for all customers, you may have to revert all customers back to the previous day, which is not desirable!! In that situation, you would need to architect the backups so that you can revert just one customer back from the restored data.
If you had the exact same situation, but used a more granular single-tenant architecture, you could simply restore the one customer from the daily backup without negatively impacting other customers
While there is no single, correct way to manage your backup and restore strategy, here are some recommendations based on how we’ve designed our cloud disaster and recovery plan.
The need to perform restoration from backups can happen for a variety of reasons including natural disasters or IT disruptions, however one common reason is that a user accidentally deleted something the shouldn’t.
In our Spira platform we have made most deletes “soft”, where we simply mark a requirement, defect, test case or other artifact as deleted rather than actually deleting the item. That allows administrators of the project in Spira to simply ‘undelete’ the item from within the application.
Where there are actions in Spira that result in permanent deletes or changes, we require the user to enter in the name of the project or other item to avoid someone doing it erroneously. This is similar to the approach taken by Amazon Web Services (AWS) where they force you to type in the letters “D-E-L-E-T-E” to permanently delete a resource.
These two design choices generally (but not always) reduce the number of accidental deletes, requiring backup restoration.
We designed our Spira cloud infrastructure to mirror in large part our on-premise deployments, this allows us to seamlessly and easily move customers to/from the cloud as their needs (or laws) change. As a result, we maintain daily backups of each SQL Server database separately in a rolling 7-day period. That means we can restore a customer from one of any of the 7 day backups and not negatively impact any other customers with the rollback.
Using the standard Microsoft SQL Server restore tools, the procedure to revert a customer back takes a few minutes vs. days. The longest time is usually the time it takes to coordinate with the customer and inform users – which are of course very important steps.
However, we realized that a daily backup means that you could lose upto 23 hours of data if the event happened just before the next daily backup. For that reason, we have a separate set of AWS volume snapshots that happen every hour.
In addition to the SQL Server daily backups, we take hourly snapshots of the web server and database server Elastic Cloud Compute (EC2) instances. In the case of a single-customer database restore, this is useful because it allows us to restore back the data from any hourly snapshot. The means that the most data that will be lost is 59 minutes’ worth (if you deleted something at 3:59pm and the last backup was at 3:00pm).
In the case of a more serious hardware failure, the fact that the EC2 snapshots contain the entire working virtual machine, means that restoring functionality is much faster since you can just restore the EC2 image from the snapshot and the operating system, application stack and all data is restored back at the same time. We can restore back a single EC2 virtual machine (containing over 30 customers) in less than an hour, vs. the multiple hour process it would take using physical hardware.
It is important to make sure that you consider the effects of geography and legal restrictions. At Inflectra we have customers that specific data residency requirements. Typically this means that certain customers’ data must stay in the USA, certain data needs to stay in the EU, and other data must remain “in-country”.
What we have done is have a set of legally equivalent “privacy regimes” that we replicate data between. That way we can maximize the geographic spread of our data (to avoid a natural disaster one area affecting both primary and backup regions) and avoid data flowing from privacy regime to another, violating data residency laws such as GDPR or HIPAA.
For example:
When looking at disaster recovery strategies, it is important to consider the frequency of backups, the retention period and also the type of backups taken. The latter should be considered in the context of your overall data storage strategy so that you can restore customers’ data back as quickly as possible, with as little data loss as possible, with as little impact to other customers or users as possible.
Ask an Inflectra expert:
And if you have any questions, please email or call us at +1 (202) 558-6885
SpiraTest combines test management, requirements traceability & bug-tracking
SpiraTeam brings your teams together, managing the entire application lifecycle
SpiraPlan lets you manage your programs and portfolio of projects like never before
Orchestrates your automated regression testing, functional, load and performance
The ultimate test automation platform for web, mobile, and desktop applications
The help desk system, designed specifically for software support teams
Cloud hosted, secure source code management - Git and Subversion
Exploratory testing capture tool that automatically records your testing activity
Let us deal with the IT pain so you don't have to. Or use on-premise if you prefer.
Our customers work in every industry imaginable. From financial services to healthcare and biotech to government and defense and more, we work with our customers to address their specific needs.
Our products do not enforce a methodology on you, instead they let you work your way. Whether you work in agile development, Scrum, XP, Kanban and Lean, Waterfall, hybrid, or Scaled Agile Inflectra can help.
If you want to learn more about application delivery, testing, and more take a look at our whitepapers, videos, background papers, blog, and presentations.
Our suite of Accelerators speed up your deployment and adoption of our products, increasing your return on investment and reducing the cost of ownership.
We collaborate with a wide range of organizations to bring our customers a range of services (including load testing, training, and consulting), complimentary technologies, and specialized tools for specific industries.
Learn how different organizations have benefited from using Inflectra products to manage their software testing and application develooment.
Outstanding support is the foundation of our company. We make support a priority over all other work. Take a look at our support policy.
Discover great tips, discussions, and technical solutions from fellow customers and Inflectra's technical experts.
If you can't find the answer you're looking for, please get in touch with us: over email, phone, or online.
We are constantly creating new videos to help customers learn about our products, including through in depth webinars, all freely available along with a wide selection of presentations.
We provide a number of resources to help customers learn how to get the most out of our products, with free online resources, virtual classrooms, and face to face.
Read about Inflectra, our manifesto, and values. Meet our incredible customers who are building awesome things, and our leadership team that are committed to building a great company.
The Inflectra Blog contains articles on all aspects of the software lifecycle.
In addition we have whitepapers,
background articles, videos and
presentations to help get you started.
Events are a big part of our awesome customer service. They are a chance to learn more about us, our products, and how to level up your skills with our tools.
We partner with educational institutions and individuals all over the world. We are also a great place to work and encourage you to explore joining our team.
Please contact us with your questions, feedback, comments, or suggestions. We'll get back to you as soon as possible.
When you need additional assistance (be it training, consulting, or integration services) our global certified solution provider partner network is ready to help.
At Inflectra, we are fully committed to provide our customers with the very best products and customer service. Check out some of our recent awards.
We want to help developers extend and customize our tools to fit in with their needs. We provide robust APIs, sample code, and open source projects.