IP Library › Granted Patent US 12,206,559
Granted Patent B2
US 12,206,559 · App. 17/308,533 · Granted Jan 21, 2025

Adapting microservices to multi-platform deployments

Inventors: Sudheesh S. Kairali (Kozhikode, IN); Sreekanth Ramakrishna Iyer (Bangalore, IN); Vijay Kalangumvathakkal (Pathanamthitta, IN); Ashish Kumar Thakur (Asansol, IN); Jagdish Kumar (Pune, IN)
Assignee: International Business Machines Corporation
H04L41/5051G06F8/65G06F9/44526H04L12/1414H04L12/1428H04L41/082H04L41/22
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,206,559
App. No.
17/308,533
Granted
Jan 21, 2025
Kind
B2
Abstract

A method includes: receiving, by a computing device, a microservice code from a user device; identifying, by the computing device, a service used by the microservice code; identifying, by the computing device, the service in a target cloud platform; generating, by the computing device, a modified microservice code by adding a predefined code template to the microservice code, the predefined code template being associated with the service in the target cloud platform; receiving, by the computing device, user input defining a value of a parameter in the predefined code template in the modified microservice code; and generating, by the computing device, a new deployment file for the target cloud platform based on the modified microservice code.

Claims (52)

1. A method, comprising:

receiving, by a computing device, a microservice code from a user device, wherein microservice code is deployed on a source cloud platform and is written with calls that are specific to services and resources in the source cloud platform;

identifying, by the computing device, a service used by the microservice code;

identifying, by the computing device, a corresponding service for the service in a target cloud platform, wherein the target cloud platform includes services and resources that are different than the services and resources in the source cloud platform;

generating, by the computing device, a modified microservice code by adding a predefined code template to the microservice code, the predefined code template being associated with the corresponding service in the target cloud platform;

receiving, by the computing device, user input defining a value of a parameter in the predefined code template in the modified microservice code;

generating, by the computing device, a new deployment file for the target cloud platform based on the modified microservice code; and

suggesting, by the computing device, a further modification to the modified microservice code after deploying the modified microservice code to the target cloud platform, wherein the suggesting is based on a service that other microservices use in the target cloud platform.

2. The method of claim 1 , wherein the identifying the service used by the microservice code comprises performing a code scan on the microservice code.

3. The method of claim 1 , wherein the generating the modified microservice code comprises adding the predefined code template to the microservice code using code injection.

4. The method of claim 1 , further comprising:

determining the target cloud platform has plural resources that provide the corresponding service;

presenting the plural resources to a user;

receiving input from the user selecting one of the plural resources.

5. The method of claim 4 , wherein:

each of the plural resources has a different predefined code template; and

the predefined code template added to the microservice code is the predefined code template that is associated with the selected one of the plural resources.

6. The method of claim 1 , further comprising:

determining a cost to deploy the modified microservice code on the target platform based on the service; and

presenting the cost to a user.

7. The method of claim 1 , further comprising presenting the modified microservice code to a user with changed portions highlighted.

8. The method of claim 1 , further comprising determining an expected availability of the modified microservice code on the target cloud platform based on an availability of the service in other microservices deployed on the target cloud platform.

9. The method of claim 1 , further comprising determining an expected security of the modified microservice code on the target cloud platform based on security of the service in other microservices deployed on the target cloud platform.

10. The method of claim 1 , wherein:

the target cloud platform is different that the source cloud platform; and

further comprising scanning the target cloud platform to discover the services and resources of the target cloud platform.

11. The method of claim 1 , wherein the computing device includes software provided as a service in a cloud environment.

12. The method of claim 1 , further comprising providing a multicloud deployment for the microservice code by deploying the modified microservice code on the target cloud platform using the new deployment file while the microservice code is deployed on the source cloud platform.

13. A computer program product of an integrated development environment (IDE), the computer program product comprising one or more computer readable storage media having program instructions collectively stored on the one or more computer readable storage media, the program instructions executable to:

present a user interface (UI) to a user, wherein the UI is configured to permit a user to write a microservice code that is deployed on a source cloud platform and is written with calls that are specific to services and resources in the source cloud platform;

identify a service used by the microservice code;

identify a corresponding service for the service in a target cloud platform, wherein the target cloud platform is different that the source cloud platform and the target cloud platform includes services and resources that are different than the services and resources in the source cloud platform;

discover the services and resources of the target cloud platform by scanning the target cloud platform;

generate a modified microservice code by adding a predefined code template to the microservice code, the predefined code template being associated with the corresponding service in the target cloud platform;

receive user input defining a value of a parameter in the predefined code template in the modified microservice code, wherein the predefined code template comprises a placeholder for the parameter; and

generate a new deployment file for the target cloud platform based on the modified microservice code.

14. The computer program product of claim 13 , wherein the generating the modified microservice code is performed by a plugin to the IDE.

15. A system comprising:

