IP Library › Granted Patent US 10,944,640
Granted Patent B2
US 10,944,640 · App. 16/186,167 · Granted Mar 9, 2021

Generating and implementing a platform-neutral cloud-native application model

Inventors: Haishi Bai (Carnation, WA); Mark Eugene Russinovich (Bellevue, WA); Boris Markus Scholl (Kirkland, WA); Yaron Schneider (Bellevue, WA)
Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
H04L41/145H04L47/70H04L67/10
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,944,640
App. No.
16/186,167
Granted
Mar 9, 2021
Kind
B2
Abstract

The present disclosure relates to systems, methods, and computer-readable media for generating a platform-neutral application model that provides a complete and accurate representation of functionality and topology for a cloud-native application. For example, systems disclosed herein analyze application data to identify platform neutral application features including resources, mesh connections, and quality of service (QoS) constraints associated with implementing a cloud-native application via a cloud computing system. The systems disclosed herein further construct a platform-neutral application model including identifiers of the application features. The platform-neutral application model facilitates convenient translation of applications between different platforms and further streamlines development and deployment of cloud-native applications across any number of platforms.

Claims (52)

1. A method, comprising:

receiving application data associated with a cloud-native application;

identifying, from the received application data, a set of application features associated with implementing the cloud-native application on a cloud computing system, the set of application features comprising a plurality of resources associated with functionality of the cloud-native application and a plurality of mesh connections associated with a topology of the cloud-native application; and

generating a platform-neutral application model descriptive of the topology and functionality of the cloud-native application, the platform-neutral application model comprising a plurality of resource identifiers associated with the plurality of resources and a plurality of mesh identifiers associated with the plurality of mesh connections.

2. The method of claim 1 , wherein identifying the set of application features further comprises identifying one or more operation constraints associated with quality of service (QoS) metrics for implementing the cloud-native application on the cloud computing system, and wherein the platform-neutral application model comprises one or more quality of service (QoS) identifiers associated with the one or more operation constraints.

3. The method of claim 2 , wherein the one or more quality of service (QoS) identifiers are expressed as tags assigned to the platform-neutral application model, and wherein the one or more operation constraints associated with the one or more quality of service (QoS) identifiers comprise one or more of:

a measure of availability of one or more resources of the plurality of resources;

a measure of cost associated with a service provided by one or more resources of the plurality of resources; or

a restriction associated with deploying one or more services of the cloud-native application on a common server device or grouping of multiple server devices.

4. The method of claim 1 , wherein receiving the application data associated with the cloud-native application comprises receiving an application file comprising the cloud-native application, and wherein the cloud-native application comprises a platform-specific cloud-native application.

5. The method of claim 4 , wherein identifying the set of application features associated with implementing the cloud-native application on the cloud computing system comprises applying a set of translation rules to the platform-specific cloud-native application to extract, from the application file, the plurality of resources associated with functionality of the platform-specific cloud-native application and the plurality of mesh connections associated with the topology of the platform-specific cloud-native application.

6. The method of claim 5 , further comprising:

identifying one or more additional features of the platform-specific cloud-native application that cannot be extracted using the set of translation rules; and

based on the identified one or more additional features, generating one or more feature hints to associate with the platform-neutral application model.

7. The method of claim 6 , further comprising generating an application template for the cloud-native application based on the platform-neutral application model, the application template comprising a partial representation of functionality and topology of the cloud-native application and the one or more feature hints.

8. The method of claim 1 , wherein receiving the application data associated with the cloud-native application comprises receiving instructions for creating a new cloud-native application to be implemented on the cloud computing system.

9. The method of claim 1 , wherein the plurality of resources includes service entities hosted by or accessible to the cloud computing system that offer discrete services, wherein the service entities include one or more of microservices, proxy servers, data storage spaces, or edge devices.

10. The method of claim 1 , wherein the plurality of mesh connections include connections between the plurality of resources, and wherein the mesh connections include one or more of direct connections between server devices of the cloud computing system, message queues, intermediate server devices, or connections to one or more edge devices.

11. A system, comprising:

one or more processors;

memory in electronic communication with the one or more processors; and

instructions stored in the memory, the instructions being executable by the one or more processors to:

receive application data associated with a cloud-native application;

