Brevet FR3061784A1 — publié le 20180713

Procédé d'évaluation de la performance d'une chaîne applicative au sein d'une infrastructure informatique DOMAINE La présente invention concerne le domaine des tests de performances d'infrastructures informatiques, et plus particulièrement la gestion de l'utilisation des ressources (processeur, système d'exploitation, mémoire etc.) d'une infrastructure hébergeant des applications. Les infrastructures informatiques représentent un investissement important pour les entreprises. Une infrastructure informatique désigne l'ensemble des éléments de type matériel et les logiciels composant le système informatique d'une entreprise ou d'une organisation. On y retrouve également les machines virtuelles désignant des environnements d'application ou de systèmes d'exploitation (OS, Operating System) installés sur des logiciels qui imitent un matériel dédié, et les partitions désignant les sous-ensembles des ressources matérielles d'une machine physique. Les partitions sont des environnements virtuels auxquels sont associés des espaces mémoire virtuels, un espace de stockage et une fréquence de calcul. La gestion de telles infrastructures est un enjeu stratégique permettant de maitriser leurs coûts, mais également de garantir aux utilisateurs un accès performant aux applications du système 25 d'informations. Les applications informatiques actuelles connaissent d'importantes variations dans leurs niveaux d'utilisation. Ces variations peuvent être journalières (sur les plages horaires de travail), hebdomadaires, mensuelles ou annuelles. A ces variations s'ajoute l'utilisation, au 30 niveau mondial, de certaines applications, ce qui élargit leurs plages d'utilisation et ce qui entraînent une pluralité de variations. Le terme saisonnalité est utilisé dans ce document pour qualifier la variabilité temporelle de l'utilisation de ces applications. Faute d'outillage et de temps, des administrateurs dimensionnent 35 les serveurs utilisés par ces applications afin de garantir la meilleure qualité de service (Service Level Agreement en anglais) possible pendant les périodes de pointe (c'est-à-dire les périodes d'utilisation 3061784 2 maximale du service). L'inconvénient de cette méthode est qu'une partie plus ou moins importante des ressources n'est pas utilisée tandis que d'autres ressources peuvent être très sollicitées. L'objectif de la présente invention est de permettre une meilleure 5 utilisation des ressources par chaque application en lui affectant, au bon moment, les ressources non utilisées par les autres applications. Pour cela la présente invention tient compte et tire profit de la connaissance de la saisonnalité des besoins en ressources des applications. 10 Il n'existe pas de méthode connue qui permette d'optimiser l'utilisation des machines virtuelles et des partitions dans une infrastructure informatique de façon automatique. A ce jour, s'il existe des solutions connues permettant de surveiller et monitorer des machines virtuelles et des partitions de façon unitaire, 15 ces solutions surveillent la consommation des ressources de chaque machine virtuelle indépendamment de toutes celles qui se trouvent sur un même serveur, sans établir de corrélations entre les valeurs mesurées. Ainsi, ces solutions ne permettent pas d'établir un plan de saisonnalité d'utilisation des ressources ou un plan de répartition des 20 machines virtuelles et des partitions en fonction des ressources des différents serveurs de l'infrastructure. Un plan de saisonnalité prévoit l'utilisation des machines virtuelles et des partitions sur plusieurs heures, plusieurs jours, ou plusieurs semaines. La présente invention concerne un procédé et un système d'optimisation de l'utilisation des machines virtuelles et des partitions en générant de manière automatique un plan d'utilisation des différentes machines virtuelles et partitions en fonction des ressources des différents serveurs. Dans la présente description, le terme sonde se réfère à un module de détection (pouvant se présenter sous forme d'un programme ou d'un logiciel informatique) apte à collecter des données statistiques sur l'utilisation d'une ressource matérielle ou logicielle (par exemple le nombre de ports ouverts) d'une machine. Il est proposé un procédé de répartition de machines virtuelles et 35 de partitions sur un ou plusieurs serveurs d'une infrastructure informatique comprenant plusieurs serveurs et plusieurs machines, en 3061784 3 fonction des ressources des applications hôtes, comprenant les étapes de : configuration d'une pluralité de sondes, ladite configuration consistant à définir le moment du démarrage des sondes et la 5 fréquence des mesures à effectuer ainsi que les ressources sur lesquelles ces mesures seront réalisées, déploiement des sondes sur le système d'information de l'infrastructure, correspondant à l'installation et à la mise en marche des sondes sur les machines cibles, 10 - collecte des résultats des sondes, détermination de la capacité de production des serveurs, détermination d'un calendrier des besoins en ressources des applications, détermination d'un plan d'hébergement des machines virtuelles et 15 des partitions sur les serveurs de l'infrastructure, génération d'un plan de dimensionnement régissant, pour chaque application, la répartition des différentes machines virtuelles et des partitions sur les différents serveurs. Il est proposé en second lieu un système de répartition de 20 machines virtuelles et de partitions pour une pluralité d'applications sur les serveurs d'une infrastructure informatique, comprenant : un module de configuration apte à configurer et déployer des sondes sur une infrastructure informatique, un module d'analyse, apte à collecter des mesures effectuées par 25 les sondes, prendre en compte la capacité de production de chaque serveur, analyser les données collectées et établir un calendrier des besoins en ressources des applications, un module de calibrage, apte à créer un plan d'hébergement des machines virtuelles et des partitions sur les serveurs de 30 l'infrastructure et un plan de dimensionnement régissant, pour chaque application, la répartition des machines virtuelles et des partitions sur les différents serveurs. L'invention sera mieux comprise et d'autres détails, caractéristiques et avantages de l'invention apparaîtront à la lecture de la description suivante faite à titre d'exemple non limitatif en référence 3061784 4 au dessin, qui est un diagramme fonctionnel illustrant les différentes phases et étapes du procédé d'optimisation proposé. La présente invention propose un procédé de répartition de machines virtuelles et de partitions sur les serveurs d'une infrastructure 5 informatique. Le dessin illustre les différentes étapes de ce procédé. Ces étapes peuvent être regroupées en trois phases numérotées 1, 2 et 3. La phase 1 est une phase de calibration. Elle comprend deux étapes : 10 une étape 4 de configuration de sondes et une étape 5 de déploiement de ces sondes sur le système d'information de l'infrastructure. Un système d'information est un ensemble organisé de ressources qui permet de collecter, stocker, traiter et distribuer de l'information. 15 Une sonde est un équipement informatique destiné à détecter des informations d'intérêts relatives aux flux de données d'un réseau informatique. Par exemple, une sonde de sécurité est destinée à détecter des intrusions dans le réseau. Les informations détectées et collectées par les sondes peuvent être multiples. Dans le cadre de la 20 présente invention, il s'agit principalement de données statistiques sur l'utilisation d'une ressource matérielle ou logicielle d'une machine. Les mesures effectuées par les sondes peuvent concerner tout type de ressources d'un ou plusieurs serveurs (par ex. la puissance moyenne de processeur consommée, le débit de lecture réseau, la mémoire, le 25 débit moyen de lecture/écriture sur un disque). Mais les informations peuvent concerner tout point de contention (élément pouvant entraver le fonctionnement de l'infrastructure informatique) détecté lors de campagnes de tests de performance : nombre de paquets perdus, nombre de ports ouverts, nombre de fichiers ouverts ou toute autre 30 limitation du système pouvant être considéré comme un goulot d'étranglement, limitant les performances globales de l'infrastructure informatique. Les exemples de mesures précédents ne constituent pas une liste exhaustive, mais présente simplement ce que peut être une sonde. En effet, il peut, dans la pratique, y avoir des sondes sur des 35 centaines de paramètres. Dans le cadre de la présente invention, ce sont les sondes qui permettent de mesurer les ressources critiques 3061784 5 d'une application qui sont choisies. Ce choix varie d'une application à l'autre. L'étape 4 de configuration des sondes consiste à définir le moment du démarrage des sondes et la fréquence des mesures à effectuer 5 (fréquence d'échantillonnage des sondes), la nature de ces mesures ainsi que les ressources sur lesquelles ces mesures seront réalisées. Cette étape 4 de configuration permet de concentrer les mesures sur les ressources critiques qui permettront de faciliter les calculs. La fréquence d'échantillonnage des sondes est paramétrable, 10 mais doit être commune à toutes les sondes pour une même application. Le moment du démarrage des sondes peut se référer à une date et à une heure particulière. Les sondes doivent démarrer en même temps et avoir la même fréquence d'échantillonnage afin que les mesures soient corrélables les unes aux autres. 15 Le déploiement consiste à installer et mettre en marche les différentes sondes sur les machines cibles. La phase 2 est une phase d'analyse des données récoltées par les sondes. Cette phase peut être scindée en trois étapes : une étape 6 de collecte des résultats fournis par les sondes, 20 - une étape 7 de prise en compte des capacités de production de ressources des serveurs et une étape 8 d'analyse des données. La capacité de production de ressources de chaque serveur de l'infrastructure est calculée à l'étape 7. La capacité de production d'un 25 serveur désigne le nombre de ressources et le type de ressources que celui-ci est capable de mettre en oeuvre. La capacité de production peut être déduite à partir des spécifications matérielles du serveur et de l'architecture de la solution de virtualisation utilisée en tenant compte des ressources minimum requises par le serveur et des ressources 30 dédiées à sa haute disponibilité. Les capacités de production sont déterminées en tenant compte des de l'observation des points de contentions des applications ainsi que des règles de bonnes pratiques qui peuvent varier selon les entreprises et les applications. Certains points de contention sont des limites physiques qui peuvent être 35 mesurées en faisant des tests de performance sur les infrastructures (ex. de la capacité en lecture/écriture d'un système de stockage). 3061784 6 L'homme du métier pourra utiliser des mécanismes connus de surveillance de production pour déterminer quelles sont les ressources utilisées et calculer les niveaux d'utilisation de ces ressources pour chaque application. Un exemple de mécanisme standard de surveillance 5 de production est donné par l'application Nagios (marque déposée) qui alerte l'utilisateur des dysfonctionnements des systèmes à surveiller et de leurs retours à un fonctionnement standard. L'étape 8 d'analyse des données consiste, à partir des informations recueillies, et via les mêmes mécanismes de surveillance 10 de production, à en déduire la saisonnalité de l'utilisation des applications et de leurs consommations de ressources. Chaque application possède sa saisonnalité et son calendrier propre qui peuvent être établis par la mise en place d'une surveillance de la chaîne applicative pendant un cycle complet i.e. contenant toutes les 15 saisons que connait l'application. Un cycle peut durer de plusieurs semaines à une année. Cette étape 8 permet alors de générer un calendrier des besoins en ressources des différents serveurs, tenant compte de l'utilisation des différentes applications, ce qui permet de prévoir les besoins des serveurs sur une durée prédéterminée (de 20 plusieurs semaines à une année). La phase 3 est une phase de calibrage. Elle comprend deux étapes numérotées 9 et 10. L'étape 9 consiste, à partir du calendrier précédemment calculé et des capacités de production de ressources des différents serveurs calculées, à établir un plan d'hébergement des 25 différentes machines virtuelles et des partitions sur les serveurs en équilibrant l'utilisation des ressources sur ces différents serveurs. Le plan d'hébergement indique sur quel(le) machine virtuelle ou partition ou serveur physique va être déployé l'ensemble des sous-systèmes des chaînes applicatives de l'ensemble ou d'un sous ensemble du 30 système d'informations. L'étape 10 consiste à générer un plan de dimensionnement des applications. Ce plan de dimensionnement régit, pour chaque application, la répartition des différentes machines virtuelles et des partitions de ladite application permettant d'optimiser l'utilisation des 35 ressources des différents serveurs de l'infrastructure. Le plan de dimensionnement indique comment sont dimensionnées les machines virtuelles, les partitions et les serveurs physiques composant 3061784 7 l'ensemble ou un sous-ensemble du système d'information en tenant compte du plan d'hébergement. Le dimensionnement indique quelles ressources (par ex. Unité Centrale ou Central Processing Unit ou CPU, Mémoire, Input/Output ou 10 ou Entrées/Sorties) sont allouées à 5 chaque machine virtuelle, partition et serveur physique. Les plans de dimensionnement et d'hébergement des différentes machines virtuelles et partitions, permettent d'éviter la saturation de ressources critiques des applications. La présente invention propose également un système, pouvant se 10 présenter sous forme d'un logiciel ou d'une application, comprenant des modules de configuration, d'analyse et de calibrage programmés à l'aide d'instructions permettant de réaliser respectivement les phases 1 de configuration, d'analyse 2 et de calibrage 3 du procédé décrit ci-dessus. 15 REVENDICATIONS1. Procédé de répartition de machines virtuelles et de partitions de serveurs d'une infrastructure informatique comprenant plusieurs 5 serveurs et plusieurs machines, en fonction des ressources des applications hôtes, comprenant les étapes de : configuration (4) d'une pluralité de sondes, ladite configuration consistant à définir la durée et la fréquence des mesures à effectuer et les ressources sur lesquelles ces mesures seront 10 réalisées, déploiement (5) des sondes sur le système d'information de l'infrastructure, correspondant à l'installation et à la mise en marche des sondes sur les machines cibles, collecte des résultats (6) des sondes, 15 - prise en compte des capacités de production de ressources des serveurs (7), détermination d'un calendrier des besoins en ressources des applications, détermination d'un plan d'hébergement (9) des machines virtuelles 20 et des partitions sur les serveurs de l'infrastructure, génération d'un plan de dimensionnement (10) régissant, pour chaque application, la répartition des différentes machines virtuelles et des partitions sur les différents serveurs. 2. Système de répartition de machines virtuelles et de partitions 25 pour une pluralité d'applications sur les serveurs d'une infrastructure informatique, comprenant : un module de configuration apte à configurer et déployer des sondes sur une infrastructure informatique, un module d'analyse, apte à collecter des mesures effectuées par 30 les sondes, prendre en compte la capacité de production de chaque serveur, analyser les données collectées et établir un calendrier des besoins en ressources des applications, un module de calibrage, apte à créer un plan d'hébergement des machines virtuelles et des partitions sur les serveurs de 35 l'infrastructure et un plan de dimensionnement régissant, pour 3061784 9 chaque application, la répartition des différentes machines virtuelles et des partitions sur les différents serveurs.