IP Library Granted Patent US 11,556,321
Granted Patent B2
US 11,556,321 · App. 16/562,827 · Granted Jan 17, 2023

Deploying microservices across a service infrastructure

Inventors: Oliver Paul Masters (Birmingham, GB); Alexander John Naylor (Newbury, GB); Samuel Christopher Smith (Eastleigh, GB); Andrew James Dunnings (Southampton, GB)
Assignee: International Business Machines Corporation
G06F8/60G06F9/44505G06F11/3664H04L67/34
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,556,321
App. No.
16/562,827
Granted
Jan 17, 2023
Kind
B2
Abstract

A method, computer system, and a computer program product for deploying a plurality of microservices across a service infrastructure having a plurality of resources is provided. The present invention may include determining at least one dependency of the plurality of microservices. The present invention may include for each resource of the plurality of resources, determining an outage distribution descriptive of an availability of the resource with respect to time. The present invention may include based on the outage distribution associated with each resource and the at least one dependency of the plurality of microservices, determining a deployment configuration of the plurality of microservices across the resources of the service infrastructure.

Claims (61)

1. A computer-implemented method for deploying a plurality of microservices across a service infrastructure having a plurality of resources, the method comprising:

determining at least one dependency of the plurality of microservices;

for each resource of the plurality of resources, determining an outage distribution descriptive of an availability of the resource with respect to time;

based on the outage distribution associated with each resource and the at least one dependency of the plurality of microservices, determining a deployment configuration of the plurality of microservices across the resources of the service infrastructure, which determination includes, for each resource of the service infrastructure, determining a probability of unavailability of each resource over a predetermined time period based on the outage distribution associated with the resource; and

based on the probability of unavailability of each resource of the service infrastructure, and the at least one dependency of the plurality of microservices, determining the deployment configuration of the plurality of microservices across the resources of the service infrastructure, wherein the deployment configuration minimizes the probability of unavailability of the plurality of microservices.

2. The computer-implemented method of claim 1 , wherein determining at least one dependency of the plurality of microservices comprises:

identifying a plurality of different configurations of the plurality of microservices, wherein each of the plurality of different configurations comprises a respective set of microservice instances;

for each of the plurality of different configurations of the plurality of microservices, determining a functionality of the respective set of microservice instances; and

based on the determined functionality of the respective set of microservice instances for each of the plurality of different configurations, determining a dependency of at least one of the plurality of microservices.

3. The computer-implemented method of claim 2 , wherein determining a functionality of the respective set of microservice instances comprises:

simulating or testing execution of the respective set of microservice instances; and

determining a functionality of the respective set of microservice instances based on results of the simulation or testing.

4. The computer-implemented method of claim 2 , wherein identifying the plurality of different configurations of the plurality of microservices comprises:

receiving a user input relative to identifying a configuration of each of the plurality of microservices; and

identifying the configuration of each of the plurality of microservices based on the user input.

5. The computer-implemented method of claim 1 , wherein determining the deployment configuration of the plurality of microservices across the resources of the service infrastructure comprises employing a Monte-Carlo method to evaluate unavailability of the plurality of microservices for a plurality of different deployment configurations.

6. The computer-implemented method of claim 1 , further comprising:

monitoring an availability of the plurality of resources of the service infrastructure to detect a change in the availability of a resource of the service infrastructure; and

responsive to detecting a change in availability of the resource of the service infrastructure, determining a modified deployment of the plurality of microservices across the plurality of resources of the service infrastructure.

7. The computer-implemented method of claim 1 , wherein determining the outage distribution comprises at least one of:

analyzing a service level agreement associated with each resource of the plurality of resources; and

processing a plurality historical outage information relating to a previous availability of the resource.

8. A computer system for deploying a plurality of microservices across a service infrastructure having a plurality of resources, comprising:

one or more processors, one or more computer-readable memories, one or more computer-readable tangible storage medium, and program instructions stored on at least one of the one or more tangible storage medium for execution by at least one of the one or more processors via at least one of the one or more memories, wherein the computer system is capable of performing a method comprising:

determining at least one dependency of the plurality of microservices;

for each resource of the plurality of resources, determining an outage distribution descriptive of an availability of the resource with respect to time; and

based on the outage distribution associated with each resource and the at least one dependency of the plurality of microservices, determining a deployment configuration of the plurality of microservices across the resources of the service infrastructure, which determination includes, for each resource of the service infrastructure, determining a probability of unavailability of each resource over a predetermined time period based on the outage distribution associated with the resource; and

