FR3037417A1 - METHOD AND SYSTEM FOR DETERMINING TARGET SERVER CONFIGURATION FOR DEPLOYING SOFTWARE APPLICATION - Google Patents

METHOD AND SYSTEM FOR DETERMINING TARGET SERVER CONFIGURATION FOR DEPLOYING SOFTWARE APPLICATION Download PDF

Info

Publication number
FR3037417A1
FR3037417A1 FR1555267A FR1555267A FR3037417A1 FR 3037417 A1 FR3037417 A1 FR 3037417A1 FR 1555267 A FR1555267 A FR 1555267A FR 1555267 A FR1555267 A FR 1555267A FR 3037417 A1 FR3037417 A1 FR 3037417A1
Authority
FR
France
Prior art keywords
configuration
software application
load
server
target
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.)
Withdrawn
Application number
FR1555267A
Other languages
French (fr)
Inventor
Wei Monin
Guy Vachet
Bruno Dillenseger
Xavier Etchevers
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.)
Orange SA
Original Assignee
Orange SA
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 Orange SA filed Critical Orange SA
Priority to FR1555267A priority Critical patent/FR3037417A1/en
Priority to PCT/FR2016/051266 priority patent/WO2016198762A1/en
Publication of FR3037417A1 publication Critical patent/FR3037417A1/en
Withdrawn legal-status Critical Current

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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3051Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs

Abstract

Le procédé comprend : - l'obtention (E20) pour au moins un service offert par l'application, via au moins un test unitaire réalisé sur une configuration de serveurs de référence, d'un temps d'exécution moyen d'une requête invoquant ce service pour chaque serveur ; - la sélection (E60) d'une configuration de serveurs initiale supportant une charge cible, en tenant compte des temps obtenus, de la charge cible et d'une charge admissible de la configuration de référence, et en utilisant un modèle numérique reflétant au moins une contrainte de déploiement de l'application sur la configuration initiale ; et - la détermination (E90) à partir de la configuration initiale d'une configuration cible via des tests de tenue en charge (E80) paramétrés en fonction d'une charge maximale de la configuration initiale et de la charge cible, et en utilisant un profil de requêtes invoquant ledit au moins un service représentatif d'une utilisation de l'application en déploiement, la détermination comprenant, en fonction du résultat de chaque test, un ajustement de ressource(s) de la configuration initiale pour obtenir à l'issue des tests une configuration cible vérifiant un temps de réponse maximal et la charge cible.The method comprises: obtaining (E20) for at least one service offered by the application, via at least one unit test performed on a reference server configuration, an average execution time of a query invoking this service for each server; selecting (E60) an initial server configuration supporting a target load, taking into account the times obtained, the target load and an allowable load of the reference configuration, and using a digital model reflecting at least an application deployment constraint on the initial configuration; and - determining (E90) from the initial configuration of a target configuration via load-holding tests (E80) parameterized according to a maximum load of the initial configuration and the target load, and using a a request profile invoking said at least one service representative of a use of the deployed application, the determination comprising, according to the result of each test, a resource adjustment (s) of the initial configuration to obtain at the end tests a target configuration that checks for maximum response time and target load.

Description

