IP Library › Granted Patent US 12,737,225
Granted Patent B2
US 12,737,225 · App. 17/591,179 · Granted Sep 15, 2026

Service update management

Inventors: Wen Tao Zhang (Beijing, CN); Yiwen Huang (Markham, CA); Yang Yang (Beijing, CN); Hong Jun Tu (Beijing, CN); Xiao Kai Dong (Beijing, CN); Ye Cui (Beijing, CN); Wei Wu (Beijing, CN); Yu Chi Zhang (Beijing, CN); Xin Huang (Beijing, CN)
Assignee: International Business Machines Corporation
G06F9/5016G06F8/65G06F9/5022G06F9/5044
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 12,737,225
App. No.
17/591,179
Granted
Sep 15, 2026
Kind
B2
Abstract

The invention discloses a method, system, and computer program product for service update management. The method, during a first update procedure for a first service in a computing system, in response to a detection that the first update procedure fails, a state of a second service on which the first service depends in the computing system is checked. In response to the second service being in a first state, the first update procedure is suspended. Resources allocated to the first update procedure by the computing system are released. The released resources are allocated to the second update procedure of the second service. The second update procedure is implemented based on the allocated released resources. With these embodiments, failures during the update procedures for the services may be automatically detected and removed based on a dependency relationship between the services. Therefore, the performance of the update procedures may be increased.

Claims (74)

1 . A computer-implemented method, comprising:

during a first update procedure for a first service in a computing system, utilizing a detector to request an application programming interface (API) server to provide states about the first service and a second service;

in response to a detection that the first update procedure is failed, checking, by one or more processors, a state of the second service on which the first service depends in the computing system;

creating, by the detector, a state object for tracking a status of services undergoing updates and storing information about the failed first update procedure for the first service and its corresponding dependent service;

triggering, by a timer, periodically the detector to obtain a latest state for the corresponding dependent service dynamically by retrying the corresponding dependent service and updating a state of the corresponding dependent service in the state object based on a latest state;

in response to the second service being in a first state which indicates that a second update procedure of the second service is waiting for the computing system to allocate resources,

suspending, by the one or more processors, the first update procedure;

releasing, by the one or more processors, resources allocated to the first update procedure by the computing system;

allocating, by the one or more processors, the released resources to the second update procedure of the second service;

implementing, by the one or more processors, the second update procedure based on the allocated released resources;

monitoring, by the one or more processors, whether the second update procedure of the second service is finished when the released resources are allocated; and

continuing, by the one or more processors, the first update procedure once the second update procedure of the second service is finished.

2 . The method of claim 1 , wherein implementing the second update procedure based on the allocated released resources further comprises:

in response to the second update procedure being executed but not finished, updating, by the one or more processors, the state of the second service to a second state which indicates that the second update procedure of the second service is executing; and

in response to the second update procedure being finished, updating, by the one or more processors, the state of the second service to a third state which indicates that the second update procedure of the second service is finished.

3 . The method of claim 2 , further comprising:

in response to the second service being in the second state,

continuing, by the one or more processors, suspending the first update procedure;

in response to the second service being in the third state,

allocating, by the one or more processors, resources to the first update procedure of the first service; and

continuing, by the one or more processors, the first update procedure based on the allocated resources.

4 . The method of claim 1 , wherein the first and second services are developed based on a Kubernetes architecture, and the second service is provided by at least one instance that is defined in a Kubernetes deployment of the second service.

5 . The method of claim 4 , wherein the first state further comprises a state which indicates that at least one instance of the second service is waiting for the computing system to allocate resources.

6 . The method of claim 5 , wherein allocating the released resources to the second service comprises: allocating, by the one or more processors, the released resources to the at least one instance of the second service.

7 . The method of claim 1 , wherein the computing system is provided in a developing environment, in which resources of the computing system are not enough for supporting both the first update procedure and the second update procedure.

8 . A computer-implemented system, comprising a computer processor coupled to a computer-readable memory unit, the memory unit comprising instructions that when executed by the computer processor implements a method comprising:

