Brevet FR3091769A1 — publié le 20200717

Description Titre de l'invention : Un procédé et un système pour gérer les ressources informatiques d'une plateforme informatique en nuage [0001] La présente invention concerne un procédé et un système pour gérer les ressources informatiques affectées à une plateforme informatique en nuage exécutant au moins une application logicielle. [0002] Au cours des quelques dernières années, la distribution des services/applications via une plateforme informatique en nuage est devenue ordinaire. L'avantage principal de l'informatique en nuage est qu'elle se soustrait à la plupart des soucis liés au matériel physique et/ou aux ressources logicielles, permettant ainsi aux utilisateurs de se concentrer sur le coeur de leur activité plutôt que de se préoccuper de la maintenance et du déploiement de centres de données. Le modèle d'informatique en nuage est basé sur le l'octroi à un utilisateur d'un accès à des ressources informatiques physiques avec un mode de facturation permettant à l'utilisateur de payer les ressources informatiques au fur et à mesure qu'elles sont consommées pour faire fonctionner les services/applications sur la plateforme informatique en nuage. Au fur et à mesure que la demande pour les applications/services gérés en nuage évolue, les ressources spécifiques sous-jacentes peuvent être dimensionnées de façon dynamique pour satisfaire les besoins informatiques des services/applications en nuage à tout moment donné. [0003] Gérer un centre de données peut s'avérer extrêmement onéreux et donc, pour rendre le modèle d'informatique en nuage rentable, les fournisseurs d'informatique en nuage, également connus sous le nom dc fournisseurs d'infrastructure comme service (laaS), utilisent le concept de virtualisation permettant à dc multiples utilisateurs de partager les mêmes ressources physiques sous-jacentes. La virtualisation permet la partition dc ressources matérielles et/ou logicielles sous forme d'instances dc machines virtuelles isolées (VM) qui peuvent être attribuées à un utilisateur à la demande pour exécuter des applications et/ou des services sur la plateforme informatique en nuage. [0004] De façon générale, la qualité de service et dc coût pour exécuter un service et/ou une application en nuage sur la plateforme informatique en nuage est fortement dépendante des ressources informatiques physiques consommées par les instances VM attribuées. Par conséquent, il est essentiel de gérer avec efficacité l'affectation de ressources physiques selon la demande rencontrée pour le service et/ou l'application afin de maintenir un équilibre entre la qualité de service et le coût. [0005] Dans des solutions existantes, l'affectation de ressources physiques est généralement basée sur la surveillance de l'utilisation de la ressource, p. ex. l'utilisation de CPU, de chaque instance VM en cours exécutant le service et/ou l'application en nuage. 2 L'utilisation des ressources informatiques attribuées à chaque instance VM pourrait varier selon la demande du service et/ou de l'application qui y est hébergée. Cependant, la surveillance de l'utilisation de chaque instance VM peut conduire à un délai de réponse pour le dimensionnement des ressources informatiques afin de répondre aux variations de la demande des utilisateurs ce qui peut amener les instances VM à être gérées en dehors de leurs limites de valeur ciblée pendant un temps, générant un niveau de service réduit et/ou un coût plus élevé. [0006] Par conséquent un des soucis principaux associés à l'utilisation des plateformes in- formatiques en nuage est le besoin d'assurer que les ressources physiques attribuées sont ajustées rapidement et de façon dynamique afin de répondre aux variations de la demande des utilisateurs rencontrée pour le service et/ou l'application. [0007] Un objet de la présente invention est de fournir un procédé et un système pour gérer les ressources informatiques physiques, matérielles et/ou logicielles d'une plateforme informatique en nuage de sorte qu'elles soient rapidement et dynamiquement ajustées en fonction des variations de la demande des utilisateurs rencontrée pour le service et/ ou l'application. [0008] Selon un premier aspect de la présente invention, 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 machines virtuelles (VM), chaque instance VM étant provisionnée sur au moins un dispositif hôte d'au moins un fournisseur de services et étant configurée pour exécuter au moins une instance d'application logicielle, la platefonne en nuage étant accessible via une interface de communication configurée pour recevoir des requêtes d'utilisateurs pour accéder à au moins une application logicielle fonctionnant sur au moins un de la pluralité des groupements VM. Le système comprend : un module de surveillance configuré pour déterminer une valeur d'utilisation de ressource pour chaque instance VM dans le groupement VM ; et un module d'élasticité configuré pour ajuster le nombre d'instances VM et/ou d'instances d'applications logicielles clans le groupement VM en demandant le provisionnement ou la suppression d'instances VM et/ou d'instances d'applications logicielles de sorte que la valeur d'utilisation de ressource de chaque instance VM dans le groupement VM soit maintenue dans les limites d'un champ de valeurs ciblé ; dans lequel 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 ; dans lequel le module d'élasticité est configuré pour ajuster le nombre d'instances VM et/ou d'instances d'applications logicielles sur la base d'au moins la valeur d'utilisation de ressource du groupement afin de maintenir la valeur d'utilisation de ressource de chaque instance VM dans les limites du champs de valeurs ciblé. 3 [0009] Il a été constaté que le fait d'ajuster le nombre d'instances VM et/ou d'instances d'applications logicielles sur la base d'au moins la valeur d'utilisation de ressource du groupement a l'avantage de permettre le dimensionner-rient plus efficace des ressources informatiques qui sont affectées pour répondre à la demande de services et/ou d'applications fournis en nuage, comparé aux solutions existantes. Le dimensionnement des ressources informatiques peut impliquer l'affectation ou le retrait de ressources informatiques, p. ex. de processeurs et/ou de mémoire, d'au moins un fournisseur d'infrastructure en comme service (laaS) au groupement VM en augmentant et/ou en réduisant le nombre d'instances VM et/ou d'instances d'applications logicielles dans le groupement VM désiré en fonction d'au moins la valeur d'utilisation de ressource du groupement. Dans la présente invention, la valeur d'utilisation de ressource du groupement est déterminée sur la base des requêtes d'utilisateurs reçues par l'interface de communication pour un service et/ou pour une application faisant l'objet de la requête. La valeur d'utilisation de la ressource du groupement peut indiquer l'utilisation de la ressource du groupement VM qui peut être déterminée sur la hase d'une comparaison entre les requêtes d'utilisateurs entrantes et la configuration de la ressource du groupement VM, p. ex. le nombre d'instances VM et/ou d'instances d'applications logicielles. Le module d'élasticité, basé sur la valeur d'utilisation du groupement, peut réagir rapidement aux variations de la demande de l'utilisateur, en ajustant le nombre d'instances VM et/ou d'instances d'applications logicielles dans les groupements VM pour satisfaire la demande indiquée par les requêtes entrantes de l'utilisateur. Le module d'élasticité peut utiliser la valeur d'utilisation de ressource de chaque instance VM afin d'optimiser encore plus le dimensionnement des ressources informatiques de sorte qu'elles correspondent au plus près à la demande de l'utilisateur pour l'application. En conséquence, avec la présente invention il est possible de dimensionner rapidement et dynamiquement les ressources informatiques de la platefonne informatique en nuage pour l'application et/ou le service hébergé tout en maintenant le coût et la qualité de service désirée au niveau désiré. [0010] Selon des modes de réalisation de la présente invention, le module de surveillance est configuré pour déterminer la valeur d'utilisation de ressource du groupement sur la base du trafic entrant généré par les requêtes d'utilisateurs reçues par l'interface de communication. Par exemple, le module de surveillance peut être configuré pour extraire à partir des requêtes entrantes d'utilisateur un ensemble d'indicateurs clés de performance, associé à l'instance d'applications logicielles demandée et pour déterminer en conséquence, sur la base de la configuration de ressources du groupement VM exécutant l'instance d'application logicielle demandée, la valeur d'utilisation de ressource du groupement. [0011] Il a été constaté que le fait de surveiller et d'analyser le trafic généré par les requêtes entrantes d'utilisateurs permet de déterminer une valeur d'utilisation de ressource du groupement qui peut être utilisée par le module d'élasticité afin de déterminer si les instances VM et/ou les instances logicielles des groupements VM doivent être ajustées. Par exemple, le module de surveillance peut traiter les requêtes d'utilisateur pour extraire un ensemble d'indicateurs clés de performance tel que le type d'applications logicielles faisant l'objet de demandes, les exigences en matière de CPU et de mémoire associées à l'instance d'application logicielle demandée et/ou une durée de session d'utilisateur, la durée de session pouvant être basée sur des informations historiques. Le module de surveillance, sur la base des indicateurs clés de performance et/ou de la configuration des ressources de chaque groupement VM, et/ou du volume de requêtes d'utilisateurs, peut déterminer la valeur d'utilisation de ressource du groupement. [0012] Selon des modes de réalisation de la présente invention, le module d'élasticité est configuré pour provisionner les instances VM sur la base d'un modèle de configuration VM stocké dans une base de données de système. Le modèle de configuration comprend des données de configuration pour les instances VM incluant au moins les exigences en matière d'allocation de mémoire et de CPU. Par exemple, le modèle de configuration VM peut comprendre des données de configuration pour configurer, selon les exigences de l'application, une exécution d'instance VM de courte durée, qui est provisionnée pour gérer des afflux de requêtes entrantes d'utilisateurs sur une courte durée, et des instances VM de longue durée qui sont provisionnées pour gérer des afflux prolongés de requêtes entrantes d'utilisateurs. [0013] Les modèles de configuration assurent que les instances VM sont provisionnées par les fournisseurs de services d'infrastructure avec une configuration prédéterminée. Avec les modèles de configuration, les administrateurs de système peuvent sauvegarder une configuration de référence pour une quelconque instance d'application logicielle. Ainsi, un administrateur de système peut créer un modèle de référence des configurations de serveur d pour accélérer le déploiement de serveurs dans l'environnement informatique en nuage. Les modèles de configuration peuvent être créés pour des serveurs de fichiers, des serveurs d'applications ou des serveurs Web, ou même des petites ou larges configurations de serveurs. Il faut noter que des modèles de configuration différents peuvent être utilisés pour provisionner des instances VM avec des configurations différentes. Le modèle de configuration peut comprendre des données de configuration pour configurer au moins deux types d'instances VM, des instances VM à performance de courte durée ou de longue durée. L'instance VM de performance de courte durée peut être provisionnée pour gérer des afflux de courte durée de trafic entrant d'utilisateurs et/ou lorsqu'un problème survient avec une instance VM dans le groupement VM. L'instance VM de performance de longue durée peut être provisionnée en établissant une configuration de référence pour le groupement VM, ou pour gérer une augmentation du trafic entrant d'utilisateurs. Les instances VM de performance de courte durée peuvent avoir une stabilité de courte durée et peuvent être interrompues à la dernière minute. Les instances VM de performance de longue durée peuvent avoir une stabilité de longue durée et peuvent être utilisées pendant des périodes prolongées. Le module d'élasticité peut décider s'il faut provisionner des instances VM de performance de courte durée ou de longue durée sur la hase de la valeur d'utilisation de ressource du groupement qui est liée au volume de requêtes d'utilisateurs reçues par le module d'interface de communication. [0014] Selon des modes de réalisation de la présente invention, le module d'élasticité comprend un module de contrôle d'application configuré pour ajuster le nombre d'instances d'applications logicielles dans les groupements VM, et un module de contrôle VM configuré pour ajuster le nombre d'instances VM dans les groupements VM. [0015] Le fait de fournir le module de contrôle d'applications et le module de contrôle VM permet aux instances d'applications logicielles d'être ajustées séparément des instances VM. De cette façon, la variation de la demande des utilisateurs peut être satisfaite avec plus de flexibilité. Par exemple, tant que la valeur d'utilisation de ressource des instances VM reste dans les limites de la valeur ciblée, il est possible d'augmenter ou de réduire uniquement les instances d'applications logicielles dans le groupement VM pour répondre aux variations de la demande des utilisateurs pour l'application désirée. Une fois que la valeur d'utilisation de ressource des instances VM atteint ou dépasse la valeur ciblée, le module de contrôle VM peut alors ajuster le nombre d'instances VM dans le groupement, ajustant ainsi les ressources informatiques sous-jacentes. Le processus peut être répété jusqu'à ce que les ressources physiques soient à un niveau correct pour gérer le trafic entrant des requêtes d'utilisateurs. [0016] Selon des modes de réalisation de la présente invention, le module d'élasticité comprend un module de sélection de fournisseurs de services configuré pour sélectionner un fournisseur de services afin d'héberger les instances VM dans le groupement VM sur la base d'un ensemble de critères de provisionnement qui inclut au moins le coût du provisionnement, la disponibilité de la ressource informatique, la fiabilité, la sécurité des données et la localisation géographique des dispositifs hôtes. Le module de sélection peut être configuré pour déterminer la disponibilité de chaque fournisseur de services pour provisionner une instance VM en émettant périodiquement une requête de test pour le provisionnement des instances VM. [0017] Il a été constaté que la provision d'un module de sélection de fournisseurs de services présente l'avantage que les instances VM puissent être rapidement provisionnées par différents fournisseurs de services en fonction des exigences de l'application logicielle demandée par l'utilisateur. Les critères de provisionnement peuvent être associés à un 6 facteur de pondération qui peut guider la sélection d'un fournisseur de services pour le provisionnement des instances VM. Un administrateur peut définir les critères de provisionnement et les facteurs de pondération associés. [0018] Selon des modes de réalisation de la présente invention, le système comprend un module d'équilibrage de charge de travail configuré, sur la hase de la valeur d'utilisation de ressource, pour distribuer des requêtes d'utilisateur dans le groupement VM afin de maintenir la valeur d'utilisation de ressource de chaque instance VM dans la limite de la valeur ciblée. [0019] Le module d'équilibrage de charge de travail assure que les requêtes d'utilisateurs soient réparties parmi les instances d'applications logicielles dans le groupement VM afin de maintenir l'utilisation de la ressource rencontrée par chaque instance VM, dans la limite d'une valeur ciblée. Le module d'équilibrage de charge de travail peut avoir la forme d'un bus de service d'entreprise (ESB) ou d'un autre système avec la fonctionnalité désirée. Le module d'équilibrage de charge de travail peut répartir la charge de travail sur la hase de la valeur d'utilisation de ressource de chaque instance VM. Les ressources informatiques de chaque groupement VM peuvent être optimisées en réaffectant des instances d'applications logicielles aux instances VM qui ont les ressources nécessaires pour gérer l'exécution d'instances d'applications logicielles supplémentaires, et dont la valeur d'utilisation de ressource est en dessous ou dans les limites de la valeur ciblée. La réaffectation des instances logicielles permet de réduire le nombre d'instances VM exploitant le groupement VM, conduisant à des économies de coût tout en maintenant la qualité de service requise. [0020] Selon des modes de réalisation de la présente invention, le module d'équilibrage de charge de travail est configuré pour détecter la localisation des utilisateurs et distribuer en conséquence les requêtes d'utilisateurs aux instances VM provisionnées sur les dispositifs hôtes situés au plus près de chaque utilisateur. [0021] Le fait d'adresser les requêtes d'utilisateurs aux instances VM provisionnées sur un dispositif hébergé à proximité de la localisation de l'utilisateur a l'avantage d'accroitre la vitesse de l'application logicielle et de réduire le temps requis pour propager les données parmi les utilisateurs et les instances d'applications logicielles. [0022] Selon des modes de réalisation de la présente invention, le module d'équilibrage de charge de travail comprend une logique de ségrégation des données configurée pour isoler les données traitées par l'instance d'application logicielle dans une portion publique et dans une portion privée, le module d'équilibrage de charge de travail étant configuré pour propager au moins la portion privée de l'application logicielle demandée aux instances VM provisionnées sur un dispositif hôte satisfaisant les critères de sécurité imposés par l'application logicielle. [0023] La logique de ségrégation de données assure que les données privées sont gérées par 7 l'exécution d'applications logicielles sur des instances VM qui sont hébergées sur des dispositifs hôtes satisfaisant les critères de confidentialité et de sécurité pour assurer que seuls les utilisateurs autorisés accèdent aux données privées. [0024] Selon des modes de réalisation de la présente invention, au moins un des groupements VM est configuré pour exécuter une application logicielle afin de déterminer la disponibilité des produits de voyage d'une pluralité de fournisseurs de voyages sur la hase des données reçues d'au moins un système de gestion de voyage. [0025] Selon des modes de réalisation de la présente invention, au moins un des groupements VM est configuré pour exécuter une application logicielle afin de tarifer des produits de voyage d'une pluralité de fournisseurs de services de voyage sur la base des données reçues d'au moins un système de gestion de voyages. [0026] Selon un deuxième aspect de la présente invention, un procédé peut être fourni 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 machines virtuelles (VM), chaque instance VM étant provisionnée sur au moins un dispositif hôte d'au moins un fournisseur de services et étant configuré pour exécuter au moins une instance d'application logicielle, le procédé comprenant les étapes suivantes : la réception par une interface de communication de requêtes d'utilisateurs pour accéder à au moins une application logicielle en cours d'exécution sur une des pluralités de groupements VM de la plateforme informatique en nuage ; la détermination au moyen d'un module de surveillance d'une valeur d'utilisation de ressource de chaque instance VM dans le groupement VM ; et l'ajustement au moyen d'un module d'élasticité du nombre d'instances VM et/ou d'instances d'applications logicielles dans le groupement VM en demandant le provisionnement ou la suppression d'instances VM et/ou d'instances d'applications logicielles de sorte que la valeur d'utilisation de ressource rencontrée par chacune des instances VM dans le groupement VM est maintenue dans les limites d'un champ de valeurs ciblé ; dans lequel le module de surveillance est configuré pour déterminer, sur la base des requêtes d'utilisateurs reçues via l'interface de communication, une valeur d'utilisation de ressource d'un groupement ; dans lequel le module d'élasticité est configuré pour ajuster le nombre d'instances VM et/ou d'instances d'applications logicielles sur la base d'au moins la valeur d'utilisation de ressource du groupement pour maintenir la valeur d'utilisation de ressource de chaque instance VM dans les limites d'un champ de valeurs ciblé. [0027] Les dessins suivants sont fournis à titre d'exemple pour approfondir et décrire divers aspects de l'invention. [0028] La [fig.1] montre un système exemplaire conforme à des modes de réalisation de la présente invention. 8 [0029] La [fig.2] montre un exemple d'un groupement VM conforme à des modes de réa- lisation de la présente invention. [0030] La [fig.3] montre un exemple d'un module de surveillance conforme à des modes de réalisation de la présente invention. [0031] La [fig.4] montre un exemple d'un module d'élasticité conforme à des modes de réa- lisation de la présente invention. [0032] La [fig.5] montre un exemple d'un module d'équilibrage d'utilisation des ressources conforme à modes de réalisation de la présente invention. [0033] La [fig.6] montre un exemple d'une plateforme informatique en nuage configurée pour exécuter une pluralité d'applications conformément à des modes de réalisation de la présente invention. [0034] La présente invention sera illustrée en utilisant les modes de réalisation exemplaires montrés dans les figures 1 à 6 qui seront décrits de façon plus détaillée ci-dessous. Il faut noter que toutes les références faites aux dimensions sont seulement indicatives et ne limitent d'aucune façon l'invention. Alors que l'invention a été montrée et décrite en faisant référence à certains modes de réalisation illustrés dans la présente, l'homme de métier comprendra que diverses modifications de formes et de détails peuvent y être apportées sans pour autant s'éloigner du champ d'application de l'invention. Par ailleurs, alors que l'invention a été décrite en faisant référence à un système et/ou à un procédé particulier pour gérer les ressources informatiques d'une plateforme informatique en nuage, les hommes de métier comprendront que des changements de formes et de détails peuvent être apportés pour faciliter d'autres types de procédés et/ ou de systèmes sans s'éloigner du champ d'application de l'invention. [0035] La figure 1 montre un exemple d'un système 200 pour gérer les ressources infor- matiques d'une plateforme informatique en nuage 100 selon des modes de réalisation de la présente. La plateforme informatique en nuage 100 peut comprendre une interface de communication 110 configurée pour recevoir des requêtes provenant d'une pluralité d'utilisateurs 150 via un réseau 160, p. ex. l'Internet, pour accéder à au moins une instance d'application 122 en cours d'exécution sur au moins un groupement de machines virtuelles (VM) 120, tel qu'illustré dans la figure 2. Chaque groupement VM 120 dans la plateforme informatique en nuage 200 comprend une pluralité d'instances de machines virtuelles (VM) 121, chacune d'elles étant arrangée pour exécuter au moins une instance d'application logicielle 122, telle qu'illustrée dans la figure 2. Les instances VM 121 peuvent être provisionnées sur un serveur hôte physique d'un fournisseur d'infrastructure comme service (laaS) 170 et des ressources informatiques physiques peuvent leur être affectées, p. ex. la CPU, la mémoire, les dispositifs entrée/sortie, les périphériques, le logiciel d'exploitation, entre autres, pour soutenir le fonctionnement des instances d'applications logicielles 122 en cours 9 d'exécution sur les instances VM 121. Le système exemplaire 200 de la présente invention peut être fourni avec un module de surveillance 210 configuré pour déterminer au moins une valeur d'utilisation de ressource pour chaque instance VM 121 dans le groupement VM 120 et une valeur d'utilisation de ressource d'un groupement pour chaque groupement VM 120 dans la plateforme informatique en nuage 100. La valeur d'utilisation de ressource d'instance VM peut indiquer l'utilisation de ressources informatiques physiques sous-jacentes, p. ex. l'utilisation de la CPU, l'utilisation de la mémoire, affectée à chaque instance VM 121 dans chaque groupement VM 120. La valeur d'utilisation de ressource de groupement VM peut indiquer l'utilisation de ressources du groupement VM qui peut être déterminée sur la hase d'une comparaison entre les requêtes d'utilisateurs entrantes et la configuration de ressources du groupement VM, p. ex. le nombre d'instances VM et/ou d'instances d'applications logicielles. La valeur d'utilisation de ressource d'instance VM peut être déterminée sur la hase des informations obtenues directement à partir des instances VM 121, p. ex. l'utilisation de la CPU, alors que la valeur d'utilisation de ressource de groupement VM peut être déterminée sur la hase des informations extraites des requêtes d'utilisateurs entrantes reçues par le module d'interface de commu- nication 110. Chaque instance VM 121 et/ou chaque groupement VM peuvent être fournis avec une valeur d'utilisation de ressource ciblée, p. ex. un seuil, qui lorsqu'il est atteint et/ou dépassé indiquerait que les ressources affectées à la plateforme en nuage et/ou la configuration du groupement VM 120 auraient besoin d'être ajustées pour satisfaire la demande de l'utilisateur. Dans ce but, un module d'élasticité 220 est fourni, lequel est configuré sur la base de la valeur d'utilisation de ressource du groupement pour ajuster le nombre d'instances VM et/ou d'instances logicielles de sorte à maintenir les instances VM 121 et/ou chaque groupement VM dans les limites de leur valeur respective d'utilisation de ressource ciblée. Le module d'élasticité 220 peut ajuster les ressources informatiques physiques affectées à chaque groupement VM 120 en demandant, via un réseau de communication 160, le provisionnement ou la suppression d'instances VM des dispositifs hôtes des fournisseurs laaS respectifs 170. [0036] Un exemple conforme à la présente invention sera donné ici à titre d'exemple uniquement. Un groupement VM 120 peut être fourni avec trente instances VM 121, chacune ayant une valeur d'utilisation de ressource affectée, associée à ladite au moins l'utilisation de la CPU, qui doit être maintenue dans les limites d'un champ de valeurs ciblé, p. ex. entre 50 et 80 % dont 50 % se situent dans la fourchette basse et 80 % dans la fourchette élevée. Pour le groupement VM 120, l'utilisation de ressources du groupement VM peut être associée au trafic entrant de requêtes d'utilisateurs reçues par l'interface de communication. Selon cet exemple, si le module de surveillance 210 détecte que la valeur d'utilisation de ressource d'au moins une instance VM 121 est au- dessus d'un seuil prédéterminé, p. ex. l'utilisation de la CPU est à 100 %, le module d'élasticité 220 peut ensuite décider d'augmenter les instances VM 121 dans le groupement VM 120 afin d'assurer que l'utilisation de la ressource de l'instance VM 121 est ramenée dans les limites du champ de valeurs ciblé. Tl est aussi possible de décider d'une telle augmentation uniquement si l'utilisation de la CPU de chacune des instances VM 121 atteint un seuil prédéterminé, p. ex. une utilisation de CPU d'au moins 50 %, la valeur basse de la fourchette. Une fois que le module d'élasticité 220 a décidé d'augmenter le nombre d'instances VM 121, le nombre exact d'instances VM 121 devant être ajouté au groupement VM 120 serait déterminé en utilisant le trafic entrant des requêtes d'utilisateurs reçues par l'interface de communication 110. Chaque instance VM 121 peut être configurée pour gérer un volume prédéterminé de trafic entrant d'utilisateurs qui peut être défini par la taille des données des requêtes d'utilisateurs ou le nombre de requêtes d'utilisateurs reçues par l'interface de communication, p. ex. 100 requêtes d'utilisateurs/seconde. Le module d'élasticité 220, connaissant le volume de trafic d'utilisateurs entrant qui peut être géré par chaque instance VM 121, et étant donné un trafic d'utilisateurs entrant reçu par l'interface de communication 110 p. ex. de 3300 requêtes d'utilisateurs, déterminerait sur la hase d'un ratio de calcul que le nombre d'instances VM 121 dans le groupement VM 120 devrait être augmenté de 30 à 33 afin de maintenir le groupement VM dans les limites de la valeur ciblée. Le calcul peut être basé sur la hase de la division du trafic d'utilisateurs entrant par la quantité de trafic qui peut être géré par chaque VM, p. ex. 3300/100 = 33 instances VM 121. Dans l'hypothèse où au moins une des instances VM 121 aurait atteint ou dépassé sa valeur d'utilisation de ressource, mais que le ratio de calcul indiquerait que le nombre d'instances VM 121 requis pour gérer le trafic d'utilisateur entrant est moindre que le nombre d'instances VM 121 dans le groupement VM 120, le module d'élasticité 220 pourrait alors encore décider d'augmenter le nombre d'instances VM 121 d'une certaine quantité, p. ex. d'une, afin d'amener la valeur d'utilisation de ressource des instances VM affectées dans les limites de la valeur ciblée. En outre, si seulement une certaine quantité d'instances VM 121 rencontre une utilisation de ressource élevée, il peut être possible d'augmenter les instances d'applications logicielles 122 et/ou de redistribuer le trafic entrant de requêtes entre les instances VM 121 dans le groupement VM afin d'amener la valeur d'utilisation de ressource des instances VM impactées dans les limites de la valeur ciblée. [0037] La Figure 2 montre un exemple d'une implémentation d'un groupement VM 120 conformément à des modes de réalisation de la présente invention. Le groupement VM 120 peut être fourni avec une pluralité d'instances VM 121, chacune étant configurée pour exécuter au moins une instance d'application logicielle 122 qui peut 11 faire partie d'une application logicielle distribuée. Dans un autre exemple, chaque instance VM 121 peut être configurée pour exécuter différentes instances d'applications logicielles 122. Chaque groupement VM peut être fourni avec un module d'équilibrage de charge de travail 180 qui peut être configuré pour distribuer les requêtes d'utilisateurs entre les instances VM 121 exécutant l'application logicielle demandée 122 afin de maintenir la valeur d'utilisation de ressource de chaque instance VM 121 dans les limites de son champ de valeur ciblé. La valeur d'utilisation de ressource ciblée pour les instances VM 121 peut être une valeur définie par l'utilisateur ou peut être établie lors du provisionner-rient. [0038] La Figure 3 montre un exemple d'un module de surveillance 210 conforme à des modes de réalisation de la présente invention. Le module de surveillance 210 peut être fourni avec un module de traitement 211 pour traiter les requêtes d'utilisateurs afin d'extraire un ensemble d'indicateurs clés de performance qui peuvent être utilisés pour déterminer la valeur d'utilisation de ressource du groupement. Il faut noter que les indicateurs clés de performance peuvent aussi être déterminés dans le module d'interface de communication 110. Les indicateurs de performance clés peuvent au moins inclure, niais sans s'y limiter, le type d'applications logicielles requises, les exigences en matière de CPU et de mémoire associées à l'instance d'application logicielle demandée, et/ou une durée de la session d'un utilisateur, laquelle durée de session peut être basée sur des informations historiques. Le module de surveillance 210 peut être fourni avec un module d'utilisation de groupement VM 212 qui peut être configuré pour déterminer la valeur d'utilisation de ressource du groupement sur la base des indicateurs clés de performance extraits et la configuration de chaque groupement VM, p. ex. le nombre d'instances VM 121 et/ou les instances applications logicielles 122. Le module de surveillance 210 peut être fourni avec un module d'utilisation d'instance VM 213 qui peut être configuré pour surveiller chaque instance VM 121 afin de déterminer une valeur d'utilisation de ressource qui peut être indicative de la manière dont les ressources informatiques affectées, p. ex. l'affectation de CPU, l'affectation de mémoire, entre autres, sont utilisées par l'instance d'application logicielle 122. Une base de données 214 peut être fournie pour stocker les valeurs d'utilisation de ressource des instances VM, les valeurs d'utilisation de groupements, les données de configuration de groupements VM reçues du module d'élasticité, les champs de valeurs ciblés du groupement VM et les champs de valeurs ciblés des instances VM, ainsi que d'autres informations. [0039] La Figure 4 montre un exemple d'un module d'élasticité 220 conforme à des modes de réalisation de la présente invention. Le module d'élasticité 220 peut être fourni avec un module de contrôle d'instance VM 221 qui peut être configuré pour ajuster le nombre d'instances VM 121 dans le groupement VM 120 en affectant ou en retirant 12 des ressources informatiques du fournisseur laaS 170. Un module de contrôle d'instance d'application 222 peut être fourni pour ajuster le nombre d'instances logicielles 122 dans le groupement VM 120. Par exemple, dans le cas d'une application en nuage distribuée, le nombre d'instances logicielles 122 peut être augmenté ou réduit en fonction de la valeur d'utilisation de ressource de chaque instance VM 121, afin de gérer les requêtes entrantes d'utilisateurs. Un module de sélection de fournisseurs d'infrastructure comme service (laaS) 181 peut être fourni pour sélectionner les dispositifs hôtes pour le provisionnement d'instances VM 121. Chaque fournisseur de services laaS 170 peut avoir des caractéristiques de service différentes en matière de coût de provisionnement, de fiabilité, de sécurité des données et de disponibilité, entre autres. Par conséquent, selon les exigences de l'application en nuage exécutée, il peut s'avérer nécessaire de sélectionner un fournisseur laaS 170 pour provisionner les instances VM 121. Dans certains cas, il peut être nécessaire de provisionner les instances par plus d'un seul fournisseur laaS, p. ex. en raison de la localisation des dispositifs hôtes, de la disponibilité des ressources, de la sécurité. Le module de sélection de fournisseurs de services 223 peut être fourni avec un ensemble de critères pour la sélection d'un fournisseur laaS 170. Les critères peuvent être prioritisés en utilisant un facteur de pondération de sorte que le fournisseur laaS 170 le plus approprié soit sélectionné pour satisfaire les exigences de l'application logicielle. Par exemple, si le coût et la disponibilité sont identifiés comme les critères les plus importants, alors le fournisseur laaS 170 le moins onéreux avec des ressources disponibles sera toujours sélectionné. Le module de sélection de fournisseurs laaS 223 peut tester périodiquement la disponibilité de chaque fournisseur laaS 170 en émettant une requête de test de provisionnement. Le provisionnement des instances VM peut être effectué automatiquement sur la base d'un modèle de configuration qui inclut des données de configuration relatives aux ressources physiques devant être affectées. Plus d'un seul modèle de configuration peut être utilisé pour provisionner les instances VM 121 selon les exigences de l'application logicielle et/ou les variations dans la demande des utilisateurs. Les modèles de configuration peuvent être stockés dans une base de données de modèles 224. Les groupements VM 120 de la plateforme informatique en nuage 100 peuvent contenir des instances VM 121 provisionnées à partir de divers fournisseurs laaS 170 en utilisant différents modèles de configuration. Les modèles de configuration peuvent comprendre des données de configuration pour configurer au moins deux types d'instances VM 121, des instances VM de performance de courte durée et de performance de longue durée. L'instance VM de performance de courte durée peut être provisionnée pour gérer des afflux de courte durée de trafic entrant d'utilisateurs et/ou lorsqu'un problème est rencontré avec une instance VM 121 dans le groupement VM 120, p. ex. une instance VM a pris fin de façon inattendue. L'instance VM de per- 13 formance de longue durée peut être provisionnée lors de l'établissement d'une configuration de référence pour le groupement VM 120, ou pour gérer une augmentation du trafic entrant d'utilisateurs. Les instances VM de performance de courte durée peuvent avoir une stabilité de courte durée et peuvent être interrompues à la dernière minute, p. ex. leurs ressources informatiques sous-jacentes peuvent être réorientées par le fournisseur laaS 170 vers un autre service sans préavis. Les instances VM de performance de longue durée peuvent avoir une stabilité de longue durée et peuvent être utilisées pendant des périodes prolongées. Les instances VM de longue durée peuvent être provisionnées par des fournisseurs laaS 170 qui garantissent la stabilité et/ou la fiabilité des ressources informatiques. Le module d'élasticité 220 peut décider s'il faut provisionner des instances VM 121 pour une courte durée ou une longue durée sur la base de la valeur d'utilisation de ressource du groupement qui est relative au volume des requêtes d'utilisateur reçues par le module d'interface de communication. [0040] La Figure 5 montre une implémentation exemplaire du module d'équilibrage de charge de travail 180 conforme à modes de réalisation de la présente invention. Le module d'équilibrage de charge de travail 180 peut avoir la forme d'un bus de services d'entreprise (ESB) ou d'un autre système avec une fonctionnalité similaire. Le module d'équilibrage de charge de travail 180 peut être configure pour distribuer la charge de travail générée par les requêtes d'utilisateurs entre les instances VM 121 du groupement VM, de façon à maintenir la valeur d'utilisation de ressource de chaque instance VM 121 dans les limites de sa valeur ciblée. Le module d'équilibrage de charge de travail 180 peut distribuer la charge de travail sur la base de la valeur d'utilisation de ressource de chaque instance VM 121. Les ressources informatiques de chaque groupement VM 120 peuvent être optimisées en réaffectant des instances d'applications logicielles 122 aux instances VM 121 qui ont les ressources pour faire face à l'exécution d'instances d'applications logicielles supplémentaires 122 et leurs valeurs d'utilisation de ressource est en dessous ou dans les limites de la valeur ciblée. La réaffectation des instances logicielles peut permettre de réduire le nombre d'instances VM en exécutant le groupement VM 120, en générant des économies de coûts tout en maintenant la qualité requise de service. La réaffectation des instances d'applications logicielles 122 peut être réalisée par le module d'élasticité 220 et/ou le module d'équilibrage de charge de travail 180. Le module d'équilibrage de charge de travail 180 peut être fourni avec un module de localisation d'utilisateur 182 qui est configuré pour identifier la localisation de l'utilisateur émettant la requête pour accéder à l'application, p. ex. via l'adresse IP de l'utilisateur. Un module de propagation de données 183 peut être fourni pour propager les données, sur la base de la localisation identifiée, vers les instances VM hébergées sur un dispositif hôte qui est situé à proximité de la localisation de l'utilisateur ce qui peut réduire le temps d'attente 14 imposé à l'utilisateur pour accéder à l'application désirée. Une logique de ségrégation 181 peut être fournie pour séparer les données traitées et/ou générées et/ou transmises par l'application et/ou par l'utilisateur dans une portion publique et une portion privée. Le module de propagation de données 183 peut être configuré pour diriger au moins la portion de données privées des données aux instances VM 121 hébergées sur des dispositifs hôtes d'un fournisseur laaS 170 disposant des attributs de sécurité requis pour gérer les données de façon sécurisée. [0041] La figure 6 montre une architecture en nuage exemplaire fournissant des services liés au voyage conformément à des modes de réalisation de la présente invention. Comme le montre la figure 6, sur une plateforme en nuage 100, une pluralité d'applications de voyage peut être fournie, chacune étant configurée pour mettre en oeuvre une tâche spécifique. Par exemple, la plateforme en nuage 100 peut être configurée comme une plateforme de commerce de voyage qui est accessible par les utilisateurs 150 via un réseau 160, p. ex. l'internet. La plateforme de commerce de voyage 100 peut être fournie avec un moteur de sélection de vols 400 qui est configuré pour permettre à un utilisateur de rechercher des vols ou d'autres produits de voyage chez différents fournisseurs de voyage. Les utilisateurs 150 peuvent saisir une gamme de critères dans un moteur de recherche, p. ex. dates, horaires, prix, etc., et le moteur de sélection de vols 300 peut effectuer unc recherche via un portail de réseau 700, dans un barème d'inventaire de tarifs 600 d'un système de gestion de voyages externe, p. ex. le système de distribution global (GDS), pour identifier des vols correspondant aux critères de recherche de l'utilisateur qui sont transmis aux utilisateurs pour faire leur sélection. L'utilisateur peut sélectionner un vol désiré, dont l'information est transmise à un moteur de traitement de tarifs 300 où un prix pour le produit de voyage est calculé. Une fois que la donnée du tarif est calculée, la disponibilité du tarif a besoin d'être vérifiée. Cette étape peut être mise en oeuvre par une application de moteur de disponibilité de tarifs 500. Lorsque la disponibilité du tarif est vérifiée, il peut alors être transmis à l'utilisateur pour faire sa réservation. Traditionnellement, ces types d'applications font partie d'un système de gestion de voyages fonctionnant sur un dispositif de serveur informatique physique. Cependant, avec l'avènement de l'informatique en nuage, une grande partie du processus de réservation de voyage peut être effectuée sur une plateforme en nuage d'un fournisseur laaS, soulageant ainsi les besoins d'entretenir de grands centres de données. Par sécurité, une partie du processus impliquant le stockage de données critiques, p. ex. les prix négociés des tarifs de voyage, entre autres, peut toujours être effectuée par un dispositif actuel hébergé d'un fournisseur de services de voyage. [0042] En général, les routines exécutées pour mettre en oeuvre les modes de réalisation de l'invention, qu'elles soient implémentées dans le cadre d'un système d'exploitation ou d'une application spécifique, d'un composant, d'un programme, d'un objet, d'un module ou d'une séquence d'instructions, ou même un sous-ensemble de ceux-là, peuvent être désignées dans les présentes comme «code de programme informatique » ou simplement « code de programme». Le code de programme comprend typiquement des instructions lisibles par ordinateur qui résident à des moments divers dans des dispositifs divers de mémoire et de stockage dans un ordinateur, et qui lorsqu'il est lu et exécuté par un ou plusieurs processeurs dans un ordinateur, amène cet ordinateur à mettre en oeuvre les opérations et/ou des éléments propres aux aspects variés des modes de réalisation de Les instructions d'un programme informatique lisibles par ordinateur pour accomplir les opérations des modes de réalisation de l'invention peuvent être, par exemple : le langage d'assemblage soit un code source, soit un code objet, est écrit en combinaison avec un ou plusieurs langages de programmation. [0043] Le code de programme mis en oeuvre dans une/un quelconque des applications/ modules décrit(e)s dans les présentes peut être distribué individuellement ou collectivement comme un produit programme, sous une variété de formes différentes. En particulier, le code de programme peut-être distribué en utilisant un support de stockage lisible par ordinateur ayant en lui-même des instructions de programme lisibles par ordinateur pour amener un processeur à mettre en oeuvre des aspects des modes de réalisation de [0044] Les supports de stockage de données lisibles par ordinateur qui sont intrinsèquement non transitoires, peuvent inclure des médias tangibles volatiles et non volatiles, amovibles et non amovibles, implémentés dans toute méthode ou technologie de stockage de données, tels que des instructions de programme lisibles par ordinateur, des structures de donnée, des modules de programme, ou autres données. Les supports de stockage lisibles par ordinateur peuvent par ailleurs inclure la mémoire vive aléatoire (RAM), la mémoire morte à lecture seule (ROM), la mémoire à lecture seule, programmable et effaçable (EPROM), la mémoire à lecture seule, programmable et effaçable électriquement (EEPROM), une mémoire flash, ou toute technologie de support solide de mémoire, disque compact portable doté d'une mémoire à lecture seule (CD-ROM), ou tout autre stockage optique, des cassettes magnétiques, des bandes d'enregistrement magnétiques, des mémoires de disque magnétique ou tout autre médium pouvant être utilisé pour stocker l'information désirée et apte à être déchiffré par un ordinateur. Un support de stockage lisible par ordinateur ne peut être interprété comme « signaux transitoires » en soi (par exemple, des ondes radio ou toutes autres ondes électromagnétiques se propageant, des ondes électromagnétiques se propageant à travers un support de transmission telle qu'un guide d'ondes, ou des signaux électriques transmis par câble). Les instructions de programme lisibles par or- 16 dinatcur peuvent être téléchargées sur un ordinateur, un autre type d'appareil de traitement de données programmable ou sur tout autre dispositif de support de stockage lisible par machine, ou vers un ordinateur externe ou vers un dispositif de stockage externe via un réseau. [0045] Les instructions de programme lisibles par ordinateur, stockées sur un support lisible par ordinateur, peuvent être utilisées pour instruire un ordinateur, d'autres types d'appareils programmables de traitement ou d'autres dispositifs pour fonctionner d'une façon particulière, de sorte que les instructions stockées sur un support lisible par ordinateur produisent un article de fabrication comprenant les instructions qui implémentent les fonctions/actions spécifiées dans les organigrammes, diagrammes de séquence, et/ou diagrammes blocs. Les instructions de programme informatique peuvent être fournies à un ou plusieurs processeurs d'un ordinateur à usage général, un ordinateur dédié ou un autre appareil programmable de traitement de données pour produire une machine, de sorte que les instructions, lorsqu'elles sont exécutées via un ou plusieurs processeurs, accomplissent une série de calculs pour mettre en oeuvre les fonctions, actions, et/ou les actions spécifiées dans les organigrammes, diagrammes séquentiels et/ou diagrammes blocs. [0046] Dans certains autres modes de réalisation, les fonctions, les actions et/ou des opérations spécifiées dans les organigrammes, diagrammes de séquence, et/ou des diagrammes blocs peuvent être commandées à nouveau, traitées en série et/ou traitées en même temps conformément aux modes de réalisation de l'invention. De plus, un quelconque des organigrammes, diagrammes séquentiels, et/ou diagrammes bloc peut inclure plus ou moins de blocs que ceux qui sont illustrés conformément à des modes de réalisation de l'invention. 17 [Revendication 1] [Revendication 2] [Revendication 3]