FR3091769A1 - Un procédé et un système pour gérer les ressources informatiques d’une plateforme informatique en nuage - Google Patents

Un procédé et un système pour gérer les ressources informatiques d’une plateforme informatique en nuage Download PDF

Info

Publication number
FR3091769A1
FR3091769A1 FR1900346A FR1900346A FR3091769A1 FR 3091769 A1 FR3091769 A1 FR 3091769A1 FR 1900346 A FR1900346 A FR 1900346A FR 1900346 A FR1900346 A FR 1900346A FR 3091769 A1 FR3091769 A1 FR 3091769A1
Authority
FR
France
Prior art keywords
instances
cluster
instance
software application
module
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR1900346A
Other languages
English (en)
Other versions
FR3091769B1 (fr
Inventor
Sylvain BONNAL CONDUZORGUES
Gilles Gagniard
Olivier Favorel
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Amadeus SAS
Original Assignee
Amadeus SAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Amadeus SAS filed Critical Amadeus SAS
Priority to FR1900346A priority Critical patent/FR3091769B1/fr
Priority to CN202080009341.9A priority patent/CN113302591A/zh
Priority to PCT/EP2020/050927 priority patent/WO2020148342A1/fr
Priority to EP20700503.4A priority patent/EP3895007A1/fr
Priority to US17/422,694 priority patent/US20220121467A1/en
Publication of FR3091769A1 publication Critical patent/FR3091769A1/fr
Application granted granted Critical
Publication of FR3091769B1 publication Critical patent/FR3091769B1/fr
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

La présente invention concerne un système pour gérer les ressources informatiques d’une plateforme informatique en nuage comprenant une pluralité de groupements de machines virtuelles (VM), chacun comprenant une pluralité d’instances de machine virtuelle (VM), chacune étant configurée pour exécuter au moins une instance d’application logicielle. Le système comprend un module de surveillance configuré pour déterminer une valeur d’utilisation de ressource pour chaque instance VM et un module d’élasticité configuré pour ajuster le nombre d’instances VM et/ou d’instances d’applications logicielles dans le groupement VM. Le module de surveillance est configuré pour déterminer, sur la base des requêtes d’utilisateurs reçues par une interface de communication, une valeur d’utilisation de ressource du groupement qui est utilisée par le module d’élasticité pour ajuster le nombre d’instances VM et/ou d’instances d’applications logicielles afin de maintenir la valeur d’utilisation de ressource de chaque instance VM dans les limites d’un champ de valeurs ciblé. Figure pour l’abrégé : Fig. 1

Description

A method and a system for managing the computing resources of a cloud computing platform
The present invention relates to a method and a system for managing the computing resources allocated to a cloud computing platform running at least one software application.
Over the past few years, the distribution of services/applications through a cloud computing platform has become mainstream. The main advantage of cloud computing is that it abstracts most of the concerns relating to the physical hardware and/or software resources, thus enabling users to concentrate on their core business instead of focusing on the maintenance and deployment of data centres. The cloud computing model is based on providing a user with access to physical computing resources on a pay-as-you-go basis, whereby the user pays for the started computing resources to run the services/applications on the cloud computing platform. As the demand for the cloud operated services/applications changes, the underline physical resources can be dynamically scaled to meet the computing needs of the cloud services/applications at any given time.
Operating a data centre can be highly expensive, and thus to make the cloud computing model profitable, cloud computing providers, also referred to as Infrastructure as a Service (IaaS) providers, are using the concept of virtualisation to allow multiple users to share the same underline physical computing resources. Virtualisation enables the partition of the hardware and/or software resources into isolated Virtual Machine (VM) instances, which can be assigned to a user on demand to run applications and/or services on the cloud computing platform.
In general, the quality of service and cost for running a cloud service and/or application on the cloud computing platform, is highly dependent on the physical computing resources consumed by the allocated VM instances. Therefore, it is essential to efficiently manage the allocation of physical resources according to the demand experienced by the service and/or application, to maintain a balance between quality of service and cost.
In existing solutions, the allocation of physical resources is generally based on monitoring the resource utilization, e.g. CPU utilisation, of each VM instance, running the cloud service and/or application. The utilisation of the computing resources allocated to each VM instance would vary according to the demand of the service and/or application hosted therein. However, monitoring the utilization of each VM instance may lead to a delayed response in scaling the computing resources to meet variation in user demand, which may cause the VM instances to be operated outside of their target value range for a period of time, leading to a reduced level of service and/or higher cost.
Therefore, one of the main concerns associated with the use of cloud computing platforms is the need to ensure that the allocated physical resources are dynamically and quickly adjusted to meet variations in the user demand experienced by the service and/or application.
An object of the present invention is to provide a method and a system for managing the physical computing resources, hardware and/or software, of a cloud computing platform so that they are quickly and dynamically adjusted according to user demand variations experienced by the service and/or application.
According to a first aspect of the present invention, a system for managing the computing resources of a cloud computing platform comprising a plurality of Virtual Machine (VM) clusters each comprising a plurality of Virtual Machine (VM) instances, each VM instance being provisioned on at least one host device of at least one service provider and configured to run at least one software application instance, the cloud platform is accessible via a communication interface configured to receive user requests for accessing at least one software application running on at least one of the plurality of VM clusters. The system comprises: a monitoring module configured for determining a resource utilisation value for each VM instance in the VM cluster; and an elasticity module configured for adjusting the number of VM instances and/or software application instances in the VM cluster by requesting the provision or deletion of VM and/or software application instances so that the resource utilisation value of each VM instance in the VM cluster is maintained within a target value range; wherein the monitoring module is configured to determine, based on the user requests received at the communication interface, a cluster resource utilisation value; wherein the elasticity module is configured for adjusting the number of VM instances and/or software application instances based on at least the cluster resource utilisation value to maintain the resource utilisation value of each VM instance within the target value range.
It has been found that by adjusting the number of VM instances and/or software application instances based on at least the cluster resource utilisation value, has the advantage that the allocated computing resources can be more efficiently scaled to meet the demand of provided cloud service and/or application compared to existing solutions. Scaling of computing resources may involve the allocation and/or deallocation of computing resources e.g. processors, and/or memory, from at least one Infrastructure as a Service (IaaS) provider to the VM cluster by increasing and/or reducing the number of VM instances and/or software application instances in the desired VM cluster according to at least the cluster resource utilisation value. In the present invention, the cluster resource utilisation value is determined based on the user requests received at the communication interface for a requested service and/or application. The cluster resource utilisation value may indicate the utilisation of the VM cluster resources, which may be determined based a comparison between the incoming user requests and the resource configuration of the VM cluster, e.g. the number of VM and/or software application instances. The elasticity module, based on the cluster utilisation value, may quickly react to variations in the user demand by adjusting the number of VM instances and/or software instances in the VM clusters to meet the demand indicated by the incoming user requests. The elasticity module may use the resource utilisation value of each VM instance to optimise the scaling of the computing resources further so that it closely matches the user demand for the application. As a result, with the present invention, it is possible to quickly and dynamically scale the computing resources of the cloud computing platform to meet variations in the user demand for the hosted application and/or service, thus maintaining the desired quality of service and cost at the desired level.
According to embodiments of the present invention, the monitoring module is configured to determine the cluster resource utilisation value based on incoming traffic generated by the user requests received at the communication interface. For example, the monitoring module may be configured to extract from the incoming user requests a set of key performance indicators associated with the requested software application instance and accordingly determine, based on the resource configuration of the VM cluster running the requested software application instance, the cluster resource utilisation value.
It has been found that by monitoring and analysing the traffic generated by the incoming user requests, it is possible to determine a cluster resource utilisation value, which can be used by the elasticity module to determine whether the VM instances and/or software instances of the VM clusters need to be adjusted. For example, the monitoring module may process the user requests to extract a set of key performance indicators such the type of software applications being requested, the CPU and memory requirements associated with the requested software application instance, and/or a duration of a user session, which session duration may be based on historical information. The monitoring module, based on extracted key performance indicators, and/or the resource configuration of each VM cluster, and/or the volume of user requests may determine the cluster resource utilisation value.
According to embodiments of the present invention, the elasticity module is configured to provision VM instances based on a VM configuration template stored in a system database. The configuration template comprises configuration data for the VM instances at least including CPU and memory allocation requirements. For example, the VM configuration template may comprise configuration data for configuring, depending on the requirements of the application, a short-term performance VM instance, which is provisioned to deal with short outburst of incoming user requests, and a long-term VM instances, which is provisioned to deal with long-term outbursts of incoming user requests.
Configuration templates ensure that VM instances are provisioned from the infrastructure service providers with a predetermined configuration. With configuration templates, system administrators can save a baseline configuration for any software application instance. Thus, a system administrator can create a template of baseline server configurations to expedite the deployment of servers in the cloud computing environment. Configuration templates can be created for file servers, application servers or Web servers or even "small" or "large" server configurations. It should be noted that different configuration templates may be used for the provisioning of VM instances with different configurations. The configuration template may comprise configuration data for configuring at least two types of VM instances, a short-term and a long-term performance VM instances. The short-term performance VM instance may be provisioned to deal with short outbursts of incoming user traffic and/or when an issue is encountered with a VM instance in the VM cluster. The long-term performance VM instance may be provisioned when establishing a base-line configuration for the VM cluster, or to deal with an increase in the incoming user traffic. Short-term performance VM instances may have short-term stability, and may be terminated at a short notice. Long-term performance VM instances may have long-term stability, and may be used for a prolonged period of time. The elasticity module may decide whether to provision short-term or long-term performance VM instances based on the cluster resource utilisation value, which relates to the volume of user requests received at the communication interface module.
According to embodiments of the present invention, the elasticity module comprises an application control module configured to adjust the number of software application instances in the VM clusters, and a VM control module configured to adjust the number of VM instances in the VM clusters.
By providing the application control module and VM control module, allows for the software application instances to be separately adjusted from the VM instances. In this way, variation in the user demand can be met in a more flexible manner. For example, as long as the resource utilisation value of the VM instances remains within the target value, it is possible only to increase or decrease the software application instances in the VM cluster to meet variations in the user demand for the desired application. Once the resource utilisation value of the VM instances reaches or exceeds the target value, then the VM control module may adjust the number of VM instances in the cluster, thus adjusting the underlying computing resources. The process can be repeated until the physical resources are at the correct level to handle the incoming traffic of user requests.
According to embodiments of the present invention, the elasticity module comprises a service provider selection module configured to select a service provider for hosting the VM instances in the VM cluster based on a set of provisioning criteria, which at least include the provisioning cost, the availability of computing resource, reliability, data security, and geographical location of the host devices. The selection module may be configured to determine the availability of each service provider for provisioning a VM instance by periodically issuing a test request for the provisioning of VM instances.
It has been found that the provision of a service provider selection module has the advantage that the VM instances can be quickly provisioned on different service providers depending on the requirements of the software application requested by the user. Provisioning criteria may be associated with a weighting factor that may guide the selection of a service provider for provisioning the VM instances. An administrator may define the provisioning criteria and associated weighting factors.
According to embodiments of the present invention, the system comprises a workload balancing module configured, based on the resource utilisation value, for distributing user requests in the VM cluster to maintain the resource utilisation value of each VM instance within the target value.
The workload balancing module ensures that the user requests are distributed among the software application instances in the VM cluster to maintain the resource utilisation experienced by each VM instance within a target value. The workload balancing module may be in the form of an Enterprise Service Bus (ESB) or another system with the desired functionality. The workload balancing module may distribute the workload based on the resource utilisation value of each VM instance. The computing resources of each VM cluster may be optimised by reallocating software application instances to VM instances that have the resources to cope with running additional software application instances, and their resource utilisation value is below or within the target value. By reallocating the software instances, it may be possible to reduce the number of VM instances operating the VM cluster, leading to cost savings while maintain the required quality of service.
According to embodiments of the present invention, the workload balancing module is configured for detecting the location of the users and accordingly distributing the user requests to VM instances provisioned on host devices located closer to each user.
By directing the user requests to VM instances provisioned on a hosted device located close to the location of the user has the advantage of increasing the speed of the software application and reduce the time required for propagating data between the users and the software application instances.
According to embodiments of the present invention, the workload balancing module comprises a data segregation logic configured to segregate the data processed by the software application instance into a public portion and private portion, the workload balancing module being configured for propagating at least the private portion of the requested software application to VM instances provisioned on a host device meeting the security criteria imposed by the software application.
The data segregation logic ensures that private data is handled by software applications run on VM instances that are hosted on host devices meeting the required privacy and security criteria to ensure that authorised users only access private data.
According to embodiments of the present invention, at least one of the VM clusters is configured to run a software application for determining the availability of travel products from a plurality of travel provider based on data received from at least a travel management system.
According to embodiments of the present invention, at least one of the VM clusters is configured to run a software application for pricing travel products from different travel service providers based on data received from at least a travel management system.
According to a second aspect of the present invention a method may be provided method for managing the computing resources of a cloud computing platform comprising a plurality of Virtual Machine (VM) clusters each comprising a plurality of Virtual Machine (VM) instances, each VM instance being provisioned on at least one host device of at least one service provider and configured to run at least one software application instance, the method comprising the steps of: receiving at a communication interface user requests for accessing at least one software application running on one of the pluralities of VM clusters of the cloud computing platform; determining by means of a monitoring module a resource utilisation value for each VM instance in the VM cluster; and adjusting by means of an elasticity module the number of VM instances and/or software application instances in the VM cluster by requesting the provision or deletion of VM and/or software application instances so that the resource utilisation value experienced by each of the VM instances in the VM cluster is maintained within a target value range; wherein the monitoring module is configured to determine, based on the user requests received at the communication interface, a cluster resource utilisation value; wherein the elasticity module is configured for adjusting the number of VM instances and/or software application instances based on at least the cluster resource utilisation value to maintain the resource utilisation value of each VM instance within the target value range.
The following drawings are provided as an example to explain further and describe various aspects of the invention:
shows an exemplified system according to embodiments of the present invention.
shows an example of a VM cluster according to embodiments of the present invention.
shows an example of a monitoring module according to embodiments of the present invention.
shows an example of an elasticity module according to embodiments of the present invention.
shows an example of a resource utilisation balancing module according to embodiments of the present invention.
shows an example of a cloud computing platform configured to run a plurality of applications according to embodiments of the present invention.
The present invention will be illustrated using the exemplified embodiments shown in the figures 1 to 6, which will be described in more detail below. It should be noted that any references made to dimensions are only indicative and do not restrict the invention in any way. While this invention has been shown and described with reference to certain illustrated embodiments thereof, it will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the scope of the invention. Furthermore, while the invention has been described with references to a particular system and/or a method for managing the computing resources of a cloud computing platform, it should be understood by those skilled in the art that changes in form and details may be made to facilitate other types of method and/or systems in related fields without departing from the scope of the invention.
Figure 1 shows an example of a system 200 for managing the computing resources of a cloud computing platform 100 according to embodiments of the present. The cloud computing platform 100 may comprise a communication interface 110 configured to receive requests from a plurality of users 150 through a network 160, e.g. the internet, for accessing at least one application instance 122 running on at least one Virtual Machine (VM) cluster 120, as shown in figure 2. Each VM cluster 120 in the cloud computing platform 200 comprises a plurality of Virtual Machine (VM) instances 121, each arranged to run at least one software application instance 122, as shown in figure 2. The VM instances 121 may be provisioned on a physical host server of an Infrastructure as a Service (IaaS) provider 170 and allocated physical computing resources, e.g. CPU, memory, Input/output devices, peripherals, operating software, and the like to support the operation of the software application instances 122 running on the VM instances 121. The exemplified system 200 of the present invention may be provided with a monitoring module 210 configured to determine at least a resource utilisation value for each VM instance 121 in the VM clusters 120, and a cluster resource utilisation value for each VM cluster 120 in the cloud computing platform 100. The VM instance resource utilisation value may indicate the utilisation of the underlying physical computing resources, e.g. CPU utilisation, memory utilisation, allocated to each VM instance 121 in each VM cluster 120. The VM cluster resource utilisation value may indicate the utilisation of the VM cluster resources, which may be determined based a comparison between the incoming user requests and the resource configuration of the VM cluster, e.g. the number of VM and/or software application instances. The VM instance resource utilisation value may be determined based on information obtained directly from the VM instances 121, e.g. CPU utilisation, while the VM cluster resource utilisation value may be determined based on information extracted from the incoming user requests received at the communication interface module 110. Each VM instance 121 and/or each VM cluster may be provided with a target resource utilisation value e.g. a threshold, which when reached and/or exceed would indicate that the resources allocated to the cloud platform and/or the configuration of the VM cluster 120 would need to be adjusted to meet the user demand. For this purpose an elasticity module 220 is provided, which is configured based on the cluster resource utilisation value, to adjust the number of VM instances and/or software instances so as to maintain the VM instances 121 and/or each VM cluster within their respective target resource utilisation values. The elasticity module 220 may adjust the physical computing resources allocated to each VM cluster 120 by requesting, via a communication network 160, the provisioning or deletion of VM instances from the host devices of the respective IaaS providers 170.
An example according to the present invention will be given here, for illustration purpose only. A VM cluster 120 may be provided with thirty VM instances 121, each assigned a resource utilisation value associated with the at least the CPU utilisation which should be kept within a target value range, e.g. between 50 to 80 %, of which 50% is the low band, and 80% is the high band. For the VM cluster 120, the VM cluster resource utilisation may be associated with the traffic of incoming user request received at the communication interface. According to this example, if the monitoring module 210 detects that the resource utilisation value of at least one VM instance 121 is above a predetermined threshold, e.g. the CPU utilisation is at 100%, the elasticity module 220 may then decide to increase the VM instances 121 in the VM cluster 120 to ensure that the resource utilisation of the VM instance 121 is brought back within the target value range. It is also possible to decide such an increase only if the CPU utilisation of each of the VM instances 121 reaches a predetermined threshold, e.g. a CPU utilisation of at least 50%, the low band value. Once the elasticity module 220 has decided to increase the number of VM instances 121, the exact number of VM instances 121 to be added to the VM cluster 120 would be determined using the traffic of incoming user requests received at the communication interface 110. Each VM instance 121 may be configured to manage a predetermined amount of incoming user traffic, which may be defined by the data size of the user requests or the number of user requests received at the communication interface, e.g. 100 user requests/per second. The elasticity module 220, knowing the amount of incoming user traffic that can be handled by each VM instance 121, and given an incoming user traffic received at the communication interface 110 of say 3300 user requests, would determine, based on a ratio calculation, that the number of VM instances 121 in the VM cluster 120 should be increased from thirty to thirty-three in order to maintain the VM cluster utilisation value within the target value. The calculation may be based in dividing the incoming user traffic with the amount of traffic that can be handled by each VM, e.g. 3300/100 = 33 VM instances 121. In the case, where at least one of the VM instances 121 has reached or exceeded its resource utilisation value, but the ratio calculation indicates that the number of VM instances 121 required to handle the incoming user traffic is less than the number of VM instances 121 in the VM cluster 120, then the elasticity module 220 may still decide to increase the number of VM instances 121 by a certain amount e.g. one, in order to bring the resource utilisation value of the affected VM instances within the target value. Moreover, if only a certain amount of VM instances 121 experience high resource utilisation, it may be possible to increase the software application instances 122 and/or redistribute the incoming traffic request among the VM instances 121 in the VM cluster in order to bring the resource utilisation value of the affected VM instances within the target value.
Figure 2 shows an example of a VM cluster 120 implementation according to embodiments of the present invention. The VM cluster 120 may be provided with a plurality VM instances 121 each configured to run at least one software application instance 122, which may be part of a distributed software application. In another example, each VM instance 121 may be configured to run different software application instances 122. Each VM cluster may be provided with a workload balancing module 180, which may be configured to distribute the user requests among the VM instances 121 running the requested software application 122 so as to maintain the resource utilisation value of each VM instance 121 within its target value range. The target resource utilisation value for the VM instances 121, maybe a user-defined value or may be established during provisioning.
Figure 3 shows an example of a monitoring module 210 according to embodiments of the present invention. The monitoring module 210 may be provided with a processing module 211 for processing the user requests to extract a set of key performance indicators, which may be used to determine the cluster resource utilisation value. It should be noted that the key performance indicators may also be determined in the communication interface module 110. The key performance indicators may at least include, but not limited, to the type of software applications being requested, the CPU and memory requirements associated with the requested software application instance, and/or a duration of a user session, which session duration may be based on historical information. The monitoring module 210, may be provided with a VM cluster utilisation module 212 which may be configured for determining the cluster resource utilisation value, based on the extracted key performance indicators and the configuration of each VM cluster, e.g. the number of VM instances 121 and/or software application instances 122. The monitoring module 210 may be provided with a VM instance utilisation module 213, which may be configured for monitoring each VM instance 121 to determine a resource utilisation value, which may be indicative of how the allocated computing resources, e.g. CPU allocation, memory allocation, and the like are utilised by the software application instance 122. A database 214 may be provided to store the VM instance resource utilisation values, cluster utilisation values, VM cluster configuration data received from the elasticity module, VM cluster target value ranges, and VM instance target value ranges, and other information.
Figure 4 shows an example of an elasticity module 220 according to embodiments of the present invention. The elasticity module 220 may be provided with a VM instance control module 221, which may be configured to adjust the number of VM instances 121 in the VM cluster 120 by allocating or deallocating computing resources from the IaaS provider 170. An application instance control module 222 may be provided to adjust the number of software application instances 122 in the VM cluster 120. For example, in the case of a distributed cloud application, the number of software instances 122 may be increased or reduced, depending on the resource utilisation value of each VM instance 121, to handle the incoming user requests. An Infrastructure as a Service (IaaS) provider selection module 181 may be provided to select the host devices for provisioning VM instances 121. Each IaaS service provider 170 may have different service characteristics when it comes to the cost of provisioning, reliability, data security, availability, and the like. Therefore, depending on the requirements of the cloud operated application it may be necessary to select an IaaS provider 170 to provision the VM instances 121. In some cases, it may be necessary to provision instances from more than one IaaS provider, e.g. due to the location of the host devices, availability of resources, security. The service provider selection module 223 may be provided with a set of criteria for selecting an IaaS provider 170. The criteria may be prioritised using a weighting factor so that the most suitable IaaS provider 170 is selected that satisfy the requirements of the software application. For example, if cost and availability are identified as the most important criteria, then the cheapest IaaS provider 170 with available resources will always be selected. The IaaS provider selection module 223 may periodically test the availability of each IaaS provider 170 by issuing a test provisioning request. The provisioning of the VM instances may be performed automatically based on a configuration template, which includes configuration data related to the physical resources to be allocated. More than one configuration template may be used for provisioning VM instances 121 depending on the requirements of the software application and/or variations in the user demand. The configuration templates may be stored in a template database 224. The VM clusters 120 of the cloud computing platform 100 may contain VM instances 121 provisioned from different IaaS providers 170 using different configuration templates. The configuration templates may comprise configuration data for configuring at least two types of VM instances 121, a short-term and a long-term performance VM instances. The short-term performance VM instance may be provisioned to deal with short outbursts of incoming user traffic and/or when an issue is encountered with a VM instance 121 in the VM cluster 120 e.g. a VM instance is unexpectedly terminated. The long-term performance VM instance may be provisioned when establishing a base-line configuration for the VM cluster 120, or to deal with an increase in the incoming user traffic. Short-term performance VM instances may have short-term stability, and may be terminated at a short notice e.g. their underlying computing resources may be pulled by the IaaS provider 170 to another service without prior notice. Long-term performance VM instances may have long-term stability, and may be used for a prolonged period of time. Long-term VM instances may be provisioned on IaaS providers 170 that guarantee stability and/or reliability of the computing resources. The elasticity module 220 may decide whether to provision short-term or long-term performance VM instances 121 based on the cluster resource utilisation value, which relates to the volume of user requests received at the communication interface module.
Figure 5 shows an exemplified implementation of a workload balancing module 180 according to embodiments of the present invention. The workload balancing module 180 may be in the form of an Enterprise Service Bus (ESB) or another system with similar functionality. The workload balancing module 180 may be configured to distribute the workload generated from the user requests among the VM instances 121 of the VM cluster, so as to maintain the resource utilisation value of each VM instance 121 within its target value. The workload balancing module 180 may be distribute the workload based on the resource utilisation value of each VM instance 121. The computing resources of each VM cluster 120 may be optimised by reallocating software application instances 122 to VM instances 121 that have the resources to cope with running additional software application instances 122, and their resource utilisation value is below or within the target value. By reallocating the software instances, it may be possible to reduce the number of VM instances operating the VM cluster 120, leading to cost savings while maintain the required quality of service. The reallocation of the software application instances 122 may be performed by the elasticity module 220 and/or the workload balancing module 180. The workload balancing module 180 may be provided with a user location module 182 which is configured to identify the location of the user issuing the request for accessing the application, e.g. via the user IP address. A data propagation module 183 may be provided for propagating the data, based on the identified location, to VM instances hosted on a host device that is located closer to the user location, which may reduce the latency experienced by the user for accessing the desired application. A segregation logic 181 may b provided for separating the data processed, and/or generated, and/or transmitted by the application and/or the user into a public portion and a private portion. The data propagation module 183 may be configured for directing at least the private data portion of the data to VM instances 121 hosted on host devices of an IaaS provider 170 having the requirements security attributes for handling data securely.
Figure 6 shows an exemplified cloud architecture providing travel related services according to embodiments of the present invention. As shown in figure 6, in a cloud platform 100 a plurality of travel applications may be provided, each configured to perform a specific task. For example, the cloud platform 100 may be configured as a travel shopping platform, which is accessible by users 150 through a network 160, e.g. the internet. The travel shopping platform 100 may be provided with a flight selection engine 400, which is configured for enabling the user to search for flights or other travel products from different travel providers. The users 150 may enter a range of criteria in a search engine, e.g. dates, time, price, etc. and the flight selection engine 300 may search, through a network gateway 700, in a fare inventory schedule 600 of an external travel management system e.g. Global distribution System (GDS), to identify flights matching the user search criteria, which are forwarded to the users for selection. The users may select a desired flight, the information of which is transmitted to a fare processing engine 300, whereby a price for the travel product is calculated. Once the fare data is calculated, the availability of the fare needs to be verified. This step may be performed by a fare availability engine 500 application. When the availability of the fare is verified, then it can be forwarded to the user for booking. Traditionally, these types of applications were part of travel management system running on a physical computing server device. However, with the advent of cloud computing a big part of the travel booking process may be performed on a cloud platform of an IaaS provider, thus alleviating the needs for maintaining large data centres. For security, a part of the process involving the storing of critical data, e.g. the travel fares negotiated prices, and the like may still be operated by an actual hosted device of a travel service provider.
In general, the routines executed to implement the embodiments of the invention, whether implemented as part of an operating system or a specific application, component, program, object, module or sequence of instructions, or even a subset thereof, may be referred to herein as "computer program code," or simply "program code." Program code typically comprises computer readable instructions that are resident at various times in various memory and storage devices in a computer and that, when read and executed by one or more processors in a computer, cause that computer to perform the operations necessary to execute operations and/or elements embodying the various aspects of the embodiments of the invention. The computer readable program instructions for carrying out operations of the embodiments of the invention may be, for example, assembly language or either source code or object code is written in any combination of one or more programming languages.
The program code embodied in any of the applications/modules described herein is capable of being individually or collectively distributed as a program product in a variety of different forms. In particular, the program code may be distributed using the computer readable storage medium having the computer readable program instructions thereon for causing a processor to carry out aspects of the embodiments of the invention.
Computer readable storage media, which is inherently non-transitory, may include volatile and non-volatile, and removable and non-removable tangible media implemented in any method or technology for storage of information, such as computer-readable instructions, data structures, program modules, or other data. Computer readable storage media may further include RAM, ROM, erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other robust state memory technology, portable compact disc read-only memory (CD-ROM), or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to store the desired information and which can be read by a computer. A computer-readable storage medium should not be construed as transitory signals per se (e.g., radio waves or other propagating electromagnetic waves, electromagnetic waves propagating through a transmission media such as a waveguide, or electrical signals transmitted through a wire). Computer readable program instructions may be downloaded to a computer, another type of programmable data processing apparatus, or another device from a computer readable storage medium or an external computer or external storage device via a network.
Computer readable program instructions stored in a computer readable medium may be used to direct a computer, other types of programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer readable medium produce an article of manufacture including instructions that implement the functions/acts specified in the flowcharts, sequence diagrams, and/or block diagrams. The computer program instructions may be provided to one or more processors of a general-purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the one or more processors, cause a series of computations to be performed to implement the functions and/or acts specified in the flowcharts, sequence diagrams, and/or block diagrams.
In certain alternative embodiments, the functions and/or acts specified in the flowcharts, sequence diagrams, and/or block diagrams may be re-ordered, processed serially, and/or processed concurrently without departing from the scope of the invention. Moreover, any of the flowcharts, sequence diagrams, and/or block diagrams may include more or fewer blocks than those illustrated consistent with embodiments of the invention.

Claims (15)

  1. A system for managing the computing resources of a cloud computing platform comprising a plurality of Virtual Machine (VM) clusters each comprising a plurality of Virtual Machine (VM) instances, each VM instance being provisioned on at least one host device of at least one service provider and configured to run at least one software application instance, the cloud platform being accessible via a communication interface configured to receive user requests for accessing at least one software application running on at least one of the plurality of VM clusters , the system comprising:
    a monitoring module configured for determining a resource utilisation value for each VM instance in the VM cluster; and
    an elasticity module configured for adjusting the number of VM instances and/or software application instances in the VM cluster by requesting the provision or deletion of VM and/or software application instances so that the resource utilisation value of each VM instance in the VM cluster is maintained within a target value range;
    wherein the monitoring module is configured to determine, based on the user requests received at the communication interface, a cluster resource utilisation value;
    wherein the elasticity module is configured for adjusting the number of VM instances and/or software application instances based on at least the cluster resource utilisation value to maintain the resource utilisation value of each VM instance within the target value range.
  2. A system according to claim 1, wherein the monitoring module is configured to determine the cluster resource utilisation value based on traffic of user requests received at the communication interface.
  3. A system according to claim 2, wherein the monitoring module is configured to extract from the user requests a set of key performance indicators associated with the requested software application instance and accordingly determine, based on the configuration of the VM instances in the VM cluster running the requested software application instance, the cluster resource utilisation value.
  4. A system according to any one of the preceding claims, wherein the elasticity module is configured to provision VM instances based on at least one VM configuration template stored in a system database.
  5. A system according to claim 4, wherein the configuration template comprises configuration data for the VM instances at least comprising CPU and memory allocation requirements.
  6. A system according to claim 4 or 5, wherein the VM configuration template may comprise configuration data for configuring, depending on the requirements of the application, a short-term performance VM instance, which is provisioned to deal with short outbursts of incoming user requests, and a long-term VM instances, which is provisioned to deal with long-term outbursts of incoming user requests.
  7. A system according to any one of the preceding claims, wherein the elasticity module comprises an application control module configured to adjust the number of software application instances in the VM clusters, and/or a VM instance control module configured to adjust the number of VM instances in the VM clusters.
  8. A system according to any one of the preceding claims, wherein the elasticity module comprises a service provider selection module configured to select a service provider for hosting the VM instances in the VM cluster based on a set of criteria, which at least include the provisioning cost, the availability of computing resource, reliability, data security, and geographical location of the host devices.
  9. A system according to claim 8, wherein the service provider selection module is configured to determine the availability of each service provider for provisioning a VM instance by periodically issuing a test provisioning request.
  10. A system according to any one of the preceding claims, wherein each VM cluster comprises a workload balancing module configured, based on the resource utilisation value, for distributing user requests in the VM cluster to maintain the resource utilisation value of each VM instance within the target value.
  11. A system according to claim 10, wherein the workload balancing module is configured for detecting the location of the users and accordingly distributing the user requests to VM instances provisioned on host devices located closer to each user.
  12. A system according to claim 10 or claim 11, wherein the workload balancing module comprises a data segregation logic configured to segregate the data processed by the software application instance into a public portion and private portion, the workload balancing module being configured for propagating at least the private portion of the requested software application to VM instances provisioned on a host devices meeting the security criteria imposed by the software application.
  13. A system according to any one of the preceding claims, wherein at least one VM cluster is configured to run a software application instance for determining the availability of travel products from a plurality of travel provider based on data received from at least a travel management system.
  14. A system according to any one of the claims 1 to 12, wherein at least one of the VM clusters is configured to run a software application instance for pricing travel products from different travel service providers based on data received from at least a travel management system.
  15. A method for managing the computing resources of a cloud computing platform comprising a plurality of Virtual Machine (VM) clusters each comprising a plurality of Virtual Machine (VM) instances, each VM instance being provisioned on at least one host device of at least one service provider and configured to run at least one software application instance, the method comprising the steps of:
    receiving at a communication interface user requests for accessing at least one software application running on at least one of the plurality of VM clusters of the cloud computing platform;
    determining by means of a monitoring module a resource utilisation value of each VM instance in the VM cluster; and
    adjusting by means of an elasticity module the number of VM instances and/or software application instances in the VM cluster by requesting the provision or deletion of VM and/or software application instances so that the resource utilisation value experienced by each of the VM instances in the VM cluster is maintained within a target value range;
    wherein the monitoring module is configured to determine, based on at least the user requests received at the communication interface, a cluster resource utilisation value;
    wherein the elasticity module is configured for adjusting the number of VM instances and/or software application instances based on at least the cluster resource utilisation value to maintain the resource utilisation value of each VM instance within the target value range.
FR1900346A 2019-01-15 2019-01-15 Un procédé et un système pour gérer les ressources informatiques d’une plateforme informatique en nuage Active FR3091769B1 (fr)

Priority Applications (5)

Application Number Priority Date Filing Date Title
FR1900346A FR3091769B1 (fr) 2019-01-15 2019-01-15 Un procédé et un système pour gérer les ressources informatiques d’une plateforme informatique en nuage
CN202080009341.9A CN113302591A (zh) 2019-01-15 2020-01-15 管理云计算平台的计算资源的方法及系统
PCT/EP2020/050927 WO2020148342A1 (fr) 2019-01-15 2020-01-15 Procédé et système de gestion des ressources informatiques d'une plateforme informatique en nuage
EP20700503.4A EP3895007A1 (fr) 2019-01-15 2020-01-15 Procédé et système de gestion des ressources informatiques d'une plateforme informatique en nuage
US17/422,694 US20220121467A1 (en) 2019-01-15 2020-01-15 A method and a system for managing the computing resources of a cloud computing platform

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1900346A FR3091769B1 (fr) 2019-01-15 2019-01-15 Un procédé et un système pour gérer les ressources informatiques d’une plateforme informatique en nuage
FR1900346 2019-01-15

Publications (2)

Publication Number Publication Date
FR3091769A1 true FR3091769A1 (fr) 2020-07-17
FR3091769B1 FR3091769B1 (fr) 2022-03-25

Family

ID=68210840

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1900346A Active FR3091769B1 (fr) 2019-01-15 2019-01-15 Un procédé et un système pour gérer les ressources informatiques d’une plateforme informatique en nuage

Country Status (5)

Country Link
US (1) US20220121467A1 (fr)
EP (1) EP3895007A1 (fr)
CN (1) CN113302591A (fr)
FR (1) FR3091769B1 (fr)
WO (1) WO2020148342A1 (fr)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11115322B1 (en) * 2019-03-27 2021-09-07 Amazon Technologies, Inc. Stateful network router for managing network appliances
US11928511B2 (en) * 2021-10-28 2024-03-12 Dell Products L.P. Systems and methods for prioritizing memory allocation for isolated computing workspaces executing on information handling systems
CN114666215B (zh) * 2022-03-15 2023-09-08 上海道客网络科技有限公司 一种应用跨集群弹性伸缩的方法、系统、介质和电子设备
US20230362234A1 (en) * 2022-05-04 2023-11-09 Microsoft Technology Licensing, Llc Method and system of managing resources in a cloud computing environment
CN114721785B (zh) * 2022-06-07 2022-09-20 武汉四通信息服务有限公司 虚拟机的软件应用库的配置方法、装置、设备及存储介质
CN116827831B (zh) * 2023-08-30 2023-11-17 中航金网(北京)电子商务有限公司 一种负载状态探测系统、方法及计算机可读存储介质
CN117435298B (zh) * 2023-10-16 2024-05-28 常州大数据有限公司 一种基于大语言模型的数据中心能效智能调优云平台

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110258621A1 (en) * 2010-04-14 2011-10-20 International Business Machines Corporation Autonomic Scaling Of Virtual Machines In A Cloud Computing Environment
US20160162317A1 (en) * 2014-12-05 2016-06-09 International Business Machines Corporation Configuring monitoring for virtualized servers
US20180067778A1 (en) * 2014-11-13 2018-03-08 Telefonaktiebolaget Lm Ericsson (Publ) Elasticity for highly availabile applications

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8250213B2 (en) * 2009-11-16 2012-08-21 At&T Intellectual Property I, L.P. Methods and apparatus to allocate resources associated with a distributive computing network
US8793684B2 (en) * 2011-03-16 2014-07-29 International Business Machines Corporation Optimized deployment and replication of virtual machines
US8850442B2 (en) * 2011-10-27 2014-09-30 Verizon Patent And Licensing Inc. Virtual machine allocation in a computing on-demand system
EP2862077A4 (fr) * 2012-06-15 2016-03-02 Cycle Computing Llc Procédé et système de détection et de résolution automatiques de défauts d'infrastructure dans une infrastructure de nuage
US9305290B2 (en) * 2013-04-03 2016-04-05 Amy Carenza Employee vacation scheduling and payout system
US9781051B2 (en) * 2014-05-27 2017-10-03 International Business Machines Corporation Managing information technology resources using metadata tags
US9531799B2 (en) * 2014-06-19 2016-12-27 Vmware, Inc. Reducing restoration time for virtual machines
US10331467B2 (en) * 2014-07-16 2019-06-25 Vmware, Inc. System and method for performing universal resource management operations for different virtualized computing environments
US20180113748A1 (en) * 2016-10-21 2018-04-26 Hewlett Packard Enterprise Development Lp Automated configuration of virtual infrastructure
US10324765B2 (en) * 2017-01-20 2019-06-18 Microsoft Technology Licensing, Llc Predicting capacity of shared virtual machine resources
US10942760B2 (en) * 2017-02-03 2021-03-09 Microsoft Technology Licensing, Llc Predictive rightsizing for virtual machines in cloud computing systems

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110258621A1 (en) * 2010-04-14 2011-10-20 International Business Machines Corporation Autonomic Scaling Of Virtual Machines In A Cloud Computing Environment
US20180067778A1 (en) * 2014-11-13 2018-03-08 Telefonaktiebolaget Lm Ericsson (Publ) Elasticity for highly availabile applications
US20160162317A1 (en) * 2014-12-05 2016-06-09 International Business Machines Corporation Configuring monitoring for virtualized servers

Also Published As

Publication number Publication date
WO2020148342A1 (fr) 2020-07-23
CN113302591A (zh) 2021-08-24
US20220121467A1 (en) 2022-04-21
FR3091769B1 (fr) 2022-03-25
EP3895007A1 (fr) 2021-10-20

Similar Documents

Publication Publication Date Title
US20220121467A1 (en) A method and a system for managing the computing resources of a cloud computing platform
US10832205B2 (en) System and method for determining node order fulfillment performance
US8762525B2 (en) Managing risk in resource over-committed systems
US9336059B2 (en) Forecasting capacity available for processing workloads in a networked computing environment
US9251517B2 (en) Optimizing service factors for computing resources in a networked computing environment
US9178827B2 (en) Rate control by token buckets
US10162684B2 (en) CPU resource management in computer cluster
US8909769B2 (en) Determining optimal component location in a networked computing environment
US10430218B2 (en) Management of demand for virtual computing resources
US20150277987A1 (en) Resource allocation in job scheduling environment
US10705873B2 (en) Predictive virtual server scheduling and optimization of dynamic consumable resources to achieve priority-based workload performance objectives
US9110729B2 (en) Host system admission control
US20170344400A1 (en) Method and system for performance ticket reduction
US10841369B2 (en) Determining allocatable host system resources to remove from a cluster and return to a host service provider
US11144500B2 (en) Assignment of data within file systems
US10929190B2 (en) Heterogeneous resource reservation
US11755926B2 (en) Prioritization and prediction of jobs using cognitive rules engine
US11681556B2 (en) Computing system performance adjustment via temporary and permanent resource allocations
US20220156124A1 (en) Systems and methods for managing resources in a virtual desktop infrastructure
US10552586B1 (en) Systems, apparatus and methods for management of computer-based software licenses
US10129094B1 (en) Variable computing capacity
US11204795B2 (en) Method and a system for optimising virtual machine clusters of a cloud computing platform
US11803926B2 (en) Workload distribution optimizer
US20230125765A1 (en) Container pool management
US20220179709A1 (en) Scheduling jobs

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20200717

PLFP Fee payment

Year of fee payment: 3

PLFP Fee payment

Year of fee payment: 4

PLFP Fee payment

Year of fee payment: 5

PLFP Fee payment

Year of fee payment: 6