1 Arrière-plan de l'invention L'invention se rapporte au domaine général des applications logicielles. Elle concerne plus particulièrement le dimensionnement des ressources permettant l'exécution de telles applications. L'invention s'applique ainsi de façon privilégiée mais non limitative lorsque des applications logicielles sont déployées dans un système informatique en nuage aussi plus communément appelé « cloud » en anglais. La gestion de l'élasticité des applications logicielles déployées en cloud est une problématique importante, notamment dans les systèmes de type « PaaS » (« Platform as a Service » en anglais ou Plateforme en tant que service). Ces systèmes, principalement destinés aux entreprises, visent à proposer des services techniques qui facilitent la construction, la mise en oeuvre et l'administration des applications logicielles afin de recentrer l'attention des utilisateurs sur leurs applications. La finalité d'un système PaaS est de masquer la complexité liée à l'instanciation et à l'exploitation des applications. Pour cela, le système PaaS propose des briques techniques, accessibles au travers d'interfaces de haut niveau via un réseau de télécommunications, permettant de prendre en charge un panel important des services liés à l'administration des applications, notamment l'adaptation dynamique aux variations de charge, la sûreté de fonctionnement et la sécurité. Le périmètre fonctionnel de ces briques correspond généralement à celui rempli par un intergiciel (e.g. serveur HTTP, serveur d'application, base de données, interpréteurs de script, canevas logiciels divers...), à savoir des opérations qui peuvent être mutualisées entre plusieurs applications. Dans ce contexte, la gestion de l'élasticité des applications logicielles déployées en cloud a pour but de fournir et d'ajuster (i.e. adapter) les ressources nécessaires au bon fonctionnement de ces applications logicielles, en termes notamment de volumétrie, de disponibilité, de temps de réponse et de fiabilité, tout en satisfaisant les contraintes spécifiques à ces applications logicielles (ex. coût, placement des machines virtuelles, droit d'utilisation, etc.). En vue d'optimiser un rapport qualité/coût, la gestion de l'élasticité doit ainsi : permettre de déterminer (i.e. dimensionner) les ressources nécessaires au déploiement d'une application logicielle ainsi que la configuration optimale de ces ressources, en fonction notamment d'exigences contractualisées (par exemple sous la forme d'accord de niveau de service ou encore SLA pour « Service Level Agreement » en anglais) et des ressources engagées pour d'autres applications logicielles en cours d'exécution ; et être capable d'ajouter ou de supprimer dynamiquement des ressources durant l'exécution de l'application logicielle, afin notamment d'absorber des « rafales » ponctuelles (instantanées) de requêtes dues à des pics d'utilisation de l'application logicielle ou au partage de l'environnement d'exécution avec d'autres applications logicielles, et de respecter ainsi les exigences contractualisées dans les SLA (ex. en termes de temps de réponse de l'application 3037417 2 logicielle). Pour ce faire, la gestion de l'élasticité doit être en mesure de déterminer rapidement la nouvelle configuration de ressources et préciser quand doit intervenir l'opération de reconfiguration. Les techniques de dimensionnement des ressources sont donc au coeur de la gestion 5 de l'élasticité. Elles nécessitent généralement une bonne connaissance de l'application logicielle, notamment en termes de consommation de ressources par les instances de déploiement de l'application (ex. serveurs), mais également de profils de requêtes utilisateurs (ex. répartition par service, débits des requêtes, temps d'inter-arrivées entre les requêtes, etc.). Dans l'état actuel de la technique, il n'existe pas de procédé structuré connu 10 permettant de déterminer facilement les ressources nécessaires (ainsi que la configuration de ces ressources) pour le déploiement ou l'exécution d'une application logicielle. En effet, aujourd'hui, on dimensionne et on ajuste uniquement de façon expérimentale avec des outils de tests et/ou de supervision les ressources nécessaires à l'exécution d'une application logicielle à partir d'une étude de pré-métrologie. Cette façon de procéder implique un investissement très important en termes 15 de coût et de temps : de nombreuses configurations doivent être testées avant de trouver une configuration optimale, nécessitant la mise en place d'équipements physiques et de logiciels, l'exécution de nombreux tests, etc. Une telle approche n'est donc pas toujours envisageable en pratique du fait de contraintes de temps imposées au déploiement de l'application logicielle par exemple ou de contraintes imposées en termes de retour sur investissement.BACKGROUND OF THE INVENTION The invention relates to the general field of software applications. It concerns more particularly the sizing of the resources allowing the execution of such applications. The invention thus applies in a preferred but nonlimiting manner when software applications are deployed in a cloud computing system also more commonly known as "cloud" in English. The management of the elasticity of the software applications deployed in the cloud is an important problem, especially in the "PaaS" (platform as a service) type systems. These systems, primarily intended for businesses, aim to provide technical services that facilitate the construction, implementation and administration of software applications to refocus the attention of users on their applications. The purpose of a PaaS system is to hide the complexity of instantiating and exploiting applications. For this, the PaaS system offers technical bricks, accessible through high-level interfaces via a telecommunications network, to support a large panel of services related to the administration of applications, including dynamic adaptation to Load variations, dependability and safety. The functional perimeter of these bricks generally corresponds to that filled by middleware (eg HTTP server, application server, database, script interpreters, various software frameworks, etc.), ie operations that can be shared over several applications. In this context, the purpose of managing the elasticity of software applications deployed in the cloud is to provide and adjust (ie adapt) the resources necessary for the proper functioning of these software applications, in particular in terms of volumetry, availability, response time and reliability, while satisfying the constraints specific to these software applications (eg cost, placement of virtual machines, right of use, etc.). In order to optimize a quality / cost ratio, the elasticity management must: allow to determine (ie size) the resources necessary for the deployment of a software application as well as the optimal configuration of these resources, in particular according to contractualized requirements (eg in the form of service level agreement or SLA for "Service Level Agreement" in English) and resources committed to other software applications currently being implemented; and being able to dynamically add or delete resources during the execution of the software application, in particular in order to absorb occasional (instantaneous) "bursts" of requests due to peaks in the use of the software application or sharing the runtime environment with other software applications, and thus comply with contractual requirements in the SLAs (eg in terms of software application 3037417 2 response time). To do this, the elasticity management must be able to quickly determine the new resource configuration and specify when the reconfiguration operation should occur. Resource sizing techniques are therefore at the heart of the management of elasticity. They generally require a good knowledge of the software application, especially in terms of resource consumption by the application deployment instances (eg servers), but also user request profiles (eg distribution by service, data rates, queries, inter-arrival times between requests, etc.). In the present state of the art, there is no known structured method for easily determining the resources required (as well as the configuration of these resources) for the deployment or execution of a software application. Indeed, today we only dimension and adjust experimentally with test tools and / or supervision the resources needed to run a software application from a pre-metrology study. This way of proceeding involves a very important investment in terms of cost and time: many configurations must be tested before finding an optimal configuration, requiring the installation of physical equipment and software, the execution of numerous tests etc. Such an approach is therefore not always feasible in practice due to time constraints imposed on the deployment of the software application for example or constraints imposed in terms of return on investment.

20 Objet et résumé de l'invention L'invention permet de remédier notamment à cet inconvénient en proposant un procédé de détermination d'une configuration de serveurs dite cible pour un déploiement d'une application logicielle apte à offrir au moins un service, ce procédé comprenant : 25 une étape d'obtention, pour au moins un service offert par l'application logicielle, au moyen d'au moins un test unitaire réalisé sur une configuration de serveurs dite de référence apte à exécuter l'application logicielle, d'un temps d'exécution moyen d'une requête invoquant ce service pour chaque serveur de la configuration de référence ; une étape de sélection d'une configuration de serveurs dite initiale pour le déploiement de 30 l'application logicielle apte à supporter une charge cible déterminée pour l'application logicielle, cette étape de sélection tenant compte des temps d'exécution moyens obtenus lors dudit au moins un test unitaire, de la charge cible et d'une charge admissible déterminée pour la configuration de référence, et utilisant un modèle numérique reflétant au moins une contrainte de déploiement de l'application logicielle imposée à la configuration de serveurs initiale ; et 35 une étape de détermination, à partir de la configuration initiale, d'une configuration de serveurs cible destinée à être utilisée pour le déploiement de l'application logicielle, ladite étape de détermination comprenant la réalisation d'une pluralité de tests de tenue en charge 3037417 3 parannétrés en fonction d'une charge maximale théorique estimée pour la configuration initiale et de la charge cible, et utilisant au moins un profil de requêtes invoquant ledit au moins un service offert par l'application logicielle, ce profil étant représentatif d'une utilisation de l'application logicielle lors de son déploiement, ladite étape de détermination comprenant en 5 outre, en fonction du résultat de chaque test de tenue en charge, un ajustement d'au moins une ressource de la configuration initiale de sorte que la configuration cible obtenue à l'issue de ladite pluralité de tests de tenue en charge soit apte à vérifier un temps de réponse maximal fixé pour l'application logicielle et à supporter ladite charge cible. Corrélativement, l'invention vise aussi un système de détermination d'une 10 configuration cible pour un déploiement d'une application logicielle, le système comprenant : un premier outil de test permettant l'exécution d'au moins un test unitaire sur l'application logicielle lorsque celle-ci est exécutée sur une configuration de serveurs dite de référence ; - un module d'obtention, configuré pour commander l'exécution d'au moins un test unitaire par le premier outil de test sur ladite configuration de référence et pour obtenir, pour au moins un 15 service offert par l'application logicielle, un temps d'exécution moyen d'une requête invoquant ce service pour chaque serveur de la configuration de référence ; - un module de sélection, configuré pour sélectionner une configuration de serveurs initiale pour le déploiement de l'application logicielle apte à supporter une charge cible déterminée pour l'application logicielle, ledit module de sélection étant configuré pour tenir compte des temps 20 d'exécution moyens obtenus lors dudit au moins un test unitaire, de la charge cible et d'une charge admissible déterminée pour la configuration de référence, et pour utiliser un modèle numérique reflétant au moins une contrainte de déploiement de l'application logicielle imposée à la configuration de serveurs initiale ; - un second outil de test permettant l'exécution de tests de tenue en charge sur ladite 25 application logicielle lorsque celle-ci est exécutée sur la configuration de serveurs initiale sélectionnée par le module de sélection ; et un module de détermination configuré pour déterminer à partir de la configuration initiale une configuration de serveurs cible destinée à être utilisée pour le déploiement de l'application logicielle, ledit module de détermination étant configuré pour commander l'exécution d'une 30 pluralité de tests de tenue en charge par le second outil de test, lesdits tests de tenue en charge étant paramétrés par le module de détermination en fonction d'une charge maximale théorique estimée pour la configuration initiale et de la charge cible, et utilisant au moins un profil de requêtes invoquant ledit au moins un service offert par l'application logicielle, ce profil étant représentatif d'une utilisation de l'application logicielle lors de son déploiement, ledit 35 module de détermination étant en outre configuré pour ajuster, en fonction du résultat de chaque test de tenue en charge, au moins une ressource de la configuration initiale de sorte que la configuration cible obtenue à l'issue de ladite pluralité de tests de tenue en charge soit 3037417 4 apte à vérifier un temps de réponse maximal fixé pour l'application logicielle et à supporter ladite charge cible. Par serveur, on entend ici tout type de machine physique ou virtuelle, apte à exécuter tout ou partie d'une instance de l'application logicielle. L'application logicielle est destinée à être 5 déployée sur une configuration (i.e. un agencement) de serveurs formée d'un ou de plusieurs serveurs reliés entre eux et vérifiant des contraintes de déploiement imposées pour la mise en production de l'application logicielle (ex. déploiement multi-sites, utilisation de machines spécifiques, etc.). L'invention propose donc un procédé de dimensionnement des ressources nécessaires 10 au déploiement d'une application logicielle dans un environnement de production qui s'appuie sur l'exécution structurée de deux types de tests, à savoir des tests unitaires sans accès concurrent aux ressources puis des tests de tenue en charge, judicieusement paramétrés. Ces différents tests sont réalisés sur des configurations de serveurs différentes, à savoir : - pour les tests unitaires, sur une configuration de serveurs dite de référence, prédéterminée et 15 relativement simple, ce qui permet d'obtenir des résultats en termes de consommation de ressources ; et - pour les tests de tenue en charge, sur une configuration de serveurs de production dite initiale dont l'architecture reflète les contraintes imposées par le déploiement de l'application logicielle en environnement de production, et sélectionnée grâce à l'exploitation des résultats des tests 20 unitaires réalisés sur la configuration de référence combinée à un modèle numérique permettant de mettre en correspondance les ressources des deux configurations de serveurs. L'invention permet ainsi de déterminer de façon simple et efficace une configuration de production cible adaptée en termes de ressources au déploiement de l'application logicielle dans un environnement réel d'exécution et vérifiant les différentes exigences contractuelles qui lui sont 25 imposées par l'intermédiaire par exemple d'un accord SLA tel que précédemment décrit. Cette configuration cible est obtenue en ajustant de façon itérative à l'issue de chaque test de tenue en charge les ressources de la configuration initiale de sorte à vérifier ces exigences. L'ajustement des ressources d'une configuration de serveurs comprend, au sens de l'invention, le maintien, l'ajout, et/ou le retrait de ressources pour au moins un serveur de la 30 configuration, et/ou le maintien ou la mise à jour de paramètres de cette configuration (comme par exemple le nombre de serveurs considérés dans cette configuration). Cet ajustement conduit à une configuration de production « optimale », c'est-à-dire à une configuration minimale de serveurs, permettant de garantir le respect des exigences fixées pour l'application logicielle en termes de volumétrie (i.e. de charge cible), de disponibilité et de temps de réponse de bout en 35 bout de l'application logicielle aux requêtes des utilisateurs. Comme mentionné précédemment, la configuration de serveurs de référence utilisée pour réaliser les tests unitaires est choisie généralement de complexité relativement réduite par rapport à la configuration de serveurs sur laquelle est destinée à être effectivement déployée 3037417 5 l'application logicielle. Cette configuration de serveurs de référence peut typiquement se limiter à une seule machine (i.e. un serveur unique), par exemple la machine sur laquelle est développée l'application. Les tests unitaires réalisés à partir de cette configuration de référence visent à caractériser, pour chaque type de requête identifié comme pertinent au regard des services offerts par l'application logicielle (ex. requêtes de type souscription, résiliation, consultations d'objets multimédia, traitement, etc.), les ressources consommées par celle-ci sur chaque serveur de la configuration de référence pour traiter ce type de requête quand il n'y a pas d'accès concurrent à ces ressources. Autrement dit, il s'agit là de quantifier l'utilisation au niveau de chaque serveur de la configuration de référence des processeurs (ou unités de traitement centrales ou encore CPU 10 pour « Central Processing Unit » en anglais), de la mémoire (ex. disque, RAM (Random Access Memory)) et/ou encore des ressources réseaux (ex. connecteurs réseaux) sollicitées lors du traitement des requêtes. De tels tests unitaires sont connus en soi et sont classiquement mis en oeuvre lors du développement et du débogage des applications logicielles. Durant ces tests, on s'assure qu'il n'y a 15 pas d'accès concurrent aux ressources dont on cherche à quantifier la consommation pour traiter les requêtes envoyées à l'application logicielle. A cet effet, les requêtes peuvent être par exemple envoyées une par une à l'application logicielle exécutée par la configuration de référence (une requête étant envoyée à l'issue du traitement de la précédente), ou N requêtes (N nombre entier) peuvent être envoyées de façon déterministe à l'application logicielle en s'assurant qu'il n'y ait pas 20 d'accès concurrent aux ressources utilisées pour leur traitement. L'invention propose de tirer profit de ces tests unitaires simples à réaliser pour récolter diverses métriques de consommation de ressources liées au traitement intrinsèque de chaque requête par chaque serveur de la configuration de référence, et plus particulièrement pour chaque service représentatif offert par l'application logicielle, pour obtenir le temps d'exécution moyen 25 d'une requête invoquant ce service par chaque serveur de la configuration de référence. D'autres métriques peuvent bien entendu être obtenues lors de ces tests unitaires, comme par exemple le nombre de connecteurs réseau utilisés simultanément, le volume de RAM utilisé sur chaque serveur, la durée et le volume de disque occupé, la durée s'écoulant entre la fin d'exécution de la requête sur un serveur et le début d'exécution sur le serveur suivant, etc. Les métriques ainsi 30 récoltées servent d'entrées, conformément à l'invention, à des modèles numériques reflétant diverses exigences imposées en termes d'architecture notamment ou de types de machines à la configuration de production (c'est-à-dire diverses contraintes de déploiement de l'application logicielle) et sont exploitées pour sélectionner une configuration de production initiale satisfaisant une volumétrie (charge en termes de débit de requêtes) cible fixée pour l'application logicielle. Les 35 modèles numériques considérés modélisent par exemple les contraintes (exigences) de déploiement de l'application logicielle à partir d'au moins une file d'attente ou d'un réseau de files d'attente.OBJECT AND SUMMARY OF THE INVENTION The invention makes it possible to remedy this disadvantage by proposing a method for determining a so-called target server configuration for a deployment of a software application capable of offering at least one service, this method comprising: a step of obtaining, for at least one service offered by the software application, by means of at least one unit test performed on a so-called reference server configuration capable of executing the software application, of a the average execution time of a request invoking this service for each server in the reference configuration; a step of selecting a so-called initial server configuration for the deployment of the software application able to support a target load determined for the software application, this selection step taking into account the average execution times obtained during said minus one unit test, the target load and a specified load determined for the reference configuration, and using a numerical model reflecting at least one deployment constraint of the software application imposed on the initial server configuration; and a step of determining, from the initial configuration, a target server configuration for use in the deployment of the software application, said determining step comprising performing a plurality of holding tests. load 3037417 3 based on a theoretical maximum load estimated for the initial configuration and the target load, and using at least one request profile invoking said at least one service offered by the software application, this profile being representative of use of the software application during its deployment, said determining step further comprising, depending on the result of each load-holding test, adjusting at least one resource from the initial configuration so that the configuration target obtained after said plurality of load-bearing tests is able to verify a maximum response time set for the software application and to support said target load. Correlatively, the invention also aims at a system for determining a target configuration for a deployment of a software application, the system comprising: a first test tool allowing the execution of at least one unit test on the application software when it is executed on a so-called reference server configuration; a obtaining module, configured to control the execution of at least one unit test by the first test tool on said reference configuration and to obtain, for at least one service offered by the software application, a time average execution of a request invoking this service for each server in the reference configuration; a selection module, configured to select an initial server configuration for the deployment of the software application capable of supporting a determined target load for the software application, said selection module being configured to take account of the execution times means obtained during said at least one unit test, the target load and a given load determined for the reference configuration, and to use a numerical model reflecting at least one deployment constraint of the software application imposed on the configuration of the initial servers; a second test tool for performing load-holding tests on said software application when it is executed on the initial server configuration selected by the selection module; and a determination module configured to determine from the initial configuration a target server configuration to be used for the deployment of the software application, said determination module being configured to control the execution of a plurality of tests of the second test tool, said load-carrying tests being parameterized by the determination module according to a theoretical maximum load estimated for the initial configuration and the target load, and using at least one profile of requests invoking said at least one service offered by the software application, this profile being representative of a use of the software application during its deployment, said determination module being further configured to adjust, depending on the result of each load-bearing test, at least one resource from the initial configuration so that the configuration c ible obtained at the end of said plurality of load-bearing tests is able to verify a fixed maximum response time for the software application and to support said target load. By server, here means any type of physical or virtual machine, able to execute all or part of an instance of the software application. The software application is intended to be deployed on a configuration (ie an arrangement) of servers formed of one or more servers connected to each other and verifying imposed deployment constraints for the production of the software application (ex. multi-site deployment, use of specific machines, etc.). The invention thus proposes a method of sizing the resources necessary for deploying a software application in a production environment that relies on the structured execution of two types of tests, namely unit tests without concurrent access to resources. then load-bearing tests, judiciously parameterized. These different tests are carried out on different server configurations, namely: for unit tests, on a so-called reference, predetermined and relatively simple configuration of servers, which makes it possible to obtain results in terms of resource consumption ; and - for load-holding tests, on a configuration of so-called initial production servers whose architecture reflects the constraints imposed by the deployment of the software application in a production environment, and selected through the exploitation of the results of the unit tests performed on the reference configuration combined with a numerical model for mapping the resources of the two server configurations. The invention thus makes it possible to simply and efficiently determine a target production configuration adapted in terms of resources to the deployment of the software application in a real execution environment and verifying the different contractual requirements imposed on it by the intermediate example of an SLA agreement as previously described. This target configuration is obtained by iteratively adjusting the resources of the initial configuration at the end of each load-holding test so as to verify these requirements. The resource adjustment of a server configuration includes, within the meaning of the invention, the maintenance, addition, and / or removal of resources for at least one server of the configuration, and / or the maintenance or updating parameters of this configuration (such as the number of servers considered in this configuration). This adjustment leads to an "optimal" production configuration, that is to say a minimum configuration of servers, to ensure compliance with the requirements set for the software application in terms of volumetry (ie target load), the end-to-end availability and response time of the software application to user requests. As previously mentioned, the configuration of reference servers used to perform the unit tests is generally chosen to be relatively small in complexity compared to the server configuration on which the software application is intended to be actually deployed. This reference server configuration can typically be limited to a single machine (i.e. a single server), for example the machine on which the application is developed. The unit tests carried out from this reference configuration aim to characterize, for each type of request identified as relevant to the services offered by the software application (eg subscription type requests, termination, multimedia object consultations, processing , etc.), the resources consumed by it on each server of the reference configuration to process this type of request when there is no concurrent access to these resources. In other words, this is to quantify the use at each server of the reference configuration of the processors (or central processing units or CPU 10 for "Central Processing Unit" in English), memory (ex. disk, RAM (Random Access Memory)) and / or network resources (eg network connectors) requested during the processing of requests. Such unit tests are known per se and are conventionally implemented during the development and debugging of software applications. During these tests, it is ensured that there is no concurrent access to the resources whose consumption is to be quantified in order to process the requests sent to the software application. For this purpose, the requests can be for example sent one by one to the software application executed by the reference configuration (a request being sent at the end of the processing of the previous one), or N requests (N integer) can be sent deterministically to the software application by ensuring that there is no concurrent access to the resources used for their processing. The invention proposes to take advantage of these simple unit tests to be carried out to collect various resource consumption metrics related to the intrinsic processing of each request by each server of the reference configuration, and more particularly for each representative service offered by the application. software, to obtain the average execution time of a request invoking this service by each server of the reference configuration. Other metrics can of course be obtained during these unit tests, such as for example the number of network connectors used simultaneously, the amount of RAM used on each server, the duration and volume of disk occupied, the time elapsing between the completion of the query on a server and the start of execution on the next server, etc. The metrics thus harvested serve as inputs, according to the invention, to numerical models reflecting various requirements imposed in terms of architecture in particular or types of machines to the production configuration (ie various constraints software application deployment) and are exploited to select an initial production configuration satisfying a target volume (load in terms of request rates) set for the software application. The 35 digital models considered for example model the constraints (requirements) deployment of the software application from at least one queue or a network of queues.

3037417 6 Il convient de noter que la sélection de la configuration de production initiale se fait sur la base de résultats de tests unitaires conduits dans un environnement d'exécution idéal où les requêtes ne subissent aucune concurrence pour l'accès aux ressources. Les tests unitaires permettent donc de déterminer uniquement quels sont les besoins de l'application logicielle en 5 ressources CPU, mémoire, et/ou réseau pour traiter intrinsèquement chaque requête. La configuration de production initiale sélectionnée conformément à l'invention ne tient donc compte que d'une volumétrie à respecter et du temps d'exécution intrinsèque des requêtes en découlant. Toutefois ces hypothèses ne sont pas représentatives des conditions réelles d'utilisation de l'application logicielle dans lesquelles les requêtes des utilisateurs arrivent généralement de façon 10 non déterministe, typiquement par rafales et avec des débits parfois très différents du débit moyen des requêtes. Les tests unitaires ne fournissent donc aucune information sur le temps de réponse à proprement parler de l'application logicielle dans un environnement de production, de sorte qu'un ajustement des ressources de la configuration de production initiale sélectionnée à l'issue des tests unitaires est proposé par l'invention pour tenir compte des exigences imposées à l'application 15 logicielle en termes notamment de temps de réponse maximal de bout en bout. Ces ajustements sont encadrés par des tests de tenue en charge dûment paramétrés et qui permettent de dimensionner les ressources nécessaires à la mise en production de l'application logicielle. Ces tests de tenue en charge prennent en effet en compte non seulement les contraintes en termes de volumétrie de l'application logicielle, mais également le profil des 20 requêtes invoquant les services offerts par celle-ci et en particulier la nature des temps d'inter- arrivées des requêtes (i.e. la distribution d'arrivée de ces requêtes au niveau de l'application logicielle). Ainsi, un profil de requêtes invoquant un service comprend par exemple, pour au moins une période de temps déterminée d'un cycle d'activité de l'application logicielle ou d'un cycle d'activité de l'application logicielle : 25 un débit moyen des requêtes invoquant ce service sur ladite période de temps ; une proportion de requêtes invoquant ce service parmi les requêtes invoquant des services offerts par l'application logicielle ; et une distribution des durées d'inter-arrivées entre deux requêtes invoquant ce service sur ladite période de temps.It should be noted that the selection of the initial production configuration is based on unit test results conducted in an ideal runtime environment where queries are not competing for access to resources. The unit tests therefore make it possible to determine only what are the needs of the software application in 5 CPU, memory and / or network resources to intrinsically process each request. The initial production configuration selected in accordance with the invention therefore only takes into account a volumetric to be respected and the intrinsic execution time of the queries resulting therefrom. However, these hypotheses are not representative of the actual conditions of use of the software application in which the queries of the users generally arrive in a non-deterministic manner, typically in bursts and with rates sometimes very different from the average throughput of the requests. Unit tests therefore do not provide information on the actual response time of the software application in a production environment, so that a resource adjustment of the initial production configuration selected at the end of the unit tests is proposed by the invention to take account of the requirements imposed on the software application in terms in particular of maximum end-to-end response time. These adjustments are framed by load control tests duly parameterized and which allow to size the resources necessary for the production of the software application. These load-bearing tests indeed take into account not only the constraints in terms of volumetry of the software application, but also the profile of the 20 requests invoking the services offered by it, and in particular the nature of the interfering times. - arrivals of the requests (ie the arrival distribution of these requests at the level of the software application). Thus, a request profile invoking a service includes, for example, for at least a specified period of time of a software application activity cycle or a software application activity cycle: average of the requests invoking this service over the said period of time; a proportion of requests invoking this service among the requests invoking services offered by the software application; and a distribution of inter-arrival times between two requests invoking this service over said period of time.

30 En d'autres mots, les tests de tenue en charge prennent en compte un profil de requêtes réaliste représentatif de l'utilisation de l'application logicielle dans un environnement réel d'exécution (i.e. similaire ou tout du moins proche de celui auquel on s'attend lors de la mise en production de l'application logicielle). Il convient de noter que la configuration de production initiale sélectionnée par 35 l'invention n'est pas nécessairement strictement conforme à la configuration de serveurs qui sera déployée ultérieurement en production et testée dans un environnement réel d'exécution. Elle peut être notamment de complexité plus réduite, mais elle est sélectionnée préférentiellement de sorte à être représentative des différentes fonctionnalités et problématiques attendues lors de la mise en 3037417 production de l'application logicielle. Ainsi, la configuration de serveurs initiale est choisie préférentiellement de sorte à être représentative de la complexité logicielle, technique et fonctionnelle de l'environnement de production de l'application logicielle (ex. présence d'un noeud maître et de plusieurs noeuds secondaires qui communiquent entre eux, modélisation de la 5 communication inter-sites, prise en compte des problèmes de sécurité, etc.). De cette sorte, on s'assure que le dimensionnement des ressources réalisé par l'invention est pertinent et exploitable pour faciliter le déploiement en production de l'application et limiter les tests réalisés à grande échelle. Plusieurs configurations de serveurs cibles peuvent être identifiées à partir de 10 l'invention. La sélection de l'une de ces configurations peut ensuite être réalisée à partir de tests expérimentaux réalisés dans l'environnement de production. Toutefois le nombre de configurations de serveurs à tester est considérablement réduit par rapport à l'état de la technique. L'invention se distingue donc de l'état actuel de la technique en ce qu'elle offre une solution qui permet, avant la mise en production de l'application logicielle, de présélectionner et de 15 dimensionner, au moyen de modèles numériques, une ou plusieurs configurations de serveurs appropriées qui servent de points de départ pour le déploiement réel de l'application. Ainsi, contrairement à l'état de la technique, la sélection de la configuration optimale ne s'appuie pas uniquement sur des tests expérimentaux réalisés en production dans un environnement réel d'exécution et qui peuvent s'avérer, comme mentionné précédemment, hasardeux, coûteux et 20 chronophages. L'invention offre au contraire une possibilité de pré-provisionner les ressources nécessaires à l'exécution d'une application logicielle, ce qui permet d'effectuer de tels tests expérimentaux uniquement sur un nombre réduit de configurations en vue de sélectionner une configuration optimale. On obtient ainsi grâce à l'invention un gain substantiel en complexité et en temps.In other words, the load-bearing tests take into account a realistic request profile representative of the use of the software application in a real execution environment (ie similar or at least close to the one at which one expected when the software application goes into production). It should be noted that the initial production configuration selected by the invention is not necessarily strictly in accordance with the server configuration that will be deployed later in production and tested in a real execution environment. It may in particular be of smaller complexity, but it is selected preferentially so as to be representative of the various functionalities and problems expected during the production of the software application. Thus, the initial server configuration is preferably chosen so as to be representative of the software, technical and functional complexity of the production environment of the software application (eg the presence of a master node and several secondary nodes that communicate between them, modeling of inter-site communication, taking into account security problems, etc.). In this way, it is ensured that the sizing of the resources achieved by the invention is relevant and exploitable to facilitate the deployment of the application in production and limit large-scale tests. Several target server configurations can be identified from the invention. The selection of one of these configurations can then be made from experimental tests carried out in the production environment. However the number of server configurations to be tested is considerably reduced compared to the state of the art. The invention thus differs from the state of the art in that it offers a solution which makes it possible, before the software application is put into production, to preselect and size, by means of numerical models, a or several appropriate server configurations that serve as starting points for the actual deployment of the application. Thus, contrary to the state of the art, the selection of the optimal configuration is not based solely on experimental tests carried out in production in a real execution environment and which may prove, as mentioned above, to be hazardous, expensive and 20 time-consuming. On the contrary, the invention offers the possibility of pre-provisioning the resources required to execute a software application, which makes it possible to perform such experimental tests only on a small number of configurations in order to select an optimal configuration. This gives the invention a substantial gain in complexity and time.

25 L'invention permet donc, par rapport aux solutions existantes basées essentiellement sur des observations expérimentales, d'assurer la maîtrise et l'efficacité de la gestion de l'élasticité, et de réduire les coûts d'investissement pour des applications logicielles et des systèmes de type PaaS. Il convient de noter par ailleurs que de façon avantageuse, la mise en oeuvre de 30 l'invention ne requiert pas de connaissance détaillée des composants logiciels constituant l'application logicielle ni de l'enchaînement d'exécution de ces composants. L'application logicielle peut avantageusement être considérée comme une « boîte noire » offrant un ou plusieurs services en réponse à des requêtes d'utilisateur vérifiant un certain profil, et répartie ou instanciée sur un ou plusieurs serveurs. Les métriques de consommation des ressources issues des tests unitaires et 35 qui sont ensuite utilisées pour sélectionner une configuration de serveurs initiale sur laquelle sont effectués les tests de tenues en charge sont des métriques tous composants confondus mesurées sur chaque serveur de la configuration de référence.The invention therefore makes it possible, in comparison with existing solutions based essentially on experimental observations, to ensure the control and efficiency of the elasticity management, and to reduce the investment costs for software applications and applications. PaaS type systems. It should also be noted that, advantageously, the implementation of the invention does not require detailed knowledge of the software components constituting the software application nor of the sequence of execution of these components. The software application can advantageously be considered as a "black box" offering one or more services in response to user requests verifying a certain profile, and distributed or instantiated on one or more servers. The resource consumption metrics from the unit tests and then used to select an initial server configuration on which load tests are performed are all-component metrics measured on each server of the reference configuration.

3037417 8 Dans un mode particulier de réalisation de l'invention, le procédé de détermination comprend en outre une étape d'estimation d'une charge maximale théorique pour la configuration de référence et la charge admissible déterminée pour la configuration de référence résulte du produit d'un paramètre a compris entre 0 et 1 par la charge maximale théorique estimée pour la 5 configuration de référence. Par exemple, la charge maximale théorique pour la configuration de référence est estimée en appliquant une condition de stabilité de l'application logicielle à au moins un temps d'exécution moyen d'une requête de l'application logicielle dérivé pour ledit au moins un serveur de la configuration de référence à partir des temps d'exécution moyens obtenus pour ce serveur pour 10 les services offerts par l'application logicielle. Une telle condition de stabilité est vérifiée notamment si pour chaque serveur de la configuration de serveurs considérée pour exécuter l'application logicielle, le taux (débit) d'arrivée des requêtes est strictement inférieur au taux d'utilisation de ce serveur. Le temps de réponse du serveur peut être utilisé pour évaluer son taux d'utilisation. Cette condition de stabilité permet 15 d'évaluer facilement une charge théorique maximale pour l'application logicielle aux alentours de laquelle l'application logicielle n'est plus capable de traiter les requêtes. Cette charge théorique maximale est utilisée pour dimensionner la configuration de serveurs initiale. Par ailleurs, les inventeurs ont observé qu'en amont de cette charge théorique maximale, le temps de réponse moyen d'un serveur en fonction de la charge de l'application 20 logicielle suit généralement un premier régime linéaire en pente douce suivi d'une montée brutale définissant un deuxième régime linéaire à l'approche de la saturation du serveur. Le paramètre a compris entre 0 et 1 utilisé pour définir la charge admissible de la configuration initiale est choisi préférentiellement pour que la charge admissible considérée se situe dans une zone de transition se trouvant juste avant le deuxième régime linéaire et dans laquelle le temps de réponse de bout 25 en bout de l'application logicielle reste inférieur à un temps de réponse maximal fixé pour l'application logicielle (typiquement dans l'accord SLA). Dans cette zone « optimale », le temps de réponse versus la charge est contenu et reste inférieur au temps de réponse maximal autorisé pour l'application logicielle. On note que la valeur du paramètre a peut dépendre de la distribution des temps d'inter-arrivées des requêtes, comme détaillé ultérieurement. Toutefois une valeur de 0.8 ou 30 0.85 (ou aux alentours de ces deux valeurs) convient généralement assez bien pour mettre en oeuvre l'invention. Dans un mode particulier de réalisation, au cours de l'étape de détermination, l'ajustement d'au moins une ressource de la configuration initiale à l'issue d'un test de tenue en charge est réalisé en fonction d'une différence entre un temps de réponse de l'application logicielle 35 évalué lors du test de tenue en charge et le temps de réponse maximal fixé pour l'application logicielle. Cette façon d'ajuster les ressources en tenant compte du temps de réponse maximal fixé pour l'application logicielle et le temps de réponse obtenu de bout en bout avec la 3037417 9 configuration de serveurs en cours de test permet de converger rapidement vers un dimensionnement approprié des ressources. Dans un mode de réalisation, l'étape de détermination comprend au moins : un premier test de tenue en charge réalisé avec une première charge inférieure à une valeur 5 minimum entre une moitié de la charge maximale théorique estimée pour la configuration initiale et le produit de la charge cible par un nombre réel prédéterminé inférieur ou égal à 1 ; un deuxième test de tenue en charge réalisé avec une deuxième charge inférieure à la première charge ; et un troisième test de tenue en charge réalisé avec une troisième charge égale à la charge cible.In a particular embodiment of the invention, the determination method further comprises a step of estimating a theoretical maximum load for the reference configuration and the allowable load determined for the reference configuration results from the product of FIG. a parameter is between 0 and 1 by the theoretical maximum load estimated for the reference configuration. For example, the theoretical maximum load for the reference configuration is estimated by applying a stability condition of the software application to at least one average execution time of a request of the derived software application for said at least one server of the reference configuration from the average execution times obtained for this server for the services offered by the software application. Such a stability condition is verified in particular if for each server of the server configuration considered for executing the software application, the rate (flow) of arrival of the requests is strictly lower than the utilization rate of this server. The response time of the server can be used to evaluate its utilization rate. This stability condition makes it possible to easily evaluate a theoretical maximum load for the software application in the vicinity of which the software application is no longer able to process the requests. This theoretical maximum load is used to size the initial server configuration. Furthermore, the inventors have observed that upstream of this maximum theoretical load, the average response time of a server as a function of the load of the software application generally follows a first linear slow-slope regime followed by a brutal rise defining a second linear regime at the approach of server saturation. The parameter between 0 and 1 used to define the allowable load of the initial configuration is preferably chosen so that the load considered is in a transition zone just before the second linear regime and in which the response time of The end-to-end of the software application remains below a maximum response time set for the software application (typically in the SLA agreement). In this "optimal" zone, the response time versus the load is contained and remains below the maximum response time allowed for the software application. Note that the value of the parameter a may depend on the distribution of the inter-arrival times of the requests, as detailed later. However, a value of 0.8 or 0.85 (or around these two values) is generally well enough to implement the invention. In a particular embodiment, during the determination step, the adjustment of at least one resource of the initial configuration after a load-holding test is performed according to a difference between a response time of the software application 35 evaluated during the load withstand test and the maximum response time set for the software application. This way of adjusting the resources by taking into account the maximum response time set for the software application and the end-to-end response time with the server configuration being tested allows for quick convergence to appropriate sizing. Resource. In one embodiment, the determining step comprises at least: a first load bearing test performed with a first load less than a minimum value between one half of the theoretical maximum load estimated for the initial configuration and the product of the target load by a predetermined real number less than or equal to 1; a second load holding test performed with a second load lower than the first load; and a third charge hold test performed with a third charge equal to the target charge.

10 Ce protocole permet de limiter les tests de tenue en charge réalisés sur la configuration de serveurs initiale et d'aboutir rapidement à une configuration de serveurs cible dérivée de la configuration initiale. Par configuration dérivée de la configuration initiale on entend au sens de l'invention que la configuration est la même que la configuration initiale si celle-ci est considérée comme correctement dimensionnée ou qu'elle est obtenue après avoir ajusté des 15 ressources de la configuration initiale. Dans ce mode de réalisation, l'étape de détermination peut comprendre en outre une estimation à l'issue du deuxième test, d'un temps de réponse de l'application logicielle avec la charge cible à partir d'un temps de réponse évalué à l'issue du premier test réalisé avec la première charge sur une configuration testée dérivée de la configuration de serveur initiale et d'un 20 temps de réponse de l'application logicielle évalué à l'issue du deuxième test réalisé avec la deuxième charge sur ladite configuration testée, l'ajustement de ressources étant réalisé à l'issue du deuxième test en fonction d'une différence entre le temps de réponse estimé pour la charge cible et le temps de réponse maximal fixé pour l'application logicielle. Typiquement, à l'issue du deuxième test : 25 - la configuration de serveurs testée peut être considérée comme sous-dimensionnée si le temps de réponse estimé pour la charge cible est supérieur au temps de réponse maximal ; et/ou la configuration de serveurs testée peut être considérée comme surdimensionnée si le temps de réponse estimé pour la charge cible est inférieur au produit d'un nombre réel prédéterminé y compris entre 0 et 1 et du temps de réponse maximal, par exemple 0.9 ; et/ou 30 la configuration de serveurs testée peut être considérée comme correctement dimensionnée sinon. L'ajustement des ressources est ensuite réalisé en conséquence et le ou les tests de tenue en charge précédents sont réitérés sur la configuration ajustée pour valider cet ajustement et/ou procéder à un nouvel ajustement, et ce, jusqu'à déterminer la configuration cible apte à être 35 déployée et qui répond aux exigences fixées pour la mise en production de l'application logicielle en termes de charge et de temps de réponse de bout en bout. Typiquement, la configuration cible correspond à une configuration de serveurs testée pour laquelle à l'issue du troisième test, un 3037417 10 temps de réponse de l'application logicielle évalué pour la charge cible sur cette configuration de serveurs testée est inférieur au temps de réponse maximal. Dans un mode de réalisation particulier de l'invention, le procédé de détermination comprend en outre une étape de validation de la configuration cible au moyen d'un test 5 d'endurance réalisé pendant une durée d'exécution prédéterminée de l'application logicielle. Il s'agit par ce test d'endurance de tester l'application logicielle et la configuration de serveurs cible déterminée aux tests unitaires et aux tests de tenue en charge sur une durée suffisamment longue afin de prendre en compte, pour le dinnensionnement des ressources, des évènements rares dont la probabilité d'apparition est relativement faible. Le résultat de ce test 10 d'endurance permet de réajuster le cas échéant les ressources de la configuration cible en vue du déploiement de l'application logicielle. En effet, les métriques et les modèles numériques utilisés conformément à l'invention pour déterminer la configuration cible reposent sur certaines hypothèses d'abstraction sur le comportement de l'application logicielle, et notamment d'indépendance de certains composants ou de distribution des requêtes. Le test d'endurance 15 permet d'affiner ces modèles (et d'ajuster si besoin le dimensionnement des ressources), et dans une certaine mesure, de mettre en évidence les écarts entre la réalité et les modèles numériques utilisés établis, de les évaluer et de juger de leurs pertinences. Dans un mode particulier de réalisation, l'application logicielle est caractérisée par un cycle d'activité comprenant une pluralité d'intervalles, chaque intervalle étant associé à un débit 20 moyen d'arrivée des requêtes représentatif sur cet intervalle, et dans lequel lesdites étapes d'obtention, de sélection et de détermination sont mises en oeuvre pour au moins un intervalle de ladite pluralité d'intervalles. Ce mode de réalisation permet de s'adapter aux applications logicielles pour lesquelles on a une distribution dynamique des requêtes, autrement dit pour lesquelles le débit des arrivées 25 de requêtes de services varie de manière significative sur des intervalles de temps et ce de façon répétitive sur le cycle d'activité. Selon un autre aspect, l'invention vise également un procédé de gestion d'élasticité d'une configuration de serveurs apte à exécuter une application logicielle, ce procédé comprenant : une étape de détermination d'une configuration cible de serveurs pour le déploiement de 30 l'application logicielle comprenant l'exécution d'un procédé de détermination selon l'invention ; et une étape d'exécution de l'application logicielle sur ladite configuration cible de serveurs comprenant : o une surveillance d'au moins une métrique de supervision de cette configuration cible ; 35 et o en fonction de ladite au moins une métrique, un ajustement des ressources de la configuration cible, cet ajustement comprenant un maintien et/ou un ajout et/ou un retrait dynamique de ressources à la configuration cible.This protocol makes it possible to limit the load-bearing tests performed on the initial server configuration and to quickly reach a target server configuration derived from the initial configuration. By configuration derived from the initial configuration is meant in the sense of the invention that the configuration is the same as the initial configuration if it is considered correctly sized or it is obtained after adjusting the resources of the initial configuration . In this embodiment, the determination step may furthermore comprise an estimate at the end of the second test, of a response time of the software application with the target load from a response time evaluated at the result of the first test performed with the first load on a tested configuration derived from the initial server configuration and a response time of the evaluated software application at the end of the second test performed with the second load on said tested configuration, the resource adjustment being performed after the second test based on a difference between the estimated response time for the target load and the maximum response time set for the software application. Typically, at the end of the second test: the tested server configuration may be considered undersized if the estimated response time for the target load is greater than the maximum response time; and / or the tested server configuration may be considered oversized if the estimated response time for the target load is less than the product of a predetermined real number of between 0 and 1 and the maximum response time, for example 0.9; and / or the tested server configuration may be considered correctly sized otherwise. The resource adjustment is then carried out accordingly and the one or more previous load-holding tests are repeated on the adjusted configuration to validate this adjustment and / or to make a new adjustment, until the suitable target configuration is determined. to be deployed and that meets the requirements set for the release of the software application in terms of load and end-to-end response time. Typically, the target configuration corresponds to a tested server configuration for which, after the third test, a response time of the evaluated software application for the target load on that tested server configuration is less than the response time. maximum. In a particular embodiment of the invention, the determination method further comprises a step of validating the target configuration by means of an endurance test performed during a predetermined execution time of the software application. It is this endurance test to test the software application and target server configuration determined unit tests and load-bearing tests over a sufficiently long period to take into account, for the unfinancing of resources, rare events whose probability of occurrence is relatively low. The result of this endurance test makes it possible to readjust, if necessary, the resources of the target configuration with a view to the deployment of the software application. Indeed, the metrics and numerical models used in accordance with the invention to determine the target configuration are based on certain abstraction assumptions on the behavior of the software application, including independence of certain components or distribution of requests. The endurance test 15 makes it possible to refine these models (and if necessary to adjust the size of the resources), and to a certain extent, to reveal the differences between the reality and the numerical models used, to evaluate them. and to judge their relevance. In a particular embodiment, the software application is characterized by an activity cycle comprising a plurality of intervals, each interval being associated with a mean arrival rate of requests representing this interval, and wherein said steps for obtaining, selecting and determining are implemented for at least one interval of said plurality of intervals. This embodiment makes it possible to adapt to the software applications for which there is a dynamic distribution of the requests, in other words for which the rate of the arrivals of service requests varies significantly over time intervals and this in a repetitive manner over the business cycle. In another aspect, the invention is also directed to a resiliency management method of a server configuration capable of executing a software application, which method comprises: a step of determining a target server configuration for the deployment of servers; the software application comprising the execution of a determination method according to the invention; and a step of executing the software application on said server target configuration comprising: monitoring at least one monitoring metric of that target configuration; And o according to said at least one metric, a resource adjustment of the target configuration, which adjustment comprises maintaining and / or adding and / or dynamically removing resources to the target configuration.

3037417 11 L'invention vise aussi un système de gestion d'élasticité d'une configuration de serveurs apte à exécuter une application logicielle comprenant : un système selon l'invention de détermination d'une configuration cible de serveurs pour le déploiement de l'application logicielle comprenant l'exécution d'un procédé de détermination ; 5 un module de déclenchement d'une exécution de l'application logicielle sur la configuration cible de serveurs ; un module de surveillance d'au moins une métrique de supervision de cette configuration cible lors de l'exécution de l'application logicielle ; et un module d'ajustement configuré pour ajuster les ressources allouées à la configuration cible 10 en fonction de ladite au moins une métrique, ce module d'ajustement étant apte à maintenir les ressources allouées ou à ajouter et/ou retirer dynamiquement des ressources à la configuration cible. Le procédé et le système de gestion d'élasticité bénéficient des mêmes avantages cités précédemment que le procédé et le dispositif de détermination selon l'invention.The invention also relates to a resiliency management system of a server configuration capable of executing a software application comprising: a system according to the invention for determining a target configuration of servers for the deployment of the application software comprising performing a determination method; A module for triggering an execution of the software application on the target configuration of servers; a module for monitoring at least one supervision metric of this target configuration during the execution of the software application; and an adjustment module configured to adjust the resources allocated to the target configuration according to said at least one metric, said adjustment module being able to maintain the resources allocated or to dynamically add and / or remove resources to the target configuration. The method and the elasticity management system benefit from the same advantages mentioned above as the method and the determination device according to the invention.

15 Dans un mode particulier de réalisation, les différentes étapes du procédé de détermination et/ou du procédé de gestion d'élasticité sont déterminées par des instructions de programmes d'ordinateurs. En conséquence, l'invention vise aussi un programme d'ordinateur sur un ou plusieurs support(s) d'informations, ce programme étant susceptible d'être mis en oeuvre dans un système 20 de détermination ou plus généralement dans un ordinateur, ce programme comportant des instructions adaptées à la mise en oeuvre des étapes d'un procédé de dimensionnement tel que décrit ci-dessus. L'invention vise également un programme d'ordinateur sur un ou plusieurs support(s) d'informations, ce programme étant susceptible d'être mis en oeuvre dans un système de gestion 25 d'élasticité ou plus généralement dans un ordinateur, ce programme comportant des instructions adaptées à la mise en oeuvre des étapes d'un procédé de gestion d'élasticité tel que décrit ci- dessus. Ce programme peut utiliser n'importe quel langage de programmation, et être sous la forme de code source, code objet, ou de code intermédiaire entre code source et code objet, tel 30 que dans une forme partiellement compilée, ou dans n'importe quelle autre forme souhaitable. L'invention vise aussi un support d'informations lisible par un ordinateur, et comportant des instructions d'un programme d'ordinateur tel que mentionné ci-dessus. Le support d'informations peut être n'importe quelle entité ou dispositif capable de stocker le programme. Par exemple, le support peut comporter un moyen de stockage, tel qu'une 35 ROM, par exemple un CD ROM ou une ROM de circuit microélectronique, ou encore un moyen d'enregistrement magnétique, par exemple une disquette (floppy disc) ou un disque dur. D'autre part, le support d'informations peut être un support transmissible tel qu'un signal électrique ou optique, qui peut être acheminé via un câble électrique ou optique, par radio 3037417 12 ou par d'autres moyens. Le programme selon l'invention peut être en particulier téléchargé sur un réseau de type Internet. Alternativement, le support d'informations peut être un circuit intégré dans lequel le programme est incorporé, le circuit étant adapté pour exécuter ou pour être utilisé dans l'exécution 5 du procédé en question. On peut également envisager, dans d'autres modes de réalisation, que le procédé de détermination, le procédé de gestion d'élasticité, le système de détermination et le système de gestion d'élasticité selon l'invention présentent en combinaison tout ou partie des caractéristiques précitées.In a particular embodiment, the various steps of the determination method and / or the elasticity management method are determined by computer program instructions. Consequently, the invention also relates to a computer program on one or more information medium (s), this program being able to be implemented in a determination system or more generally in a computer, this program comprising instructions adapted to the implementation of the steps of a sizing process as described above. The invention also relates to a computer program on one or more information medium (s), this program being capable of being implemented in an elasticity management system or more generally in a computer, this program comprising instructions adapted to the implementation of the steps of a method of elasticity management as described above. This program can use any programming language, and be in the form of source code, object code, or intermediate code between source code and object code, such as in a partially compiled form, or in any another desirable form. The invention also relates to a computer-readable information medium, comprising instructions of a computer program as mentioned above. The information carrier may be any entity or device capable of storing the program. For example, the medium may comprise storage means, such as a ROM, for example a CD ROM or a microelectronic circuit ROM, or a magnetic recording means, for example a floppy disk or a disk. Hard disk. On the other hand, the information medium may be a transmissible medium such as an electrical or optical signal, which may be routed via an electrical or optical cable, by radio or by other means. The program according to the invention can be downloaded in particular on an Internet type network. Alternatively, the information carrier may be an integrated circuit in which the program is incorporated, the circuit being adapted to execute or to be used in the execution of the method in question. It can also be envisaged, in other embodiments, that the determination method, the elasticity management method, the determination system and the elasticity management system according to the invention present in combination all or some of the aforementioned features.

10 Brève description des dessins D'autres caractéristiques et avantages de la présente invention ressortiront de la description faite ci-dessous, en référence aux dessins annexés qui en illustrent un exemple de réalisation dépourvu de tout caractère limitatif. Sur les figures : 15 - la figure 1 représente, de façon schématique, un système de détermination conforme à l'invention, dans un mode particulier de réalisation ; - la figure 2 représente un outil de test permettant la réalisation de tests de tenue en charge sur une configuration de serveurs de référence sur laquelle est déployée une application logicielle et pouvant être utilisé comme composant du système de détermination de la figure 1 ; 20 - les figures 3A et 3B illustrent, pour deux services distincts d'une application logicielle, un cycle d'activité de cette application logicielle et la répartition des nombres d'arrivées de requêtes sur ce cycle d'activité ; la figure 4 représente, sous forme d'ordinogramme, les principales étapes d'un procédé de détermination conforme à l'invention dans un mode particulier de réalisation dans lequel il est 25 mis en oeuvre par le système de détermination de la figure 1; - les figures 5A à 5D illustrent l'évolution du temps de réponse d'un serveur en fonction de la charge de l'application logicielle, et pour différents profils de requêtes ; - les figures 6A à 6D illustrent plusieurs modèles de systèmes de files d'attente pouvant être utilisés pour déterminer la configuration initiale selon l'invention ; 30 - la figure 7 détaille, sous forme d'ordinogramme, les principales étapes mises en oeuvre par le système de détermination de la figure 1 dans un mode particulier de l'invention pour déterminer la configuration de serveurs cible à partir de la configuration initiale ; - les figures 8A à 8D illustrent différents cas de figure conduisant à un ajustement des ressources de la configuration initiale conformément à l'invention ; 35 - la figure 9 représente, sous forme d'ordinogramme, les principales étapes d'un procédé de gestion de l'élasticité conforme à l'invention, dans un mode particulier de réalisation ; et - la figure 10 illustre le traitement mis en oeuvre dans un mode particulier de réalisation de l'invention lorsque l'application logicielle présente un cycle d'activité périodique.BRIEF DESCRIPTION OF THE DRAWINGS Other features and advantages of the present invention will be apparent from the description given below, with reference to the accompanying drawings which illustrate an embodiment having no limiting character. In the figures: FIG. 1 schematically represents a determination system according to the invention, in a particular embodiment; FIG. 2 represents a test tool for carrying out load-holding tests on a configuration of reference servers on which a software application is deployed and which can be used as a component of the determination system of FIG. 1; FIGS. 3A and 3B illustrate, for two distinct services of a software application, a cycle of activity of this software application and the distribution of the number of arrival of requests on this activity cycle; FIG. 4 represents, in the form of a flow chart, the main steps of a determination method according to the invention in a particular embodiment in which it is implemented by the determination system of FIG. 1; FIGS. 5A to 5D illustrate the evolution of the response time of a server as a function of the load of the software application, and for different request profiles; FIGS. 6A to 6D illustrate several models of queuing systems that can be used to determine the initial configuration according to the invention; FIG. 7 details, in the form of a flow chart, the main steps implemented by the determination system of FIG. 1 in a particular embodiment of the invention for determining the configuration of target servers from the initial configuration; FIGS. 8A to 8D illustrate different cases leading to an adjustment of the resources of the initial configuration in accordance with the invention; FIG. 9 represents, in the form of a flow chart, the main steps of a method of managing the elasticity according to the invention, in a particular embodiment; and FIG. 10 illustrates the processing implemented in a particular embodiment of the invention when the software application has a periodic activity cycle.

3037417 13 Description détaillée de l'invention La figure 1 représente, dans son environnement, un système 1 de détermination d'une configuration de machines pour le déploiement d'une application logicielle APP, conforme à l'invention, dans un mode particulier de réalisation. Le système 1 propose, par le biais de la 5 configuration ainsi déterminée (désignée par configuration cible dans la suite de la description), un dimensionnennent des ressources nécessaire à la mise en production de l'application logicielle APP, autrement dit à son déploiement dans un environnement réel d'exécution. Aucune limitation n'est attachée à la nature de l'application logicielle APP. Il peut s'agir d'une application permettant l'accès à ou la génération de contenus multimédia, le référencement 10 de produits, l'accès à des équipements distants, etc. Cette application logicielle APP est apte à offrir un ou plusieurs services UC1,UC2,...,UCN (N entier supérieur ou égal à 1) à des utilisateurs, sur réception de requêtes invoquant ces services émises par ces derniers via des terminaux (ex. via un terminal mobile, un ordinateur, etc.).DETAILED DESCRIPTION OF THE INVENTION FIG. 1 represents, in its environment, a system 1 for determining a configuration of machines for the deployment of a software application APP, according to the invention, in a particular embodiment. . The system 1 proposes, through the configuration thus determined (referred to as the target configuration in the following description), a dimension of the resources needed to put the APP software application into production, that is to say its deployment in a real execution environment. No limitation is attached to the nature of the APP software application. It may be an application allowing access to or generation of multimedia content, referencing 10 products, access to remote equipment, etc. This APP software application is able to offer one or more services UC1, UC2, ..., UCN (N integer greater than or equal to 1) to users, upon receipt of requests invoking these services issued by them via terminals (ex. via a mobile terminal, a computer, etc.).

15 Dans l'exemple envisagé ici, l'application logicielle APP est destinée à être déployée (i.e. mise en production) dans un système informatique en nuage ou cloud (non représenté), sur une configuration cible de machines (serveurs) virtuelles hébergées par le cloud. Dans un tel contexte, la gestion de l'élasticité des ressources mises à disposition par le cloud pour l'exécution des applications logicielles qu'il héberge est très importante : le cloud cherche en effet à optimiser 20 le partage des ressources communes aux applications logicielles qu'il héberge en vue de réduire notamment le coût de leur déploiement, tout en garantissant la qualité des services offerts par ces applications à leurs utilisateurs. Les ressources partagées peuvent être de différentes natures : il peut s'agir notamment de ressources de type processeurs ou CPU de machines (serveurs) virtuelles et/ou physiques, de ressources mémoires (ex. RAM, disque, etc.), ou encore de 25 ressources réseaux (ex. connecteurs réseaux, etc.). La gestion de l'élasticité dans le cloud a donc pour fonction de fournir aux différentes applications logicielles les ressources précitées nécessaires à leur exécution et de garantir leur bon fonctionnement selon un accord de niveau de service (ou SLA) convenu au préalable. Chaque SLA définit des contraintes spécifiques à l'application logicielle auquel il se rapporte, notamment en 30 termes de volumétrie, de disponibilité, de temps de réponse, de fiabilité mais également de coût, de placement des machines (virtuelles dans le contexte du cloud) sur lesquelles sont déployées l'application, de droits d'utilisation et d'abonnements, etc. Autrement dit, chaque SLA associé à une application logicielle définit un certain nombre d'exigences qui se doivent d'être respectées par le cloud. La gestion de l'élasticité a pour rôle de déterminer les ressources nécessaires au 35 déploiement de l'application logicielle APP dans le cloud afin de répondre aux exigences fixées par ce SLA et ce, tout en prenant en compte les ressources engagées pour d'autres applications logicielles hébergées par le cloud et en cours d'exécution.In the example envisaged here, the APP software application is intended to be deployed (ie production) in a cloud or cloud computing system (not shown), on a target configuration of virtual machines (servers) hosted by the cloud. In such a context, the management of the elasticity of resources made available by the cloud for the execution of the software applications that it hosts is very important: the cloud indeed seeks to optimize the sharing of resources common to software applications. It hosts to reduce the cost of their deployment, while ensuring the quality of services offered by these applications to their users. The shared resources can be of different natures: they can be in particular resources of the type processors or CPU of virtual and / or physical machines (servers), of memory resources (eg RAM, disk, etc.), or of 25 network resources (eg network connectors, etc.). The purpose of cloud resilience management is therefore to provide the various software applications with the aforementioned resources required for their execution and to guarantee their proper operation according to an agreed SLA. Each SLA defines constraints specific to the software application to which it refers, in particular in terms of volumetry, availability, response time, reliability but also cost, machine placement (virtual in the context of the cloud). on which are deployed the application, usage rights and subscriptions, etc. In other words, each SLA associated with a software application defines a certain number of requirements that must be respected by the cloud. The role of elasticity management is to determine the resources required to deploy the APP software application in the cloud in order to meet the requirements set by this SLA, while taking into account resources committed for other applications. Software applications hosted by the cloud and running.

3037417 14 Dans l'exemple envisagé ici, la gestion de l'élasticité du cloud hébergeant l'application logicielle APP s'appuie sur le système de détermination 1. Plus particulièrement, celui-ci permet une gestion efficace de l'élasticité du cloud en offrant la possibilité de procéder à un préprovisionnement des ressources nécessaires à l'exécution de l'application APP avant sa mise en 5 production via la détermination d'une configuration adaptée au déploiement de l'application APP dans un environnement réel d'exécution (aussi désignée par configuration « cible »). A cet effet, conformément à l'invention, le système de détermination 1 s'appuie sur différents environnements de tests de l'application logicielle APP dans lesquels l'application est déployée sur différentes configurations de serveurs, et sur différents modules (logiciels ici) mettant 10 en oeuvre des algorithmes ou des modèles de calcul programmés exploitant les résultats obtenus dans ces environnements de tests. Plus précisément, dans le mode de réalisation décrit ici, le système de détermination 1 comprend : un outil logiciel (ou environnement) de test ENV1, construit pour réaliser des tests unitaires sur 15 l'application logicielle APP lorsque celle-ci est déployée sur une première configuration de serveurs CONFIG1 dite de référence, constituée d'un nombre Ni de serveurs reliés entre eux (Ni désignant un entier supérieur ou égal à 1) ; un outil logiciel (environnement) de test ENV2, construit pour réaliser des tests de tenue en charge de l'application logicielle APP lorsque celle-ci est déployée sur une deuxième 20 configuration de serveurs CONFIG2 dite initiale, constituée d'un nombre N2 de serveurs reliés entre eux (N2 désignant un entier supérieur ou égal à 1), et tenant compte de contraintes de déploiement de l'application logicielle APP lors de sa mise en production ; un module 2 de récolte de diverses métriques lors des tests unitaires réalisés dans l'environnement de test ENVI., apte à évaluer à partir de ces métriques une consommation des 25 ressources par les serveurs de la configuration CONFIG1 pour le traitement de requêtes invoquant des services offerts par l'application logicielle APP. Plus précisément, le module 2 est apte à obtenir ici, à partir des métriques récoltées, un temps d'exécution moyen d'une requête invoquant un service offert par l'application logicielle APP pour chaque serveur de la configuration de référence CONFIG1 et pour chaque service offert par l'application logicielle 30 APP. Il est également configuré pour estimer à partir des temps d'exécution moyens obtenus, une charge théorique maximale kmaxi pouvant être supportée par la configuration de référence CONFIG1; un module 3 de sélection de la configuration de serveurs initiale CONFIG2 sur laquelle sont réalisés les tests de tenue en charge via l'environnement de test ENV2 et qui sert de point de 35 départ au dimensionnement des ressources nécessaires pour la mise en production de l'application logicielle APP. Cette configuration CONFIG2 est sélectionnée par le module 3 de sorte à supporter une charge cible déterminée ktarg. Pour déterminer la configuration CONFIG2, le module 3 est configuré de sorte à tenir compte des temps d'exécution moyens et 3037417 15 de la charge théorique maximale krnax1 déterminés par le module 2, et à utiliser un modèle numérique reflétant les contraintes de déploiement de l'application logicielle en environnement réel d'exécution (ex. types de machines utilisées, déploiement multi-sites, connexions réseau requises, etc.). Le module 3 est également configuré pour déterminer une charge maximale 5 théorique kmax2 pour la configuration initiale CONFIG2 ainsi sélectionnée ; et - un module 4 d'ajustement des ressources et des paramètres des serveurs de la configuration CONFIG2, configuré pour déterminer à partir de la configuration initiale CONFIG2 une configuration de serveurs cible désignée par CONFIG_TARG pour la mise en production de l'application logicielle APP. Cette configuration cible est déterminée par le module 4 en 10 réalisant plusieurs tests en tenue de charge sur la configuration initiale CONFIG2 grâce à l'outil de test ENV2 : le module 4 réajuste le cas échéant à l'issue de chacun des tests, en fonction des résultats obtenus (en terme de temps de réponse moyen notamment de l'application logicielle sur la configuration testée), les ressources et les paramètres des serveurs de la configuration initiale CONFIG2 jusqu'à déterminer une configuration qui permette de garantir 15 un temps de réponse maximal TRmax fixé pour l'application logicielle APP et qui supporte la charge cible ktarg. Dans le mode de réalisation décrit ici, par souci de simplification, la configuration de référence CONFIG1 est constituée d'un serveur unique (i.e. N1=1), par exemple, le serveur S11 sur lequel a été déployée l'application APP. La généralisation de l'invention à une configuration de 20 référence plus complexe comprenant une pluralité de serveurs reliés entre eux et sur lesquels sont déployées différentes unités de déploiement de l'application logicielle APP est évoquée ultérieurement. L'outil de test ENVi est un environnement logiciel de test similaire à ceux construits classiquement pour le débogage des applications logicielles et connus de l'homme du métier. Il 25 n'est par conséquent pas décrit en détail ici. Cet environnement ENVi permet au module 2 de récolter diverses métriques, pour chaque type de requêtes identifié comme pertinent pour les services offerts par l'application logicielle APP, chaque type de requête considéré étant associé à un unique service offert par l'application. Ainsi, dans l'exemple envisagé ici, le module 2 récolte à partir des tests unitaires 30 menés dans l'environnement de test ENVi une métrique représentative de la consommation moyenne de CPU par l'application logicielle APP sur le serveur S11 de la configuration de référence CONFIG1 pour le traitement d'une requête de chaque type de requêtes retenu, autrement dit pour chaque service. Cette métrique est définie ici comme le temps d'exécution moyen d'une requête du service envisagé par le serveur de la configuration de référence CONFIG1 (autrement dit le temps 35 de traitement moyen d'une telle requête par le serveur ou encore le temps de réponse moyen du serveur à une telle requête). Le temps d'exécution d'une requête par un serveur est défini comme la somme des durées d'exécution des processus de l'application logicielle APP (ou encore des 3037417 16 tâches ou fils, plus communément désignés par « threads » en anglais) associés à la requête après/avant des entrées/sorties. En variante, le module 2 peut récolter une métrique représentative d'un taux moyen d'utilisation de CPU sur le serveur considéré, le taux d'utilisation de CPU étant défini comme le 5 pourcentage de temps où le ou les processeurs (CPU) du serveur est (sont) actif(s) par rapport à la durée d'observation lors du traitement de la requête. Cette métrique peut également être évaluée à partir du temps moyen d'exécution d'une requête par le serveur considéré, comme détaillé ultérieurement. Dans le mode de réalisation décrit ici, on se limite à des métriques relatives à 10 l'utilisation du ou des processeurs (CPU) des serveurs et au dimensionnement de ces processeurs pour déterminer la configuration cible CONFIG_TARG. Cette ressource est en effet la plus critique et la plus sensible lorsque l'on envisage une gestion dynamique des ressources dans un système de type cloud comparativement par exemple à la mémoire. Toutefois, cette hypothèse n'est pas limitative et le dimensionnement d'autres 15 ressources peut être envisagé grâce à l'invention, comme notamment le dimensionnement de ressources mémoire (ex. disque, RAM) et/ou réseaux. A cet effet, d'autres métriques peuvent être obtenues lors des tests unitaires réalisés dans l'outil de test ENVi comme notamment : - une métrique représentative de la consommation de RAM, définie à partir du volume de RAM utilisé pour le traitement de la requête ; 20 - des métriques représentatives d'une consommation de disque, définies à partir de la durée et du volume de disque occupé lors du traitement de la requête ; - une métrique représentative d'une consommation réseau définie comme la durée s'écoulant entre la fin d'exécution de la requête sur un serveur et le début d'exécution de la requête sur le serveur suivant (qui pourrait être le même serveur) ; 25 - etc. Les tests unitaires réalisés avec l'outil de test ENVi s'appuient sur des scenarios (c'est-à-dire des cas d'utilisation de l'application) consistant à émettre chaque requête après la réception et le traitement de la requête précédente de sorte à ce qu'il n'y ait pas d'accès concurrent aux ressources (CPU ici) dont on cherche à quantifier la consommation. Chaque scénario s'ensuit du 30 déroulement séquentiel ou en parallèle des fonctions composant l'application logicielle (aussi désigné par flot ou graphe d'exécution ou encore « workflow » en anglais). En variante, ces scenarios peuvent consister à émettre un nombre entier K de requêtes de façon déterministe ou périodique si le temps de traitement d'une requête n'est pas significatif, et sans accès concurrent aux ressources CPU.In the example envisaged here, the management of the elasticity of the cloud hosting the APP software application is based on the determination system 1. More particularly, it allows an efficient management of the elasticity of the cloud by providing the possibility of pre-provisioning the resources necessary to execute the APP application before it is put into production by determining a configuration adapted to the deployment of the APP application in a real execution environment (also designated by "target" configuration). For this purpose, according to the invention, the determination system 1 is based on different test environments of the APP software application in which the application is deployed on different server configurations, and on different modules (software here) implementing programmed algorithms or calculation models exploiting the results obtained in these test environments. Specifically, in the embodiment described herein, the determination system 1 comprises: an ENV1 test software tool (or environment), constructed to perform unit tests on the APP software application when it is deployed on a first CONFIG1 configuration of so-called reference servers, consisting of a number Ni of servers connected to each other (Ni denoting an integer greater than or equal to 1); an ENV2 test software tool (environment), built to carry out load-bearing tests of the APP software application when it is deployed on a second so-called initial CONFIG2 server configuration, consisting of a number N2 of servers interconnected (N2 designating an integer greater than or equal to 1), and taking into account the deployment constraints of the APP software application when it goes into production; a module 2 for collecting various metrics during unit tests carried out in the ENVI test environment, able to evaluate from these metrics a consumption of the resources by the servers of the configuration CONFIG1 for the processing of requests invoking services offered by the APP software application. More specifically, the module 2 is able to obtain here, from the harvested metrics, an average execution time of a request invoking a service offered by the APP software application for each server of the reference configuration CONFIG1 and for each service offered by the software application 30 APP. It is also configured to estimate from the average execution times obtained, a theoretical maximum load kmaxi that can be supported by the reference configuration CONFIG1; a module 3 for selecting the initial configuration of servers CONFIG2 on which the load-holding tests are carried out via the test environment ENV2 and which serves as a starting point for sizing the resources necessary for the production of the device. APP software application. This configuration CONFIG2 is selected by the module 3 so as to support a determined target load ktarg. To determine the configuration CONFIG2, the module 3 is configured to take into account the average execution times and the theoretical maximum load krnax1 determined by the module 2, and to use a numerical model reflecting the deployment constraints of the module. software application in a real execution environment (eg types of machines used, multi-site deployment, required network connections, etc.). The module 3 is also configured to determine a theoretical maximum load kmax2 for the initial configuration CONFIG2 thus selected; and a module 4 for adjusting the resources and the parameters of the servers of the configuration CONFIG2, configured to determine from the initial configuration CONFIG2 a configuration of target servers designated by CONFIG_TARG for the production of the software application APP. This target configuration is determined by the module 4 by performing several load-holding tests on the initial configuration CONFIG2 by means of the test tool ENV2: the module 4 readjusts if necessary at the end of each of the tests, depending results obtained (in terms of average response time, in particular of the software application on the tested configuration), the resources and the parameters of the servers from the initial configuration CONFIG2 until a configuration is determined which makes it possible to guarantee a response time maximum TRmax set for the APP software application and which supports the ktarg target load. In the embodiment described here, for the sake of simplicity, the reference configuration CONFIG1 consists of a single server (i.e. N1 = 1), for example, the server S11 on which the application APP has been deployed. The generalization of the invention to a more complex reference configuration comprising a plurality of servers interconnected and on which are deployed different deployment units of the APP software application is mentioned later. The ENVi test tool is a test software environment similar to those conventionally built for debugging software applications and known to those skilled in the art. It is therefore not described in detail here. This ENVi environment allows the module 2 to collect various metrics, for each type of request identified as relevant for the services offered by the APP software application, each type of request considered being associated with a single service offered by the application. Thus, in the example envisaged here, the module 2 collects, from the unit tests 30 conducted in the test environment ENVi, a metric representative of the average CPU consumption by the software application APP on the server S11 of the configuration of FIG. reference CONFIG1 for the processing of a request of each type of retained queries, in other words for each service. This metric is defined here as the average execution time of a request for the service envisaged by the server of the reference configuration CONFIG1 (in other words the average processing time of such a request by the server or the time of average server response to such a request). The execution time of a request by a server is defined as the sum of the execution times of the processes of the APP software application (or even of the tasks or threads, more commonly referred to as "threads" in English). associated with the request after / before input / output. As a variant, the module 2 can collect a metric representative of an average CPU utilization rate on the server in question, the CPU utilization rate being defined as the percentage of time during which the processor (s) of the server is (are) active relative to the duration of observation during the processing of the request. This metric can also be evaluated from the average time of execution of a request by the server considered, as detailed later. In the embodiment described here, it is limited to metrics relating to the use of the processor (s) of the servers and the sizing of these processors to determine the target configuration CONFIG_TARG. This resource is indeed the most critical and sensitive when considering a dynamic management of resources in a cloud-type system compared for example to memory. However, this assumption is not limiting and the sizing of other resources can be envisaged thanks to the invention, such as in particular the sizing of memory resources (eg disk, RAM) and / or networks. For this purpose, other metrics can be obtained during unit tests performed in the ENVi test tool such as: a metric representative of the RAM consumption, defined from the volume of RAM used for the processing of the request ; 20 - representative metrics of a disk consumption, defined from the duration and the disk volume occupied during the processing of the request; a metric representative of a network consumption defined as the time elapsing between the completion of the request on a server and the start of execution of the request on the next server (which could be the same server); 25 - etc. The unit tests performed with the ENVi test tool are based on scenarios (ie use cases of the application) of issuing each request after the receipt and processing of the previous request so that there is no concurrent access to resources (CPU here) whose consumption is to be quantified. Each scenario follows from the sequential or parallel running of the functions making up the software application (also referred to as flow or execution graph or "workflow" in English). As a variant, these scenarios may consist in transmitting an integer K of requests in a deterministic or periodic manner if the processing time of a request is not significant, and without concurrent access to the CPU resources.

35 Les requêtes considérées dans les scenarios mis en oeuvre par l'outil de test ENVi correspondent à des requêtes considérées comme pertinentes au regard des services offerts par l'application logicielle APP. La description des services offerts par l'application logicielle APP et des 3037417 17 types de requêtes invoquant ces services est obtenue par exemple de l'administrateur et/ou le développeur de l'application logicielle APP, comme indiqué plus en détail ultérieurement. Les tests unitaires déroulés dans l'environnement de test ENVi permettent donc de quantifier une consommation de ressources au niveau de chaque serveur de la configuration de 5 référence considérée pour le traitement des requêtes mais sans accès concurrent à ces ressources : ils ne fournissent par conséquent aucune information pertinente à proprement parler en termes de temps de réponse des serveurs dans un environnement réel d'exécution. Ces informations de temps de réponse, dont la connaissance est utilisée ici pour dimensionner les ressources de la configuration de production de l'application logicielle APP pour atteindre une 10 charge cible Xtarg donnée (c'est-à-dire une volumétrie imposée à l'application logicielle APP), sont obtenues dans un second temps grâce à l'outil de test ENV2 qui permet de réaliser des tests de tenue en charge sur une autre configuration de serveurs (i.e. la configuration initiale CONFIG2) construite par le module 3 à partir des résultats de tests unitaires obtenus par le module 2. Dans le mode de réalisation décrit ici, la configuration de serveurs initiale CONFIG2 est 15 choisie par le module 3 de sorte à être représentative des différentes contraintes et fonctionnalités attendues lors de la mise en production de l'application logicielle, et notamment de la complexité logicielle, technique et fonctionnelle de l'environnement d'exécution réel de l'application logicielle (aussi appelé environnement de production). Ainsi notamment, si l'on envisage un déploiement multi-sites de l'application logicielle, la configuration de serveurs initiale CONFIG2 doit comprendre 20 une pluralité de noeuds matérialisant la composante « multi-sites », un noeud central orchestrant les données véhiculées par la pluralité de noeuds, et modéliser les communications entre les différents noeuds sur lesquels s'appuie l'application logicielle. La configuration de serveurs initiale peut toutefois comprendre un nombre N2 de serveurs réduit par rapport au nombre de sites sur lesquels on envisage de déployer réellement l'application en vue de limiter notamment le coût, la 25 complexité et le temps des tests à réaliser. De façon similaire, si lors de la mise en production de l'application logicielle on envisage une fonctionnalité de type pare-feu, cette fonctionnalité doit être reflétée au niveau de la configuration de serveurs initiale. Le type de machines utilisées (ex. mono ou multiprocesseurs, capacités maximales des machines, etc.) peut également être une contrainte imposée par l'environnement de production et qui doit être reflétée dans la configuration initiale.The queries considered in the scenarios implemented by the test tool ENVi correspond to requests considered as relevant to the services offered by the software application APP. The description of the services offered by the APP software application and the types of requests invoking these services is obtained for example from the administrator and / or the developer of the APP software application, as indicated in more detail later. The unit tests carried out in the ENVi test environment therefore make it possible to quantify a resource consumption at each server of the reference configuration considered for the processing of the requests but without concurrent access to these resources: they therefore do not provide any information. information strictly speaking in terms of server response time in a real execution environment. This response time information, the knowledge of which is used here for sizing the resources of the APP software application production configuration to achieve a given Xtarg target load (i.e., a volumetry imposed on the APP software application), are obtained in a second time thanks to the ENV2 test tool which makes it possible to carry out load tests on another server configuration (ie the initial configuration CONFIG2) built by the module 3 from the Unit 2 test results obtained by the module 2. In the embodiment described here, the initial configuration of servers CONFIG2 is chosen by the module 3 so as to be representative of the various constraints and functionalities expected when the production is started. software application, and in particular the software, technical and functional complexity of the real execution environment of the software application the (also called production environment). Thus, in particular, if a multi-site deployment of the software application is envisaged, the initial CONFIG2 server configuration must comprise a plurality of nodes embodying the "multi-site" component, a central node orchestrating the data conveyed by the application. plurality of nodes, and model the communications between the different nodes on which the software application is based. The initial server configuration may, however, include a reduced number of servers N2 compared to the number of sites on which it is planned to actually deploy the application in order to limit the cost, complexity and time of the tests to be performed. Similarly, if during the production of the software application is considered a firewall type functionality, this feature should be reflected in the initial configuration of servers. The type of machines used (eg mono or multiprocessor, maximum capacity of machines, etc.) can also be a constraint imposed by the production environment and must be reflected in the initial configuration.

30 Ces différentes contraintes imposées par l'environnement de production sont matérialisées conformément à l'invention par un modèle numérique MOD, qui s'appuie ici sur le formalisme des files d'attentes ou des réseaux de files d'attente. Différents exemples de modèles numériques sont illustrés ultérieurement. Le module 3 sélectionne alors la configuration initiale CONFIG2 en utilisant ce modèle numérique MOD et en tenant compte d'une part, des résultats des 35 tests unitaires réalisés sur la configuration de référence CONFIG1 (et notamment des temps d'exécution moyens obtenus pour chaque serveur de la configuration de référence pour chaque type de requête considéré (i.e. pour chaque service), et de la charge maximale théorique) qui 3037417 18 servent de référence pour dimensionner les ressources de la configuration initiale CONFIG2, et d'autre part, de la charge cible Xtarg fixée pour l'application logicielle APP (c'est-à-dire de la volumétrie imposée à l'application logicielle APP). La configuration initiale CONFIG2 sélectionnée par le module 3 est donc un échantillon 5 réduit de la configuration de serveurs sur laquelle est destinée à être mise en production l'application logicielle APP. Cette configuration initiale CONFIG2 est utilisée conformément à l'invention comme point de départ par le module 4 du système de détermination 1 pour le dimensionnement des ressources nécessaires à l'exécution de l'application logicielle APP en environnement de production.These various constraints imposed by the production environment are materialized according to the invention by a numerical model MOD, which relies here on the formalism of queues or queuing networks. Various examples of numerical models are illustrated later. The module 3 then selects the initial configuration CONFIG2 using this numerical model MOD and taking into account, on the one hand, the results of the unit tests carried out on the reference configuration CONFIG1 (and notably the average execution times obtained for each server of the reference configuration for each type of request considered (ie for each service), and the theoretical maximum load) which serve as a reference for sizing the resources of the initial configuration CONFIG2, and on the other hand, the load Xtarg target set for the APP software application (that is, the volume imposed on the APP software application). The initial configuration CONFIG2 selected by the module 3 is therefore a reduced sample of the server configuration on which the software application APP is to be put into production. This initial configuration CONFIG2 is used according to the invention as a starting point by the module 4 of the determination system 1 for sizing the resources required to execute the APP software application in a production environment.

10 Plus précisément, le module 4 est configuré pour procéder à un ajustement des ressources de la configuration initiale CONFIG2 en fonction de résultats de tests de tenue en charge réalisés à l'aide de l'outil de test ENV2 en vue de déterminer une configuration de serveurs « cible » CONFIG_TARG pour déployer l'application logicielle APP dans un environnement de production. Ces tests permettent d'évaluer la capacité de traitements (ex. taux d'utilisation des 15 CPU ou de la mémoire, temps de réponse, etc.) des serveurs de la configuration CONFIG2 sur laquelle est déployée l'application logicielle APP, pour différentes valeurs de débit de requêtes (i.e. différentes charges de l'application logicielle) avec des flux de requêtes utilisateurs simulés représentatifs d'une utilisation réelle de l'application. A cet effet, l'outil de test ENV2 tient compte des instances de déploiement de 20 l'application logicielle APP sur les serveurs de la configuration CONFIG2, de même que de la topologie reliant les instances, du périmètre de l'application logicielle APP par rapport à son environnement (i.e. applications ou produits logiciels tiers, terminaux, etc.), des protocoles de communication mis en oeuvre, etc. Il tient compte également des caractéristiques logicielles et matérielles de la configuration CONFIG2, et notamment du paramétrage des machines physiques 25 et des machines (serveurs) virtuelles, des espaces de stockage, des aspects réseaux, et du paramétrage des produits intermédiaires (ou « middleware » en anglais) comme les serveurs d'application, les bases de données, les bus et les protocoles de communication, etc. La figure 2 illustre schématiquement un exemple d'un tel environnement de test ENV2ex élaboré pour tester une application logicielle déployée sur une configuration de serveurs 30 comprenant un serveur de présentation 6, un serveur d'application 7 et un serveur de données 8. Une instance de l'application logicielle est installée sur le serveur d'application 7. Dans l'exemple illustré à la figure 2, des requêtes HTTP (HyperText Transfer Protocol) sont envoyées par un dispositif d'injection de charge 9 à l'application logicielle APP pour traitement. Les serveurs 6, 7 et 8 sont reliés à une zone de stockage 10, via le protocole NFS 35 (Network File System). L'application logicielle APP interagit avec des dispositifs tiers, tels que par exemple un serveur d'une zone d'échange mutualisée 11 et un serveur rebond 13, et différents systèmes externes 12 et 14 modélisés à l'aide de simulateurs partenaires.More specifically, the module 4 is configured to perform a resource adjustment of the initial configuration CONFIG2 based on load-holding test results made using the test tool ENV2 to determine a configuration of CONFIG_TARG "target" servers to deploy the APP software application in a production environment. These tests make it possible to evaluate the processing capacity (eg utilization rate of the 15 CPUs or memory, response time, etc.) of the servers of the configuration CONFIG2 on which the software application APP is deployed, for different request rate values (ie different software application loads) with simulated user request flows representative of actual use of the application. For this purpose, the test tool ENV2 takes into account the deployment instances of the software application APP on the servers of the configuration CONFIG2, as well as the topology connecting the instances, of the perimeter of the software application APP by relative to its environment (ie applications or third-party software products, terminals, etc.), communication protocols implemented, etc. It also takes into account the software and hardware characteristics of the configuration CONFIG2, including the setting of physical machines and virtual machines (servers), storage spaces, network aspects, and parameterization of intermediate products (or "middleware" in English) such as application servers, databases, buses and communication protocols, etc. FIG. 2 schematically illustrates an example of such an ENV2ex test environment developed for testing a software application deployed on a server configuration 30 comprising a presentation server 6, an application server 7 and a data server 8. An instance of the software application is installed on the application server 7. In the example illustrated in FIG. 2, HTTP requests (HyperText Transfer Protocol) are sent by a charge injection device 9 to the software application APP for treatment. The servers 6, 7 and 8 are connected to a storage area 10 via the NFS protocol (Network File System). The APP software application interacts with third-party devices, such as for example a server of a shared exchange zone 11 and a rebound server 13, and various external systems 12 and 14 modeled using partner simulators.

3037417 19 De manière générale, pour réaliser des tests en tenue de charge de l'application logicielle APP, l'outil de test ENV2 comprend notamment : - des modules ou dispositifs d'injection de charge, aptes à générer et à fournir à l'application logicielle APP différents niveaux de charge générés par des utilisateurs virtuels (chaque niveau 5 de charge correspondant à un nombre d'utilisateurs virtuels différents), et à mesurer des temps de réponse moyens ou médians aux requêtes émises par ces utilisateurs virtuels. Ces modules d'injection de charge sont ici des modules CLIF s'appuyant sur un modèle de composante fractale et décrits notamment dans le document de B. Dillenseger intitulé « CLIF, a framework based on Fractal for flexible, distributed load testing », Annales des 10 Télécommunications,vol. 64, n°1-2, février 2009; et des sondes permettant d'observer différentes métriques de consommation de ressources (CPU, mémoire, réseaux, etc.) par l'application logicielle sur les serveurs de la configuration testée. L'outil de test ENV2 est configuré pour injecter, via ses modules d'injection de charge, de façon automatique, sur une durée fixe et selon une politique d'injection prédéterminée décrite 15 plus en détail ultérieurement, différents niveaux de charge (i.e. différents nombres de requêtes par unité de temps croissants) à la configuration de serveurs testée et supportant l'application logicielle APP. L'outil de test ENV2 est programmé à cet effet pour observer, après injection de chaque niveau de charge, le comportement de la configuration de serveurs testée, et décider en fonction de ce comportement du prochain niveau de charge à injecter. Le processus est réitéré jusqu'à 20 l'atteinte d'un critère prédéterminé. L'homme du métier est invité à se référer au document de N. Salmi et al. intitulé « Model-based performance anticipation in multi-tiers autonomic systems : methodology and experiments », International Journal on Advances in Networks and Services, vol 3 no 3 8( 4, 2010 (http://www.iariajournals.org/networks_and_services/tocv3n34.html), section III, pour plus de 25 détails sur l'automatisation du processus d'injection de charge mis en oeuvre par l'outil de test ENV2. Il convient toutefois de noter qu'à l'instar du mode de fonctionnement décrit dans le document de N. Salmi et al., l'outil de test ENV2 utilise, conformément à l'invention, des scénarios d'injection de charge s'appuyant sur des profils de requêtes utilisateurs représentatifs de 30 l'utilisation réelle ou tout du moins attendue de l'application logicielle APP en environnement de production (ou s'en approchant le plus possible). De tels profils peuvent être obtenus par exemple du développeur et/ou de l'administrateur de l'application logicielle APP. Ils comprennent notamment des informations relatives à la fréquence d'arrivée des requêtes, et plus particulièrement : 35 à la répartition des différents types de requêtes (i.e. proportion de chaque type de requêtes) ; aux débits moyens d'arrivée des différents types de requêtes associés aux services offerts par l'application logicielle APP ; et 3037417 20 - aux distributions des durées (temps) d'inter-arrivées entre ces requêtes (ex. distributions déterministes ou de type rafales telles que par exemple une distribution aléatoire ou exponentielle). Des informations relatives aux débits minimum et maximum peuvent également être contenues dans ces profils. Ainsi, les requêtes injectées par l'outil de test ENV2 ne sont plus systématiquement espacées de façon déterministe (ex. périodique) ou successives comme pour les tests unitaires réalisés par l'outil de test ENVI., mais des « grumeaux » de requêtes peuvent se produire et entraîner des concurrences d'accès à des ressources partagées, ce qui peut provoquer un 10 effondrement momentané de l'application logicielle APP (i.e. l'application logicielle est saturée et ne répond plus). En particulier, si un goulot d'étranglement se forme sur un serveur (correspondant à un débit crête de requêtes très supérieur au débit moyen) et persiste, le risque d'écroulement de l'application logicielle peut devenir non négligeable et le temps de réponse de celle-ci se dégrader rapidement. Les comportements observés en termes de temps de réponse et de consommation de 15 ressources de l'application logicielle à l'aide de cet outil de test ENV2 peuvent donc être très différents de ceux que l'on peut observer lors des tests unitaires réalisés à l'aide de l'outil de test ENVI. On note que l'application logicielle APP peut connaître des variations d'utilisation reproductibles sur une fenêtre temporelle, communément appelée « cycle d'activité ». Dans ce cas, 20 une connaissance détaillée des informations de débits et de distributions des temps d'inter-arrivées des requêtes sur différentes périodes de temps identifiées sur le cycle d'activité pour chaque service offert par l'application logicielle peut être envisagée. Le découpage en périodes de temps est réalisé préférentiellement de sorte à garantir que sur une période de temps donnée, le débit moyen des requêtes soit représentatif des valeurs réelles de débits observées. Ce découpage est 25 alors pris en compte au niveau de l'outil de tests ENV2. A titre d'exemple, les figures 3A et 3B illustrent, pour deux services distincts d'une application logicielle, la répartition des nombres d'arrivées de requêtes sur un cycle d'activité de 24h. Sur la figure 3A, on peut distinguer 2 à 5 périodes de temps sur lesquelles les débits 30 moyens sont assez représentatifs par rapport aux valeurs réelles de débits observées (et très différents du débit moyen global sur le cycle d'activité de 24h). Par exemple un découpage en deux périodes de temps peut consister en une première période de 00h à 8h environ et une seconde période de 8h à 00h. Sur la figure 3B, un découpage en 4 périodes de temps peut être envisagé comme 35 consistant en une première période entre Oh et 5h30, une deuxième période entre 5h30 et 10h, une troisième période entre 10h et 12h30 et une quatrième période entre 12h30 et 24h. Les sondes de l'outil de test ENV2 sont configurées pour récolter diverses métriques, et notamment ici : 3037417 21 le temps de réponse de bout en bout des requêtes utilisateur en fonction de débits d'arrivée moyens et de la distribution des inter-arrivées de requêtes utilisateur de l'application logicielle APP ; et pour chaque serveur de la configuration CONFIG2, le taux d'utilisation du ou des processeurs 5 de ce serveur, ou le temps d'exécution de la requête par le serveur. En variante, d'autres métriques peuvent être récoltées dans cet environnement de test et notamment pour chaque serveur, la distribution du nombre de connecteurs réseau utilisés, la distribution du volume de RAM utilisé, le taux d'occupation de RAM et/ou de pool de « threads » d'entrée/sortie de chaque serveur, etc.In general, in order to carry out load-bearing tests of the APP software application, the test tool ENV2 comprises in particular: modules or devices for injecting charge, able to generate and supply the software application APP different load levels generated by virtual users (each load level corresponding to a number of different virtual users), and measure average or median response times to requests issued by these virtual users. These load injection modules are here CLIF modules based on a fractal component model and described in particular in the document by B. Dillenseger entitled "CLIF, a framework based on Fractal for flexible, distributed load testing", Annals of 10 Telecommunications, Vol. 64, No. 1-2, February 2009; and probes for observing different metrics of resource consumption (CPU, memory, networks, etc.) by the software application on the servers of the tested configuration. The test tool ENV2 is configured to inject, via its charge injection modules, automatically, over a fixed duration and according to a predetermined injection policy described in more detail later, different charge levels (ie different increasing number of requests per unit of time) to the server configuration tested and supporting the APP software application. The ENV2 test tool is programmed for this purpose to observe, after the injection of each load level, the behavior of the tested server configuration, and decide according to this behavior of the next level of charge to be injected. The process is reiterated until a predetermined criterion is reached. Those skilled in the art are invited to refer to the document by N. Salmi et al. "Model-based performance anticipation in multi-tiered autonomic systems: methodology and experiments", International Journal on Advances in Networks and Services, Vol 3 no 3 8 (4, 2010 (http://www.iariajournals.org/networks_and_services/ tocv3n34.html), section III, for more details on the automation of the charge injection process implemented by the ENV2 test tool, but it should be noted that, like the operating mode As described in the document by N. Salmi et al., the test tool ENV2 uses, in accordance with the invention, load injection scenarios based on profiles of user requests representative of the actual use or at least expected from the APP software application in the production environment (or as close as possible) Such profiles can be obtained for example from the developer and / or the administrator of the APP software application. include information queries relating to the frequency of arrival of requests, and more particularly: 35 to the distribution of the different types of requests (i.e. proportion of each type of request); the average arrival rates of the different types of requests associated with the services offered by the APP software application; and - the inter-arrival duration (time) distributions between these requests (eg deterministic or burst type distributions such as for example a random or exponential distribution). Information about minimum and maximum flow rates can also be contained in these profiles. Thus, the queries injected by the ENV2 test tool are no longer systematically spaced deterministically (eg periodically) or sequentially as for the unit tests performed by the ENVI test tool, but "lumps" of queries can occur and lead to concurrent access to shared resources, which can cause a momentary collapse of the APP software application (ie the software application is saturated and unresponsive). In particular, if a bottleneck is formed on a server (corresponding to a peak request rate much higher than the average rate) and persists, the risk of collapse of the software application can become significant and the response time of it to degrade quickly. The behavior observed in terms of response time and consumption of resources of the software application with the aid of this test tool ENV2 can therefore be very different from those which can be observed during unit tests carried out at the same time. help of the ENVI test tool. It is noted that the APP software application can experience reproducible variations of use over a time window, commonly called "activity cycle". In this case, a detailed knowledge of the flow rate and timing information of the inter-arrival times of the requests over different time periods identified on the activity cycle for each service offered by the software application can be envisaged. The division into periods of time is preferably carried out so as to ensure that over a given period of time, the average throughput of the requests is representative of the actual values of observed flows. This division is then taken into account at the level of the ENV2 test tool. By way of example, FIGS. 3A and 3B illustrate, for two distinct services of a software application, the distribution of the number of arrival of requests over a 24h activity cycle. In FIG. 3A, two to five periods of time can be distinguished in which the average rates are fairly representative with respect to the actual values of observed flows (and very different from the overall average flow rate over the 24h activity cycle). For example, a division into two periods of time may consist of a first period of approximately 00h to 8h and a second period of 8h to 00h. In FIG. 3B, a division into 4 periods of time can be envisaged as consisting of a first period between 0 and 5:30, a second period between 5:30 and 10:00, a third period between 10:00 and 12:30 and a fourth period between 12:30 and 24:00. . The probes of the ENV2 test tool are configured to collect various metrics, and in particular here: 3037417 21 the end-to-end response time of the user requests as a function of average arrival rates and the distribution of the inter-arrivals of user requests from the APP software application; and for each server of the CONFIG2 configuration, the utilization rate of the processor or processors 5 of this server, or the execution time of the request by the server. Alternatively, other metrics can be collected in this test environment and in particular for each server, the distribution of the number of network connectors used, the distribution of the RAM volume used, the occupancy rate of RAM and / or pool input / output "threads" from each server, etc.

10 Comme mentionné précédemment, le module 4 du système de détermination 1 est configuré pour procéder à un ajustement des ressources et des paramètres des serveurs de la configuration initiale CONFIG2 en fonction de résultats de tests de tenue en charge réalisés à l'aide de l'outil de test ENV2. Cet ajustement qui est réalisé en s'appuyant ici sur plusieurs tests de tenue en charge judicieusement paramétrés en termes de charge injectée pour limiter la complexité 15 d'implémentation de ces tests, permet au module 4 de déterminer une configuration de serveurs « cible » (configuration CONFIG_TARG) pour le déploiement de l'application logicielle APP dans un environnement de production qui vérifie le temps de réponse maximal TRnnax fixé pour l'application logicielle et supporte la charge cible ktarg. Dans le mode de réalisation décrit ici, l'environnement de test ENV2 permet également 20 de réaliser des tests d'endurance ou de disponibilité sur la configuration de serveurs CONFIG_TARG après sa détermination par le module 4. Ces tests sont destinés à valider le dimensionnement et le paramétrage des ressources réalisés à partir des tests unitaires et des tests de tenue en charge, ces derniers étant supposés correspondre à un déploiement réel mais à échelle réduite. Il s'agit, grâce aux tests d'endurance, de tester l'application logicielle et la 25 configuration de serveurs cible CONFIG_TARG sur une durée suffisamment longue (typiquement plusieurs jours) afin de prendre en compte des événements rares ou dont la probabilité d'apparition est faible. Les scenarios de tests considérés pour ces tests d'endurance consistent à répartir les requêtes utilisateur suivant les différents types de services invoqués, et à émettre ces requêtes 30 selon une certaine charge estimée à partir des tests de tenue en charge pour la configuration cible CONFIG_TARG et selon des distributions d'inter-arrivées des requêtes prédéfinies : déterministe, aléatoire, en rafales, etc. Les métriques récoltées à l'issue de ces tests sont similaires à celles récoltées à l'issue des tests en tenue de charge (temps de réponse de bout en bout de l'application, taux d'utilisation de ressources (CPU, RAM, pool de threads, etc.) de chaque serveur, 35 etc.). Dans le mode de réalisation décrit ici, les outils de test ENVI. et ENV2 et les modules 2 à 4 du système de détermination 1 sont des modules logiciels définis à l'aide d'instructions de programmes d'ordinateur stockés en mémoire d'une ou de plusieurs machines physiques. Chacune 3037417 22 de ces machines a ici l'architecture matérielle d'un ordinateur et comprend notamment un processeur, une mémoire morte, une mémoire vive, une mémoire non volatile et un module de communication avec notamment d'autres machines ou ordinateurs. La mémoire morte de chaque machine constitue un support d'enregistrement conforme à l'invention, lisible par le processeur de 5 la machine et sur lequel est enregistré un programme d'ordinateur conforme à l'invention comportant des instructions pour l'exécution d'une ou de plusieurs étapes du procédé de dimensionnement selon l'invention. Nous allons maintenant décrire, en référence à la figure 4, les principales étapes d'un procédé de détermination selon l'invention, tel qu'il est mis en oeuvre dans un mode particulier de 10 réalisation par le système de détermination 1 illustré à la figure 1. On suppose en préliminaire de la mise en oeuvre de ce procédé qu'un certain nombre d'informations relatives à l'application logicielle APP et à son déploiement dans un environnement de production sont fournies au système de détermination 1, par exemple par l'administrateur ou le développeur de l'application logicielle. Ces informations sont stockées par exemple dans une 15 mémoire non volatile du système de détermination 1. Ainsi, notamment, est fourni au système de détermination 1 l'accord de niveau de service (SLA) défini pour l'application logicielle APP. Comme mentionné précédemment, ce SLA définit les exigences en termes de qualité des services utilisateurs UC1,...,UCN offerts par l'application logicielle APP, et en particulier, en termes de volumétrie (ex. charge cible ktarg), de 20 disponibilité et de temps de réponse maximal TRmax attendu de bout en bout. On suppose ici que les services UC1,...,UCN sont des services considérés comme représentatifs en matière de consommation de ressources, c'est-à-dire dont la consommation de ressources pour la fourniture de ces services par l'application logicielle APP est considérée comme significative par l'administrateur ou développeur de l'application logicielle. Les services UC1,..,UCN dépendent bien 25 entendu de l'application logicielle considérée. Le système de détermination 1 dispose également comme mentionné précédemment, des profils des requêtes utilisateurs représentatifs de l'utilisation réelle ou tout du moins attendue de l'application logicielle APP en environnement de production (ou s'en approchant le plus possible). Via ces profils, le système de détermination 1 connait pour chacun des services 30 UC1,...,UCN, un pourcentage (i.e. proportion) de requêtes utilisateurs invoquant ce service parmi les requêtes adressées à l'application logicielle APP. On note p_i, le pourcentage des requêtes utilisateurs destinées à l'application logicielle APP et associées au service UCi avec p_i = 1. Ces requêtes utilisateurs peuvent être de nature (type) différente selon le service qu'elles invoquent. Elles déclenchent des séquences d'exécution de l'application logicielle et 35 entrainent des consommations de ressources logicielles et matérielles. En associant chaque requête à un service, l'invention permet d'établir un modèle de consommation de ressources de 3037417 23 l'application logicielle en tenant compte des exigences utilisateur pour chacun de ces services. A titre illustratif, on peut avoir par exemple les types de requêtes suivants : pour le service UC1 : commandes/souscriptions ; pour le service UC2 : résiliations ; pour le service UC3 : consultations passant en commandes ; pour le service UC4 : traitements différés dans la nuit ; etc. Si on désigne par k le débit moyen des requêtes associées aux services principaux de l'application logicielle, le système de détermination 1 déduit de la connaissance de k et de la 10 répartition des requêtes par service, le débit moyen ?d des requêtes associées au service UCi, i= 1, N, en utilisant la relation : Xi = p_i x Les informations sur la répartition des requêtes sur les N services UC1,...,UCN, et sur les débits moyens Xi sont données par les profils des requêtes utilisateurs de l'application logicielle APP stockés au niveau du système de détermination 1.As previously mentioned, the module 4 of the determination system 1 is configured to adjust the resources and parameters of the servers of the initial configuration CONFIG2 according to results of load-bearing tests carried out using the ENV2 test tool. This adjustment, which is done by relying here on several load-bearing tests suitably parameterized in terms of the load injected to limit the complexity of the implementation of these tests, enables the module 4 to determine a configuration of "target" servers ( configuration CONFIG_TARG) for the deployment of the APP software application in a production environment that checks the maximum response time TRnnax fixed for the software application and supports the target load ktarg. In the embodiment described here, the test environment ENV2 also makes it possible to carry out endurance or availability tests on the configuration of CONFIG_TARG servers after its determination by the module 4. These tests are intended to validate the dimensioning and the parameterization of resources made from unit tests and load-bearing tests, the latter being supposed to correspond to a real deployment but on a reduced scale. It is a question, thanks to the tests of endurance, to test the software application and the configuration of target servers CONFIG_TARG on a sufficiently long duration (typically several days) in order to take into account rare events or whose probability of appearance is weak. The test scenarios considered for these endurance tests consist in distributing the user requests according to the different types of services invoked, and in issuing these requests 30 according to a certain load estimated from the load-bearing tests for the target configuration CONFIG_TARG and according to inter-arrival distributions of predefined queries: deterministic, random, burst, etc. The metrics collected after these tests are similar to those collected after load-bearing tests (end-to-end response time of the application, resource utilization rate (CPU, RAM, pool threads, etc.) of each server, etc.). In the embodiment described here, the ENVI test tools. and ENV2 and modules 2 to 4 of the determination system 1 are software modules defined using computer program instructions stored in memory of one or more physical machines. Each of these machines here has the hardware architecture of a computer and includes in particular a processor, a read-only memory, a random access memory, a non-volatile memory and a communication module including other machines or computers. The ROM of each machine constitutes a recording medium according to the invention, readable by the processor of the machine and on which is recorded a computer program according to the invention comprising instructions for the execution of one or more steps of the sizing process according to the invention. We will now describe, with reference to FIG. 4, the main steps of a determination method according to the invention, as it is implemented in a particular embodiment by the determination system 1 illustrated in FIG. FIG. 1. It is assumed as a preliminary to the implementation of this method that a certain amount of information relating to the APP software application and to its deployment in a production environment is provided to the determination system 1, for example by the administrator or developer of the software application. This information is stored, for example, in a non-volatile memory of the determination system 1. Thus, in particular, the service level agreement (SLA) defined for the software application APP is provided to the determination system 1. As mentioned above, this SLA defines the requirements in terms of the quality of the user services UC1,..., UCN offered by the software application APP, and in particular, in terms of volumetry (eg target load ktarg), of availability. and maximum expected response time TRmax end-to-end. It is assumed here that the services UC1,..., UCN are services considered as representative in terms of resource consumption, that is to say the consumption of resources for the provision of these services by the software application APP. is considered significant by the administrator or developer of the software application. The services UC1, .., UCN depend, of course, on the software application in question. The determination system 1 also has, as previously mentioned, profiles of the user requests representative of the actual or at least expected use of the APP software application in a production environment (or as close as possible). Via these profiles, the determination system 1 knows for each of the services UC1, UCN, a percentage (i.e. proportion) of user requests invoking this service among the requests addressed to the APP software application. We denote p_i, the percentage of user requests intended for the APP software application and associated with the UCi service with p_i = 1. These user requests may be of a different type (type) depending on the service they invoke. They trigger the execution sequences of the software application and result in consumption of software and hardware resources. By associating each request with a service, the invention makes it possible to establish a resource consumption model of the software application taking into account the user requirements for each of these services. As an illustration, one can have for example the following types of requests: for the UC1 service: commands / subscriptions; for the UC2 service: cancellations; for the UC3 service: consultations placing orders; for UC4 service: delayed processing at night; etc. If we denote by k the average throughput of the requests associated with the main services of the software application, the determination system 1 deduces from the knowledge of k and the distribution of the requests by service, the average throughput d of the queries associated with the service. service UCi, i = 1, N, using the relation: Xi = p_i x The information on the distribution of the requests on the N services UC1, ..., UCN, and on the average flow rates Xi are given by the profiles of the requests APP software users stored at the determination system 1.

15 Chaque profil de requêtes associé à un service comprend également, comme évoqué précédemment, une information représentative de la distribution des temps d'inter-arrivées des requêtes invoquant ce service. Une telle information précise notamment si les temps d'inter-arrivées des requêtes pour un service donné suivent une distribution déterministe ou au contraire de type rafales, telle que par exemple une distribution aléatoire ou exponentielle, en spécifiant les 20 paramètres d'une telle distribution pour qu'elle corresponde au délai moyen associé au service considéré (ex. durée « on » pendant laquelle l'application reçoit des requêtes et durée « off », etc.). Ces profils de requêtes sont utilisés dans les scénarios de test implémentés par les outils de tests ENVI. et ENV2. Le système de détermination 1 dispose également d'informations sur les contraintes de 25 déploiement imposées lors de la mise en production de l'application logicielle APP. Ces contraintes comprennent notamment le type d'architecture de déploiement envisagée (présentée par exemple sous forme d'un graphe de noeuds associés aux unités de déploiement de l'application APP). Elles peuvent porter également sur des caractéristiques des serveurs (ex. types de machines envisagées), par exemple sur la capacité et la possibilité d'extension de CPU ou de RAM d'un 30 serveur, sur l'utilisation de serveurs mono ou multiprocesseurs ou encore d'un cluster de serveurs, sur le type de configuration des unités de déploiements de l'application APP, etc. Ces informations peuvent être notamment fournies dans l'accord SLA. D'autres contraintes et/ou informations peuvent être fournies au système de détermination 1 comme par exemple des contraintes en matière de placement des serveurs, etc.Each request profile associated with a service also includes, as mentioned previously, information representative of the distribution of the inter-arrival times of the requests invoking this service. Such information particularly specifies whether the inter-arrival times of the requests for a given service follow a deterministic or burst-like distribution, such as for example a random or exponential distribution, by specifying the parameters of such a distribution. so that it corresponds to the average time associated with the service in question (eg "on" duration during which the application receives requests and "off" duration, etc.). These query profiles are used in the test cases implemented by the ENVI test tools. and ENV2. The determination system 1 also has information on the deployment constraints imposed during the production of the APP software application. These constraints include in particular the type of deployment architecture envisaged (presented for example in the form of a graph of nodes associated with the deployment units of the APP application). They may also relate to characteristics of the servers (eg types of machines envisaged), for example the capacity and the possibility of extending CPU or RAM of a server, on the use of single or multi-processor servers or another cluster of servers, the configuration type of the deployment units of the APP application, etc. This information may be provided in particular in the SLA. Other constraints and / or information may be provided to the determination system 1 such as, for example, server placement constraints, etc.

35 Toutefois par souci de simplification ici, nous ne considérerons pas de telles contraintes additionnelles.However, for the sake of simplification here, we will not consider such additional constraints.

3037417 24 Conformément à l'invention, le système de détermination 1 permet de dimensionner les ressources nécessaires à l'exécution de l'application logicielle APP sur une configuration de serveurs, en vue de son déploiement dans un environnement réel d'exécution, la configuration de serveurs dûment dimensionnée étant apte à vérifier le temps de réponse global maximal TRmax et 5 à supporter la charge cible Xtarg. A cet effet, le système de détermination 1 s'appuie sur des tests unitaires réalisés sur une configuration de serveurs « minimale » de référence (à savoir la configuration CONFIG1) pour obtenir une estimation de la consommation de ressources de l'application logicielle APP. Cette consommation de ressources est caractérisée ici : 10 d'une part, par les temps d'exécution moyens d'une requête de l'application logicielle sur chacun des serveurs S11, ...,S1N1 de la configuration CONFIG1 sur lesquels sont déployées les unités de déploiement de l'application logicielle APP. Ces temps d'exécution moyens sont désignés dans la suite de la description par E(S1j), j =1,...,N1 ; et d'autre part, par la charge maximale kmax1 pouvant être supportée par l'application logicielle 15 APP1 dans la configuration de serveurs CONFIG1 (autrement dit le débit maximum de l'application logicielle APP dans la configuration de serveurs CONFIG1). Le choix de la configuration CONFIG1 a déjà été détaillé précédemment. Le système de détermination 1 dispose donc, en préalable de l'exécution des tests unitaires, d'une description de la configuration de serveurs CONFIG1 et des caractéristiques des serveurs impliqués dans cette 20 configuration (étape E10). Comme mentionné précédemment, à titre illustratif, on choisit ici une configuration CONFIG1 minimale constituée d'un unique serveur mono-processeur désigné par S11 (N1=1). Toutefois cette hypothèse n'est en aucun cas limitative, la configuration de référence CONFIG1 pouvant comprendre plusieurs serveurs reliés entre eux. Conformément à l'invention, le système de détermination 1 via son outil de test ENVI 25 réalise des tests unitaires sur la configuration de serveurs CONFIG1 à partir de scénarios définis pour chaque type de requête identifié comme pertinent pour les services UC1,...,UCN offerts par l'application logicielle APP (étape E20). Comme mentionné précédemment, à l'issue de ces tests unitaires, le module 2 du système de détermination 1 récolte des métriques quantifiant la consommation de ressources par l'application logicielle sur le serveur S11 lors du traitement des 30 requêtes de l'App. Dans les scénarios de test mis en oeuvre, les requêtes sont envoyées à l'application logicielle de façon déterministe de sorte à ne pas avoir d'accès concurrents aux ressources (ex. CPU ici) dont on cherche à évaluer la consommation à l'aide des métriques récoltées. Dans l'exemple envisagé ici, les métriques obtenues par le module 2 durant les tests 35 unitaires correspondent pour chaque type de requête associé à un service UCi offert par l'application logicielle, à la consommation de CPU notée E(UC1,S11) par l'application logicielle sur le serveur S11 pour exécuter une requête de ce type. Chaque métrique E(UCi,S11) est plus précisément ici une mesure du temps d'exécution moyen d'une requête associée au service UCi sur 3037417 25 le serveur S11 (ou de façon équivalente, une mesure du taux d'utilisation moyen du CPU du serveur S11 pour traiter cette requête). Le module 2 évalue ensuite (étape E30), à partir des métriques E(UCi,S11), i=1,...,N, récoltées pour chaque type de requête (autrement dit pour chaque service), un temps d'exécution 5 moyen E(S11) d'une requête par l'application logicielle APP sur le serveur S11 (i.e. tous services confondus) suivant la relation : E(S11) = p_i x E(UCi, S11) Puis le module 2 évalue à partir du temps d'exécution moyen E(S11), le taux d'utilisation ju (S11) du serveur S11. Pour un serveur S11 monoprocesseur exécutant une unique instance de l'application APP, le module 2 utilise à cet effet la relation suivante : ii(S11) = E(S11) 10 On note que lorsque la configuration CONFIG1 comprend plusieurs serveurs distincts S1j, j=1,...,N1 avec N1>1 (autrement dit, l'application logicielle APP est composée de plusieurs unités de déploiement distribuées sur différents serveurs), un temps d'exécution moyen E(S1j) d'une requête par l'application logicielle APP est évalué par le module 2 pour chaque serveur S1j, j=1,...,N1 de la configuration CONFIG1 à partir des métriques récoltées lors des tests unitaires 15 menés dans l'environnement de test ENVI. De même, un taux d'utilisation (ou taux de service) moyen it(S1j) est dérivé pour chaque serveur S1j, j=1,...,N1 à partir de ce temps d'exécution moyen de façon similaire à celle décrite précédemment. A partir de ces taux d'utilisation du (ou des serveurs) de la configuration CONFIG1, le module 2 estime ici la charge maximale théorique kmax1 pour la configuration de référence 20 CONFIG1 (étape E40). A cet effet, l'invention s'appuie sur une condition dite de stabilité de l'application logicielle selon laquelle pour que l'application logicielle APP soit stable, il faut que le taux d'arrivée k des requêtes sur un serveur (qui définit ici la charge de l'application logicielle) soit strictement inférieur au taux d'utilisation de ce serveur. Autrement dit dans l'exemple du serveur unique S11 de la configuration CONFIG1 : 1 (1) 25 i(s11)ii) < 1 <,> < E(S11) Cette hypothèse de stabilité de l'application logicielle APP et la relation (1) qui en découle permettent d'estimer une borne supérieure ?maxl de la charge théorique maximale de l'application logicielle dans la configuration de référence CONFIG1 à partir des taux d'utilisation des serveurs de la configuration CONFIG1.According to the invention, the determination system 1 makes it possible to size the resources necessary for the execution of the APP software application on a server configuration, for deployment in a real execution environment, the configuration duly sized servers being able to check the maximum overall response time TRmax and support the Xtarg target load. For this purpose, the determination system 1 relies on unit tests performed on a "minimal" reference server configuration (namely the configuration CONFIG1) to obtain an estimate of the resource consumption of the software application APP. This resource consumption is characterized here: firstly, by the average execution times of a request from the software application on each of the servers S11,..., S1N1 of the configuration CONFIG1 on which are deployed the deployment units of APP software application. These average execution times are designated in the following description by E (S1j), j = 1, ..., N1; and on the other hand, by the maximum load kmax1 that can be supported by the software application APP1 in the CONFIG1 server configuration (ie the maximum bit rate of the APP software application in the configuration of CONFIG1 servers). The choice of configuration CONFIG1 has already been detailed previously. The determination system 1 therefore has, prior to the execution of the unit tests, a description of the CONFIG1 server configuration and the characteristics of the servers involved in this configuration (step E10). As mentioned above, by way of illustration, a minimum configuration CONFIG1 consisting of a single single-processor server designated S11 (N1 = 1) is chosen here. However, this assumption is in no way limiting, the reference configuration CONFIG1 may include several servers connected to each other. According to the invention, the determination system 1 via its test tool ENVI 25 performs unit tests on the configuration of CONFIG1 servers from scenarios defined for each type of request identified as relevant for the services UC1, ..., UCN offered by the APP software application (step E20). As mentioned above, at the end of these unit tests, the module 2 of the determination system 1 harvest metrics quantifying the resource consumption by the software application on the server S11 during the processing of the 30 requests of the App. In the test scenarios implemented, the requests are sent to the software application in a deterministic manner so as not to have competing access to the resources (eg CPUs here) whose consumption is sought to be evaluated using metrics harvested. In the example envisaged here, the metrics obtained by the module 2 during the unit tests correspond for each type of request associated with a service UCi offered by the software application, to the CPU consumption denoted E (UC1, S11) by the software application on the server S11 to execute a request of this type. Each metric E (UCi, S11) is more precisely here a measure of the average execution time of a request associated with the service UCi on the server S11 (or in a similar way, a measurement of the average utilization rate of the CPU of the S11 server to process this request). The module 2 then evaluates (step E30), from the metrics E (UCi, S11), i = 1, ..., N, harvested for each type of request (in other words for each service), an execution time Means E (S11) of a request by the software application APP on the server S11 (ie all services combined) according to the relation: E (S11) = p_i x E (UCi, S11) Then the module 2 evaluates from the average execution time E (S11), the utilization rate ju (S11) of the server S11. For a single-processor server S11 executing a single instance of the APP application, the module 2 uses for this purpose the following relation: ii (S11) = E (S11) We note that when the configuration CONFIG1 comprises several distinct servers S1j, j = 1, ..., N1 with N1> 1 (in other words, the APP software application is composed of several deployment units distributed on different servers), an average execution time E (S1j) of a query by l APP software application is evaluated by the module 2 for each server S1j, j = 1, ..., N1 CONFIG1 configuration from metrics collected during unit tests 15 conducted in the ENVI test environment. Similarly, an average utilization rate (or service rate) it (S1j) is derived for each server S1j, j = 1, ..., N1 from this average execution time similarly to that described previously. From these utilization rates of the (or servers) of the CONFIG1 configuration, the module 2 estimates here the theoretical maximum load kmax1 for the reference configuration CONFIG1 (step E40). For this purpose, the invention is based on a so-called stability condition of the software application according to which, in order for the software application APP to be stable, it is necessary that the arrival rate k of the requests on a server (which defines here the load of the software application) is strictly lower than the utilization rate of this server. In other words, in the example of the single server S11 of the configuration CONFIG1: 1 (1) i (s11) ii) <1 <,> <E (S11) This hypothesis of stability of the software application APP and the relation ( 1) which results from it make it possible to estimate an upper bound max maxl of the theoretical maximum load of the software application in the reference configuration CONFIG1 from the utilization rates of the servers of the configuration CONFIG1.

30 Dans le mode de réalisation décrit ici, par souci de simplification, le module 2 utilise comme borne supérieure Xmax1 de la charge théorique maximale : (2) 1 ?maxi_ = 1 E(S11) 3037417 26 Toutefois, cette hypothèse n'est pas limitative et dans un autre mode de réalisation, le module 2 peut prendre comme borne supérieure kmax1 de la charge théorique maximale une valeur 1 E avec E nombre réel strictement positif. E(S11) De manière générale, si la configuration CONFIG1 comprend Ni serveurs S11, ..., SNI, 5 en appliquant l'hypothèse de stabilité de l'application logicielle APP, on obtient : p(S1j)< 1' pour tout j =1, ..., Ni (3) où 2(S1j) représente le taux d'arrivée (charge) de requêtes de l'application logicielle APP sur le 10 serveur SIj , et tel]) représente le taux d'utilisation du serveur S1j, j= 1, ..., Ni. Ces taux 2(51j) et ,u(S1j) peuvent être obtenus par le module 2 en utilisant les équations suivantes : f 2(51j) = Eli'=1,6i; x m ii(S1j) = E(S11j) (4) E(S1j) = Elil=ip_i x Ei(S1j) avec p,, = 1 si une requête du service UCi entraîne l'exécution d'un programme sur le serveur S1j, 15 sinon 13ii = 0, et E1(S1j) désigne le temps d'exécution moyen d'une requête du service UCi sur le serveur S1j. L'inégalité (3) et les relations (4) permettent alors au module 2 d'estimer la borne supérieure Xrnax1 de la charge maximale théorique à partir de l'inégalité suivante : 1 < (5) max t(E7=ifiti x p_i) x E(S1j)jN1 j=1 Comme mentionné précédemment pour la configuration comprenant un unique 20 serveur, par souci de simplification, le module 2 utilise ici comme borne supérieure : ?maxi = 1N (6) max t(Eii\r=i /3i1xp_i)xE(S1M1 ou en variante : 1 Xmaxl = Ni max [OE1I3J x p_i) x E(S1j)li=1 avec E nombre réel strictement positif. La borne supérieure kmax1 ainsi déterminée à l'aide de l'égalité (2) ou (6) est utilisée 25 par la suite par le module 2, et plus généralement par le système de détermination 1, comme estimation de la charge théorique maximale de l'application logicielle dans la configuration de référence CONFIG1. On note que l'inégalité (5) ci-dessus met en évidence l'influence de la puissance et du nombre de serveurs dans la configuration de serveurs CONFIG1 sur la charge maximale admissible 30 par l'application logicielle. Ainsi, au regard de cette inégalité, il convient, pour utiliser les serveurs S1j, j=1,...,N1 de la configuration CONFIG1 le plus équitablement possible, de s'assurer que les charges de ces serveurs S1j qui sont égales à(e1_, x p_i) x E(S1j), j=1,...,N1 soient les plus '1(51 j) 3037417 27 proches possibles les unes des autres. De cette sorte, on peut optimiser le coût des serveurs dans le déploiement de l'application logicielle APP y compris sur la configuration de serveurs de référence CONFIG1. La charge maximale théorique ?maxl estimée par le module 2 donne une borne 5 supérieure pour les valeurs de débits de requêtes pouvant être supportées par l'application logicielle APP dans la configuration de serveurs de référence CONFIG1. Dans le mode de réalisation décrit ici, le module 2 détermine alors, à partir de cette borne supérieure, une valeur de débit (i.e. une charge) X dite admissible pour la configuration CONFIG1 (étape E50) selon : X=axXrnax1 (6) 10 avec a nombre réel tel que 0<a<1. Les figures 5A à 5D illustrent l'impact du choix du paramètre a sur les performances de l'application logicielle APP. La figure 5A représente schématiquement l'allure générale du temps de réponse moyen (exprimé en millisecondes) d'une application logicielle APP déployée sur un nombre NS de 15 serveurs, NSk 1, en fonction du débit moyen de requêtes injectées (exprimé en nombre de requêtes par seconde). Une telle figure peut être obtenue en réalisant des tests de tenue en charge par exemple à l'aide de l'environnement de test ENV2. Sur cette figure, on peut identifier trois zones principales, notées respectivement Z1, ZOpt et Z2, et telles que : 20 lorsque les valeurs de charge se situent dans la zone Z1, les temps de réponse moyens de l'application logicielle APP suivent un premier régime linéaire dans lequel tous les serveurs de la configuration considérée se comportent normalement et ont la possibilité de traiter davantage de requêtes. Autrement dit, la zone Z1 matérialise une zone où les serveurs de la configuration considérée sont sous-utilisés (zone de sous-utilisation des ressources) ; 25 lorsque les valeurs de charge se situent dans la zone Z2, les temps de réponse moyens de l'application logicielle APP suivent un second régime linéaire dans lequel ils se dégradent plus rapidement que l'accroissement de la charge correspondant. Dans cette zone dite de congestion, une saturation des serveurs et de l'application logicielle peut se produire, autrement dit, certains au moins des serveurs de la configuration testée sont surchargés ; 30 lorsque les valeurs de charge se situent dans la zone ZOpt, les temps de réponse moyens de l'application logicielle APP se trouvent au voisinage du changement de régimes. Ils doivent bien entendu restés bornés par la valeur TRmax du temps de réponse maximal jugé acceptable pour l'application logicielle. Dans cette zone, la capacité maximum de certains serveurs de la configuration de serveurs peut être atteinte.In the embodiment described here, for the sake of simplification, the module 2 uses the maximum theoretical load as the upper bound Xmax1: (2) 1? Maxi_ = 1 E (S11) 3037417 26 However, this hypothesis is not and in another embodiment, the module 2 can take as the upper bound kmax1 of the theoretical maximum load a value 1 E with E strictly positive real number. E (S11) In general, if the configuration CONFIG1 comprises Ni servers S11,..., SNI, 5 by applying the stability assumption of the software application APP, we obtain: p (S1j) <1 'for all j = 1, ..., Ni (3) where 2 (S1j) represents the arrival rate (load) of requests of the software application APP on the server SIj, and such]) represents the utilization rate of the server S1j, j = 1, ..., Ni. These rates 2 (51j) and, u (S1j) can be obtained by the module 2 by using the following equations: f 2 (51j) = Eli '= 1.6i; xm ii (S1j) = E (S11j) (4) E (S1j) = Elil = ip_i x Ei (S1j) with p ,, = 1 if a request from the UCi service causes the execution of a program on the S1j server , Otherwise 13ii = 0, and E1 (S1j) designates the average execution time of a request of the service UCi on the server S1j. The inequality (3) and the relations (4) then allow the module 2 to estimate the upper bound Xrnax1 of the theoretical maximum load from the following inequality: 1 <(5) max t (E7 = ifiti x p_i ) As mentioned above for the configuration comprising a single server, for the sake of simplification, the module 2 uses here as upper bound: maxi = 1N (6) max t (Eii \ r = i / 3i1xp_i) xE (S1M1 or alternatively: 1 Xmaxl = Ni max [OE1I3J x p_i) x E (S1j) li = 1 with E strictly positive real number. The upper limit kmax1 thus determined by means of the equality (2) or (6) is used subsequently by the module 2, and more generally by the determination system 1, as an estimate of the theoretical maximum load of the software application in the CONFIG1 reference configuration. It is noted that the inequality (5) above highlights the influence of the power and the number of servers in the configuration of servers CONFIG1 on the maximum allowable load 30 by the software application. Thus, in view of this inequality, to use the servers S1j, j = 1,..., N1 of the configuration CONFIG1 as equitably as possible, to ensure that the loads of these servers S1j which are equal to (e1_, x p_i) x E (S1j), j = 1, ..., N1 are the closest possible 1 1 (51j) 3037417 27 possible from each other. In this way, it is possible to optimize the cost of the servers in the deployment of the APP software application including on the configuration of reference servers CONFIG1. The theoretical maximum load? Max1 estimated by the module 2 gives an upper bound for the request rate values that can be supported by the software application APP in the configuration of reference servers CONFIG1. In the embodiment described here, the module 2 then determines, from this upper bound, a value of flow (ie a load) X that is admissible for the configuration CONFIG1 (step E50) according to: X = axXrnax1 (6) 10 with a real number such that 0 <a <1. FIGS. 5A to 5D illustrate the impact of the choice of the parameter a on the performances of the software application APP. FIG. 5A schematically represents the general appearance of the average response time (expressed in milliseconds) of a software application APP deployed on a number NS of 15 servers, NSk 1, as a function of the average bit rate of requests injected (expressed in number of queries per second). Such a figure can be obtained by carrying out load-bearing tests, for example using the ENV2 test environment. In this figure, one can identify three main areas, denoted respectively Z1, ZOpt and Z2, and such that: when the load values are in the zone Z1, the mean response times of the APP software application follow a first linear scheme in which all the servers of the considered configuration behave normally and have the possibility of processing more requests. In other words, the zone Z1 materializes an area where the servers of the considered configuration are underutilized (zone of underutilization of the resources); When the load values are in the zone Z2, the average response times of the software application APP follow a second linear regime in which they degrade more rapidly than the increase in the corresponding load. In this so-called congestion zone, saturation of the servers and the software application may occur, in other words, at least some of the servers of the tested configuration are overloaded; When the load values are in the zone ZOpt, the average response times of the software application APP are in the vicinity of the change of speeds. They must of course be limited by the value TRmax of the maximum response time deemed acceptable for the software application. In this zone, the maximum capacity of some servers in the server configuration can be reached.

35 II convient de noter que la fin du premier régime linéaire (et donc la zone Z1) est beaucoup plus facile à caractériser que la valeur de charge marquant le début de la surcharge des serveurs de l'application logicielle (début de la zone Z2) car cette valeur est particulièrement instable. Les inventeurs ont constaté par expérience que la charge « limite » matérialisant la fin de la zone 3037417 28 optimale ZOpt peut être considérée comme matérialisant également le début de la zone Z2, du fait qu'au-delà de cette charge limite, la saturation des serveurs et de l'application logicielle devient imminente. Cette charge limite peut être considérée comme la valeur de charge correspondant au temps de réponse maximal TRmax jugé acceptable pour l'application logicielle APP. On peut par 5 ailleurs considérer que la fin de la zone Z2 correspond à la charge théorique maximale knnax1 donnée par les bornes supérieures des inégalités (2) et (5). On suppose ici que le paramètre a est choisi pour que la charge X se trouve dans la zone ZOpt. Ceci permet d'optimiser l'utilisation des serveurs sur lesquelles est déployée l'application logicielle tout en respectant le temps de réponse maximal exigé.It should be noted that the end of the first linear regime (and therefore the zone Z1) is much easier to characterize than the load value marking the beginning of the overload of the servers of the software application (beginning of zone Z2). because this value is particularly unstable. The inventors have found by experience that the "limit" load materializing the end of the optimal zone ZOpt can be considered as also materializing the beginning of zone Z2, because beyond this limit load, the saturation of servers and software application becomes imminent. This limit load can be considered as the load value corresponding to the maximum response time TRmax deemed acceptable for the software application APP. It can also be considered that the end of the zone Z2 corresponds to the theoretical maximum load knnax1 given by the upper bounds of the inequalities (2) and (5). It is assumed here that the parameter a is chosen so that the load X is in the zone ZOpt. This makes it possible to optimize the use of the servers on which the software application is deployed while respecting the maximum response time required.

10 Comme l'illustrent les figures 5B à 5D, on note que la distribution des temps d'inter- arrivées des requêtes a une influence sur la position du point d'intersection des régimes linéaires des zones Z1 et Z2. Les figures 5B à 5D représentent respectivement des résultats de trois séries de tests de tenue en charge réalisés sur une application logicielle déployée sur une configuration de serveurs, ces résultats illustrant les temps de réponse moyens obtenus en fonction des débits 15 de requêtes moyens envoyés à l'application logicielle et en faisant varier les inter-arrivées des requêtes suivant une distribution déterministe (cf. figure 5B), une distribution exponentielle (figure 5C) ou une distribution en rafale (figure 5D). On peut constater sur ces figures que moins le trafic de requêtes est régulier (autrement dit, plus il s'éloigne d'une distribution déterministe), plus le changement de régimes apparait tôt en terme de charge. Sur cet exemple, on observe que, le 20 paramètre a peut être choisi égal à environ 0.95 pour des inter-arrivées déterministes, à 0.80 pour des inter-arrivées exponentielles et à 0.50 ou 0.60 pour des inter-arrivées en rafale. Au vu de ces constats, on suppose ici que le module 2 sélectionne une valeur du paramètre a comprise entre 0.80 et 0.95. Il obtient ainsi la valeur de charge admissible X à partir de l'équation (6) (étape E50).As illustrated in FIGS. 5B-5D, it will be noted that the distribution of the inter-arrival times of the requests has an influence on the position of the point of intersection of the linear regimes of the zones Z1 and Z2. FIGS. 5B-5D respectively represent the results of three series of load-bearing tests performed on a software application deployed on a server configuration, these results illustrating the average response times obtained as a function of the average request rates sent to the server. software application and by varying the inter-arrivals of requests according to a deterministic distribution (see FIG. 5B), an exponential distribution (FIG. 5C) or a burst distribution (FIG. 5D). It can be seen from these figures that the less regular the request traffic (in other words, the further away it is from a deterministic distribution), the earlier the regime change appears in terms of load. In this example, it can be observed that the parameter a can be chosen equal to approximately 0.95 for deterministic inter-arrivals, 0.80 for exponential inter-arrivals and 0.50 or 0.60 for burst inter-arrivals. In view of these findings, it is assumed here that the module 2 selects a value of the parameter a between 0.80 and 0.95. It thus obtains the value of admissible load X from equation (6) (step E50).

25 En variante, le module 2 sélectionne une valeur du paramètre a en tenant compte des distributions d'inter-arrivées des requêtes spécifiées dans les profils de requêtes associés aux différents services UC1,...,UCN, par exemple en se basant sur les valeurs précitées (0.95 pour des inter-arrivées déterministes, 0.80 pour des inter-arrivées exponentielles). Les différents éléments estimés par le module 2 à partir de la configuration de 30 référence CONFIG1 et des tests unitaires (i.e. charge maximale, charge admissible, etc.) servent alors conformément à l'invention de données de référence pour tout dimensionnement de serveurs dans un futur environnement de production de l'application logicielle APP dans lequel des exigences en termes de caractéristiques des serveurs et de volumétrie sont prédéfinies par le SLA. Le dimensionnement des serveurs de cet environnement de production de l'application logicielle 35 APP se fait en deux temps par le système de détermination 1 : (1) sélection par le module 3 d'une configuration de serveurs initiale (à savoir la configuration CONFIG2) pour le déploiement de l'application logicielle comprenant la détermination du nombre 3037417 29 de serveurs de cette configuration et de leurs paramètres en fonction de la volumétrie exigée dans le SLA (i.e. de la charge cible ktarg) (étape E60), et l'estimation de la charge théorique maximale pour cette configuration CONFIG2 (étape E70) ; et (2) ajustement par le module 4 du nombre et des paramètres des serveurs de la configuration 5 CONFIG2 pour satisfaire le temps de réponse maximal TRmax de bout en bout exigé dans le SLA (étape E80), et obtention de la configuration de serveurs cible CONFIG TARG (étape E90). Nous allons maintenant détailler davantage les étapes E60-E90 mises en oeuvre par les modules 3 et 4 conduisant à l'obtention de la configuration de serveurs cible CONFIG_TARG. Pour sélectionner la configuration initiale CONFIG2 (étape E60), le module 3 tient 10 compte de la charge (volumétrie) cible ktarg et des caractéristiques des serveurs imposées par les contraintes de déploiement de l'application logicielle APP. Plus précisément, il s'appuie sur la charge maximale ?maxi et la charge admissible k évaluées par le module 2 à partir des résultats des tests unitaires conduits sur la configuration de serveurs CONFIG1 et sur des règles de correspondance établies entre les paramètres des serveurs de la configuration CONFIG1 et les 15 paramètres des serveurs de la configuration CONFIG2, pour le choix du nombre et des paramètres des serveurs à considérer dans la configuration CONFIG2. Ces règles de correspondance sont établies ici en s'appuyant sur la théorie des files d'attente (ou des réseaux de files d'attente). Elles permettent au module 3 de déterminer la puissance et le nombre de serveurs ou clusters de serveurs S2j, j=1,...,N2 à considérer dans la configuration initiale CONFIG2 en tenant compte de 20 leurs caractéristiques (monoprocesseur, multiprocesseurs, etc.). De façon connue, selon la théorie des files d'attente, chaque système de file d'attente est un formalisme composé d'une file d'attente et d'un serveur, et est caractérisé principalement par : un processus aléatoire d'arrivées de requêtes, défini par un débit d'arrivée des requêtes et une 25 distribution des temps d'inter-arrivées des requêtes ; un processus de service défini par une distribution statistique du temps de service ; une politique d'ordonnancement des requêtes du serveur (ex. FIFO (First In First Out), PS, RR, etc.) ; - un nombre de serveurs ; et 30 - une capacité (taille) de la file d'attente. Dans le mode de réalisation décrit ici, on adopte cette modélisation par file d'attente en faisant les hypothèses suivantes pour l'application logicielle APP : - un processeur (CPU) du serveur est modélisé par un serveur d'une file d'attente ; - la durée d'exécution d'une requête correspond au temps de service ; 35 - le stockage/mémoire du serveur est modélisé par la file d'attente ; et - les arrivées des requêtes sont modélisées par le processus d'arrivées.In a variant, the module 2 selects a value of the parameter a taking into account the inter-arrival distributions of the requests specified in the request profiles associated with the different services UC1,..., UCN, for example based on the values above (0.95 for deterministic inter-arrivals, 0.80 for exponential inter-arrivals). The different elements estimated by the module 2 from the configuration of reference CONFIG1 and the unit tests (ie maximum load, allowable load, etc.) are then used in accordance with the invention of reference data for any sizing of servers in a future production environment of the APP software application in which requirements in terms of server characteristics and volumetry are predefined by the SLA. The sizing of the servers of this production environment of the software application APP 35 is done in two stages by the determination system 1: (1) selection by the module 3 of an initial server configuration (namely the configuration CONFIG2) for the deployment of the software application comprising determining the number of servers of this configuration and their parameters according to the volume required in the SLA (ie the target load ktarg) (step E60), and the estimation the theoretical maximum load for this configuration CONFIG2 (step E70); and (2) adjustment by the module 4 of the number and parameters of the CONFIG2 configuration servers to satisfy the end-to-end maximum TRmax response time required in the SLA (step E80), and obtaining the target server configuration CONFIG TARG (step E90). We will now detail further the E60-E90 steps implemented by the modules 3 and 4 leading to obtaining the CONFIG_TARG target server configuration. In order to select the initial configuration CONFIG2 (step E60), the module 3 takes into account the target load (volume) ktarg and the characteristics of the servers imposed by the deployment constraints of the software application APP. More specifically, it is based on the maximum load? Max and the admissible load k evaluated by the module 2 from the results of the unit tests conducted on the configuration of servers CONFIG1 and on correspondence rules established between the parameters of the servers. the configuration CONFIG1 and the 15 parameters of the servers of the CONFIG2 configuration, for the choice of the number and parameters of the servers to be considered in the CONFIG2 configuration. These matching rules are established here based on the theory of queues (or queuing networks). They allow the module 3 to determine the power and the number of servers or server clusters S2j, j = 1,..., N2 to be considered in the initial configuration CONFIG2 taking into account their characteristics (single-processor, multiprocessor, etc.). ). In a known manner, according to the queuing theory, each queuing system is a formalism composed of a queue and a server, and is mainly characterized by: a random process of arrivals of queues; queries, defined by a request arrival rate and a distribution of the inter-arrival times of the requests; a service process defined by a statistical distribution of service time; a policy for scheduling server requests (eg FIFO (First In First Out), PS, RR, etc.); - a number of servers; and 30 - a capacity (size) of the queue. In the embodiment described here, this queue modeling is adopted by making the following assumptions for the APP software application: a processor (CPU) of the server is modeled by a server of a queue; the execution time of a request corresponds to the service time; The storage / memory of the server is modeled by the queue; and - the arrivals of the requests are modeled by the process of arrivals.

3037417 30 Ces hypothèses permettent une modélisation simple d'une application logicielle s'exécutant sur un ou plusieurs serveurs monoprocesseur, multi-fils ou multiprocesseurs. Ainsi, à titre illustratif : la figure 6A représente une modélisation par un système de file d'attente d'une application 5 logicielle s'exécutant sur un serveur monoprocesseur ; la figure 6B représente une modélisation par un système de file d'attente d'une application logicielle s'exécutant sur un serveur multiprocesseur comprenant m processeurs identiques ; et la figure 6C représente une modélisation par un système de file d'attente d'une application logicielle s'exécutant sur un cluster de n serveurs multiprocesseur identiques.These assumptions allow simple modeling of a software application running on one or more single-processor, multi-threaded or multiprocessor servers. Thus, by way of illustration: FIG. 6A shows a queue system modeling of a software application running on a single processor server; FIG. 6B illustrates a queue system modeling of a software application running on a multiprocessor server comprising m identical processors; and Figure 6C shows a queue system modeling of a software application running on a cluster of n identical multiprocessor servers.

10 D'autres configurations peuvent bien entendu être envisagées. Notamment, les unités de déploiement de l'application logicielle peuvent être distribuées et déployées sur des serveurs ou clusters de serveurs reliés entre eux via un réseau de télécommunications (NW), et être modélisées alors par un réseau de files d'attente dont un exemple est illustré à la figure 6D. Le module 3 associe donc un modèle de système ou de réseau de files d'attente à la 15 configuration CONFIG2, en fonction des contraintes imposées pour le déploiement. Il convient de noter que cette association peut être réalisée en amont du procédé de détermination selon l'invention, par exemple dès lors que les contraintes de déploiement de l'application logicielle APP sont connues. Puis, à partir de ce modèle, le module 3 établit une relation (c'est-à-dire une règle de 20 correspondance) entre les temps d'exécution moyens des serveurs ou cluster(s) de serveurs de la configuration CONFIG2 avec ceux du ou des serveurs de la configuration CONFIG1. Pour les exemples de modèles envisagés sur les figures 6A à 6C et pour une configuration de référence CONFIG1 comprenant un unique serveur S11, le module 3 établit par exemple les relations suivantes (modèle numérique MOD au sens de l'invention) en tenant compte de la charge cible 25 ktarg et de la charge admissible k estimée par le module 2 pour la configuration de référence CONFIG1: - Pour une application logicielle s'exécutant sur une configuration CONFIG2 constituée d'un unique serveur S21 monoprocesseur (cf. modélisé sur la figure 6A), le serveur S21 doit être choisi tel que (étape E60) : x, 30 E(S21) = Xtarg X E(S11) où E(S21) désigne le temps d'exécution moyen d'une requête de l'application logicielle APP sur le serveur S21. Cela signifie par exemple, que si la charge cible ktarg = 2 x X, il faut que le serveur S21 de la configuration initiale CONFIG2 soit deux fois plus puissant en termes de CPU que le serveur S11 de la configuration de référence CONFIG1. Ainsi, la même requête pourra 35 être exécutée par le serveur S21 en deux fois moins de temps, conduisant à un taux d'utilisation deux fois supérieur en termes de CPU.Other configurations may of course be envisaged. In particular, the deployment units of the software application can be distributed and deployed on servers or server clusters interconnected via a telecommunications network (NW), and then modeled by a network of queues, an example of which is shown in Figure 6D. The module 3 therefore associates a system or queue network model with the CONFIG2 configuration, depending on the constraints imposed for the deployment. It should be noted that this association can be performed upstream of the determination method according to the invention, for example since the deployment constraints of the APP software application are known. Then, from this model, the module 3 establishes a relationship (i.e., a matching rule) between the average execution times of the servers or cluster (s) of the configuration CONFIG2 servers with those the server or servers in CONFIG1 configuration. For the exemplary models envisaged in FIGS. 6A to 6C and for a reference configuration CONFIG1 comprising a single server S11, the module 3 establishes, for example, the following relationships (digital model MOD within the meaning of the invention) taking into account the target load 25 ktarg and the admissible load k estimated by the module 2 for the reference configuration CONFIG1: - For a software application running on a CONFIG2 configuration consisting of a single single-processor server S21 (see modeled in FIG. ), the server S21 must be chosen such that (step E60): x, E (S21) = Xtarg XE (S11) where E (S21) designates the average execution time of a request of the software application APP on the server S21. This means, for example, that if the target load ktarg = 2 x X, the server S21 of the initial configuration CONFIG2 must be twice as powerful in terms of CPU as the server S11 of the reference configuration CONFIG1. Thus, the same request may be executed by the server S21 in half the time, resulting in a utilization rate twice as high in terms of CPU.

3037417 31 A partir de cette relation et en faisant une hypothèse de stabilité de l'application logicielle APP telle qu'évoquée précédemment, le module 3 estime une charge maximale théorique Xmax2 pour la configuration CONFIG2 qui est telle que (étape E70) : Itarg < Xmax2 5 avec 1 2max2 = E(S21) Pour une application logicielle s'exécutant sur une configuration CONFIG2 constituée d'un serveur S21 multiprocesseur ayant m processeurs identiques (cf. modélisé sur la figure 6B), le serveur S21 doit être choisi tel que (étape E60) : 10 E(S21)= E(Sproc) < x x E(S11) ktarg où E(S21) désigne le temps d'exécution moyen d'une requête de l'application logicielle APP sur le serveur S21 et E(5,,',) désigne le temps d'exécution de la requête par un processeur. Comme dans l'exemple ci-dessus, le module 3 estime alors une charge maximale théorique Xmax2 pour la configuration CONFIG2 qui est dans ce cas telle que (étape E70) : 15 ktarg < 2,max2 avec 1 m E (S21). E(Sproc) Imax2 -= Pour une application logicielle s'exécutant sur une configuration CONFIG2 constituée d'un cluster de n serveurs S21 multiprocesseur identiques ayant m processeurs identiques (cf. 20 modélisé sur la figure 6C), le cluster de serveurs S21 doit être choisi tel que (étape E60) : E(cluster)= E(Sproc) < X E(S11) nm - Xtarg où E(cluster) désigne le temps d'exécution moyen d'une requête de l'application logicielle APP sur le cluster de serveurs S21 et E(S0) désigne le temps d'exécution de la requête par un processeur d'un serveur S21, soit : 25 x E(Sp',)X E(S11) x nm Xtarg Comme dans les deux exemples ci-dessus, le module 3 estime alors une charge maximale théorique Xmax2 pour la configuration CONFIG2 qui est dans ce cas telle que (étape E70) : Xtarg < kmax2 30 avec 1 nm Xmax2 = = E(cluster ) E(Sproc) D'autres modèles plus complexes peuvent bien entendu être envisagés pour modéliser la configuration de serveurs CONFIG2 en fonction des contraintes de déploiement imposées, à 35 partir desquels sont dérivées des relations entre la charge cible ktarg, les temps d'exécution des 3037417 32 serveurs de la configuration CONFIG1 et les temps d'exécution des serveurs de la configuration CONFIG2. Ainsi, par exemple, on considère une application logicielle APP offrant un service unique destinée à s'exécuter sur une configuration CONFIG2 constituée de plusieurs serveurs 5 distribués S21, S22 et d'un cluster de serveurs comprenant n serveurs identiques S23, le serveur S21 étant un serveur multiprocesseur comprenant m processeurs identiques Sproc- Dans ce cas, le module 3 peut déterminer la puissance et le nombre de serveurs et/ou de processeurs de la configuration CONFIG2 à partir de résultats de tests unitaires réalisés sur une configuration de référence CONFIG1 implémentant trois unités de déploiement de l'application logicielle APP sur 10 trois serveurs S11, S12 et S13 et en fonction de de la charge cible Itarg. Plus précisément, le module 3 choisit dans ce cas la puissance et le nombre de serveurs pour la configuration initiale CONFIG2 tels que (étape E60) : E(S21) = E(SProc) _ X X E(S11) m Xtarg X. E(S22) = x E(S12) 2aarg E(cluster 523) = E(S23) = 2^,x E(S13) n Itarg 15 Les mêmes notations qu'introduites précédemment sont utilisées. Comme dans les trois exemples ci-dessus, le module 3 estime alors une charge maximale théorique pour la configuration CONFIG2 qui est dans ce cas telle que (étape E70) : Xtarg < 2max2 avec 20 Xmax2 1 = min IE(smproc)'E(S22)'E(Sn23)} Selon un autre exemple encore, on considère une application logicielle APP offrant une pluralité de services UC1,...,UCN, chaque service correspondant à un pourcentage de requêtes p_i, i=1,...,N, l'application logicielle étant destinée à s'exécuter sur une configuration CONFIG2 25 comprenant des serveurs ou clusters de serveurs distribués S21, S22 et S23, chacun de ces serveurs comprenant respectivement ml, m2 et m3 processeurs identiques notés Sproc211 5proc22 et Sproc23" La configuration CONFIG1 comprend trois serveurs S11, S12 et S13 implémentant trois unités de déploiement de l'application logicielle APP. Le module 3 choisit alors dans ce cas la puissance et le nombre de serveurs pour la configuration initiale CONFIG2 tels que (étape E60) : 3037417 33 E (S-,,roc21 4 E (S22) = E (Spmr ol c22) Ir ppiti. xX ,A, txairgi X E(S11) X E. (S12) E(S21) = ' E 23) (smr2oc i=1 Atargi N 21,i E(S23) = ' 5_ 1 p_ix , x E( S13) . m3 i=i Atargi Les mêmes notations qu'introduites précédemment sont utilisées, les charges admissibles et cibles étant dans cet exemple déterminées par les tests unitaires sur les serveurs pour l'ensemble des services de l'application logicielle APP. Comme dans les exemples ci-dessus, le module 3 estime alors une charge maximale théorique 5 Xmax2 pour la configuration CONFIG2 qui est dans ce cas telle que (étape E70) : ktarg < Xmax2 avec ml m2 m3 1 2.max2 = min mproc21)'E(sproc22)'"sproc23)).From this relation and making a hypothesis of stability of the APP software application as mentioned previously, the module 3 estimates a theoretical maximum load Xmax2 for the configuration CONFIG2 which is such that (step E70): Itarg < Xmax2 5 with 1 2max2 = E (S21) For a software application running on a CONFIG2 configuration consisting of a multiprocessor S21 server having m identical processors (see modeled in FIG. 6B), the server S21 must be chosen such that (step E60): E (S21) = E (Sproc) <xx E (S11) ktarg where E (S21) designates the average execution time of a request of the software application APP on the server S21 and E (5 ,, ',) denotes the execution time of the request by a processor. As in the example above, the module 3 then estimates a theoretical maximum load Xmax2 for the configuration CONFIG2 which is in this case such that (step E70): ktarg <2, max2 with 1 m E (S21). E (Sproc) Imax2 - = For a software application running on a CONFIG2 configuration consisting of a cluster of n identical multiprocessor S21 servers having m identical processors (see modeled in Figure 6C), the server cluster S21 must be chosen such that (step E60): E (cluster) = E (Sproc) <XE (S11) nm - Xtarg where E (cluster) designates the average execution time of a request of the software application APP on the server cluster S21 and E (S0) denotes the execution time of the request by a processor of a server S21, that is: 25 x E (Sp ') XE (S11) x nm Xtarg As in both examples above, the module 3 then estimates a theoretical maximum load Xmax2 for the configuration CONFIG2 which is in this case such that (step E70): Xtarg <kmax2 30 with 1 nm Xmax2 = = E (cluster) E (Sproc) Others more complex models can of course be considered to model the configuration of CONFIG2 servers according to the constraints of deployment These are based on the relationships between the target load ktarg, the execution times of the servers CONFIG1 and the execution times of the servers of the configuration CONFIG2. Thus, for example, we consider a software application APP offering a single service intended to run on a configuration CONFIG2 consisting of several distributed servers S21, S22 and a server cluster comprising n identical servers S23, the server S21 being a multiprocessor server comprising m identical Sproc processors. In this case, the module 3 can determine the power and the number of servers and / or processors of the CONFIG2 configuration from unit test results performed on a reference configuration CONFIG1 implementing three APP software deployment units on 10 three servers S11, S12 and S13 and depending on the Itarg target load. More precisely, the module 3 selects in this case the power and the number of servers for the initial configuration CONFIG2 such that (step E60): E (S21) = E (SProc) _ XXE (S11) Xtarg X. E (S22) ) = x E (S12) 2aarg E (cluster 523) = E (S23) = 2 ^, x E (S13) n Itarg The same notations previously introduced are used. As in the three examples above, the module 3 then estimates a theoretical maximum load for the configuration CONFIG2 which is in this case such that (step E70): Xtarg <2max2 with 20 Xmax2 1 = min IE (smproc) 'E ( S22) 'E (Sn23)} According to yet another example, consider an APP software application offering a plurality of services UC1, ..., UCN, each service corresponding to a percentage of requests p_i, i = 1, ... , N, the software application being intended to run on a configuration CONFIG2 comprising servers or distributed server clusters S21, S22 and S23, each of these servers respectively comprising ml, m2 and m3 identical processors denoted Sproc211 5proc22 and Sproc23 CONFIG1 configuration comprises three servers S11, S12 and S13 implementing three deployment units of the APP software application The module 3 then chooses in this case the power and the number of servers for the initial configuration CONFIG2 such that (step E60 ): E (S - ,, roc21 4 E (S22) = E (Spmr ol c22) Ir ppiti. xX, A, txairgi XE (S11) X E. (S12) E (S21) = 'E 23) (smr2oc i = 1 Atargi N 21, i E (S23) =' 5_ 1 p_ix, x E (S13). m3 i = i Enlarged The same ratings as previously introduced are used, the permissible and target loads being in this example determined by the unit tests on the servers for all the services of the APP software application. above, the module 3 then estimates a theoretical maximum load 5 Xmax2 for the configuration CONFIG2 which is in this case such that (step E70): ktarg <Xmax2 with ml m2 m3 1 2.max2 = min mproc21) 'E (sproc22) "sproc23)).

10 Bien entendu, ces modèles ne sont donnés qu'à titre illustratif et ne sont en aucun cas exhaustifs. La valeur de charge maximale théorique Xmax2 ainsi obtenue à l'étape E70 par le module d'estimation 3 pour la configuration initiale CONFIG2 sélectionnée à l'étape E60, et qui majore en particulier la charge cible Xtarg, est ensuite utilisée par le système de détermination 1, 15 et plus particulièrement par le module 4, pour borner les tests de tenue en charge réalisés sur la configuration de serveurs initiale CONFIG2 à l'aide de l'outil de test ENV2. Plus précisément, comme mentionné précédemment, le système de détermination 1 réalise ensuite, par l'intermédiaire de son outil de test ENV2 et de son module 4, des tests de tenue en charge sur la configuration de serveurs initiale CONFIG2 (étape E80). Ces tests ont pour 20 objectif d'évaluer la capacité de traitements (ex. taux d'utilisation CPU, temps de réponse, etc.) des serveurs de l'application logicielle APP dans la configuration de serveurs CONFIG2 avec des flux de requêtes utilisateurs simulés représentatifs d'une utilisation réelle de l'application logicielle. Autrement dit, l'environnement de test ENV2 tient compte lors de ces tests non seulement du débit de requêtes demandé (et en particulier de la charge cible Xtarg imposée par l'accord de niveau de 25 service SLA), mais également de la variation des temps qui séparent deux arrivées de requêtes consécutives aussi appelé temps d'inter-arrivées des requêtes. En effet, la configuration CONFIG2 sélectionnée par le module 3 est construite à partir de modèles numériques de dimensionnement basés uniquement sur le débit moyen des requêtes envoyées à l'application logicielle APP et sur des métriques de tests unitaires pour lesquelles il est 30 accédé aux ressources des serveurs sans concurrence. Or la variation des temps d'inter-arrivées des requêtes impacte de façon importante le temps de réponse de bout en bout de l'application logicielle comme mentionné précédemment, et 3037417 34 peut être source d'engorgement, voire d'arrêt de serveurs de l'application logicielle notamment si des grumeaux de requêtes se forment et persistent dans le temps lors de l'exécution de l'application logicielle. Conformément à l'invention, la configuration initiale CONFIG2 sert donc 5 avantageusement de point départ pour effectuer des tests de tenue en charge dans l'environnement ENV2 en s'appuyant sur des injections de requêtes proches du comportement des utilisateurs de l'application logicielle APP dans un environnement de production. Ce sont les résultats de ces tests qui permettent au module 4, au cours de l'étape E80, d'ajuster et/ou de réajuster le nombre et/ou les paramètres des serveurs, l'objectif étant d'obtenir une configuration 10 de serveurs cible CONFIG_TARG destinée à la production (étape E90). Autrement dit, durant ces tests de tenue en charge, contrairement aux tests unitaires précédemment réalisés sur la configuration de serveurs CONFIG1, les temps d'inter-arrivées des requêtes ne sont plus déterministes mais ils sont proches des distributions réellement rencontrées lors de l'utilisation de l'application logicielle dans un environnement réel d'exécution. Ces 15 distributions ont été définies préalablement par l'administrateur de l'application logicielle et sont stockées comme mentionné précédemment en mémoire du système de détermination 1, dans des profils de requêtes utilisateurs définis pour chaque service UC1,...,UCN. Ainsi, en considérant de telles distributions réalistes, des grumeaux de requêtes peuvent se produire et entraîner des accès concurrents à des ressources partagées de la configuration CONFIG2, ce qui peut provoquer un 20 effondrement momentané de l'application logicielle ou dégrader fortement son temps de réponse. Les comportements en termes de consommation de ressources de l'application logicielle APP sur les serveurs de la configuration CONFIG2 peuvent donc être très différents de ceux estimés précédemment par le module 3. En particulier, la configuration CONFIG2 telle que sélectionnée par le module 3 pour 25 supporter la charge cible 2darg a été sélectionnée sans tenir compte des variations des temps d'inter-arrivées des requêtes de l'application logicielle APP. Rien ne garantit donc que cette charge cible se trouve en dehors de la zone de congestion Z2 décrite précédemment en référence à la figure 5A. Le module 4 ajuste et/ou réajuste la configuration de serveurs CONFIG2 au fil des tests de tenues en charge, autrement dit dimensionne les ressources de la configuration CONFIG2, de 30 sorte à s'assurer que la charge cible ktarg se trouve, pour la configuration ajustée, dans la zone Zopt, i.e. en dehors de la zone de congestion Z2. La limite supérieure en termes de charges de cette zone Zopt correspond à la charge conduisant au temps de réponse maximal TRmax fixé par l'accord SLA. Dans le mode de réalisation décrit ici, pour réaliser ces ajustements au cours de l'étape 35 E80, le module 4 du système de détermination 1 met en oeuvre une politique d'injection de charges permettant de minimiser le nombre de tests réalisés dans l'environnement ENV2. Plus précisément, les tests de tenue en charge sont réalisés en injectant en entrée de l'application logicielle et de la configuration CONFIG2 des charges selon un algorithme détaillé ci- 3037417 35 après. Ces charges sont inférieures en tout état de cause à la charge théorique maximale 2anax2 déterminée par le module 3, cette charge 2max2 étant strictement supérieure à la charge cible Xtarg. Ces injections de charge sont réalisées à l'aide des modules d'injection de charge de l'outil de test ENV2. Les temps d'inter-arrivées de requêtes injectées suivent une distribution proche 5 d'une utilisation réelle de l'application logicielle et telle que spécifiée dans les profils de requêtes utilisateurs. Il convient de noter qu'avantageusement, l'invention ne requiert pas la connaissance des distributions de charge devant être injectées individuellement à chaque serveur de la configuration CONFIG2. L'invention se contente d'une connaissance globale des profils de requêtes pour l'application logicielle de bout en bout.Of course, these models are given for illustrative purposes only and are by no means exhaustive. The theoretical maximum load value Xmax2 thus obtained in step E70 by the estimation module 3 for the initial configuration CONFIG2 selected in step E60, and which in particular increases the target load Xtarg, is then used by the evaluation system. determination 1, 15 and more particularly by the module 4, to limit the load-bearing tests performed on the CONFIG2 initial server configuration using the test tool ENV2. More specifically, as mentioned above, the determination system 1 then carries out, through its test tool ENV2 and its module 4, load-bearing tests on the initial configuration of servers CONFIG2 (step E80). These tests are intended to evaluate the processing capacity (eg CPU utilization rate, response time, etc.) of the APP software application servers in the configuration of CONFIG2 servers with simulated user request flows. representative of actual use of the software application. In other words, the test environment ENV2 takes into account in these tests not only the request request rate (and in particular the target load Xtarg imposed by the SLA service level agreement), but also the variation of the requests. times that separate two consecutive query arrivals also called inter-arrival times of queries. Indeed, the CONFIG2 configuration selected by the module 3 is constructed from digital sizing models based solely on the average throughput of the requests sent to the APP software application and on unit test metrics for which the resources are accessed. servers without competition. However, the variation in the times of inter-arrival of the requests has a significant impact on the end-to-end response time of the software application as mentioned above, and 3037417 34 can be a source of congestion or even of stopping of servers. the software application in particular if clumps of requests are formed and persist in time during the execution of the software application. According to the invention, the initial CONFIG2 configuration therefore advantageously serves as a starting point for performing load-holding tests in the ENV2 environment by relying on requests injections close to the behavior of the users of the APP software application. in a production environment. It is the results of these tests that enable module 4, during step E80, to adjust and / or readjust the number and / or the parameters of the servers, the objective being to obtain a configuration 10 of target servers CONFIG_TARG for production (step E90). In other words, during these load-holding tests, unlike the unit tests previously performed on the CONFIG1 server configuration, the inter-arrival times of the requests are no longer deterministic but they are close to the distributions actually encountered during the use. of the software application in a real execution environment. These 15 distributions were previously defined by the administrator of the software application and are stored as mentioned previously in the memory of the determination system 1, in profiles of user requests defined for each service UC1, ..., UCN. Thus, considering such realistic distributions, clumps of queries may occur and result in concurrent access to shared resources of the CONFIG2 configuration, which may cause a momentary collapse of the software application or severely degrade its response time. . The behaviors in terms of resource consumption of the APP software application on the servers of the CONFIG2 configuration can therefore be very different from those previously estimated by the module 3. In particular, the configuration CONFIG2 as selected by the module 3 for 25 support the 2darg target load was selected without taking into account variations in the inter-arrival times of requests from the APP software application. There is therefore no guarantee that this target load is outside the congestion zone Z2 described above with reference to FIG. 5A. The module 4 adjusts and / or readjusts the configuration of CONFIG2 servers as a result of load hold tests, that is, scales the resources of the CONFIG2 configuration to ensure that the target load ktarg is for the configuration adjusted, in the zone Zopt, ie outside the zone of congestion Z2. The upper limit in terms of the charges of this zone Zopt corresponds to the charge leading to the maximum response time TRmax fixed by the SLA agreement. In the embodiment described here, to make these adjustments during step E80, the module 4 of the determination system 1 implements a charge injection policy to minimize the number of tests performed in the system. ENV2 environment. More specifically, the load withstand tests are performed by injecting the input of the software application and CONFIG2 configuration loads according to an algorithm detailed below. These charges are lower in any case than the maximum theoretical load 2anax2 determined by the module 3, this load 2max2 being strictly greater than the target load Xtarg. These charge injections are performed using the charge injection modules of the ENV2 test tool. The inter-arrival times of injected requests follow a distribution close to a real use of the software application and as specified in the user request profiles. It should be noted that, advantageously, the invention does not require knowledge of the load distributions to be individually injected to each server of the CONFIG2 configuration. The invention is content with a global knowledge of the query profiles for the end-to-end software application.

10 Pour chaque valeur de charge injectée lors de ces tests de tenue en charge, le module 4 obtient ici les métriques suivantes : temps de réponse de bout en bout de l'application logicielle APP ; et consommation des ressources (ex. CPU, RAM, pool, etc.) pour chacun des serveurs S2j ,j = 1, , N2 de la configuration de serveurs testée (CONFIG2 ou CONFIG2 ajustée).For each load value injected during these load-holding tests, the module 4 obtains the following metrics here: end-to-end response time of the software application APP; and resource consumption (eg CPU, RAM, pool, etc.) for each server S2j, j = 1,, N2 of the tested server configuration (CONFIG2 or CONFIG2 adjusted).

15 La figure 7 illustre plus en détail, sous forme d'ordinogramme, l'algorithme mis en oeuvre par le module 4 pour réaliser de manière optimisée au cours de l'étape E80 les tests de tenue en charge et l'ajustement des ressources de la configuration CONFIG2. Conformément à cet algorithme, le module 4 choisit tout d'abord un débit de requêtes (charge) .1.testl tel que (étape E801) : (Xmax2 ittestl = min 2 ,K1 x Xtarg) 20 où K1 désigne une constante réelle prédéterminée inférieure ou égale à 1. Par exemple K1=0.8. Puis le module 4 réalise un premier test de tenue en charge sur la configuration initiale CONFIG2 issue de l'étape E60 en injectant via l'environnement de test ENV2 une charge égale à Âtest1 (étape E802). Le module 4 compare alors le temps de réponse TR(Âtest1) de bout en bout de 25 l'application logicielle APP obtenu pour cette charge Âtestl par rapport au temps de réponse maximal attendu TRmax (étape test E803). Si TR(Mest1) est supérieur à TRmax (réponse oui à l'étape test E803), alors cela signifie qu'un ou plusieurs serveurs de la configuration CONFIG2 sont sous-dimensionnés et qu'il convient de procéder à un ajustement du nombre de serveurs et/ou de leurs paramètres et/ou 30 ressources (étape E804). Cet ajustement est réalisé par le module 4 en tenant compte des consommations individuelles de chaque serveur de la configuration testée pour renforcer les ressources de ceux qui sont le plus chargés. La valeur du dépassement du temps de réponse TR(Âtest1) par rapport au temps de réponse maximal TRmax définit le ratio de cet ajustement. A titre d'exemple, la figure 8A illustre un cas de dépassement de 25% du temps de 35 réponse maximal TRmax, i.e.(TR(11test1)) - TRmax ) /TRmax) = 25%. Dans ce cas, le module 4 applique une augmentation des ressources de la configuration CONFIG2 du même ordre, soit en 3037417 36 ajustant le nombre de serveurs de la configuration, soit en ajustant leurs paramètres (ex. puissance des processeurs, nombre de processeurs, etc.). Lorsque le redimensionnement de la configuration CONFIG2 est terminé, les étapes précédentes sont réitérées sur la configuration ajustée (toujours notée CONFIG2 par souci de 5 simplification), autrement dit, le module 4 reprend l'étape E802 et l'applique à la configuration ajustée. Si TR(Mestl) est inférieur ou égal à TRmax (réponse non à l'étape test E803), alors le module 4 sélectionne une nouvelle valeur de charge notée Âtest2 telle que ittest2 < ittestl (étape E805). Par exemple, le module 4 choisit ici une charge ittest2 = K2 x Âtestl avec K2 constante 10 réelle prédéterminée inférieure à 1. K2 est par exemple prise ici égale à 0.25. En variante, le module 4 choisit une charge Âtest2 déterminée en fonction de la charge cible 2targ, par exemple égale à 10% de la charge cible ittarg. Puis le module 4 réalise un deuxième test de tenue en charge sur la configuration CONFIG2, via l'environnement de test ENV2, en injectant la charge ittest2 à l'application logicielle 15 APP (étape E806). Il obtient à l'issue de ce test le temps de réponse TR(.1,test2) de bout en bout de l'application logicielle APP. Le module 4 détermine ensuite, à partir des charges 2testl et Mest2 et des temps de réponse de l'application logicielle APP TR(Âtestl) et TR(2test2) obtenus pour ces charges, une estimation du temps de réponse de l'application logicielle pour la configuration de serveurs testée 20 pour une charge égale à la charge cible Âtarg (étape E807). Cette estimation est notée D(2targ). Dans le mode de réalisation décrit ici, cette estimation est obtenue par le module 4 en considérant la droite D passant par les points Al et A2 de coordonnées respectives A1=(.1testl,TR(Âtest1)) et A2=(.1test2,TR(ittest2)), et le point A de la droite D d'abscisse iltarg. Le module 4 prend comme estimation D(.1targ) l'ordonnée du point A. La figure 8B illustre cette 25 droite sur un exemple ainsi que l'estimation D(2targ) obtenue à partir de cette droite. Il convient de noter que les constantes K1 et K2 sont choisies préférentiellement de sorte à obtenir deux points Al et A2 suffisamment éloignés pour permettre la construction de la droite D. Les valeurs considérées dans l'exemple décrit ici, à savoir K1=0.8 et K2=0.25 permettent avantageusement d'obtenir un tel tracé, toutefois d'autres valeurs peuvent être envisagées en 30 variante. Puis le module 4 compare la valeur D(.1targ) au temps de réponse maximal TRmax spécifié dans l'accord SLA (étape test E808). Si D(Âtarg) est supérieur à TRmax (réponse oui à l'étape test E808), alors cela signifie qu'un ou plusieurs serveurs de la configuration CONFIG2 sont sous-dimensionnés et qu'il convient 35 de procéder à un ajustement du nombre de serveurs et/ou de leurs paramètres et/ou ressources (étape E809). Cet ajustement est réalisé par le module 4, comme à l'étape E804, en tenant compte des consommations individuelles de chaque serveur de la configuration testée pour renforcer les 3037417 37 ressources de ceux qui sont le plus chargés. La valeur du dépassement du temps de réponse D(Âtarg) par rapport au temps de réponse maximal TRmax définit le ratio de cet ajustement. A titre d'exemple, la figure 8B illustre un cas de dépassement par D(.1targ) du temps de réponse maximal TRmax. Dans ce cas, le module 4 applique une augmentation des ressources 5 de la configuration CONFIG2 du même ordre que (D(.1targ) - TRmax ) /TRmax, soit en ajustant le nombre de serveurs de la configuration, soit en ajustant leurs paramètres (ex. puissance des processeurs, nombre de processeurs, etc.). Lorsque le redimensionnement de la configuration CONFIG2 est terminé, les étapes précédentes sont réitérées sur la configuration ajustée (toujours notée CONFIG2 par souci de 10 simplification), autrement dit, le module 4 reprend l'étape E802 et l'applique à la configuration ajustée. Si au contraire D(2targ) est inférieur ou égal à TRmax (réponse non à l'étape test E808), alors le module 4 examine si D(/ttarg) est sensiblement inférieur à TRmax (étape test E810). Dans le mode de réalisation décrit ici, par sensiblement inférieur, on entend que D(Âtarg) 15 est inférieur à y = 90% de la valeur de TRmax. Bien entendu, cette valeur y prise égale à 90% ou de manière équivalente à 0.9 est paramétrable et n'est donné qu'à titre illustratif. La figure 8C illustre un exemple où D(.1targ) est sensiblement inférieur à TRmax selon le critère précité. Si un tel cas de figure se présente (réponse oui à l'étape test E810), cela signifie que 20 la configuration CONFIG2 testée (qui correspond à la configuration CONFIG2 éventuellement ajustée et/ou réajustée) est surdinnensionnée. Le module 4 procède donc à un (ré)ajustement des ressources de la configuration CONFIG2 en se basant comme à l'étape E809 sur la différence (D(Âtarg) - TRmax ) /TRmax (étape E811). Puis lorsque le redimensionnement de la configuration CONFIG2 est terminé, les 25 étapes précédentes sont réitérées sur la configuration ajustée (toujours notée CONFIG2 par souci de simplification), autrement dit, le module 4 reprend l'étape E802 et l'applique à la configuration ajustée. Sinon (réponse non à l'étape test E810), le module 4 sélectionne une nouvelle charge 2test3 égale cette fois-ci à la charge cible ittarg (étape E812) et réalise un nouveau test de tenue 30 en charge sur la configuration CONFIG2 en injectant, via l'environnement de test ENV2, à l'application logicielle APP déployée sur cette configuration la charge Âtest3 (étape E813). Le module 4 compare ensuite le temps de réponse TR(Âtest3) de bout en bout de l'application logicielle APP obtenu pour cette charge Âtest3 par rapport au temps de réponse maximal attendu TRmax (étape test E814).FIG. 7 illustrates in more detail, in the form of a flowchart, the algorithm implemented by the module 4 for optimally performing during step E80 the load-bearing tests and the adjustment of the resources of FIG. the CONFIG2 configuration. In accordance with this algorithm, the module 4 first chooses a request (load) rate .1.test1 such that (step E801): (Xmax2 ittest1 = min2, K1 × Xtarg) 20 where K1 designates a predetermined real constant less than or equal to 1. For example K1 = 0.8. Then the module 4 performs a first load-holding test on the initial configuration CONFIG2 from step E60 by injecting via the test environment ENV2 a load equal to At1 (step E802). The module 4 then compares the end-to-end response time TR (Δtest1) of the software application APP obtained for this load Δtestl with respect to the expected maximum response time TRmax (test step E803). If TR (Mest1) is greater than TRmax (yes answer to the test step E803), then this means that one or more servers of the configuration CONFIG2 are undersized and that it is necessary to proceed to an adjustment of the number of servers and / or their parameters and / or resources (step E804). This adjustment is made by module 4 taking into account the individual consumption of each server of the tested configuration to reinforce the resources of those who are most loaded. The value of exceeding the response time TR (Δtest1) with respect to the maximum response time TRmax defines the ratio of this adjustment. By way of example, FIG. 8A illustrates a 25% overshoot of the maximum response time TRmax, i.e. (TR (11test1)) - TRmax) / TRmax) = 25%. In this case, the module 4 applies an increase in the resources of the configuration CONFIG2 of the same order, either by adjusting the number of servers of the configuration, or by adjusting their parameters (eg processor power, number of processors, etc. .). When the resizing of the CONFIG2 configuration is completed, the previous steps are reiterated on the adjusted configuration (still denoted CONFIG2 for the sake of simplification), ie, the module 4 resumes the step E802 and applies it to the adjusted configuration. If TR (Mestl) is less than or equal to TRmax (answer no to the test step E803), then the module 4 selects a new load value denoted bytest2 such that ittest2 <ittestl (step E805). For example, the module 4 here chooses a load ittest2 = K2 x Atestl with K2 constant real predetermined 10 less than 1. K2 is for example taken here equal to 0.25. In a variant, the module 4 chooses a charge Δtest2 determined as a function of the target load 2targ, for example equal to 10% of the target load ittarg. Then, the module 4 performs a second load-holding test on the configuration CONFIG2, via the test environment ENV2, by injecting the load ittest2 to the software application APP 15 (step E806). At the end of this test, it obtains the end-to-end response time TR (.1, test2) of the software application APP. The module 4 then determines, from the loads 2test1 and Mest2 and the response times of the software application APP TR (Atestl) and TR (2test2) obtained for these loads, an estimate of the response time of the software application for the server configuration tested for a load equal to the target load Âtarg (step E807). This estimate is denoted D (2targ). In the embodiment described here, this estimation is obtained by the module 4 by considering the line D passing through the points A1 and A2 of respective coordinates A1 = (.test1, TR (Atest1)) and A2 = (.test2, TR (ittest2)), and the point A of the line D of abscissa iltarg. The module 4 takes as an estimate D (.1targ) the ordinate of the point A. FIG. 8B illustrates this straight line on an example as well as the estimate D (2targ) obtained from this line. It should be noted that the constants K1 and K2 are chosen preferentially so as to obtain two points Al and A2 sufficiently distant to allow the construction of the line D. The values considered in the example described here, namely K1 = 0.8 and K2 = 0.25 advantageously make it possible to obtain such a plot, however other values may be envisaged alternatively. Then, the module 4 compares the value D (.1targ) with the maximum response time TRmax specified in the SLA (test step E808). If D (Âtarg) is greater than TRmax (yes answer to the test step E808), then this means that one or more servers in the configuration CONFIG2 are undersized and that it is necessary to adjust the number servers and / or their parameters and / or resources (step E809). This adjustment is performed by the module 4, as in step E804, taking into account the individual consumption of each server of the tested configuration to reinforce the resources of those who are most loaded. The value of exceeding the response time D (Âtarg) with respect to the maximum response time TRmax defines the ratio of this adjustment. By way of example, FIG. 8B illustrates a case of D (.1targ) exceeding the maximum response time TRmax. In this case, the module 4 applies an increase of the resources 5 of the configuration CONFIG2 of the same order as (D (.1targ) - TRmax) / TRmax, either by adjusting the number of servers of the configuration, or by adjusting their parameters ( eg processor power, number of processors, etc.). When the resizing of the CONFIG2 configuration is complete, the previous steps are repeated on the adjusted configuration (still denoted CONFIG2 for the sake of simplification), that is, the module 4 resumes the step E802 and applies it to the adjusted configuration. If instead D (2targ) is less than or equal to TRmax (answer no to the test step E808), then the module 4 examines whether D (/ ttarg) is substantially lower than TRmax (test step E810). In the embodiment described herein, by substantially less, is meant that D (Δtarg) is less than y = 90% of the value of TRmax. Of course, this value, taken as 90% or equivalent to 0.9, is parameterizable and is given for illustrative purposes only. FIG. 8C illustrates an example where D (.1targ) is substantially smaller than TRmax according to the aforementioned criterion. If such a situation arises (yes answer to the test step E810), this means that the CONFIG2 configuration tested (which corresponds to the configuration CONFIG2 possibly adjusted and / or readjusted) is overdinnned. The module 4 thus proceeds to a (re) adjustment of the resources of the configuration CONFIG2 based as in step E809 on the difference (D (Âtarg) - TRmax) / TRmax (step E811). Then when the resizing of the configuration CONFIG2 is completed, the previous 25 steps are repeated on the adjusted configuration (still denoted CONFIG2 for the sake of simplification), that is, the module 4 resumes the step E802 and applies it to the adjusted configuration . Otherwise (answer no to the test step E810), the module 4 selects a new load 2test3 equal this time to the target load ittarg (step E812) and carries out a new load test 30 on the configuration CONFIG2 by injecting , via the ENV2 test environment, the APP software application deployed on this configuration the charge Âtest3 (step E813). The module 4 then compares the end-to-end response time TR (Âtest3) of the software application APP obtained for this load Âtest3 with respect to the maximum expected response time TRmax (test step E814).

35 Si TR(Âtest3) est supérieur à TRmax (réponse oui à l'étape test E814) comme illustré par exemple à la figure 8D, alors cela signifie qu'un ou plusieurs serveurs de la configuration CONFIG2 sont sous-dimensionnés et qu'il convient de procéder à un ajustement du nombre de serveurs et/ou de leurs paramètres et/ou ressources (étape E815). Cet ajustement est réalisé par 3037417 38 le module 4 de façon similaire aux étapes E804, E809, E811 en tenant compte des consommations individuelles de chaque serveur de la configuration testée pour renforcer les ressources de ceux qui sont le plus chargés. La valeur du dépassement du temps de réponse TR(Âtest3) par rapport au temps de réponse maximal TRmax définit le ratio de cet ajustement, de façon similaire à ce qui est fait aux étapes d'ajustement E804, E809 et E811. Puis lorsque le redimensionnement de la configuration CONFIG2 est terminé, les étapes précédentes sont réitérées sur la configuration ajustée (toujours notée CONFIG2 par souci de simplification), autrement dit, le module 4 reprend l'étape E802 et l'applique à la configuration ajustée.If TR (Δtest3) is greater than TRmax (yes answer to the test step E814) as shown for example in FIG. 8D, then this means that one or more servers of the configuration CONFIG2 are undersized and that The number of servers and / or their parameters and / or resources should be adjusted (step E815). This adjustment is performed by module 4 similarly to steps E804, E809, E811 taking into account the individual consumption of each server of the tested configuration to reinforce the resources of those who are most loaded. The value of exceeding the response time TR (Δtest3) with respect to the maximum response time TRmax defines the ratio of this adjustment, similar to what is done at the adjustment steps E804, E809 and E811. Then when the resizing of the configuration CONFIG2 is completed, the previous steps are repeated on the adjusted configuration (still denoted CONFIG2 for the sake of simplification), that is, the module 4 resumes the step E802 and applies it to the adjusted configuration.

10 Sinon (réponse non à l'étape test E814), la configuration CONFIG2 est considérée comme correctement dimensionnée pour le déploiement de l'application logicielle APP dans un environnement de production (étape E816). La configuration ainsi ajustée constitue la configuration cible CONFIG_TARG obtenue par le système de détermination 1 et considérée pour la mise en production de l'application logicielle (étape E90).If not (answer no to the test step E814), the configuration CONFIG2 is considered correctly sized for the deployment of the APP software application in a production environment (step E816). The configuration thus adjusted constitutes the target configuration CONFIG_TARG obtained by the determination system 1 and considered for the production of the software application (step E90).

15 L'algorithme mis en oeuvre par le module 4 au cours de l'étape E80 et représenté à la figure 7 permet de réaliser un compromis entre le nombre de tests de tenue en charge effectués et l'ajustement de la configuration CONFIG2. Cet algorithme permet avantageusement de valider au plus tôt la configuration de serveurs sur laquelle déployer l'application logicielle APP tout en s'abstenant de réaliser un trop grand nombre de tests de tenue en charge du fait d'un incrément 20 de charge entre chaque test trop faible. Cet algorithme converge très rapidement vers une configuration de production grâce aux informations acquises des modules 2 et 3 et en tirant parti des écarts de temps de réponse mesurés par rapport au temps maximal de réponse TRmax pour quantifier chaque ajustement de la configuration de serveurs testée. Dans le mode de réalisation décrit ici, à la suite du dinnensionnement (potentiellement 25 itératif) des serveurs de la configuration CONFIG2 par le module 4 résultant en l'obtention de la configuration de serveurs cible CONFIG TARG pour la mise en production de l'application logicielle, le système de détermination 1 valide la configuration obtenue en réalisant un test d'endurance sur celle-ci (étape E100). Ces tests d'endurance sont réalisés à l'aide de l'outil de test ENV2 sur une durée d'exécution prédéterminée suffisamment longue (ex. plusieurs jours) afin de prendre en 30 compte des événements rares dont la probabilité d'apparition est faible. Les requêtes utilisateur sont réparties suivant les services UC1,...,UCN et émises avec une certaine charge admissible et des temps d'inter-arrivées suivant des distributions prédéfinies (ex. déterministe, aléatoire, en rafale, etc.). Les métriques observées durant ce test sont similaires à celles observées durant les 35 tests en tenue de charge (temps de réponse de bout en bout des requêtes utilisateur, temps d'exécution moyen sur chaque serveur ou taux d'utilisation du CPU, etc.), et permettent de valider la configuration CONFIG TARG et le dimensionnement de ses ressources ou de procéder si besoin à de nouveaux ajustements de façon similaire à ce qui a été fait durant l'étape E80 (étape E110).The algorithm implemented by the module 4 during the step E80 and represented in FIG. 7 makes it possible to compromise the number of load-holding tests carried out and the adjustment of the CONFIG2 configuration. This algorithm advantageously makes it possible to validate as soon as possible the configuration of servers on which to deploy the software application APP while abstaining from carrying out too many load-holding tests because of a load increment between each test. too weak. This algorithm converges very quickly to a production configuration thanks to the information acquired from modules 2 and 3 and taking advantage of the measured response time differences with respect to the maximum response time TRmax to quantify each adjustment of the server configuration tested. In the embodiment described here, as a result of the (potentially iterative) tweaking of the CONFIG2 configuration servers by the module 4 resulting in the TARIG CONFIG target server configuration for the production of the application software, the determination system 1 validates the configuration obtained by performing an endurance test on it (step E100). These endurance tests are carried out using the ENV2 test tool over a sufficiently long predetermined execution time (eg several days) in order to take into account rare events whose probability of appearance is low. . User requests are divided according to UC1, ..., UCN services and issued with a certain allowable load and inter-arrival times following predefined distributions (eg deterministic, random, burst, etc.). The metrics observed during this test are similar to those observed during load balancing tests (end-to-end response time of user requests, average execution time on each server or utilization rate of the CPU, etc.). , and make it possible to validate the CONFIG TARG configuration and the sizing of its resources or to carry out, if necessary, further adjustments in a manner similar to what was done during step E80 (step E110).

3037417 39 A l'issue de l'étape E110, le système de dimensionnement 1 offre donc une configuration de serveurs CONFIG_TARG a priori dimensionnée de sorte à vérifier les contraintes imposées par l'accord SLA, c'est-à-dire dimensionnée pour supporter, dans un environnement réel de production, la charge cible 2targ tout en respectant le temps de réponse maximal TRmax.At the end of step E110, the sizing system 1 therefore offers a configuration of servers CONFIG_TARG a priori dimensioned so as to verify the constraints imposed by the SLA agreement, that is to say, sized to support in a real production environment, the target load 2targ while respecting the maximum response time TRmax.

5 Il convient de noter que la technique de pré-dimensionnement proposée par l'invention s'appuie sur la prise en compte de profils de requêtes réalistes et proches de l'utilisation réelle de l'application logicielle. Or, il est parfois difficile de disposer d'informations précises sur ces distributions pour des applications logicielles réparties dans des environnements de type cloud. En effet, les délais qui séparent deux arrivées consécutives de requêtes à l'entrée d'un serveur sont 10 perturbés par des délais de réseaux traversés dans le cloud et de traitements d'autres serveurs, et subissent des gigues aléatoires. Des accumulations de requêtes en attente de traitement à l'entrée d'un serveur peuvent se produire et impacter significativement le temps de réponse. Par ailleurs, comme tout système logiciel a une capacité limitée d'un point de vue matériel, un écroulement du système peut se produire lorsque la quantité de traitements dépasse momentanément la capacité 15 du serveur bien que le débit moyen soit respecté. Par conséquent, dans un tel contexte, la configuration cible obtenue CONFIG_TARG à l'issue de l'étape E110 est préférentiellement considérée comme une configuration de déploiement initial permettant de satisfaire les exigences spécifiées dans le SLA, dans un procédé de gestion d'élasticité selon l'invention.It should be noted that the pre-dimensioning technique proposed by the invention is based on taking into account realistic request profiles that are close to the actual use of the software application. However, it is sometimes difficult to have precise information on these distributions for software applications distributed in cloud-type environments. Indeed, the delays between two consecutive arrivals of requests at the entrance of a server are disrupted by network delays traversed in the cloud and other servers processing, and suffer random jigs. Accumulations of queries waiting to be processed at the input of a server can occur and significantly impact the response time. On the other hand, since any software system has a hardware limited capacity, system collapse can occur when the amount of processing momentarily exceeds the capacity of the server although the average rate is respected. Therefore, in such a context, the resulting target configuration CONFIG_TARG at the end of step E110 is preferentially considered as an initial deployment configuration making it possible to satisfy the requirements specified in the SLA, in an elasticity management method according to the invention.

20 La figure 9 représente, sous forme d'ordinogramme, dans un mode particulier de réalisation, les principales étapes d'un procédé de gestion d'élasticité selon l'invention qui utilise comme configuration de déploiement initiale, la configuration cible CONFIG_TARG déterminée par le système de détermination 1 (étape F10). La configuration cible initiale CONFIG_TARG est ensuite déployée en production et 25 l'application logicielle APP est exécutée sur la configuration cible (étape F20). Cette exécution est accompagnée de mécanismes de surveillance de l'exécution de l'application logicielle à l'aide de métriques de supervision connues en soi (étape F30), et de mécanismes de maintien, ajout ou de retrait de ressources en fonction des métriques de supervision et de règles prédéterminées (étape F40), de sorte à absorber des rafales momentanées durant l'exécution de l'application et garantir 30 des temps de réponse conformes au SLA. Un tel mécanisme est décrit par exemple dans le document de L. Letondeur et al. intitulé « Planification pour la gestion automatique de l'élasticité d'applications dans le cloud », ComPAS'2014, 23-25 avril 2014. Ce procédé de gestion d'élasticité peut ainsi être aisément mis en oeuvre par un système de gestion d'élasticité conforme à l'invention (non représenté sur les figures) 35 comprenant : - le système 1 de détermination, qui détermine une configuration cible de serveurs pour le déploiement de l'application logicielle via l'exécution du procédé de détermination selon l'invention ; 3037417 un module de déclenchement d'une exécution de l'application logicielle sur la configuration cible de serveurs ; un module de surveillance d'au moins une métrique de supervision de cette configuration cible lors de l'exécution de l'application logicielle ; et 5 un module d'ajustement tel que celui décrit dans le document précidé de L. Letondeur et al. et configuré pour ajuster les ressources allouées à la configuration cible en fonction de ladite au moins une métrique, ce module d'ajustement étant apte à maintenir les ressources allouées ou à ajouter et/ou retirer dynamiquement des ressources à la configuration cible.FIG. 9 represents, in the form of a flowchart, in a particular embodiment, the main steps of an elasticity management method according to the invention which uses as the initial deployment configuration, the target configuration CONFIG_TARG determined by the determination system 1 (step F10). The initial target configuration CONFIG_TARG is then deployed in production and the APP software application is executed on the target configuration (step F20). This execution is accompanied by mechanisms for monitoring the execution of the software application using known control metrics per se (step F30), and mechanisms for maintaining, adding or removing resources according to the metrics of the software application. supervision and predetermined rules (step F40), so as to absorb momentary bursts during the execution of the application and guarantee SLA compliant response times. Such a mechanism is described, for example, in the document by L. Letondeur et al. entitled "Planning for automatic application elasticity management in the cloud", ComPAS'2014, April 23-25, 2014. This elasticity management process can thus be easily implemented by a management system of elasticity according to the invention (not shown in the figures) comprising: - the determination system 1, which determines a target configuration of servers for the deployment of the software application via the execution of the determination method according to the invention ; 3037417 a module for triggering an execution of the software application on the target configuration of servers; a module for monitoring at least one supervision metric of this target configuration during the execution of the software application; and an adjustment module such as that described in the precised document by L. Letondeur et al. and configured to adjust resources allocated to the target configuration based on said at least one metric, wherein said adjustment module is adapted to maintain allocated resources or dynamically add and / or remove resources from the target configuration.

10 Dans le mode de réalisation et les exemples décrits précédemment, on a considéré que le débit moyen d'arrivée des requêtes de l'application logicielle APP était représentatif des valeurs de débit réellement rencontrées lors de l'exécution de l'application logicielle. Toutefois, comme déjà évoqué précédemment et illustré aux figures 3A et 3B, il se peut que pour certaines applications logicielles, le débit d'arrivée des requêtes de services varie significativement au cours 15 du temps et ce de façon répétitive, définissant ainsi des cycles d'activités de l'application logicielle. Dans un tel contexte, le débit moyen d'arrivée des requêtes de l'application logicielle sur chaque cycle d'activité est assez peu significatif par rapport aux valeurs de débits réelles sur les différentes périodes composant le cycle d'activité. Pour gérer une telle situation, dans un mode particulier de réalisation de l'invention, le 20 cycle d'activité de durée T de l'application logicielle APP est préalablement découpé pour chaque service UCi, i=1,...,N en une pluralité Li d'intervalles de temps [Tjl_i, j=1,...,Li tels que les débits moyens correspondants, notés ?(UCi, [Tjt_i), soient suffisamment représentatifs des valeurs réelles de débit rencontrées sur les intervalles de temps [Tj]_i (c'est-à-dire typiquement tels que l'écart-type des débits moyens sur chaque intervalle soient faible, par exemple inférieur à un seuil 25 prédéfini). Par ailleurs, les intervalles de temps [Tj]_i, j=1,...,Li sont définis ici pour chaque service i=1,...,N tels que : T = [11]j u [T2] u u Le nombre d'intervalles Li considéré pour le découpage d'un cycle d'activité peut varier d'un service à l'autre ou être identique pour tout ou partie des services UCi, i=1,...,N considérés. Pour mieux illustrer le traitement effectué par le système de détermination 1 dans ce 30 mode de réalisation, on considère ci-après, en référence à la figure 10, un exemple simple d'une application logicielle offrant deux services principaux UC1 et UC2 définis dans un accord SLA et caractérisés, sur un cycle d'activité de durée T, par le profil de requêtes suivant : pour le service UC1 : les arrivées des requêtes relatives au service UC1 sont réparties sur L1=3 intervalles de temps [T1]_1, [T2]_1 et [T3]_1 tels que T = [T1]_1 u [T2]_1 u [T3]_1 et avec 35 des débits moyens respectifs sur chacun de ces intervalles notés k11=X(UC1, [T1]_1), = X(UC1, [T2]_1) et M.3=2(UC1, [T3]_1) ; 3037417 41 - pour le service UC2: les arrivées des requêtes relatives au service UC2 sont réparties sur L2=4 intervalles de temps [T1]_2, [T2]_2, [T3]_2 et [T4]_2 tels que T = [T1]_2 u [T2]_2 u [T3]_2 u [T4]_2, et avec des débits moyens respectifs sur ces intervalles notés k21=X(UC2, [T1]_2), X22 = X(UC2, [T2]_2), 2\23=X(UC2, [T3]_2) et X24=k(UC2, [T4]_2). s On considère par ailleurs dans cet exemple N1=4 serveurs S11, S12, S13 et S14 dans la configuration de référence CONFIG1, les trois serveurs S11, S12, S13 étant impliqués dans l'exécution du service UC1 et les deux serveurs S11 et S14 étant impliqués dans l'exécution du service UC2. Au regard de ces hypothèses, le cycle d'activité de l'application logicielle APP peut être 10 décomposé, selon un nouveau découpage commun aux deux services UC1 et UC2 dérivé du découpage pour chacun des services, en L=6 intervalles de temps [T1], [T2], [T3], [T4], [T5] et [T6] comme illustré à la figure 10, sur lesquels les débits ?[Ti], i=1,...,6 d'arrivée de requêtes de l'application logicielle APP sont représentatifs et donnés par les relations (7) suivantes : nTl] = k11+?21 15 T.[T2]= X11 -FX,22 k[T3]= k12-FX22 k[T4]= k12+2^23 X[T5]= 2^13-n24 k[T6]= kl3+?\24 20 Pour chaque intervalle de temps [Ti], i=1,...,6, la répartition des requêtes de l'application logicielle entre les deux services peut être déduite comme suit : Pi ([Tu) = 2'11[1 , i = 1 et 2 { 112 Pi ([Tu]) = ,,.1 , i = 3 et 4 pi ([Tu]) = ,[7,,1 , i = 5 et 6 2,,x2[Tin P2 ([T1]) = P2 ([Ti])X.22 i = 2 et 3 i= 4 et 5 X[Ti] ?24 X[T6] P2 ([Tu) = X23 1[Ti] P2 ([T6]) = 25 Ainsi on peut en déduire, pour chaque intervalle de temps [Tl], le taux des arrivées de requêtes de l'App : X(UCi, [TI])=pi([T1])x k[T1 ] pour i=1,...,N et I=1,...,L Les étapes du procédé de détermination telles que décrites précédemment sont 30 ensuite appliquées par le système de détermination sur chacun des six intervalles [T1],...,[TL], avec L=6.In the embodiment and the examples described above, it was considered that the average arrival rate of the requests of the software application APP was representative of the actual rate values encountered during the execution of the software application. However, as already mentioned above and illustrated in FIGS. 3A and 3B, it may be that for certain software applications, the arrival rate of the service requests varies significantly over time and this, in a repetitive manner, thus defining cycles of time. activities of the software application. In such a context, the average rate of arrival of the requests of the software application on each activity cycle is rather insignificant compared to the actual flow values over the different periods making up the activity cycle. To manage such a situation, in a particular embodiment of the invention, the activity cycle of duration T of the software application APP is cut beforehand for each service UCi, i = 1,. a plurality Li of time intervals [Tjl_i, j = 1, ..., Li such that the corresponding average flow rates, denoted by (UCi, [Tjt_i), are sufficiently representative of the actual values of flow encountered over the time intervals [Tj] _i (i.e. typically such that the standard deviation of the average flow rates over each interval is small, for example less than a predefined threshold). Moreover, the time intervals [Tj] _i, j = 1, ..., Li are defined here for each service i = 1, ..., N such that: T = [11] ju [T2] uu The number of intervals Li considered for the division of a cycle of activity may vary from one service to another or be identical for all or part of the services UCi, i = 1, ..., N considered. To further illustrate the processing performed by the determination system 1 in this embodiment, reference is made hereinafter to FIG. 10, a simple example of a software application offering two main services UC1 and UC2 defined in one embodiment. SLA agreement and characterized, on an activity cycle of duration T, by the following request profile: for the UC1 service: the arrivals of the requests relating to the service UC1 are distributed over L1 = 3 time slots [T1] _1, [ T2] _1 and [T3] _1 such that T = [T1] _1 u [T2] _1 u [T3] _1 and with respective average flow rates on each of these intervals denoted k11 = X (UC1, [T1] _1) = X (UC1, [T2] _1) and M.3 = 2 (UC1, [T3] _1); - for the UC2 service: the arrivals of the requests relating to the service UC2 are distributed over L2 = 4 time slots [T1] _2, [T2] _2, [T3] _2 and [T4] _2 such that T = [T1 ] _2 u [T2] _2 u [T3] _2 u [T4] _2, and with respective average rates on these intervals denoted k21 = X (UC2, [T1] _2), X22 = X (UC2, [T2] _2 ), 2 \ 23 = X (UC2, [T3] _2) and X24 = k (UC2, [T4] _2). s Also considered in this example N1 = 4 servers S11, S12, S13 and S14 in the reference configuration CONFIG1, the three servers S11, S12, S13 being involved in the execution of the service UC1 and the two servers S11 and S14 being involved in the execution of the UC2 service. In view of these hypotheses, the activity cycle of the APP software application can be decomposed, according to a new division shared by the two services UC1 and UC2 derived from the division for each of the services, in L = 6 time intervals [T1 ], [T2], [T3], [T4], [T5] and [T6] as illustrated in FIG. 10, on which the flow rates [Ti], i = 1, ..., 6 of arrival of APP software application queries are representative and given by the following relations (7): nTl] = k11 +? 21 15 T. [T2] = X11-FX, 22k [T3] = k12-FX22 k [T4] = k12 + 2 ^ 23 X [T5] = 2 ^ 13-n24 k [T6] = k13 +? \ 24 For each time interval [Ti], i = 1, ..., 6, the distribution of the requests of the software application between the two services can be deduced as follows: Pi ([Tu) = 2'11 [1, i = 1 and 2 {112 Pi ([Tu]) = ,,. 1, i = 3 and 4 pi ([Tu]) =, [7,, 1, i = 5 and 6 2,, x2 [Tin P2 ([T1]) = P2 ([Ti]) X.22 i = 2 and 3 i = 4 and 5 X [Ti]? 24 X [T6] P2 ([Tu) = X23 1 [Ti] P2 ([T6]) = 25 Thus we can deduce, for each time interval [Tl], the rate of the arrival of requests of the App: X (UCi, [TI]) = pi ([T1]) xk [T1] for i = 1, ..., N and I = 1, ..., L The steps of the determination method as described above are then applied by the determination system to each of the six intervals [T1],..., [TL], with L = 6.

3037417 42 Autrement dit, pour chaque intervalle de temps [T1], I=1,...,L, le système de détermination 1 effectue les étapes suivantes : tests unitaires via l'environnement de test ENVi et détermination par le module 2, pour chaque serveur S1j, j=1...,N1=4 de la configuration de référence CONFIG1, du débit d'arrivée moyen 5 des requêtes 2L.(S1j)[71 de l'application logicielle APP et du temps d'exécution moyen d'une requête E(S1j)[71] sur le serveur Si] sur l'intervalle de temps [TI], tous services confondus. Dans l'exemple envisagé ici, on obtient en particulier, à partir des relations (7) indiquées ci-dessus appliquées individuellement pour chaque serveur de la configuration de référence CONFIG1, et en fonction de l'implication de chaque serveur de la configuration de référence 10 dans l'exécution des services UC1 et UC2 : - pour le serveur S11 impliqué dans l'exécution des deux services UC1 et UC2 : k(S11)[T1]= X11 + 2^.21 ?\(S11)[T2]=. 2\.,11 + X22 k(S11)[T3]= 2L12 + 222 15 2\,(S11)[T4].= X.12 + X.23 k(S11)[T5]-= 113 + X23 X(S11)[T6]= X13 + X24 et E(S11)[TI]= p1([T1])xE(UC1,S11)+ p2([TI])xE(UC2,S11), 1=1,2,3,4,5,6. 20 - pour les serveurs S12 et S13 impliqués dans l'exécution du service UC1 seulement : ?^,(S12/S13)[T1]= k11(S12/S13) k(S12/S13)[T2]= ?\,11(S12/S13) ?\,(S12/S13)[T3]= k12(S12/S13) 25 X(S12/S13)[T4]= k12(S12/S13) X(S12/S13)[T5]= k13(S12/S13) k(S12/S13)[T6]= 7\13(S12/S13) et E(S12/S13)[TI]= p1([T1])xE(UC1,S12/S13), 1=1,2,3,4,5,6. 30 la notation Sli/S1j signifiant que les égalités s'appliquent aussi bien au serveur Sui qu'au serveur S1j ; et - pour le serveur S14 impliqué dans l'exécution du service UC2 seulement : X(S14)[T1]= k21 k(S14)[T2]= k22 3037417 43 ?\(514)[T3]= k22 k(S14)[T4]= k23 k(S14)[T5]= k23 k(S14)[T6]= ?\24 5 et E(S14)[T1]= p2([T1])xE(UC2,514), 1=1,2,3,4,5,6. détermination par le module 2, en appliquant la condition de stabilité de l'application logicielle APP, d'une estimation X1max[T1] de la charge maximale théorique telle que : X1max[T1] = max f(riv=i f3if x piaT1D) x E(S1n[T/])4i_1 Il convient de noter que certaines intervalles peuvent être fusionnés avec leurs 10 intervalles voisins notamment lorsque : la durée de l'intervalle [TI] est inférieure à un seuil, par exemple correspondant au temps de mise en place d'un serveur virtuel ; et/ou les débits et les temps d'exécution moyens sur deux intervalles consécutifs ont des valeurs proches.In other words, for each time interval [T1], I = 1, ..., L, the determination system 1 performs the following steps: unit tests via the test environment ENVi and determination by the module 2, for each server S1j, j = 1 ..., N1 = 4 of the reference configuration CONFIG1, the average arrival rate 5 of the requests 2L. (S1j) [71 of the software application APP and the execution time by means of a request E (S1j) [71] on the server Si] over the time interval [TI], all services combined. In the example envisaged here, one obtains in particular, from the relations (7) indicated above applied individually for each server of the configuration of reference CONFIG1, and according to the implication of each server of the configuration of reference In the execution of the services UC1 and UC2: for the server S11 involved in the execution of the two services UC1 and UC2: k (S11) [T1] = X11 + 2 ^ .21? \ (S11) [T2] =. 2 \., 11 + X22 k (S11) [T3] = 2L12 + 222 2 \, (S11) [T4]. = X.12 + X.23 k (S11) [T5] - = 113 + X23 X (S11) [T6] = X13 + X24 and E (S11) [TI] = p1 ([T1]) xE (UC1, S11) + p2 ([TI]) xE (UC2, S11), 1 = 1.2 , 3,4,5,6. For the servers S12 and S13 involved in the execution of the service UC1 only:? ^, (S12 / S13) [T1] = k11 (S12 / S13) k (S12 / S13) [T2] =? \, 11 (S12 / S13)?, (S12 / S13) [T3] = k12 (S12 / S13) X (S12 / S13) [T4] = k12 (S12 / S13) X (S12 / S13) [T5] = k13 (S12 / S13) k (S12 / S13) [T6] = 713 (S12 / S13) and E (S12 / S13) [TI] = p1 ([T1]) xE (UC1, S12 / S13), 1 = 1,2,3,4,5,6. The notation Sli / S1j signifying that the equalities apply to both the server Sui and the server S1j; and for the server S14 involved in the execution of the service UC2 only: X (S14) [T1] = k21 k (S14) [T2] = k22 3037417 43? \ (514) [T3] = k22 k (S14) [T4] = k23k (S14) [T5] = k23k (S14) [T6] =? \ 245 and E (S14) [T1] = p2 ([T1]) xE (UC2.514), 1 = 1,2,3,4,5,6. determination by the module 2, by applying the stability condition of the software application APP, of an estimate X1max [T1] of the theoretical maximum load such that: X1max [T1] = max f (riv = i f3if x piaT1D) x E (S1n [T /]) 4i_1 It should be noted that certain intervals may be merged with their neighboring intervals, especially when: the duration of the interval [TI] is less than a threshold, for example corresponding to the time of setting in place of a virtual server; and / or average flow rates and run times on two consecutive intervals have close values.

15 Suite aux estimations réalisées par le module 2, et à cette phase de révision des intervalles Tl le cas échéant, les étapes E60 à E110 décrites précédemment sont mises en oeuvre par les modules 3 et 4 individuellement pour chacun des intervalles de temps (éventuellement révisés) On note que l'invention a été décrite dans un contexte de type cloud pour le 20 dimensionnement de machines virtuelles permettant de supporter une application logicielle. Toutefois, l'invention s'applique à d'autres types d'environnement et au dimensionnement de machines matérielles et/ou virtuelles. 1Following the estimations made by the module 2, and at this phase of revision of the intervals T1 if necessary, the steps E60 to E110 described above are implemented by the modules 3 and 4 individually for each of the time intervals (possibly revised It is noted that the invention has been described in a cloud-like context for sizing virtual machines to support a software application. However, the invention applies to other types of environment and the sizing of hardware and / or virtual machines. 1

Claims (15)

REVENDICATIONS1. Procédé de détermination d'une configuration de serveurs dite cible pour un déploiement d'une application logicielle (APP) apte à offrir au moins un service, le procédé comprenant : une étape d'obtention (E20), pour au moins un service offert par l'application logicielle, au moyen d'au moins un test unitaire réalisé sur une configuration de serveurs dite de référence (CONFIG1) apte à exécuter l'application logicielle (APP), d'un temps d'exécution moyen d'une requête invoquant ce service pour chaque serveur (S1j) de la configuration de référence ; une étape de sélection (E60) d'une configuration de serveurs dite initiale (CONFIG2) pour le déploiement de l'application logicielle apte à supporter une charge cible (Xtarg) déterminée pour l'application logicielle, cette étape de sélection tenant compte des temps d'exécution moyens obtenus lors dudit au moins un test unitaire, de la charge cible et d'une charge admissible déterminée (k) pour la configuration de référence, et utilisant un modèle numérique reflétant au moins une contrainte de déploiement de l'application logicielle imposée à la configuration de serveurs initiale ; et une étape de détermination (E90), à partir de la configuration initiale, d'une configuration de serveurs cible (CONFIG_TARG) destinée à être utilisée pour le déploiement de l'application logicielle, ladite étape de détermination comprenant la réalisation (E80) d'une pluralité de tests de tenue en charge paramétrés en fonction d'une charge maximale théorique (kmax2) estimée pour la configuration initiale et de la charge cible, et utilisant au moins un profil de requêtes invoquant ledit au moins un service offert par l'application logicielle, ce profil étant représentatif d'une utilisation de l'application logicielle lors de son déploiement, ladite étape de détermination comprenant en outre, en fonction du résultat de chaque test de tenue en charge, un ajustement (E80) d'au moins une ressource de la configuration initiale de sorte que la configuration cible obtenue à l'issue de ladite pluralité de tests de tenue en charge soit apte à vérifier un temps de réponse maximal fixé pour l'application logicielle et à supporter ladite charge cible.REVENDICATIONS1. A method of determining a so-called target server configuration for a deployment of a software application (APP) capable of offering at least one service, the method comprising: a obtaining step (E20), for at least one service offered by the software application, by means of at least one unit test performed on a configuration of so-called reference servers (CONFIG1) capable of executing the software application (APP), of an average execution time of an invoking request this service for each server (S1j) of the reference configuration; a selection step (E60) of an initial configuration of servers (CONFIG2) for the deployment of the software application capable of supporting a target load (Xtarg) determined for the software application, this selection step taking into account the times execution means obtained during said at least one unit test, the target load and a determined allowable load (k) for the reference configuration, and using a numerical model reflecting at least one deployment constraint of the software application imposed on the initial server configuration; and a step of determining (E90), from the initial configuration, a target server configuration (CONFIG_TARG) to be used for the deployment of the software application, said determining step comprising performing (E80) d a plurality of load-bearing tests parameterized according to a theoretical maximum load (kmax2) estimated for the initial configuration and the target load, and using at least one request profile invoking said at least one service offered by the software application, this profile being representative of a use of the software application during its deployment, said determining step further comprising, depending on the result of each load-holding test, an adjustment (E80) of at least a resource of the initial configuration so that the target configuration obtained at the end of said plurality of load-bearing tests is able to check a re-start time. maximum rate set for the software application and to support said target load. 2. Procédé selon la revendication 1 comprenant en outre une étape d'estimation (E40) d'une charge maximale théorique (krnax1) pour la configuration de référence et dans lequel la charge admissible (k) déterminée pour la configuration de référence résulte du produit d'un paramètre a compris entre 0 et 1 par la charge maximale théorique estimée pour la configuration de référence.2. The method of claim 1 further comprising a step of estimating (E40) a theoretical maximum load (krnax1) for the reference configuration and wherein the allowable load (k) determined for the reference configuration results from the product. of a parameter between 0 and 1 by the estimated theoretical maximum load for the reference configuration. 3. Procédé selon la revendication 2 dans lequel la charge maximale théorique (kmax1) pour la configuration de référence est estimée en appliquant une condition de stabilité de 3037417 45 l'application logicielle à au moins un temps d'exécution moyen d'une requête de l'application logicielle dérivé pour ledit au moins un serveur de la configuration de référence à partir des temps d'exécution moyens obtenus pour ce serveur pour les services offerts par l'application logicielle. 5The method of claim 2 wherein the theoretical maximum load (kmax1) for the reference pattern is estimated by applying a stability condition of the software application to at least one average execution time of a request for the software application derived for said at least one server of the reference configuration from the average execution time obtained for this server for the services offered by the software application. 5 4. Procédé selon l'une quelconque des revendications 1 à 3 dans lequel au cours de l'étape de détermination, l'ajustement (E804,E809,E811,E815) d'au moins une ressource de la configuration initiale à l'issue d'un test de tenue en charge est réalisé en fonction d'une différence entre un temps de réponse de l'application logicielle évalué lors du test de tenue en charge et le temps de réponse maximal (TRmax) fixé pour l'application logicielle. 104. Method according to any one of claims 1 to 3 wherein during the determination step, the adjustment (E804, E809, E811, E815) of at least one resource from the initial configuration to the end a load-holding test is performed as a function of a difference between a response time of the software application evaluated during the load withstand test and the maximum response time (TRmax) set for the software application. 10 5. Procédé selon l'une quelconque des revendications 1 à 4 dans lequel l'étape de détermination comprend au moins : un premier test de tenue en charge (E802) réalisé avec une première charge inférieure à une valeur minimum entre une moitié de la charge maximale théorique estimée pour la 15 configuration initiale et le produit de la charge cible par un nombre réel prédéterminé inférieur ou égal à 1; un deuxième test de tenue en charge (E806) réalisé avec une deuxième charge inférieure à la première charge ; et un troisième test de tenue en charge (E813) réalisé avec une troisième charge égale à la 20 charge cible.5. Method according to any one of claims 1 to 4 wherein the determining step comprises at least: a first load withstand test (E802) made with a first load less than a minimum value between one half of the load theoretical maximum estimated for the initial configuration and the product of the target load by a predetermined real number less than or equal to 1; a second load holding test (E806) performed with a second load lower than the first load; and a third charge hold test (E813) performed with a third charge equal to the target charge. 6. Procédé selon la revendication 5 dans lequel l'étape de détermination comprend en outre une estimation (E807) à l'issue du deuxième test, d'un temps de réponse de l'application logicielle avec la charge cible à partir d'un temps de réponse évalué à l'issue du premier test réalisé 25 avec la première charge sur une configuration testée dérivée de la configuration de serveur initiale et d'un temps de réponse de l'application logicielle évalué à l'issue du deuxième test réalisé avec la deuxième charge sur ladite configuration testée, l'ajustement de ressources étant réalisé à l'issue du deuxième test en fonction d'une différence entre le temps de réponse estimé pour la charge cible et le temps de réponse maximal fixé pour l'application logicielle. 30The method of claim 5 wherein the determining step further comprises an estimate (E807) at the end of the second test of a response time of the software application with the target load from a response time evaluated at the end of the first test performed with the first load on a tested configuration derived from the initial server configuration and a response time of the evaluated software application at the end of the second test performed with the second load on said tested configuration, the resource adjustment being performed after the second test based on a difference between the estimated response time for the target load and the maximum response time set for the software application . 30 7. Procédé selon la revendication 6 dans lequel, à l'issue du deuxième test : la configuration de serveurs testée est considérée comme sous-dimensionnée si le temps de réponse estimé pour la charge cible est supérieur au temps de réponse maximal ; et/ou la configuration de serveurs testée est considérée comme surdimensionnée si le temps de 35 réponse estimé pour la charge cible est inférieur au produit d'un nombre réel prédéterminé y compris entre 0 et 1 et du temps de réponse maximal ; et/ou la configuration de serveurs testée est considérée comme correctement dimensionnée sinon. 3037417 467. The method of claim 6 wherein, after the second test: the server configuration tested is considered undersized if the estimated response time for the target load is greater than the maximum response time; and / or the tested server configuration is considered oversized if the estimated response time for the target load is less than the product of a predetermined real number of between 0 and 1 and the maximum response time; and / or the tested server configuration is considered correctly sized otherwise. 3037417 46 8. Procédé selon la revendication 7 dans lequel y est pris égal à 0.9.The process of claim 7 wherein y is 0.9. 9. Procédé selon l'une quelconque des revendications 5 à 8 dans lequel la configuration cible correspond à une configuration de serveurs testée pour laquelle à l'issue du 5 troisième test, un temps de réponse de l'application logicielle évalué pour la charge cible sur cette configuration de serveurs testée est inférieur au temps de réponse maximal.The method of any one of claims 5 to 8 wherein the target configuration corresponds to a tested server configuration for which at the conclusion of the third test, a response time of the evaluated software application for the target load. on this server configuration tested is less than the maximum response time. 10. Procédé selon l'une quelconque des revendications 1 à 9 comprenant en outre une étape de validation (E100) de la configuration cible au moyen d'un test d'endurance réalisé 10 pendant une durée d'exécution prédéterminée de l'application logicielle.The method of any one of claims 1 to 9 further comprising a step of validating (E100) the target configuration by means of an endurance test performed during a predetermined execution time of the software application. . 11. Procédé selon l'une quelconque des revendications 1 à 10 dans lequel le modèle numérique modélise ladite au moins une contrainte de déploiement de l'application logicielle à partir d'au moins une file d'attente ou d'un réseau de files d'attente. 1511. The method as claimed in claim 1, in which the digital model models said at least one deployment constraint of the software application from at least one queue or a network of queues. 'waiting. 15 12. Procédé selon l'une quelconque des revendications 1 à 11 dans lequel au moins un profil de requêtes comprend, pour au moins une période de temps déterminée d'un cycle d'activité de l'application logicielle : un débit moyen des requêtes invoquant ce service sur ladite période de temps ; 20 une proportion de requêtes invoquant ce service parmi les requêtes invoquant des services offerts par l'application logicielle ; et une distribution des durées d'inter-arrivées entre deux requêtes invoquant ce service sur ladite période de temps. 2512. The method as claimed in claim 1, in which at least one request profile comprises, for at least one determined period of time of an activity cycle of the software application: an average rate of requests invoking this service over the said period of time; A proportion of requests invoking this service among the requests invoking services offered by the software application; and a distribution of inter-arrival times between two requests invoking this service over said period of time. 25 13. Procédé selon la revendication 1 à 12 dans lequel ladite application logicielle est caractérisée par un cycle d'activité comprenant une pluralité d'intervalles, chaque intervalle étant associé à un débit moyen d'arrivée des requêtes représentatif sur cet intervalle, et dans lequel lesdites étapes d'obtention, de sélection et de détermination sont mises en oeuvre pour au moins un intervalle de ladite pluralité d'intervalles. 30The method of claim 1 to 12 wherein said software application is characterized by an activity cycle comprising a plurality of intervals, each interval being associated with an average request arrival rate representative over that interval, and wherein said obtaining, selecting and determining steps are implemented for at least one interval of said plurality of intervals. 30 14. Procédé de gestion d'élasticité d'une configuration de serveurs apte à exécuter une application logicielle, ce procédé comprenant : une étape de détermination (F10) d'une configuration cible de serveurs pour le déploiement de l'application logicielle comprenant l'exécution d'un procédé de détermination selon l'une 35 quelconque des revendications 1 à 13 ; et une étape d'exécution (F20) de l'application logicielle sur ladite configuration cible de serveurs comprenant : 3037417 47 o une surveillance (F30) d'au moins une métrique de supervision de cette configuration cible ; et o en fonction de ladite au moins une métrique, un ajustement (F40) des ressources de la configuration cible, cet ajustement comprenant un maintien et/ou un ajout et/ou un 5 retrait dynamique de ressources à la configuration cible.14. A resilient management method of a server configuration capable of executing a software application, said method comprising: a step of determining (F10) a server target configuration for the deployment of the software application comprising the performing a determination method according to any one of claims 1 to 13; and an execution step (F20) of the software application on said server target configuration comprising: monitoring (F30) at least one supervisory metric of said target configuration; and o according to said at least one metric, an adjustment (F40) of the resources of the target configuration, this adjustment comprising maintaining and / or adding and / or dynamically removing resources to the target configuration. 15. Système de détermination (1) d'une configuration cible pour un déploiement d'une application logicielle, le système comprenant : un premier outil de test (ENVI.) permettant l'exécution d'au moins un test unitaire sur 10 l'application logicielle lorsque celle-ci est exécutée sur une configuration de serveurs dite de référence ; un module d'obtention (2), configuré pour commander l'exécution d'au moins un test unitaire par le premier outil de test sur ladite configuration de référence et pour obtenir, pour au moins un service offert par l'application logicielle, un temps d'exécution moyen d'une requête 15 invoquant ce service pour chaque serveur (S1j) de la configuration de référence ; un module de sélection (3), configuré pour sélectionner une configuration de serveurs initiale (CONFIG2) pour le déploiement de l'application logicielle apte à supporter une charge cible déterminée pour l'application logicielle, ledit module de sélection étant configuré pour tenir compte des temps d'exécution moyens obtenus lors dudit au moins un test unitaire, de la 20 charge cible et d'une charge admissible déterminée pour la configuration de référence, et pour utiliser un modèle numérique reflétant au moins une contrainte de déploiement de l'application logicielle imposée à la configuration de serveurs initiale ; un second outil de test (ENV2) permettant l'exécution de tests de tenue en charge sur ladite application logicielle lorsque celle-ci est exécutée sur la configuration de serveurs initiale 25 sélectionnée par le module de sélection ; et un module de détermination (4) configuré pour déterminer à partir de la configuration initiale une configuration de serveurs cible destinée à être utilisée pour le déploiement de l'application logicielle, ledit module de détermination étant configuré pour commander l'exécution d'une pluralité de tests de tenue en charge par le second outil de test, lesdits tests de tenue en 30 charge étant paramétrés par le module de détermination en fonction d'une charge maximale théorique estimée pour la configuration initiale et de la charge cible, et utilisant au moins un profil de requêtes invoquant ledit au moins un service offert par l'application logicielle, ce profil étant représentatif d'une utilisation de l'application logicielle lors de son déploiement, ledit module de détermination étant en outre configuré pour ajuster, en fonction du résultat de 35 chaque test de tenue en charge, au moins une ressource de la configuration initiale de sorte que la configuration cible obtenue à l'issue de ladite pluralité de tests de tenue en charge soit 3037417 48 apte à vérifier un temps de réponse maximal fixé pour l'application logicielle et à supporter ladite charge cible.15. A system for determining (1) a target configuration for a deployment of a software application, the system comprising: a first test tool (ENVI.) Allowing the execution of at least one unit test on 10 the software application when it is executed on a so-called reference server configuration; a obtaining module (2), configured to control the execution of at least one unit test by the first test tool on said reference configuration and to obtain, for at least one service offered by the software application, a average execution time of a request invoking this service for each server (S1j) of the reference configuration; a selection module (3), configured to select an initial server configuration (CONFIG2) for the deployment of the software application adapted to support a target load determined for the software application, said selection module being configured to take account of average execution times obtained during said at least one unit test, the target load and a given load determined for the reference configuration, and to use a numerical model reflecting at least one deployment constraint of the software application imposed on the initial server configuration; a second test tool (ENV2) for performing load-holding tests on said software application when it is executed on the initial server configuration selected by the selection module; and a determination module (4) configured to determine from the initial configuration a target server configuration for use in the deployment of the software application, said determination module being configured to control the execution of a plurality of load holding tests by the second test tool, said load withstand tests being parameterized by the determination module according to a theoretical maximum load estimated for the initial configuration and the target load, and using at least a request profile invoking said at least one service offered by the software application, this profile being representative of a use of the software application during its deployment, said determination module being further configured to adjust, depending on the result of each load-holding test, at least one resource of the initial configuration so that the configuration a target obtained after said plurality of load-bearing tests is 3037417 48 able to verify a fixed maximum response time for the software application and to support said target load.
FR1555267A 2015-06-09 2015-06-09 METHOD AND SYSTEM FOR DETERMINING TARGET SERVER CONFIGURATION FOR DEPLOYING SOFTWARE APPLICATION Withdrawn FR3037417A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
FR1555267A FR3037417A1 (en) 2015-06-09 2015-06-09 METHOD AND SYSTEM FOR DETERMINING TARGET SERVER CONFIGURATION FOR DEPLOYING SOFTWARE APPLICATION
PCT/FR2016/051266 WO2016198762A1 (en) 2015-06-09 2016-05-27 Method and system for determining a target configuration of servers for deployment of a software application

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR1555267A FR3037417A1 (en) 2015-06-09 2015-06-09 METHOD AND SYSTEM FOR DETERMINING TARGET SERVER CONFIGURATION FOR DEPLOYING SOFTWARE APPLICATION

Publications (1)

Publication Number Publication Date
FR3037417A1 true FR3037417A1 (en) 2016-12-16

Family

ID=54356436

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1555267A Withdrawn FR3037417A1 (en) 2015-06-09 2015-06-09 METHOD AND SYSTEM FOR DETERMINING TARGET SERVER CONFIGURATION FOR DEPLOYING SOFTWARE APPLICATION

Country Status (2)

Country Link
FR (1) FR3037417A1 (en)
WO (1) WO2016198762A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10248400B1 (en) * 2016-11-15 2019-04-02 VCE IP Holding Company LLC Computer implemented system and method, and a computer program product, for automatically determining a configuration of a computing system upon which a software application will be deployed
CN109739649A (en) * 2018-12-28 2019-05-10 深圳前海微众银行股份有限公司 Method for managing resource, device, equipment and computer readable storage medium

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109976773B (en) * 2019-04-04 2023-01-10 网易(杭州)网络有限公司 Deployment method and device of game testing environment
CN112162891A (en) * 2020-10-14 2021-01-01 腾讯科技(深圳)有限公司 Performance test method in server cluster and related equipment

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080155074A1 (en) * 2006-12-22 2008-06-26 Business Objects, S.A. Apparatus and method for automating server optimization

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080155074A1 (en) * 2006-12-22 2008-06-26 Business Objects, S.A. Apparatus and method for automating server optimization

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
LOÏC LETONDEUR ET AL: "Planification pour la gestion autonomique de l'élasticité d'applications dans le cloud", ACTES DE LA CONFERENCE COMPAS'14, 23-25 AVRIL 2014,NEUCHÂTEL, SUISSE, 23 April 2014 (2014-04-23), pages 1 - 12, XP055257355 *
SUN YU ET AL: "A Model-Based System to Automate Cloud Resource Allocation and Optimization", 28 September 2014, CORRECT SYSTEM DESIGN; [LECTURE NOTES IN COMPUTER SCIENCE; LECT.NOTES COMPUTER], SPRINGER INTERNATIONAL PUBLISHING, CHAM, PAGE(S) 18 - 34, ISBN: 978-3-642-28871-5, ISSN: 0302-9743, pages: 18 - 34, XP047299834 *
YATAGHENE LYDIA ET AL: "A Queuing Model for Business Processes Elasticity Evaluation", 2014 INTERNATIONAL WORKSHOP ON ADVANCED INFORMATION SYSTEMS FOR ENTERPRISES, IEEE, 10 November 2014 (2014-11-10), pages 22 - 28, XP032699589, DOI: 10.1109/IWAISE.2014.12 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10248400B1 (en) * 2016-11-15 2019-04-02 VCE IP Holding Company LLC Computer implemented system and method, and a computer program product, for automatically determining a configuration of a computing system upon which a software application will be deployed
US10732950B1 (en) 2016-11-15 2020-08-04 EMC IP Holding Company LLC Computer implemented system and method, and a computer program product, for automatically determining a configuration of a computing system upon which a software application will be deployed
CN109739649A (en) * 2018-12-28 2019-05-10 深圳前海微众银行股份有限公司 Method for managing resource, device, equipment and computer readable storage medium

Also Published As

Publication number Publication date
WO2016198762A1 (en) 2016-12-15

Similar Documents

Publication Publication Date Title
EP2559196B1 (en) Tool for managing computer resources and infrastructures and networks
US11171845B2 (en) QoS-optimized selection of a cloud microservices provider
US9305274B2 (en) Traffic shaping based on request resource usage
WO2016198762A1 (en) Method and system for determining a target configuration of servers for deployment of a software application
Prachitmutita et al. Auto-scaling microservices on IaaS under SLA with cost-effective framework
EP2559224B1 (en) Tool for managing resources and computer infrastructures and networks
EP2353256A1 (en) Determination and management of virtual networks
WO2011128595A1 (en) Tool for managing computer resources and infrastructures and networks
FR3016462A1 (en) METHOD FOR ORDERING TASKS IN AN ONLINE CURRENT NETWORK
WO2021260312A1 (en) Method for scheduling tasks in a processing system, associated scheduling device
US11520616B2 (en) Virtual server creation monitoring and resource allocation system
WO2020260025A1 (en) Method for allocating resources of a network infrastructure
EP2709008A1 (en) Method and device for counting the offset time for a processing unit in an information processing system
FR3096204A3 (en) Capping the pace of inbound transactions in established inbound stateful exchanges in a distributed computing environment
US10409662B1 (en) Automated anomaly detection
US11411886B1 (en) Automatic cluster scaling based on varying workloads
EP3051416B1 (en) Method for controlling the deployment of a program to be executed in a fleet of machines
FR3085513A1 (en) TOOL AND METHOD FOR DESIGN AND VALIDATION OF A DATA FLOW SYSTEM BY A FORMAL MODEL
EP3881515B1 (en) System for the formal supervision of communications
Khattak et al. Performance based service level agreement in cloud computing
FR3060791A1 (en) METHOD AND DEVICE FOR UPDATING
FR3089738A1 (en) Method for measuring a transmission delay with control of the degrees of contention applied to a data frame
EP3893470B1 (en) Method for optimising update of connected objects and application module
FR3069933B1 (en) METHOD FOR VALIDATION OF MUTUALIZATION OF APPLICATION BRICKS ON A COMPUTER INFRASTRUCTURE
Ravindran et al. Verification of non-functional properties of cloud-based distributed system services

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20161216

ST Notification of lapse

Effective date: 20180228