Object migration between cloud environments
First Claim
1. A method to migrate an application between cloud computing environments, the method comprising:
- receiving a request to migrate an application from a source cloud to a destination cloud;
identifying one or more objects associated with the application to be migrated;
enumerating the one or more objects by employing a source interlace executed at the source cloud;
designating at least one object to be migrated to the destination cloud, based on a prioritized order of the at least one object among the one or more objects associated with the application to be migrated, wherein the prioritized order is based on a write-access rate associated with the at least one object;
requesting, from the source interface executed at the source cloud, a serialization of the at least one object to be migrated;
marking the serialized at least one object as in-transit while the serialized at least one object is in process of being migrated from the source cloud to the destination cloud;
storing in-transit location information of the serialized at least one object in a directory to track where the one or more objects associated with the application reside during the migration of the at least one object;
intercepting a request for access to the serialized at least one object at an application program interface (API) published by an object migration manager while the serialized at least one object is in the process of being migrated from the source cloud to the destination cloud;
redirecting the request to a particular location based on the in-transit location information of the serialized at least one object retrieved from the directory;
in response to a determination that the serialized at least one object is in-transit and the request is a read-only request, redirecting the read-only request to a source API of the source cloud;
in response to a determination that the serialized at least one object is in-transit and the request is a write-access request, selecting to one of;
hold the write-access request, and redirect the write-access request to a destination API of the destination cloud after completion of the migration of the serialized at least one object to the destination cloud;
fail the write-access request, and direct a requester to re-request after a period of time;
orabort the migration of the serialized at least one object, redirect the write-access request to the source API, and resume the migration of the at least one object following completion of the write-access request; and
loading the serialized at least one object at the destination cloud.
3 Assignments
0 Petitions
Accused Products
Abstract
Technologies are generally described for a system for migrating an application between cloud environments such as datacenters. In some examples, an application hosted at a source cloud may be moved from the source cloud to the destination cloud by migrating one or more objects at a time from the source to the destination cloud while maintaining the application up and running by intercepting and redirecting requests to a source or destination depending on where related objects reside. Example objects may be data structures, attributes and associated behaviors that encapsulate the application. Migration of the objects may be facilitated by enumerating and serializing the objects, and loading subsets of one or more serialized objects at the destination datacenter. An object migration module may keep track of objects in transit, and may direct requests for transferred objects to the destination cloud for maintaining continued access to the application.
-
Citations
20 Claims
-
1. A method to migrate an application between cloud computing environments, the method comprising:
-
receiving a request to migrate an application from a source cloud to a destination cloud; identifying one or more objects associated with the application to be migrated; enumerating the one or more objects by employing a source interlace executed at the source cloud; designating at least one object to be migrated to the destination cloud, based on a prioritized order of the at least one object among the one or more objects associated with the application to be migrated, wherein the prioritized order is based on a write-access rate associated with the at least one object; requesting, from the source interface executed at the source cloud, a serialization of the at least one object to be migrated; marking the serialized at least one object as in-transit while the serialized at least one object is in process of being migrated from the source cloud to the destination cloud; storing in-transit location information of the serialized at least one object in a directory to track where the one or more objects associated with the application reside during the migration of the at least one object; intercepting a request for access to the serialized at least one object at an application program interface (API) published by an object migration manager while the serialized at least one object is in the process of being migrated from the source cloud to the destination cloud; redirecting the request to a particular location based on the in-transit location information of the serialized at least one object retrieved from the directory; in response to a determination that the serialized at least one object is in-transit and the request is a read-only request, redirecting the read-only request to a source API of the source cloud; in response to a determination that the serialized at least one object is in-transit and the request is a write-access request, selecting to one of; hold the write-access request, and redirect the write-access request to a destination API of the destination cloud after completion of the migration of the serialized at least one object to the destination cloud; fail the write-access request, and direct a requester to re-request after a period of time;
orabort the migration of the serialized at least one object, redirect the write-access request to the source API, and resume the migration of the at least one object following completion of the write-access request; and loading the serialized at least one object at the destination cloud. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A computing device operable to migrate an application between cloud computing environments, the computing device comprising:
-
a memory configured to store instructions; and a processor configured to execute an object migration module in conjunction with the instructions, wherein the object migration module is configured to; receive a request to migrate the application from a source cloud to a destination cloud; identify one or more objects associated with the application to be migrated; enumerate the one or more objects by employment of a source interface executed at the source cloud; dynamically adjust a number of the one or more objects to be migrated concurrently to the destination cloud based on identified interconnections between the one or more objects, wherein the one or more objects are migrated to the destination cloud according to a prioritized order based on a write-access rate associated with each of the one or more objects, and wherein at least one object is designated to be migrated to the destination cloud; request, from the source interface executed at the source cloud, a serialization of the at least one object to be migrated; mark the serialized at least one object as in-transit while the serialized at least one object is in process of being migrated from the source cloud to the destination cloud; store in-transit location information of the serialized at least one object in a directory to track where the one or more objects associated with the application reside during the migration of the at least one object; intercept a request for access to the serialized at least one object directed to the application at an application program interface (API) published by the object migration module while the serialized at least one object is in the process of being migrated from the source cloud to the destination cloud; redirect the request to a particular location based on the in-transit location information of the serialized at least one object retrieved from the directory; in response to a determination that the serialized at least one object is in-transit and the request is a read-only request, redirect the read-only request to a source API of the source cloud; in response to a determination that the serialized at least one object is in-transit and the request is a write-access request, select to one of; hold the write-access request and redirect the write-access request to a destination API of the destination cloud after completion of migration of the serialized at least one object to the destination cloud; fail the write-access request and instruct a requester to re-request after a period of time;
orabort the migration of the serialized at least one object, redirect the write-access request to the source API of the source cloud, and resume the migration of the at least one object following completion of the write-access request, wherein the selection is based on predefined settings set by an owner of the application, a service level agreement (SLA) of one of the source cloud and the destination cloud, and object statistics; and load the serialized at least one object at the destination cloud. - View Dependent Claims (10, 11, 12, 13, 14, 15)
-
-
16. A non-transitory computer readable medium with instructions stored thereon that, in response to execution on one or more computing devices, execute a method to migrate an application between cloud computing environments, wherein the method includes:
-
receiving a request to migrate the application from a source cloud to a destination cloud; identifying one or more objects associated with the application to be migrated; enumerating the one or more objects by employing a source interface executed at the source cloud; dynamically adjusting a number of the one or more objects to be migrated concurrently to the destination cloud based on identified interconnections between the one or more objects, wherein the one or more objects are migrated to the destination cloud according to a prioritized order based on a write-access rate associated with each of the one or more objects, and wherein at least one object is designated to be migrated to the destination cloud; requesting, from the source interface executed at the source cloud, a serialization of the at least one object to be migrated; marking the serialized at least one object as in-transit while the serialized at least one object is in process of being migrated from the source cloud to the destination cloud; storing in-transit location information of the serialized at least one object in a directory to track where each object associated with the application resides during the migration of the at least one object; intercepting a request for access to the serialized at least one object at an application program interface (API) published by an object migration manager while the serialized at least one object is in the process of being migrated from the source cloud to the destination cloud; redirecting the request to a particular location based on the in-transit location information of the serialized at least one object retrieved from the directory; in response to a determination that the serialized at least one object is in-transit and the request is a read-only request, redirecting the read-only request to a source API of the source cloud; in response to a determination that the serialized at least one object is in-transit and the request is a write-access request, selecting to one of; hold the write-access request and redirect the write-access request to a destination API after completion of the migration of the serialized at least one object to the destination cloud; fail the write-access request and instruct a requester to re-request after a period of time;
orabort the migration of the serialized at least one object, redirect the write-access request to the source API, and resume the migration of the at least one object following completion of the write-access request, wherein the selection is based on predefined settings set by an owner of the application, a service level agreement (SLA) of one of the source cloud and the destination cloud, and object statistics; and loading the serialized at least one object at the destination cloud. - View Dependent Claims (17, 18, 19, 20)
-
Specification