Hierarchically decisioned failover system
AssigneeAmerican Express Travel Related Services Company, Inc.
InventorsPrakasam Duraisamy, Christina Henry, Amandeep Singh Juneja, Ryan Edward O'Donnell
Life of this patent
Estimating the term…
Abstract
Disclosed are various embodiments for a hierarchically decisioned failover system. First, a health probe can calculate a respective instance health score for each of a plurality of application instances within an application service. Then, the health probe can calculate a service health score for the application service. Next, the health probe can calculate a zone health score for an application ecosystem. Subsequently, the health probe can initiate a failover of the application ecosystem from a first availability zone to a second availability zone based at least in part on the zone health score.
Claims20
A system, comprising:
- a computing device comprising a processor and a memory;
- and
- machine-readable instructions stored in the memory that, when executed by the processor, cause the computing device to at least:
- determine that an application instance among a plurality of application instances has failed to provide a health status report;
- send a heartbeat request to the application instance for the health status report;
- determine that the application instance failed to respond to the heartbeat request;
- generate and save a separate health status report for the application instance in response to a determination that the application instance failed to respond to the heartbeat request, the separate health status report comprising a maximum weight;
- calculate a respective instance health score for each of the plurality of application instances within an application service, wherein each respective instance health score is based at least in part on a respective plurality of health status reports for each of the plurality of application instances within a period of time, and wherein each of the respective plurality of health status reports for each of the plurality of application instances is based at least in part on a weight associated with a relative importance of a type of error;
- calculate a service health score for the application service, wherein the application service comprises the plurality of application instances and the service health score is based at least in part on the respective instance health score for each of the plurality of application instances;
- calculate a zone health score for an application ecosystem based at least in part on a plurality of service health scores, wherein the application ecosystem comprises a plurality of application services and each of the plurality of service health scores is associated with a respective one of the plurality of application services within the application ecosystem, and wherein the service health score for the respective one of the plurality of application services is based at least in part on a weight associated with a relative importance of the respective one of the plurality of application services;
- initiate a failover of the application ecosystem from a first availability zone to a second availability zone based at least in part on the zone health score;
- and
- migrate the application ecosystem from the first availability zone to the second availability zone in response to the failover.
A method, comprising:
- determining that an application instance among a plurality of application instances has failed to provide a health status report;
- sending a heartbeat request to the application instance for the health status report;
- determining that the application instance failed to respond to the heartbeat request;
- generating and saving a separate health status report for the application instance in response to a determination that the application instance failed to respond to the heartbeat request, the separate health status report comprising a maximum weight;
- calculating a respective instance health score for each of the plurality of application instances within an application service, wherein each respective instance health score is based at least in part on a respective plurality of health status reports for each of the plurality of application instances within a period of time, and wherein each of the respective plurality of reported health scores for each of the plurality of application instances is based at least in part on a weight associated with a relative importance of a type of error;
- calculating a service health score for the application service, wherein the application service comprises the plurality of application instances and the service health score is based at least in part on the respective instance health score for each of the plurality of application instances;
- calculating a zone health score for an application ecosystem based at least in part on a plurality of service health scores, wherein the application ecosystem comprises a plurality of application services and the service health score is one of a plurality of service health scores for a respective one of the plurality of application services within the application ecosystem, and wherein the service health score for the respective one of the plurality of application services is based at least in part on a weight associated with a relative importance of the respective one of the plurality of application services;
- initiating a failover of the application ecosystem from a first availability zone to a second availability zone based at least in part on the zone health score;
- and
- migrating the application ecosystem from the first availability zone to the second availability zone in response to the failover.
A non-transitory computer-readable medium, comprising machine-readable instructions that, when executed by a processor of a computing device, cause the computing device to at least:
- determine that an application instance among a plurality of application instances has failed to provide a health status report;
- send a heartbeat request to the application instance for the health status report;
- determine that the application instance failed to respond to the heartbeat request;
- generate and save a separate health status report for the application instance in response to a determination that the application instance failed to respond to the heartbeat request, the separate health status report comprising a maximum weight;
- calculate a respective instance health score for each of the plurality of application instances within an application service, wherein each respective instance health score is based at least in part on a respective plurality of health status reports for each of the plurality of application instances within a period of time, and wherein each of the respective plurality of health status reports for each of the plurality of application instances is based at least in part on a weight associated with a relative importance of a type of error;
- calculate a service health score for the application service, wherein the application service comprises the plurality of application instances and the service health score is based at least in part on the respective instance health score for each of the plurality of application instances;
- calculate a zone health score for an application ecosystem based at least in part on a plurality of service health scores, wherein the application ecosystem comprises a plurality of application services and the service health score is one of a plurality of service health scores for a respective one of the plurality of application services within the application ecosystem, and wherein the service health score for the respective one of the plurality of application services is based at least in part on a weight associated with a relative importance of the respective one of the plurality of application services;
- initiate a failover of the application ecosystem from a first availability zone to a second availability zone based at least in part on the zone health score;
- and
- migrate the application ecosystem from the first availability zone to the second availability zone in response to the failover.
Dependencies are inferred from the claim text.