Mechanism for safe and reversible rolling upgrades
First Claim
1. One or more computer storage media having computer-executable instructions embodied thereon that, when executed, perform a method for performing an upgrade to a service application that is transparently reversible to a client of a cloud-computing infrastructure, the method comprising:
- receiving instructions to upgrade the service application running on top of the cloud-computing infrastructure, wherein the service application includes core logic for carrying out core operations and supportive code that is distinct from the core logic;
maintaining a first set of role instances at an earlier first version of the service application, wherein the role instances respectively represent a replication of at least one role, wherein the service application includes protocol definitions that expose features of the earlier first version to the client, the protocol definitions are shared between versions of the service application;
designating the first version as a basement version within a state machine;
upgrading a second set of role instances to a newer second version of the service application, wherein the protocol definitions prevent exposure of features specific to the second version to the client;
designating the second version as a latest version, wherein a compatibility mechanism located in a subset of the supportive code is responsible for allowing the basement version, the latest version, and other versions of the service application there between to interact, wherein the compatibility mechanism maintains a mapping to a data store to organize information communicated to the data store, from role instances, based on corresponding data structures associated with service application versions, wherein writing information from the second role instances to the fields in the data store is based on an output from the second role instances, the output comprising a plurality of parallel streams for corresponding data structures associated with service application version information.
2 Assignments
0 Petitions
Accused Products
Abstract
Methods, systems, and computer storage media for updating instances of a service application within nodes of a data center are provided. The system includes a state machine equipped for designating an earlier version of software running on some instances as a basement version and a newer version of software running on other instances as a latest version. The system also includes a compatibility mechanism responsible for allowing the basement version, the latest version, and other versions of the service application therebetween to interact using a data structure associated within the earlier version, or lowest common version of the service application. The compatibility mechanism is located apart from core logic of the service application. The activities of the state machine and the compatibility mechanism allow the instances to communicate with each other (using the lowest common version) while exposing just the validated version(s) of the service application to the client.
-
Citations
20 Claims
-
1. One or more computer storage media having computer-executable instructions embodied thereon that, when executed, perform a method for performing an upgrade to a service application that is transparently reversible to a client of a cloud-computing infrastructure, the method comprising:
-
receiving instructions to upgrade the service application running on top of the cloud-computing infrastructure, wherein the service application includes core logic for carrying out core operations and supportive code that is distinct from the core logic; maintaining a first set of role instances at an earlier first version of the service application, wherein the role instances respectively represent a replication of at least one role, wherein the service application includes protocol definitions that expose features of the earlier first version to the client, the protocol definitions are shared between versions of the service application; designating the first version as a basement version within a state machine; upgrading a second set of role instances to a newer second version of the service application, wherein the protocol definitions prevent exposure of features specific to the second version to the client; designating the second version as a latest version, wherein a compatibility mechanism located in a subset of the supportive code is responsible for allowing the basement version, the latest version, and other versions of the service application there between to interact, wherein the compatibility mechanism maintains a mapping to a data store to organize information communicated to the data store, from role instances, based on corresponding data structures associated with service application versions, wherein writing information from the second role instances to the fields in the data store is based on an output from the second role instances, the output comprising a plurality of parallel streams for corresponding data structures associated with service application version information. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A computerized method for isolating a data structure transformation between versions of role instances of a cloud-computing infrastructure, the method comprising:
-
receiving at a compatibility mechanism information from a first set of role instances of a service application, wherein the first set of role instances reside at a first version of the service application and format the information according to a first data structure, wherein the compatibility mechanism maintains a mapping to a data store to organize information communicated to the data store, from role instances, based on corresponding service application versions; writing the information from the first set of role instances to a first field; receiving at the compatibility mechanism information from a second set of role instances of the service application, wherein the second set of role instances are upgraded to a second version of the service application and format the information according to the first data structure and a second data structure in parallel, wherein writing information from the second role instances to the fields in the data store is based on an output from the second role instances, the output comprising a plurality of parallel streams for corresponding data structures associated with service application version information; and writing the information from the second set of role instances to the first field and a second field, respectively, according to the first and second data structure. - View Dependent Claims (14, 15, 16, 17)
-
-
18. A system for performing a method that upgrades a service application in a manner transparent to a client of a cloud-computing infrastructure, the system comprising a processing unit coupled to a computer storage medium, the computer storage medium having stored thereon a plurality of computer software components executable by the processing unit, the computer software components comprising:
-
a first set of role instances running a first version of the service application upon one or more nodes, respectively, within the cloud-computing infrastructure, a second set of role instances running a second version of the service application upon one or more nodes, respectively, within the cloud-computing infrastructure, a state machine for designating the first version as a basement version and the second version as a latest version; and a compatibility mechanism responsible for allowing the basement version, the latest version, and other versions of the service application there between to interact using a data structure associated within the first version, wherein the compatibility mechanism maintains a mapping to a data store to organize information communicated to the data store, from role instances, based on corresponding data structures associated with service application versions, wherein writing information from the second role instances to the fields in the data store is based on an output from the second role instances, the output comprising a plurality of parallel streams for corresponding data structures associated with service application version information. - View Dependent Claims (19, 20)
-
Specification