during a first update procedure for a first service in a computing system, utilizing a detector to request an application programming interface (API) server to provide states about the first service and a second service;

in response to a detection that the first update procedure is failed, checking, by one or more processors, a state of the second service on which the first service depends in the computing system;

creating, by the detector, a state object for tracking a status of services undergoing updates and storing information about the failed first update procedure for the first service and its corresponding dependent service;

triggering, by a timer, periodically the detector to obtain a latest state for the corresponding dependent service dynamically by retrying the corresponding dependent service and updating a state of the corresponding dependent service in the state object based on a latest state;

in response to the second service being in a first state which indicates that a second update procedure of the second service is waiting for the computing system to allocate resources,

suspending the first update procedure;

releasing resources allocated to the first update procedure by the computing system;

allocating the released resources to the second update procedure of the second service;

implementing the second update procedure based on the allocated released resources;

monitoring whether the second update procedure of the second service is finished when the released resources are allocated; and

continuing the first update procedure once the second update procedure of the second service is finished.

9 . The system of claim 8 , wherein implementing the second update procedure based on the allocated released resources further comprises:

in response to the second update procedure being executed but not finished, updating the state of the second service to a second state which indicates that the second update procedure of the second service is executing; and

in response to the second update procedure being finished, updating the state of the second service to a third state which indicates that the second update procedure of the second service is finished.

10 . The system of claim 9 , wherein the method further comprises:

in response to the second service being in the second state,

continuing suspending the first update procedure;

in response to the second service being in the third state,

allocating resources to the first update procedure of the first service; and

continuing the first update procedure based on the allocated resources.

11 . The system of claim 8 , wherein the first and second services are developed based on a Kubernetes architecture, and the second service is provided by at least one instance that is defined in a Kubernetes deployment of the second service.

12 . The system of claim 11 , wherein the first state further comprises a state which indicates that at least one instance of the second service is waiting for the computing system to allocate resources.

13 . The system of claim 12 , wherein allocating the released resources to the second service comprises: allocating the released resources to the at least one instance of the second service.

14 . The system of claim 8 , wherein the computing system is provided in a developing environment, in which resources of the computing system are not enough for supporting both the first update procedure and the second update procedure.

15 . A computer program product, the computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by an electronic device to cause the electronic device to perform a method, the method comprises:

during a first update procedure for a first service in a computing system, utilizing a detector to request an application programming interface (API) server to provide states about the first service and a second service;

in response to a detection that the first update procedure is failed, checking, by one or more processors, a state of the second service on which the first service depends in the computing system;

creating, by the detector, a state object for tracking a status of services undergoing updates and storing information about the failed first update procedure for the first service and its corresponding dependent service;

triggering, by a timer, periodically the detector to obtain a latest state for the corresponding dependent service dynamically by retrying the corresponding dependent service and updating a state of the corresponding dependent service in the state object based on a latest state;

in response to the second service being in a first state which indicates that a second update procedure of the second service is waiting for the computing system to allocate resources,

suspending the first update procedure;

releasing resources allocated to the first update procedure by the computing system;

allocating the released resources to the second update procedure of the second service;

implementing the second update procedure based on the allocated released resources;

monitoring whether the second update procedure of the second service is finished when the released resources are allocated; and

continuing the first update procedure once the second update procedure of the second service is finished.

16 . The computer program product of claim 15 , wherein implementing the second update procedure based on the allocated released resources further comprises:

in response to the second update procedure being executed but not finished, updating the state of the second service to a second state which indicates that the second update procedure of the second service is executing; and

in response to the second update procedure being finished, updating the state of the second service to a third state which indicates that the second update procedure of the second service is finished.

17 . The computer program product of claim 16 , wherein the method further comprises:

in response to the second service being in the second state,

continuing suspending the first update procedure;

in response to the second service being in the third state,

allocating resources to the first update procedure of the first service; and

continuing the first update procedure based on the allocated resources.