identify, from the received application data, a set of application features associated with implementing the cloud-native application on a cloud computing system, the set of application features comprising a plurality of resources associated with functionality of the cloud-native application and a plurality of mesh connections associated with a topology of the cloud-native application; and

generate a platform-neutral application model descriptive of the topology and functionality of the cloud-native application, the platform-neutral application model comprising a plurality of resource identifiers associated with the plurality of resources and a plurality of mesh identifiers associated with the plurality of mesh connections.

12. The system of claim 11 , wherein identifying the set of application features further comprises identifying one or more operation constraints associated with quality of service (QoS) metrics for implementing the cloud-native application on the cloud computing system to include within the platform-neutral application model, wherein the one or more operation constraints comprise one or more of:

a measure of availability of one or more resources of the plurality of resources;

a measure of cost associated with a service provided by one or more resources of the plurality of resources; or

a restriction associated with deploying one or more services of the cloud-native application on a server device or grouping of multiple server devices.

13. The system of claim 11 , wherein receiving the application data associated with the cloud-native application comprises receiving an application file comprising a platform-specific cloud-native application, and wherein identifying the set of application features comprises:

identifying a first set of translation rules based on a first platform associated with the platform-specific cloud-native application; and

applying the first set of translation rules to the platform-specific cloud-native application to extract the plurality of resources and the plurality of mesh connections.

14. The system of claim 13 , further comprising instructions being executable by the one or more processors to:

identify a second platform associated with a target platform on which a translated cloud-native application based on the platform-neutral application model is to be implemented;

identify a second set of translation rules based on the second platform; and

generate an application template for the translated cloud-native application associated with the second platform based on the platform-neutral application model.

15. The system of claim 11 , wherein receiving the application data associated with the cloud-native application comprises receiving instructions for creating a new cloud-native application to be implemented on the cloud computing system.

16. The system of claim 11 ,

wherein the plurality of resources includes service entities hosted by or accessible to the cloud computing system that offer discrete services, wherein the service entities include one or more of microservices, proxy servers, data storage spaces, or edge devices; and

wherein the plurality of mesh connections include connections between the plurality of resources, and wherein the mesh connections include one or more of direct connections between server devices of the cloud computing system, message queues, intermediate server devices, or connections to one or more edge devices.

17. A non-transitory computer-readable storage medium including instructions thereon that, when executed by at least one processor, cause a computing device to:

receive application data associated with a cloud-native application;

identify, from the received application data, a set of application features associated with implementing the cloud-native application on a cloud computing system, the set of application features comprising a plurality of resources associated with functionality of the cloud-native application and a plurality of mesh connections associated with a topology of the cloud-native application; and

generate a platform-neutral application model descriptive of the topology and functionality of the cloud-native application, the platform-neutral application model comprising a plurality of resource identifiers associated with the plurality of resources and a plurality of mesh identifiers associated with the plurality of mesh connections.

18. The non-transitory computer-readable storage medium of claim 17 , wherein identifying the set of application features further comprises identifying one or more operation constraints associated with quality of service (QoS) metrics for implementing the cloud-native application on the cloud computing system to include within the platform-neutral application model, wherein the one or more operation constraints comprise one or more of:

a measure of availability of one or more resources of the plurality of resources;

a measure of cost associated with a service provided by one or more resources of the plurality of resources; or

a restriction associated with deploying one or more services of the cloud-native application on a server device or grouping of multiple server devices.

19. The non-transitory computer-readable storage medium of claim 17 , wherein receiving the application data associated with the cloud-native application comprises receiving an application file comprising a platform-specific cloud-native application, and wherein identifying the set of application features comprises:

identifying a first set of translation rules based on a first platform associated with the platform-specific cloud-native application; and

applying the first set of translation rules to the platform-specific cloud-native application to extract the plurality of resources and the plurality of mesh connections.

20. The non-transitory computer-readable storage medium of claim 17 , wherein receiving the application data associated with the cloud-native application comprises receiving instructions for creating a new cloud-native application to be implemented on the cloud computing system.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2018
From: BAI, HAISHI; RUSSINOVICH, MARK EUGENE; SCHOLL, BORIS MARKUS; SCHNEIDER, YARON
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 047466/0405 →
Continuity (1)
Related Publication 20200153699A1 · May 14, 2020