IP Library Granted Patent US 12,423,129
Granted Patent B2
US 12,423,129 · App. 18/056,423 · Granted Sep 23, 2025

Cloud management of customer-created applications

Inventors: Mustapha Lazrek (Clamart, FR); Soufiane Loukili (Bellevue, WA); Sacha Kley (Paris, FR); Paul Dib (Issy-les-Moulineaux, FR)
Assignee: Microsoft Technology Licensing, LLC
G06F9/45558G06F2009/4557
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,423,129
App. No.
18/056,423
Granted
Sep 23, 2025
Kind
B2
Abstract

A method for configuring virtual machines to support workloads performed by customer-created applications includes provisioning a first and second subsets of virtual machines (VMs) in a customer VM group based on a first and second customer-specified VM images. Workloads of a first type are allocated to select VMs in the first subset of VMs and workloads of a second type are allocated to select VMs of the second subset of VMs. In response to detecting a shift in a ratio of a number of queued workloads of the first type and of the second type, a select number of VMs are de-provisioned from the first subset of the customer VM group and the select number of VMs re provisioned, based on the second VM image, for addition to the second subset of the customer VM group.

Claims (41)

1. A method comprising:

provisioning one or more virtual machines (VMs) of a first type in a customer VM group associated with a customer account based on a first VM image specifying a first set of software and hardware characteristics providing aspects of a first target runtime environment for a first type of customer workload;

provisioning one or more VMs of a different second type in the customer VM group based on a different second VM image specifying a different second set of software and hardware characteristics providing aspects of a different second target runtime environment for a different second type of customer workload;

selectively allocating, from a customer queue associated with the customer account, customer workloads of the first type to one or more select VMs of the first type and customer workloads of the different second type to one or more select VMs of the different second type; and

in response to an increase in a ratio of a number of queued customer workloads of the first type to the different second type in the customer queue that occurs while a number of VMs in the customer VM group is equal to a maximum permissible number, de-provisioning one or more VMs of the different second type in the customer VM group and re-provisioning the one or more VMs in the customer VM group as one or more VMs of the first type, wherein the re-provisioning includes configuring the one or more VMs of the first type to support the customer workload of the first type.

2. The method of claim 1 , further comprising:

in response to contents of the customer queue satisfying predefined scale-up criteria, dynamically adding additional VMs to the customer VM group and provisioning each of the additional VMs based on a select one of the first VM image or the different second VM image; and

allocating select customer workloads pending in the customer queue to the additional VMs added to the customer VM group.

3. The method of claim 2 , wherein provisioning the additional VMs includes:

configuring each of the additional VMs for access to a virtual network of the customer based on user-specified Vnet access parameters.

4. The method of claim 2 , wherein the predefined scale-up criteria is satisfied when a number of customer workloads pending in the customer queue exceeds a threshold.

5. The method of claim 2 , wherein the-predefined scale-up criteria is satisfied when an average pendency of a workload in the customer queue exceeds a defined threshold.

6. The method of claim 1 , wherein each of the first VM image and the different second VM image specifies an operating system and one or more applications to be executed by the operating system.

7. The method of claim 1 , wherein the first target runtime environment is a target runtime environment for a first customer-created application and the different second target runtime environment is a target runtime environment for a second customer-created application.

8. The method of claim 1 , wherein the de-provisioning is performed further in response to a size of the customer VM group being equal to customer-specified maximum size parameter.

9. A system comprising:

one or more hardware processors;

a workload manager stored in memory and executable by the one or more hardware processors to selectively allocate, from a customer queue associated with a customer account, customer workloads of a first type to one or more virtual machines (VMs) of a first type in a customer VM group and workloads of a different second type to one or more VMs of a different second type in the customer VM group;

a virtual machine (VM) configuration engine stored in the memory and executable by the one or more hardware processors to:

provision the one or more VMs of the first type in the customer VM group based on a first VM image specifying a first set of software and hardware characteristics providing a first target runtime environment for a first customer created-application that executes workloads of the first type;

provision the one or more VMs of the different second type in the customer VM group based on a different second VM image specifying a different second set of software and hardware characteristics providing a different second target runtime environment for a different second customer created-application that executes workloads of the different second type; and

in response to an increase in a ratio of a number of queued customer workloads of the first type to the different second type in the customer queue that occurs while a number of VMs in the customer VM group is equal to a maximum permissible number, de-provision one or more VMs of the different second type in the customer VM group and re-provision the one or more VMs in the customer VM group as one or more VMs of the first type, wherein the re-provisioning includes configuring the one or more VMs of the first type to support the customer workload of the first type.

10. The system of claim 9 , wherein the VM configuration engine is further configured to:

dynamically add additional VMs to the customer VM group and provision each of the additional VMs based on a select one of the first VM image or the different second VM image in response to contents of the customer queue satisfying predefined scale-up criteria; and

allocate select customer workloads pending in the customer queue to the additional VMs added to the customer VM group.

11. The system of claim 10 , wherein the VM configuration engine configures each additional VM to access to a virtual network of the customer based on user-specified Vnet access parameters.

12. The system of claim 10 , wherein the predefined scale-up criteria is satisfied when a number of workloads pending in the customer queue exceeds a threshold.