based on the probability of unavailability of each resource of the service infrastructure, and the at least one dependency of the plurality of microservices, determining the deployment configuration of the plurality of microservices across the resources of the service infrastructure, wherein the deployment configuration minimizes the probability of unavailability of the plurality of microservices.

9. The computer system of claim 8 , wherein determining at least one dependency of the plurality of microservices comprises:

identifying a plurality of different configurations of the plurality of microservices, wherein each of the plurality of different configurations comprises a respective set of microservice instances;

for each of the plurality of different configurations of the plurality of microservices, determining a functionality of the respective set of microservice instances; and

based on the determined functionality of the respective set of microservice instances for each of the plurality of different configurations, determining a dependency of at least one of the plurality of microservices.

10. The computer system of claim 9 , wherein determining a functionality of the respective set of microservice instances comprises:

simulating or testing execution of the respective set of microservice instances; and

determining a functionality of the respective set of microservice instances based on results of the simulation or testing.

11. The computer system of claim 9 , wherein identifying the plurality of different configurations of the plurality of microservices comprises:

receiving a user input relative to identifying a configuration of each of the plurality of microservices; and

identifying the configuration of each of the plurality of microservices based on the user input.

12. The computer system of claim 7 , wherein determining the deployment configuration of the plurality of microservices across the resources of the service infrastructure comprises employing a Monte-Carlo method to evaluate unavailability of the plurality of microservices for a plurality of different deployment configurations.

13. The computer system of claim 8 , further comprising:

monitoring an availability of the plurality of resources of the service infrastructure to detect a change in the availability of a resource of the service infrastructure; and

responsive to detecting a change in availability of the resource of the service infrastructure, determining a modified deployment of the plurality of microservices across the plurality of resources of the service infrastructure.

14. The computer system of claim 8 , wherein determining the outage distribution comprises at least one of:

analyzing a service level agreement associated with each resource of the plurality of resources; and

processing a plurality historical outage information relating to a previous availability of the resource.

15. A computer program product for deploying a plurality of microservices across a service infrastructure having a plurality of resources, comprising:

one or more non-transitory computer-readable storage media and program instructions stored on at least one of the one or more tangible storage media, the program instructions executable by a processor to cause the processor to perform a method comprising:

determining at least one dependency of the plurality of microservices;

for each resource of the plurality of resources, determining an outage distribution descriptive of an availability of the resource with respect to time; and

based on the outage distribution associated with each resource and the at least one dependency of the plurality of microservices, determining a deployment configuration of the plurality of microservices across the resources of the service infrastructure, which determination includes, for each resource of the service infrastructure, determining a probability of unavailability of each resource over a predetermined time period based on the outage distribution associated with the resource; and

based on the probability of unavailability of each resource of the service infrastructure, and the at least one dependency of the plurality of microservices, determining the deployment configuration of the plurality of microservices across the resources of the service infrastructure, wherein the deployment configuration minimizes the probability of unavailability of the plurality of microservices.

16. The computer program product of claim 15 , wherein determining at least one dependency of the plurality of microservices comprises:

identifying a plurality of different configurations of the plurality of microservices, wherein each of the plurality of different configurations comprises a respective set of microservice instances;

for each of the plurality of different configurations of the plurality of microservices, determining a functionality of the respective set of microservice instances; and

based on the determined functionality of the respective set of microservice instances for each of the plurality of different configurations, determining a dependency of at least one of the plurality of microservices.

17. The computer program product of claim 16 , wherein determining a functionality of the respective set of microservice instances comprises:

simulating or testing execution of the respective set of microservice instances; and

determining a functionality of the respective set of microservice instances based on results of the simulation or testing.

18. The computer program product of claim 16 , wherein identifying the plurality of different configurations of the plurality of microservices comprises:

receiving a user input relative to identifying a configuration of each of the plurality of microservices; and

identifying the configuration of each of the plurality of microservices based on the user input.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 6, 2019
From: MASTERS, OLIVER PAUL; NAYLOR, ALEXANDER JOHN; SMITH, SAMUEL CHRISTOPHER; DUNNINGS, ANDREW JAMES
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 050292/0715 →
Continuity (1)
Related Publication 20210072965A1 · Mar 11, 2021