a processor, a computer readable memory, one or more computer readable storage media, and program instructions collectively stored on the one or more computer readable storage media, the program instructions executable to:

receive a microservice code that is currently deployed on a source cloud platform;

identify services used by the microservice code;

identify the services in a target cloud platform;

generate a modified microservice code by adding predefined code templates to the microservice code, wherein respective ones of the predefined code templates are specific to respective ones of the services in the target cloud platform;

receive user input defining values of parameters included in syntax in the predefined code templates in the modified microservice code; and

generate a new deployment file for the target cloud platform based on the modified microservice code.

16. The system of claim 15 , wherein microservice code is deployed on the source cloud platform concurrently with the modified microservice code being deployed on the target cloud platform.

17. The system of claim 15 , wherein the identifying the services used by the microservice code comprises performing a code scan on the microservice code.

18. The system of claim 15 , wherein the generating the modified microservice code comprises adding the predefined code templates to the microservice code using code injection.

19. The system of claim 15 , wherein the program instructions are executable to:

determine an expected availability of the modified microservice code on the target cloud platform based on an availability of the services in other microservices deployed on the target cloud platform; and

report the determined expected availability to a user via a user interface of a user device.

20. The system of claim 15 , wherein the program instructions are executable to determine an expected security of the modified microservice code on the target cloud platform based on security of the services in other microservices deployed on the target cloud platform.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 5, 2021
From: KAIRALI, SUDHEESH S.; IYER, SREEKANTH RAMAKRISHNA; KALANGUMVATHAKKAL, VIJAY; THAKUR, ASHISH KUMAR; KUMAR, JAGDISH
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 056146/0174 →
Continuity (1)
Related Publication 20220360504A1 · Nov 10, 2022
References Cited (24)
US 9838376B1 · Lander et al. · 2017 [cited by applicant]
US 11442725B1 · Chawda · 2022 [cited by examiner]
US 20080270515A1 · Chen · 2008 [cited by examiner]
US 20120137285A1 · Glikson · 2012 [cited by examiner]
US 20140130036A1 · Gurikar · 2014 [cited by examiner]
US 20170168778A1 · Brandys · 2017 [cited by examiner]
US 20190102280A1 · Caldato · 2019 [cited by examiner]
US 20190303564A1 · Kelly · 2019 [cited by examiner]
US 20200133738A1 · Junior · 2020 [cited by applicant]
US 20210124576A1 · Gungabeesoon et al. · 2021 [cited by applicant]
US 20210132935A1 · Dinh · 2021 [cited by examiner]
US 20210263735A1 · Harishankar et al. · 2021 [cited by applicant]
US 20210271463A1 · Pal · 2021 [cited by examiner]
US 20220050897A1 · Gaddam · 2022 [cited by examiner]
Nabor C. Mendonça et.al, “Developing Self-Adaptive Microservice Systems: Challenges and Directions”, https://www.researchgate.net/publication/337550638_Developing_SelfAdaptive_Microservice_Systems_Challenges_and_Directi… [cited by applicant]
Gustavo Sousa et.al, “Automated Setup of Multi-cloud Environments for Microservices Applications”, https://ieeexplore.ieee.org/document/7820288, Jul. 2016, 8 pages. [cited by applicant]
Adalberto R. Sampaio Jr et.al, “Improving microservice-based applications with runtime placement adaptation”, https://link.springer.com/article/10.1186/s13174-019-0104-0, Feb. 26, 2019, 30 pages. [cited by applicant]
Juliana Carvalho et.al, “PacificClouds: A Flexible MicroServices based Architecture for Interoperability in Multi-Cloud Environments”, https://www.researchgate.net/publication/324044178_PacificClouds_A_Flexible_MicroSer… [cited by applicant]
Anonymous, “Method for using discovered code re-use in microservice architecture to diseminate updates”, IP.com No. IPCOM000253041D, ip.com, Feb. 28, 2018, 3 pages. [cited by applicant]
Jamshidi et al., “Pattern-based Multi-Cloud Architecture Migration”, Aug. 2016, 26 pages. [cited by applicant]
“IBM Cloud Migration Factory”, https://www.ibm.com/downloads/cas/6JKLMRLY, Jul. 9, 2018,17 pages. [cited by applicant]
Palesandro et al., “Mantus: Putting Aspects to Work for Flexible Multi-Cloud Deployment”, https://zenodo.org/record/835729/files/Mantus-Putting-Aspects-to-Work-for-Flexible-Multi-Cloud-Deployment.pdf, accessed May 4, 20… [cited by applicant]
Mell et al., “The NIST Definition of Cloud Computing”, NIST, Special Publication 800-145, Sep. 2011, 7 pages. [cited by applicant]
Harris, “Microservices vs. monolithic architecture”, https://www.atlassian.com/microservices/microservices-architecture/microservices-vs-monolith, ATLASSIAN, Page Accessed Jun. 4, 2024, 15 pages. [cited by applicant]