13. The system of claim 10 , wherein the predefined scale-up criteria is satisfied when an average pendency of a workload in the customer queue exceeds a defined threshold.

14. The system of claim 9 , wherein each of the first VM image and the different second VM image specifies an operating system and one or more applications to be executed by the operating system.

15. The system of claim 9 , wherein the VM configuration engine includes an AutoScaler and a Workload-Type Load Balancer.

16. The system of claim 9 , wherein the VM configuration engine de-provisions the select number of VMs in response to a size of the customer VM group being equal to a customer-specified maximum size parameter.

17. One or more tangible computer-readable storage media encoding processer-readable instructions for executing a computer process, the computer process comprising:

provisioning one or more virtual machines (VMs) of a first type in a customer VM group associated with a customer account based on a first VM image specifying a first set of software and hardware characteristics providing a first target runtime environment for a first type of customer workload;

provisioning one or more VMs of a different second type in the customer VM group based on a different second VM image specifying a different second set of software and hardware characteristics providing a different second target runtime environment for a different second type of customer workload;

selectively allocating, from a customer queue associated with the customer account, customer workloads of the first type to one or more select VMs of the first type and workloads of the different second type to one or more select VMs of the different second type;

in response to an increase in a ratio of a number of queued customer workloads of the first type to the different second type in the customer queue that occurs while a number of VMs in the customer VM group is equal to a maximum permissible number, de-provisioning one or more VMS of the different second type in the customer VM group and re-provisioning the one or more VMs in the customer VM group as one or more VMs of the first type, wherein the re-provisioning includes configuring the one or more VMs of the first type to support the customer workload of the first type.

18. The one or more tangible computer-readable storage media of claim 17 , further comprising:

in response to contents of the customer queue satisfying predefined scale-up criteria, dynamically adding additional VMs to the customer VM group and provisioning each of the additional VMs based on a select one of the first VM image or the different second VM image; and

allocating select customer workloads pending in the customer queue to the additional VMs added to the customer VM group.

19. The one or more tangible computer-readable storage media of claim 17 , wherein each of the first VM image and the different second VM image specifies an operating system and one or more applications to be executed by the operating system.

20. The one or more tangible computer-readable storage media of claim 17 , wherein the first target runtime environment is a target runtime environment for a first customer-created application and the different second target runtime environment is a target runtime environment for a second customer-created application.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 17, 2022
From: LAZREK, MUSTAPHA; LOUKILI, SOUFIANE; KLEY, SACHA; DIB, PAUL
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 061811/0654 →
Continuity (1)
Related Publication 20240168789A1 · May 23, 2024
References Cited (25)
US 9372735B2 · Calder et al. · 2016 [cited by applicant]
US 10104053B2 · Wipfel et al. · 2018 [cited by applicant]
US 10135679B2 · Huang et al. · 2018 [cited by applicant]
US 10469411B1 · Patel · 2019 [cited by examiner]
US 10761893B1 · Bhadauria · 2020 [cited by examiner]
US 10783472B2 · Carpenter et al. · 2020 [cited by applicant]
US 10990440B2 · Botelho · 2021 [cited by applicant]
US 11010193B2 · Karanasos et al. · 2021 [cited by applicant]
US 11237864B2 · Botelho · 2022 [cited by applicant]
US 11281393B2 · Abdul Rasheed et al. · 2022 [cited by applicant]
US 11429424B2 · Lu et al. · 2022 [cited by applicant]
US 20190391883A1 · Wang et al. · 2019 [cited by applicant]
US 20200310853A1 · Featonby · 2020 [cited by examiner]
US 20210065095A1 · Delellis et al. · 2021 [cited by applicant]
US 20210173694A1 · Hildebrand et al. · 2021 [cited by applicant]
US 20210173719A1 · Chester et al. · 2021 [cited by applicant]
US 20210288970A1 · Chawla · 2021 [cited by examiner]
US 20220147390A1 · Akinapelli · 2022 [cited by examiner]
US 20220197249A1 · Ma · 2022 [cited by examiner]
“Meet your New SaaS Workforce”, Retrieved From: https://www.uipath.com/product/automation-cloud-robots, Retrieved on: Oct. 14, 2022, 5 Pages. [cited by applicant]
“Virtual Machine (VM) Processor and Resource Allocation Guide”, Retrieved From: https://www.dnsstuff.com/virtual-machine-resource-allocation, Jul. 22, 2021, 11 Pages. [cited by applicant]
Garg, et al., “SLA-based Virtual Machine Management for Heterogeneous Workloads in a Cloud Datacenter”, In Journal of Network and Computer Applications, vol. 45, Oct. 2014, pp. 108-120. [cited by applicant]
International Search Report and Written Opinion received for PCT Application No. PCT/US2023/035457, mailed on Jan. 29, 2024, 17 pages. [cited by applicant]
Jaspreet et al., “Cloud Resource Management Optimization: Taxonomy and Research Challenges”, Institute of Electrical and Electronics Engineers, Jun. 4-5, 2020, pp. 1133-1138. [cited by applicant]
International Preliminary Report Patentability received for PCT Application No. PCT/US2023/035457, mailed on May 30, 2025, 10 pages. [cited by applicant]