IP Library Granted Patent US 10,897,497
Granted Patent B2
US 10,897,497 · App. 16/188,716 · Granted Jan 19, 2021

Automated infrastructure updates in a cluster environment that includes containers

Inventors: Mariusz Sabath (Ridgefield, CT); Jia Jun Brandon Lum (White Plains, NY); Alaa Youssef (Valhalla, NY); Malgorzata Steinder (Leonia, NY); Asser Nasreldin Tantawi (Somers, NY)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
H04L67/1031G06F8/65G06F9/4856G06F9/4881G06F9/5038H04L41/082H04L41/0886
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 10,897,497
App. No.
16/188,716
Granted
Jan 19, 2021
Kind
B2
Abstract

Aspects of the invention include selecting a node for an infrastructure update. The selected node is included in a cluster of nodes executing workloads that include containers. A future workload is prevented from being scheduled on the selected node. A workload currently executing on the selected node is migrated to another node included in the cluster of nodes. Infrastructure code on the selected node is updated, and in response to the updating, the ability to schedule a future workload on the selected node is enabled.

Claims (50)

1. A computer-implemented method comprising:

selecting, using a processor, a node for an infrastructure update, the selected node included in a cluster of nodes executing workloads that include containers, each container including a self-contained runtime environment, the selecting based at least in part on an estimated number of times that each workload in the cluster will be migrated during the infrastructure update in response to the processor selecting the selected node;

preventing, using the processor, a future workload from being scheduled on the selected node;

migrating, using the processor, a workload currently executing on the selected node to another node included in the cluster of nodes, the workload executed by one or more containers that are migrated to the another node;

updating, using the processor, infrastructure code on the selected node; and

in response to the updating, enabling, using the processor, a future workload to be scheduled on the selected node.

2. The computer-implemented method of claim 1 , further comprising prior to the selecting, steering by a scheduler, new workloads to a subset of the nodes in the cluster, the selected node not in the subset.

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

determining, using the processor, whether all of the nodes in the cluster of nodes have been updated; and

based at least in part on determining that all of the nodes in the cluster of nodes have not been updated, repeating the selecting, preventing, migrating, updating and enabling.

4. The computer-implemented method of claim 1 , wherein the method further comprises:

testing, using the processor, the updated infrastructure code on the selected node to determine whether the update was successful; and

based at least in part on determining that the update was not successful, returning the infrastructure code to a pre-update state,

wherein the enabling is further in response to determining that the update was successful.

5. The method of claim 1 , wherein a second node is selected by the selecting for the infrastructure update, and the selected node and the second node are updated concurrently.

6. The method of claim 1 , wherein the selecting is further based at least in part on current workloads executing on the nodes in the cluster.

7. The method of claim 1 , wherein the selecting is further based at least in part on an estimated elapsed time to perform the infrastructure update in response to the processor selecting the selected node.

8. The method of claim 1 , wherein the workloads are characterized by types and the selecting is further based at least in part on a minimum number of workloads of each type that are required to be executing at a given point in time.

9. The method of claim 1 , wherein the preventing includes locking the selected node and the enabling includes unlocking the selected node.

10. A system comprising:

a memory having computer readable instructions; and

one or more processors for executing the computer readable instructions, the computer readable instructions controlling the one or more processors to perform operations comprising:

selecting a node for an infrastructure update, the selected node included in a cluster of nodes executing workloads that include containers, each container including a self-contained runtime environment, the selecting based at least in part on an estimated number of times that each workload in the cluster will be migrated during the infrastructure update in response to the processor selecting the selected node;

preventing a future workload from being scheduled on the selected node;

migrating a workload currently executing on the selected node to another node included in the cluster of nodes, the workload executed by one or more containers that are migrated to the another node;

updating infrastructure code on the selected node; and

in response to the updating, enabling a future workload to be scheduled on the selected node.

11. The system of claim 10 , wherein the operations further comprise, prior to the selecting, steering by a scheduler, new workloads to a subset of the nodes in the cluster, the selected node not in the subset.

12. The system of claim 10 , wherein the operations further comprise:

determining, whether all of the nodes in the cluster of nodes have been updated; and

based at least in part on determining that all of the nodes in the cluster of nodes have not been updated, repeating the selecting, preventing, migrating, updating and enabling.

13. The system of claim 10 , wherein the operations further comprise:

testing the updated infrastructure code on the selected node to determine whether the update was successful; and

based at least in part on determining that the update was not successful, returning the infrastructure code to a pre-update state,

wherein the enabling is further in response to determining that the update was successful.

14. The system of claim 10 , wherein a second node is selected by the selecting for the infrastructure update, and the selected node and the second node are updated concurrently.

15. A computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by a processor to cause the processor to perform operations comprising:

selecting a node for an infrastructure update, the selected node included in a cluster of nodes executing workloads that include containers, each container including a self-contained runtime environment, the selecting based at least in part on an estimated number of times that each workload in the cluster will be migrated during the infrastructure update in response to the processor selecting the selected node;

preventing a future workload from being scheduled on the selected node;

migrating a workload currently executing on the selected node to another node included in the cluster of nodes, the workload executed by one or more containers that are migrated to the another node;

updating infrastructure code on the selected node; and

in response to the updating, enabling a future workload to be scheduled on the selected node.

16. The computer program product of claim 15 , wherein the operations further comprise, prior to the selecting, steering by a scheduler, new workloads to a subset of the nodes in the cluster, the selected node not in the subset.

17. The computer program product of claim 15 , wherein the operations further comprise:

determining, whether all of the nodes in the cluster of nodes have been updated; and

based at least in part on determining that all of the nodes in the cluster of nodes have not been updated, repeating the selecting, preventing, migrating, updating and enabling.

18. The computer program product of claim 15 , wherein the operations further comprise:

testing the updated infrastructure code on the selected node to determine whether the update was successful; and

based at least in part on determining that the update was not successful, returning the infrastructure code to a pre-update state,

wherein the enabling is further in response to determining that the update was successful.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 13, 2018
From: SABATH, MARIUSZ; LUM, JIA JUN BRANDON; YOUSSEF, ALAA; STEINDER, MALGORZATA; TANTAWI, ASSER NASRELDIN
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 047484/0027 →
Continuity (1)
Related Publication 20200153898A1 · May 14, 2020
Cited By (2)
US 12,373,259 US 12,554,476