Cascading recovery framework for software-as-a-service data
Methods, systems, and devices for data management are described. Software-as-a-service (SaaS) applications may host customers' information in a distributed environment that is not directly accessible to the customers. SaaS applications may store data in the form of relational tables, meaning that data is organized in tables that have hierarchical relationships. SaaS tables may include permissive relationships to other tables (e.g., a row in one table may point to data in another table). Restoration of a SaaS computing object (e.g., one or more SaaS tables) may involve restoration of other computing objects in both dependent and permissive relationships with the SaaS computing object. Cascading metadata logic may be stored in association with a particular computing object that may indicate, for each relationship, whether to perform a restore operation and a type of cascading restore to perform when the particular computing object is to be restored to a particular computing environment.
1 . A method, comprising:
obtaining, by a data management system, restore configuration information for a first computing object of a software-as-a-service application, wherein the restore configuration information indicates first respective restore operations associated with a set of second computing objects in respective parent relationships with the first computing object, and wherein the restore configuration information indicates second respective restore operations associated with a set of third computing objects in respective permissive relationships with the first computing object;
receiving, by the data management system, a request to restore a first point in time version of the first computing object to a computing environment;
obtaining, by the data management system and from a storage environment, backup information of the first computing object that corresponds to the first point in time version of the first computing object; and
restoring, by the data management system, the first computing object to the computing environment using the backup information, wherein restoring the first computing object comprises:
performing, by the data management system, the first respective restore operations associated with the set of second computing objects for the computing environment; and
performing, by the data management system, the second respective restore operations associated with the set of third computing objects for the computing environment.
2 . The method of claim 1 , wherein the restore configuration information comprises an indication to perform a create restore operation for a second computing object of the set of second computing objects, and wherein performing the first respective restore operations comprises:
identifying, based at least in part on the indication to perform the create restore operation for the second computing object, an absence of the second computing object at the computing environment;
obtaining, from the storage environment or a second storage environment and based at least in part on the absence of the second computing object at the computing environment, second backup information of the second computing object associated with the first point in time version of the first computing object; and
restoring, prior to restoring the first computing object to the computing environment, the second computing object to the computing environment using the second backup information.
3 . The method of claim 1 , wherein the restore configuration information comprises an indication to perform a create restore operation for a second computing object of the set of second computing objects, and wherein performing the first respective restore operations comprises:
identifying, based at least in part on the indication to perform the create restore operation for the second computing object, a presence of the second computing object at the computing environment; and
linking, based at least in part on the presence of the second computing object at the computing environment, an address of the second computing object at the computing environment to the first computing object at the computing environment.
4 . The method of claim 1 , wherein the restore configuration information comprises an indication to perform a create restore operation for a third computing object of the set of third computing objects, and wherein performing the second respective restore operations comprises:
identifying, based at least in part on the indication to perform the create restore operation for the third computing object, an absence of the third computing object at the computing environment;
obtaining, from the storage environment or a second storage environment and based at least in part on the absence of the third computing object at the computing environment, third backup information of the third computing object associated with the first point in time version of the first computing object; and
restoring the third computing object to the computing environment using the third backup information.
5 . The method of claim 1 , wherein the restore configuration information comprises an indication to perform an update restore operation for a second computing object of the set of second computing objects, and wherein performing the first respective restore operations comprises:
obtaining, from the storage environment or a second storage environment and based at least in part on the indication to perform the update restore operation for the second computing object, second backup information of the second computing object associated with the first point in time version of the first computing object; and
restoring, prior to restoring the first computing object to the computing environment, the second computing object to the computing environment using the second backup information.
6 . The method of claim 1 , wherein the restore configuration information comprises an indication to perform an update restore operation for a third computing object of the set of third computing objects, and wherein performing the second respective restore operations comprises:
obtaining, from the storage environment or a second storage environment and based at least in part on the indication to perform the update restore operation for the third computing object, third backup information of the third computing object associated with the first point in time version of the first computing object; and
restoring the third computing object to the computing environment using the third backup information.
7 . The method of claim 1 , wherein the restore configuration information comprises an indication to perform a link restore operation for a second computing object of the set of second computing objects, and wherein performing the first respective restore operations comprises:
identifying, based at least in part on the indication to perform the link restore operation for the second computing object, a presence of the second computing object at the computing environment; and
linking, based at least in part on the presence of the second computing object at the computing environment, an address of the second computing object at the computing environment to the first computing object at the computing environment.
8 . The method of claim 1 , wherein the restore configuration information comprises an indication to perform a link restore operation for a third computing object of the set of third computing objects, and wherein performing the second respective restore operations comprises:
identifying, based at least in part on the indication to perform the link restore operation for the third computing object, a presence of the third computing object at the computing environment; and
linking, based at least in part on the presence of the third computing object at the computing environment, an address of the third computing object at the computing environment to the first computing object at the computing environment.
9 . The method of claim 1 , wherein the restore configuration information indicates to omit restore operations for a set of fourth computing objects in second respective permissive relationships with the first computing object.
10 . The method of claim 1 , wherein:
the restore configuration information indicates that the first respective restore operations associated with the set of second computing objects in the respective parent relationships with the first computing object and the second respective restore operations associated with the set of third computing objects in the respective permissive relationship with the first computing object are associated with a first set of target restore environments, the first set of target restore environments comprising the computing environment; and
the restore configuration information indicates that third respective restore operations associated with the set of second computing objects in the respective parent relationships with the first computing object and fourth respective restore operations associated with a set of fourth computing objects in second respective permissive relationships with the first computing object are associated with a second set of target restore environments.
11 . The method of claim 10 , wherein the set of fourth computing objects is different than the set of third computing objects.
12 . The method of claim 1 , wherein obtaining the backup information of the first computing object comprises:
obtaining a first snapshot from the storage environment that includes the backup information, and wherein performing the first respective restore operations comprises:
obtaining, from the storage environment or a second storage environment, a second snapshot that includes second backup information of a second computing object of the set of second computing objects, wherein the second snapshot is identified based on the first point in time version of the first computing object; and
restoring, prior to restoring the first computing object to the computing environment, the second computing object to the computing environment using the second backup information.
13 . The method of claim 12 , wherein performing the second respective restore operations comprises:
obtaining, from the storage environment, the second storage environment, or a third storage environment, a third snapshot that includes third backup information of a third computing object of the set of third computing objects, wherein the third snapshot is identified based on the first point in time version of the first computing object; and
restoring the third computing object to the computing environment using the third backup information.
14 . The method of claim 12 , wherein the second snapshot is identified based at least in part on a proximity in time to the first snapshot.
15 . The method of claim 1 , further comprising:
identifying, by the data management system and based at least in part on the request, a set of application programming interfaces associated with the software-as-a-service application, wherein the set of application programming interfaces are for access of the first computing object, the set of second computing objects, and the set of third computing objects, and wherein restoring the first computing object and performing the first respective restore operations and the second respective restore operations is via the set of application programming interfaces.
16 . The method of claim 1 , wherein receiving the request to restore the first point in time version of the first computing object comprises:
receiving the request via a user interface associated with a user account associated with the software-as-a-service application.
17 . The method of claim 1 , wherein obtaining the restore configuration information for the first computing object comprises:
presenting, via a user interface associated with a user account associated with the software-as-a-service application, a plurality of computing objects in respective permissive relationships with the first computing object, the plurality of computing objects comprising the set of third computing objects; and
receiving, via the user interface, a selection of the set of third computing objects from the plurality of computing objects and the second respective restore operations associated with the set of third computing objects.
18 . The method of claim 1 , wherein:
the set of third computing objects being in respective permissive relationships with the first computing object comprises the first computing object comprising one or more respective non-dependent pointers to one or more data fields included in the set of third computing objects, or
the set of third computing objects being in respective permissive relationships with the first computing object comprises the first computing object being a parent computing object for the set of third computing objects.
19 . An apparatus, comprising:
one or more memories storing processor-executable code; and
one or more processors coupled with the one or more memories and individually or collectively operable to execute the code to cause the apparatus to:
obtain, by a data management system, restore configuration information for a first computing object of a software-as-a-service application, wherein the restore configuration information indicates first respective restore operations associated with a set of second computing objects in respective parent relationships with the first computing object, and wherein the restore configuration information indicates second respective restore operations associated with a set of third computing objects in respective permissive relationships with the first computing object;
receive, by the data management system, a request to restore a first point in time version of the first computing object to a computing environment;
obtain, by the data management system and from a storage environment, backup information of the first computing object that corresponds to the first point in time version of the first computing object; and
restore, by the data management system, the first computing object to the computing environment using the backup information, wherein, to restore the first computing object, the one or more processors are individually or collectively operable to execute the code to cause the apparatus to:
perform, by the data management system, the first respective restore operations associated with the set of second computing objects for the computing environment; and
perform, by the data management system, the second respective restore operations associated with the set of third computing objects for the computing environment.
20 . A non-transitory computer-readable medium storing code, the code comprising instructions executable by one or more processors to:
obtain, by a data management system, restore configuration information for a first computing object of a software-as-a-service application, wherein the restore configuration information indicates first respective restore operations associated with a set of second computing objects in respective parent relationships with the first computing object, and wherein the restore configuration information indicates second respective restore operations associated with a set of third computing objects in respective permissive relationships with the first computing object;
receive, by the data management system, a request to restore a first point in time version of the first computing object to a computing environment;
obtain, by the data management system and from a storage environment, backup information of the first computing object that corresponds to the first point in time version of the first computing object; and
restore, by the data management system, the first computing object to the computing environment using the backup information, wherein, to restore the first computing object, the instructions are executable by the one or more processors to:
perform, by the data management system, the first respective restore operations associated with the set of second computing objects for the computing environment; and
perform, by the data management system, the second respective restore operations associated with the set of third computing objects for the computing environment.