18 . The computer program product of claim 15 , wherein the first and second services are developed based on a Kubernetes architecture, and the second service is provided by at least one instance that is defined in a Kubernetes deployment of the second service.

19 . The computer program product of claim 18 , wherein the first state further comprises a state which indicates that at least one instance of the second service is waiting for the computing system to allocate resources.

20 . The computer program product of claim 19 , wherein allocating the released resources to the second service comprises: allocating the released resources to the at least one instance of the second service, and wherein the computing system is provided in a developing environment, in which resources of the computing system are not enough for supporting both the first update procedure and the second update procedure.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 2, 2022
From: ZHANG, WEN TAO; HUANG, YIWEN; YANG, YANG; TU, HONG JUN; DONG, XIAO KAI; CUI, YE; WU, WEI; ZHANG, YU CHI; HUANG, XIN
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 058863/0587 →
Continuity (1)
Related Publication 20230244528A1 · Aug 3, 2023
References Cited (28)
US 10528337B1 · Varadharajan Kannan · 2020 [cited by applicant]
US 10805275B1 · Huang · 2020 [cited by examiner]
US 20060053305A1 · Wahlert · 2006 [cited by examiner]
US 20070118838A1 · Tsujino · 2007 [cited by examiner]
US 20070143766A1 · Farchi · 2007 [cited by examiner]
US 20100174946A1 · Burdick · 2010 [cited by examiner]
US 20130013833A1 · Nagpal · 2013 [cited by examiner]
US 20130232496A1 · Zoll · 2013 [cited by examiner]
US 20140201564A1 · Jagtiani · 2014 [cited by examiner]
US 20160026672A1 · Zhang · 2016 [cited by examiner]
US 20160124741A1 · Hu · 2016 [cited by examiner]
US 20170149864A1 · Feiman · 2017 [cited by examiner]
US 20170168797A1 · Pogrebinsky · 2017 [cited by examiner]
US 20190294504A1 · Giannetti · 2019 [cited by examiner]
US 20210072966A1 · Zong · 2021 [cited by applicant]
US 20210294596A1 · Ashirvad · 2021 [cited by examiner]
CN 111752641A · 2020 [cited by applicant]
CN 111767113A · 2020 [cited by applicant]
CN 112328359A · 2021 [cited by applicant]
WO 2023148020A1 · 2023 [cited by applicant]
Anonymous, “Kubernetes—Rolling Updates”, Guides, Mar. 7, 2023, 7 pages. [cited by applicant]
Anonymous, “Kubernetes Demystified: Solving Service Dependencies”, Community, Mar. 7, 2023, 9 pages. [cited by applicant]
International Search Report and Written Opinion, International Application No. PCT/EP2023/051385, International Filing Date: Jan. 20, 2023, Mailing Date: Mar. 20, 2023, 11 pages. [cited by applicant]
Maharjan, “How Rolling and Rollback Deployments work in Kubernetes”, Oct. 25, 2020, 12 pages. [cited by applicant]
Disclosed Anonymously, “Kubernetes Troubleshooting Walkthrough—Pod Failure CrashLoopBackOff”, Kubernetes.com, Feb. 12, 2019 [accessed on Jan. 4, 2022], 10 pages, Retrieved from the Internet: <URL: https://managedkube.co… [cited by applicant]
Disclosed Anonymously, “Scheduling Policies,” Kubernetes.com, Dec. 17, 2021 [accessed on Jan. 4, 2022], 1 page, Retrieved from the Internet: <URL: https://kubernetes.io/docs/reference/scheduling/policies/>. [cited by applicant]
Lehota, “Automate the deployment of pod dependencies in Kubernetes,” IBM Developer, Jul. 2, 2019 [accessed on Jan. 4, 2022], 12 pages, Retrieved from the Internet: <URL: https://developer.ibm.com/articles/automating-dep… [cited by applicant]
Mell, et al., “The NIST Definition of Cloud Computing”, National Institute of Standards and Technology, Special Publication 800-145, Sep. 2011, 7 pages. [cited by applicant]