Brevet FR3140957A1 — publié le 20240419

L’invention concerne un procédé d’exécution d’au moins une application sur au moins un nœud d’un système comprenant un ou plusieurs groupes de nœuds, le procédé comprenant: - une sélection d’au moins un premier groupe de nœuds comprenant au moins un nœud pour déployer ladite application, ladite sélection étant fonction d’au moins une information d’exécution associée à ladite application et comprenant au moins un critère d’exécution de ladite application et d’au moins une information de capacité associée à au moins un nœud dudit au moins un premier groupe de nœuds, ladite sélection étant opérée lors d’un déploiement de ladite application et/ou lors d’une exécution de ladite application Figure pour l’abrégé : Fig.2 . procédé d’exécution d’une application et dispositif correspondant L’invention concerne le déploiement d’une application dans un système comprenant plusieurs groupes de nœuds et plus particulièrement la sélection d’un cluster sur lequel est déployée l’application. Lors du déploiement de solutions applicatives dans des systèmes comprenant plusieurs nœuds, les opérateurs sélectionnent le ou les groupes (ou « clusters » en anglais) de nœud(s) sur lesquels déployer les applications. Chaque groupe de nœuds est en charge de répartir, au moyen d’un répartiteur de charge (ou « load balancer » en anglais), les applications entre les nœuds de ce groupe. Les opérateurs n’ont en général pas la connaissance des charges de chaque groupe et ne peuvent donc pas déployer les applications sur le ou les groupes de nœuds les mieux adaptés. Il existe donc un besoin de proposer une solution permettant de déployer une application sur un groupe de nœuds permettant de gérer la charge de l’ensemble des groupes de nœud du système. L’invention concerne un procédé d’exécution d’au moins une application sur au moins un nœud d’un système comprenant un ou plusieurs groupes de nœuds, le procédé comprenant : - une sélection d’au moins un premier groupe de nœuds comprenant au moins un nœud pour déployer l’application, la sélection étant fonction d’au moins une information d’exécution associée à l’application et comprenant au moins un critère d’exécution de l’application et d’au moins une information de capacité associée à au moins un nœud du au moins un premier groupe de nœuds, la sélection étant opérée lors d’un déploiement de l’application et/ou lors d’une exécution de l’application Selon au moins un mode de réalisation, la sélection est opérée lors d’une exécution de l’application, lors de la modification de capacité d’au moins un des nœuds du système, ou lors d’une reconfiguration du système. Selon au moins un mode de réalisation, les critères sont ordonnés, la sélection du au moins un premier groupe de nœuds sélectionne le au moins un groupe de nœuds dont la capacité d’au moins un nœud répond au critère d’ordre le plus élevé. Selon au moins un mode de réalisation, lorsque la sélection est opérée lors de l’exécution de l’application, elle comprend - une sélection d’au moins un second groupe de nœuds pour le déploiement de ladite application, lorsque le second groupe de nœuds est associé à une capacité correspondant à un des critères d’ordre plus élevé que le premier groupe de nœuds sur lequel l’application était déployée, -une suppression de l’application du au moins premier groupe de nœuds sur lequel elle était précédemment déployée. Selon au moins un mode de réalisation, lorsque la sélection est opérée lors de l’exécution de l’application, elle comprend -une sélection d’au moins un nouveau nœud pour le déploiement de l’application, lorsque le nouveau nœud est associé à une capacité correspondant à un des critères d’ordre plus élevé que le ou les nœuds sur lequel l’application était déployée, le au moins un nouveau nœud pouvant être un nœud du premier groupe de nœuds sur lequel l’application était déployée ou un nœud d’un autre groupe de nœud que le premier groupe de nœud sur lequel l’application était déployée, - une suppression de l’application du au moins un ou plusieurs nœuds sur lequel elle était précédemment déployée. Selon au moins un mode de réalisation, lorsque le au moins un critère comprend au moins une information de confidentialité relative à l’application, la sélection sélectionne le premier groupe de nœuds en fonction d’un critère de proximité entre le premier groupe de nœuds et un terminal utilisateur de l’application. Selon au moins un mode de réalisation, le critère de proximité est relatif à : - une distance physique entre le premier groupe de nœuds et le terminal utilisateur de l’application, ou -un nombre de niveaux hiérarchiques de groupes de nœuds entre le premier groupe de nœuds et le terminal utilisateur de l’application. Selon au moins un mode de réalisation, la sélection comprend - un parcours des groupes de nœuds dans un ordre croissant de nombre de niveaux hiérarchiques entre le terminal utilisateur et les groupes de nœuds , - pour les groupes de nœuds parcourus, une mise en correspondance entre le au moins un critère autre que le critère de confidentialité et la au moins une information de capacité, - la sélection du premier groupe de nœuds parcouru dont l’une au moins des caractéristiques techniques correspond à au moins un premier critère autre que le critère de confidentialité. Selon au moins un mode de réalisation, lorsque la capacité d’au moins un seul nœud du premier groupe de nœud ne répond pas au critère d’exécution l’application est déployée sur au moins deux nœuds dudit premier groupe dont la capacité combinée répond au critère. Selon au moins un mode de réalisation, lorsqu’aucun groupe de nœud n’a à lui seul une capacité pour répondre au critère d’exécution, la sélection comprend une sélection d’au moins deux groupes de nœuds, dont la capacité combinée d’au moins un nœud de chacun des au moins deux groupes de nœuds répond au critère, le procédé comprenant - une répartition de l’application sur au moins deux nœuds des au moins deux nœuds dont la capacité combinée répond au critère, - un pilotage des groupes de nœuds sur lesquels ladite application est répartie pour l’exécution de l’application. Selon au moins un mode de réalisation, le au moins un critère comprend un ou plusieurs parmi : - un temps de latence maximal, - une information de confidentialité relative à l’application, -une capacité mémoire nécessaire pour l’exécution de l’application, - un nombre de processeurs nécessaires pour l’exécution de l’application. Selon un autre aspect, l’invention concerne également un dispositif comprenant un ou plusieurs processeurs configurés ensemble ou séparément pour: - sélectionner au moins un premier groupe d’au moins un nœud d’un système comprenant un ou plusieurs groupes de nœuds, pour déployer au moins une application, la sélection étant fonction d’au moins une information d’exécution associée à l’application et comprenant au moins un critère d’exécution de l’application et d’au moins une information de capacité associée à au moins un nœud du au moins un premier groupe de nœuds, la sélection étant opérée lors d’un déploiement de l’application et/ou lors d’une exécution de l’application Selon un autre aspect, l’invention concerne un programme d’ordinateur comprenant des instructions pour l’exécution des étapes du procédé selon la présente divulgation lorsque ledit programme est exécuté par un ordinateur Selon un autre aspect, l’invention concerne un support d’enregistrement lisible par un ordinateur sur lequel est enregistré un programme d’ordinateur comprenant des instructions pour l’exécution des étapes du procédé selon la présente divulgation. La représente un contexte selon certains modes de réalisation de l’invention, La représente un système selon certains modes de réalisation de l’invention, La représente un procédé selon certains modes de réalisation de l’invention, La représente schématiquement un exemple d’architecture matérielle d’un dispositif apte à mettre en œuvre l’invention, selon certains modes de réalisation, La présente divulgation se place dans un contexte de déploiement d’au moins une application et plus particulièrement dans le déploiement d’au moins une application logicielle dans un environnement comprenant plusieurs nœuds sur lesquels, ou sur au moins un desquels, l’application peut être déployée. La présente divulgation peut par exemple se placer dans le contexte où un terminal client demande à un opérateur l’accès à une application dans un environnement, encore appelé système ici, comprenant plusieurs groupes de nœuds. Un nœud est physiquement représenté par un dispositif électronique ayant au moins un processeur, de la mémoire et des moyens de communication avec au moins un autre nœud ou dispositif et/ou au moins un autre équipement électronique. En informatique, un nœud est une unité de base d’un réseau. Les groupes de nœuds (le terme groupe étant traduit par « cluster » en anglais) sont des ensembles de dispositifs, dont certaine(s) caractéristique(s) sont proches. Il peut s’agir, dans certains modes de réalisation, de caractéristiques relatives à une proximité géographique des nœuds (comme une distance entre les lieux géographiques où sont situés les nœuds du réseau) ou à une proximité des nœuds en terme de fonction réalisée et/ou de service offert. Par exemple certains groupes de nœuds peuvent être dédiés à un ou plusieurs services vidéo alors que d’autres groupes de nœuds peuvent être dédiés à de la diffusion de contenu (de type CDN pour « content delivery network » en anglais). Il peut encore s’agir dans certains modes de réalisation de caractéristiques relative à une proximité en termes d’OS ou de performance et/ou de capacité. Dans certains modes de réalisation il peut s’agir d’une combinaison d’au moins deux de ces caractéristiques Dans certains modes de réalisation, les groupes de nœuds peuvent être organisés en niveaux. Dans certains modes de réalisation, plusieurs niveaux peuvent être définis, chaque niveau comprenant un seul groupe de nœuds. Ainsi, dans des systèmes mettant en œuvre un traitement informatique en périphérie (appelé « Edge computing » en anglais), dans lequel les données sont traitées au plus près de l’endroit où elles sont produites, comme représenté en , il peut y avoir autant de groupes de nœuds qu’il y a de niveaux et par exemple, on trouve : - un groupe de nœuds situé chez le client, les terminaux T1, T2 et T3 faisant partie d’un groupe de nœuds et les terminaux T4, T5 et T6 faisant partie d’un autre groupe de nœuds. -un groupe de nœuds proche du client, par exemple dans le cadre d’un opérateur, correspondant à au moins un point d’accès au réseau de l’opérateur, repérés nœuds réseau sur la - un groupe de nœuds dans un centre de données, par exemple dans le nuage (« en anglais « cloud »). Dans certains modes de réalisation, les groupes de nœuds peuvent fonctionner de manière indépendante, c’est-à-dire qu’ils ne connaissent pas les caractéristiques des autres groupes de nœuds. Par caractéristique, on peut entendre par exemple mais non limitativement, les puissances de calcul, la capacité mémoire, la charge de calcul utilisée par les applications installées sur ces nœuds, les applications déployées sur ces nœuds. Ainsi dans de tels modes de réalisation, lorsqu’un terminal client demande à un opérateur de déployer une application, l’opérateur est en charge de sélectionner le groupe de nœuds sur lequel il va déployer l’application. Lorsque l’opérateur ne possède pas la connaissance globale de tous les groupes de nœuds en termes de capacité, il peut avoir des difficultés à allouer le groupe de nœuds le plus adapté au déploiement d’une application. La présente divulgation permet de remédier à ce problème. Par définition, un groupe de nœuds, comprenant au moins un nœud, a plus de capacité qu’un nœud car il agrège toues les capacité des nœuds le composant. La représente un mode de réalisation d’un système dans lequel la présente divulgation peut être implémentée. Les terminaux T1 à T6 sont des un terminaux qui peuvent se trouver physiquement chez un utilisateur ou un client d’un opérateur, qui peut être un opérateur fournissant par exemple des services de téléphonie, de données, d’applications, via par exemple un réseau cellulaire ou internet. Ces terminaux peuvent être par exemple un ordinateur, une tablette, un téléphone mobile. Ainsi les terminaux T1 à T6 et les groupes de nœuds G1, G2, G3, G4 et G5 peuvent être interconnectés par un ou plusieurs réseaux de communication, comme des réseaux cellulaires, câble, internet… Les groupes de nœuds G1, G2, G3, G4 et G5 comprennent chacun un ensemble de nœuds N11 à N16 pour G1, N21 à N23 pour G2, N31 à N35 pour G3, N41 à N44 pour G4 et N51 à N53 pour G5. Les groupes de nœuds G1, G2 et G3 peuvent être situés physiquement à des endroits différents de l’infrastructure réseau déployée par l’opérateur. Comme illustré en , ils peuvent être situés à des niveaux hiérarchiques différents du réseau et avoir en outre des fonctions différentes, notamment associées au routage des informations dans le réseau. Les nœuds G4 et G5 sont eux situés dans le nuage (cloud). Ils sont donc hiérarchiquement plus distants d’un terminal utilisateur Tx que les nœuds G1, G2 et G3. La présente divulgation propose de sélectionner un groupe de nœuds ou un nœud pour déployer une application sur au moins un des nœuds, et comprend : - une sélection d’au moins un premier groupe de nœuds comprenant au moins un nœud pour déployer l’application, la sélection étant fonction d’au moins une information d’exécution associée à l’application et comprenant au moins un critère d’exécution de l’application et d’au moins une information de capacité associée à au moins un nœud du au moins un premier groupe de nœuds, la sélection étant opérée lors d’un déploiement de l’application et/ou lors d’une exécution de l’application. Suite à la sélection du groupe de nœuds, une requête de déploiement de l’application peut être transmise au groupe de nœuds. Dans certains modes de réalisation, lorsque la sélection est opérée lors d’une exécution de l’application, elle peut être opérée lors de la modification de capacité d’au moins un des nœuds dudit système, ou lors d’une reconfiguration du système. Par reconfiguration, on peut entendre modification des groupes de nœuds de manière structurelle, par exemple par ajout ou retrait d’un nœud dans un groupe, ou par ajout d’une connexion (USB, …) à un nœud, ou modification de l’architecture du réseau de groupes de nœuds. Le dispositif T1 reçoit notamment une requête d’un utilisateur, demandant le déploiement d’une application. Le terminal T1 comprend plusieurs modules et notamment un module 11 de gestion et un module 12 de pilotage. Il est entendu que le système peut comprendre plusieurs terminaux tels que le terminal T1 et que ces terminaux peuvent transmettre également des requêtes. Les modules 11 et 12 sont configurés pour sélectionner le ou les groupes de nœuds sur lequel l’application est déployée. Dans un tel environnement, chaque groupe de nœuds peut être en charge de répartir la charge, au sein du groupe, sur les différents nœuds qui le composent grâce à un répartiteur de charge de ce groupe de nœuds. Le module 12 de pilotage du terminal T1 est lui en charge de piloter les groupes de nœuds. Le module 12 pilote la répartition de charge entre les groupes de nœuds et éventuellement entre les nœuds (directement et/ou via les répartiteurs de charge des groupes selon les modes de réalisation par exemple) et se charge de répartir le déploiement sur les groupes de nœuds qui ont été sélectionnés par le module de gestion lorsque par exemple un seul groupe de nœuds n’est pas suffisant pour le déploiement de l’application. Ainsi, il y a une répartition de charge à double niveaux, une au niveau groupe de nœuds et une au niveau nœuds. Suite à la réception de la requête utilisateur, le module de gestion peut récupérer des informations relatives aux différents groupes de nœuds du système comme : - des informations relatives à l’organisation des groupes de nœuds, telles l’identification des différents niveaux hiérarchiques présents dans le système et la localisation des groupes de nœuds dans ce système (comme leur position hiérarchique dans le système), - des informations relatives à la capacité des groupes de nœuds et notamment pour chaque groupe de nœuds : - un identifiant du groupe de nœud ; - une adresse du groupe de nœuds ; - une identification des ressources disponibles sur le groupe, comme la capacité de traitement disponible, la capacité mémoire disponible, le nombre d’applications actives sur le groupe de nœuds, - la liste des nœuds gérés dans ce groupe. Pour au moins un nœud (par exemple chaque) identifié dans au moins un (par exemple chaque) groupe de nœuds identifié, le module de gestion peut récupérer également les ressources disponibles du nœud, à savoir comme mentionné ci-dessus pour les groupes de nœuds, - une identification des ressources disponibles, comme la capacité de traitement disponible, la capacité mémoire disponible, le nombre d’applications actives sur le nœud. Le module de gestion peut récupérer également des informations relatives à une information d’exécution associée à l’application et comprenant au moins un critère d’exécution de l’application. Parmi les critères d’exécution de l’application, on peut citer par exemple: - une capacité mémoire minimale nécessaire à l’exécution de l’application, - un nombre de processeurs nécessaire à l’exécution de l’application, - un temps de latence maximal, - une information relative à la confidentialité de l’application ou des données utilisées par l’application, - l’accès à un réseau spécifique accessible localement par un nœud, - l’accès à un matériel connecté à un nœud (USB, série, etc.). Selon les modes de réalisation, différentes méthodes peuvent être utilisées pour classifier des critères selon un ordre d’importance et sélectionner des objets ou dispositifs (comme des nœuds ou groupes de nœuds) qui répondraient au mieux à ces critères en fonction de leur capacité. Dans certains modes de réalisation, un critère représente une condition nécessaire à l’exécution de l’application. Dans certains modes de réalisation, plusieurs critères peuvent être spécifiés par l’application. Dans ce cas, ces critères peuvent être hiérarchisés selon un ordre d’importance. La sélection du au moins un groupe de nœuds sélectionne au moins un groupe de nœuds dont la capacité d’au moins un nœud du groupe sélectionné répond au critère d’ordre le plus élevé. Lorsque l’information d’exécution associée à une application contient plusieurs critères, ceux-ci peuvent être plus ou moins importants pour garantir la bonne exécution de l’application. Les critères peuvent être classés, par exemple du plus important au moins important, rendant possible de sélectionner un groupe de nœuds pour son déploiement, en recherchant tout d’abord le ou les groupes de nœuds répondant au critère le plus important puis ensuite parmi ces groupes de nœuds (répondant à ce critère le plus important) ceux qui répondent au second critère le plus important, et ainsi de suite. On obtient ainsi le groupe de nœuds répondant le mieux aux critères. Dans certains modes de réalisation, les critères peuvent également être classés selon des catégories d’exigence, à savoir par exemple, nécessaire, souhaité, préféré. Un critère classé nécessaire est obligatoire pour l’exécution de l’application, un critère classé comme souhaité permet d’assurer un bon fonctionnement de l’application, lors de son exécution, et un critère classé comme préféré permet une meilleure expérience utilisateur. Ces critères peuvent être mis en relation avec les caractéristiques techniques des groupes de nœuds et des nœuds. A l’intérieur de chaque catégorie, les critères peuvent également être hiérarchisés du plus important au moins important. Ainsi, ils peuvent être classés selon une liste hiérarchisée. Dans de tels modes de réalisation, la sélection peut sélectionner le groupe de nœuds ou le nœud en fonction d’une comparaison e entre ladite liste hiérarchisée et les caractéristiques techniques, le groupe étant sélectionné lorsque l’une au moins des caractéristiques techniques correspond à au moins un premier critère. Par exemple, les critères peuvent être parcourus dans la liste ordonnée en partant du plus important vers le moins important. Les critères, les plus importants, selon cet ordonnancement, étant par exemple les critères classés nécessaires hiérarchisés puis les critères souhaités, également hiérarchisés, puis les critères préférés également hiérarchisés. Dans certains modes de réalisation, les groupes de nœuds possèdent l’information d’une modification future de leurs caractéristiques et cette information peut être prise en compte lors de la sélection. Dans certains modes de réalisation, lorsqu’un seul groupe de nœuds ne possède pas à lui seul, les caractéristiques techniques nécessaires pour répondre à au moins un critère classé nécessaire, alors plusieurs groupes de nœuds sont sélectionnés pour répondre à ce besoin. Selon certains modes de réalisation de l’invention, les caractéristiques des groupes de nœuds sont liées à des caractéristiques disponibles du groupe de nœuds, par exemple à des caractéristiques disponibles sur un même nœud du groupe. Selon certains modes de réalisation de l’invention, les caractéristiques des groupes de nœuds sont liées à des caractéristiques disponibles du groupe de nœuds (par exemple à des caractéristiques disponibles sur au moins un nœud du groupe) pour l’exécution de l’application Selon certains modes de réalisation, les caractéristiques disponibles des groupes de nœuds sont représentatives de ressources présentes sur les groupes de nœuds (par exemple à des ressources disponibles sur au moins un nœud du groupe.). Selon certains modes de réalisation, les caractéristiques disponibles des groupes de nœuds sont représentatives de ressources présentes sur les groupes de nœuds et réparties dans les nœuds du groupe de nœuds. Selon certains modes de réalisation, la sélection effectue une mise en correspondance d’au moins une caractéristique et d’au moins un critère. Selon certains modes de réalisation, la mise en correspondance peut être effectuée lorsque les caractéristiques de l’un au moins des groupes de nœuds ont changé ou ont été modifiées. Selon certains modes de réalisation, la mise en correspondance peut être effectuée lorsqu’une application est déployée sur l’un au moins des groupes de nœuds, par exemple lors et/ou suite au déploiement de l’application sur l’un au moins des groupes de nœuds, et/ou lorsqu’une application est exécutée sur l’un au moins des groupes de nœuds. Selon certains modes de réalisation, la mise en correspondance peut être effectuée de manière régulière. Dans certains modes de réalisation, lorsqu’aucun groupe de nœuds n’a à lui seul une capacité pour répondre au critère d’exécution, la sélection comprend une sélection d’au moins deux groupes de nœuds dont la capacité combinée des au moins deux groupes de nœuds répond au critère, le procédé comprend une répartition de l’application sur au moins deux nœuds des au moins deux nœuds dont la capacité combinée répond au critère et un pilotage des groupes de nœuds sur lesquels l’application est répartie pour l’exécution de l’application. Dans certains modes de réalisation, lorsque la capacité d’au moins un seul nœud d’un groupe de nœud ne répond pas au critère d’exécution, le déploiement de l’application est réparti sur au moins deux nœuds d’un groupe dont la capacité combinée des au moins deux groupes répond au critère. Dans certains modes de réalisation, les groupes de nœuds comprennent un répartiteur de charge en charge de faire la répartition entre les nœuds. Dans certains modes de réalisation, l’application peut nécessiter des performances très importantes pour son exécution. Il peut notamment s’agir d’application mettant en œuvre des solutions basées sur de l’intelligence artificielle. Dans ce cas, parmi les critères d’exécution de l’application, il peut également être spécifié un nombre de nœuds nécessaires au déploiement de l’application, ce nombre de nœuds étant supérieur à un. Les critères peuvent également dans ce cas, spécifier pour chaque nœud, les critères nécessaires au déploiement de l’application. Dans un tel cas, les au moins deux nœuds peuvent se trouvent situer dans un même groupe de nœuds ou sur des groupes de nœuds différents. Le fait que les au moins deux nœuds puissent être situés sur le même groupe de nœuds ou non, peut également être spécifié dans les critères. Dans certains modes de réalisation, lorsqu’au moins un critère comprend au moins une information de confidentialité relative à l’application, la sélection sélectionne le groupe de nœuds en fonction d’un critère de proximité entre le groupe de nœuds et un terminal utilisateur de ladite application. Le critère de proximité peut être relatif à : - une distance physique entre le groupe de nœuds et le terminal utilisateur de l’application, ou -un nombre de niveaux hiérarchiques de groupes de nœuds entre le groupe de nœuds et le terminal utilisateur de l’application. En effet, comme illustré en , lorsqu’un terminal T1 demande le déploiement d’une application, si cette application est sensible en terme de confidentialité, il est pertinent que l’application soit déployée préférentiellement sur un nœud du niveau intermédiaire plutôt que sur un nœud situé dans le nuage, les données échangées sont ainsi moins vulnérables. Lorsque le critère de confidentialité est situé à un ordre élevé dans la liste d’importance des critères à respecter, la sélection comprend - un parcours des groupes de nœuds dans un ordre croissant de nombre de niveaux hiérarchiques entre le terminal utilisateur et les groupes de nœuds , - pour les groupes de nœuds parcourus, une comparaison entre le au moins un critère autre que le critère de confidentialité et la au moins une information de capacité, - la sélection du premier groupe de nœuds parcouru dont l’une au moins des caractéristiques techniques correspond à au moins un premier critère autre que le critère de confidentialité. Ainsi, ce parcours d’un arbre des nœuds favorise une sélection des groupes de nœuds les plus proches, car les groupes de nœuds sont parcourus du plus proche vers le plus éloigné du terminal demandant le déploiement. Dès lors qu’un groupe répond au critère le plus élevé, alors il peut être sélectionné. Dans certains modes de réalisation, lorsque ladite sélection est opérée lors de l’exécution de ladite application, elle comprend : - une sélection d’au moins un second groupe de nœuds pour le déploiement de l’application, lorsque le second groupe de nœuds est associé à une capacité correspondant à un des critères d’ordre plus élevé que le groupe de nœuds sur lequel l’application était déployée, - une suppression de l’application du au moins groupe de nœuds sur lequel elle était précédemment déployée. Dans certains modes de réalisation, lorsque la sélection est opérée lors de l’exécution de ladite application, elle comprend - une sélection d’au moins un nouveau nœud pour le déploiement de l’application, lorsque le nouveau nœud est associé à une capacité correspondant à un des critères d’ordre plus élevé que le ou les nœuds sur lequel l’application était déployée, le au moins un nouveau nœud pouvant être un nœud du groupe de nœuds sur lequel l’application était déployée ou un nœud d’un autre groupe de nœud que le groupe de nœud sur lequel l’application était déployée, - une suppression de l’application du au moins un ou plusieurs nœuds sur lequel elle était précédemment déployée. Dans certains modes de réalisation, où la sélection peut être faite lors du déploiement de l’application et /ou lors de l’exécution de l’application (par exemple dans ces deux cas), il est possible de sélectionner un nouveau groupe de nœuds en cours d’exécution, de manière dynamique, afin de déployer l’application sur un nouveau nœud dont les informations de capacité seraient plus adaptées au déploiement de ladite application. Dans certains modes de réalisation, lors de l’exécution de l’application, les groupes de nœuds sont parcourus, par exemple de manière régulière ou périodique, de façon aléatoire ou lors d’évènements occasionnant une utilisation de l’application, afin de déterminer leur capacité courante. Si l’un des groupes de nœuds a changé de capacité par rapport au moment de la sélection initiale faite lors du déploiement de l’application, alors si la nouvelle capacité du groupe de nœud dont les capacités ont changé, est plus adaptée au critère d’exécution de l’application, le déploiement se fera de nouveau sur ce groupe de nœuds et l’application peut être supprimée du premier groupe de nœuds sur lequel elle était installée. Ainsi, la sélection est faite dynamiquement lors d’un déploiement de ladite application et dynamiquement lors d’une exécution de ladite application. Plus généralement il est envisagé que la capacité des groupes de nœuds soit évaluée de manière régulière ou périodique, de façon aléatoire ou lors d’évènements occasionnant une utilisation de l’application, et dès que la capacité d’un groupe de nœuds répond mieux au besoin que le groupe de nœuds sur lequel l’application est installée, alors elle est - soit réinstallée sur ce nouveau groupe de nœuds ou -soit l’instance de l’application qui aurait été déjà installée sur ce groupe de nœuds est de nouveau utilisée et l’instance courante est désinstallée ou du moins indiquée comme non utilisée sur le groupe de nœuds ou les groupes de nœuds sur lesquels elle était utilisée. En d’autres mots, lorsqu’il est indiqué qu’un groupe de nœuds (ou de plusieurs groupes de nœuds ensemble) satisfait mieux, de par sa capacité par exemple, à un critère qu’un autre groupe de nœuds (ou que plusieurs groupes de nœuds ensemble), l’application est déployée sur ce nouveau groupe de nœuds. Par exemple, lorsqu’un critère est relatif à un temps de latence maximal demandé par l’application, si un groupe de nœuds ne peut pas satisfaire ce temps de latence, alors il est exclu de la sélection. Un autre critère peut être une capacité mémoire nécessaire à l’exécution de l’application. Si le groupe de nœuds ne dispose pas de cette capacité mémoire alors il n’est pas non plus sélectionné. Suite à la sélection d’un second groupe de nœuds, l’application peut être déployée sur ce nouveau groupe de nœuds et elle peut être supprimée du premier groupe de nœuds. Dans certains modes de réalisation, une instance de cette application peut aussi être conservée sur le premier groupe de nœuds mais indiquée comme non utilisée. De cette manière, si le premier groupe de nœuds redevient le groupe de nœuds dont l’information de capacité correspond le plus au critère d’exécution de l’application, cette instance pourra être utilisée sans devoir la réinstaller sur ce premier groupe de nœuds. De la même manière, l’instance installée sur le second groupe de nœuds peut être conservée en tant qu’instance non utilisée ou supprimée. Le module de gestion 11 et le module de pilotage 12 peuvent être avantageusement des couches logicielles situées dans le terminal T1 et transparentes pour l’utilisateur du terminal T1. Ainsi, la présente divulgation peut être implémentée sous la forme d’une API (interface de programmation d’application). Dans certains modes de réalisation, la présente invention peut être implémentée dans un environnement utilisant Kubernetes ©. Kubernetes est un système open-source permettant d'automatiser le déploiement, la mise à l'échelle et la gestion des applications conteneurisées. Le procédé tel que décrit précédemment peut ainsi être intégré à l’API Kubernetes ou être intégré dans une API extérieure à Kubernetes qui se connecte à l’application Kubernetes pour la piloter. Comme mentionné précédemment, chaque groupe de nœuds est en charge de répartir la charge sur les différents nœuds qui le composent grâce au répartiteur de charge et l’API est en charge de piloter les groupes de nœuds grâce au module de pilotage. Ainsi, il y a une répartition de charge à double niveaux, au niveau groupe de nœuds et au niveau nœuds. Dans certains modes de réalisation, les critères d’exécution de l’application peuvent être décrits dans au moins un fichier descriptif, comme un fichier de type yaML ou HELM. Un tel fichier descriptif peut par exemple utiliser des labels Kubernetes dans certains modes de réalisation. On présente ci-après un exemple de fichier descriptif de type yaML définissant des labels: apiVersion: apps/v1 kind: Deployment metadata: name: mon_app labels: app: mon_app min_cpu: 2 min_ram: 2 min_latency: 10ms max_pods_parallel: 10 capabilities: usb, 5g Dans cet exemple, les critères suivants sont listés : - capacité mémoire : 2GO de mémoire Ram au minimum, - deux processeurs minimum - temps de latence maximale : 10 ms - le nœud doit disposer d’un port USB et d’une connexion cellulaire conforme au protocole 5G. – le nombre maximal d’applications déployées sur le nœud ne doit pas être supérieur à 10. Dans certains modes de réalisation, les capacités d’au moins un (par exemple chaque) nœud ou groupe de nœuds peuvent également être indiqués dans le fichier descriptif. Dans certains modes de réalisation, comme mentionné précédemment, les critères peuvent être classés par ordre d’importance. Ainsi, en reprenant l’exemple de fichier descriptif ci-dessus, il peut être envisagé que le critère le plus important soit un nombre minimum de processeurs (CPU), qui est ici de deux. Dans l’exemple ci-dessus, le procédé de la présente demande peut par exemple d’abord sélectionner les groupes de nœuds qui proposent un nœud possédant deux processeurs. Ensuite les autres critères du fichier descriptif ci-dessus peuvent éventuellement amener à sélectionner parmi ces groupes de nœuds, les groupes de nœuds ayant un minimum de 2 GO de disponible et ainsi de suite. La liste des critères peut être balayée jusqu’à obtenir un nœud répondant à tous les critères ou à un nombre maximum de critères ou aux critères plus importants parmi tous les critères du fichier descriptif. Ainsi, dans certaines configurations tous les critères ne sont pas remplis et un groupe de nœuds présentant le plus de critères, (ordonnés selon leur importance par exemple), est sélectionné. Selon la présente divulgation, le procédé permet de sélectionner au moins un second groupe de nœuds, ou un second nœud, si jamais, ultérieurement, par exemple lors de l’exécution de l’application, ce second groupe de nœud ou second nœud, respectent davantage de critères qu’au moins un nœud ou groupe de nœuds déjà sélectionné. Cette nouvelle sélection peut notamment être effectuée si le groupe de nœuds ou nœud déjà sélectionné ne répond pas à tous les critères. Il est à noter qu’un groupe de nœuds peut répondre à tous les critères mais en répartissant le déploiement de l’application sur plusieurs nœuds. Un nouveau groupe de nœuds peut être sélectionné dans plusieurs cas et notamment, non exhaustivement : - si ce nouveau groupe de nœuds permet de répartir le déploiement de l’application sur moins de nœuds, - si ce nouveau groupe de nœuds permet de répartir le déploiement de l’application sur des nœuds permettant de répondre à plus de critères, - si ce nouveau groupe de nœuds permet de libérer le groupe de nœuds sur lequel l’application était déployée pour une nouvelle application, par exemple si le groupe de nœuds sur lequel l’application était installée possède des caractéristiques qui répondent mieux aux critères de cette nouvelle application que d’autres nœuds ou groupes de nœuds disponibles (et notamment le nouveau groupe). Ainsi, le procédé scrute les capacités des nœuds du système régulièrement, ou périodiquement, de façon aléatoire ou lors d’évènements occasionnant une utilisation de l’application, ou de manière cyclique de manière à toujours mettre en regard les capacités des nœuds et des groupes de nœuds et à redéployer les applications présentes sur les nœuds qui répondent le mieux, selon un algorithme qui détermine les priorités, aux critères d’exécution de chaque application. Ceci est rendu possible par la présence au niveau du terminal utilisateur des modules de gestion 11 et de pilotage 12. Le module de gestion 11 obtient les caractéristiques des différents groupes de nœuds et les critères des applications à déployer lors des requêtes utilisateurs. Le module de pilotage aiguille le déploiement de l’application sur le groupe de nœuds qui répond au critère selon les modes de réalisation déterminés précédemment. Ensuite, une requête de déploiement est transférée au nœud sélectionné (ou plus précisément à son répartiteur de charge) qui déploie l’application sur le nœud répondant le mieux au besoin ou répartit les charges sur plusieurs de ses nœuds lorsqu’un seul nœud ne répond pas au besoin/critère de manière également à répartir le déploiement sur plusieurs de ses nœuds qui répondent le mieux au critère. Ainsi selon certains modes de réalisation, la présente divulgation concerne un dispositif électronique comprenant un processeur configuré pour - obtenir au moins un critère d’exécution d’une application destinée à être déployée sur au moins un groupe de nœuds d’un environnement comprenant plusieurs groupes de nœuds de réseau - obtenir au moins une caractéristique relative aux groupes de nœuds du réseau, - mettre en correspondance au moins un critère et au moins une caractéristique et en fonction de la mise en correspondance, - déployer l’application sur un au moins des groupes de nœuds, et - en fonction d’au moins une nouvelle mise en correspondance effectuée au cours de l’exécution de l’application suite à son déploiement, déployer ladite application sur un nouveau groupe de nœuds. Selon certains modes de réalisation, la présente divulgation concerne un procédé d’exécution d’au moins une application, dans un environnement comprenant plusieurs groupes de nœuds de réseau, l’application étant destinée à être déployée sur au moins un desdits groupes de nœuds, le procédé comprenant - l’obtention d’au moins un critère d’exécution de l’application, - l’obtention d’au moins une caractéristique relative aux groupes de nœuds du réseau, - la mise en correspondance d’au moins un critère et d’au moins une caractéristique et en fonction de la mise en correspondance, - le déploiement de l’application sur un au moins des groupes de nœuds, et - en fonction d’au moins une nouvelle mise en correspondance effectuée au cours de l’exécution de l’application suite à son déploiement, le déploiement de ladite application sur un nouveau groupe de nœuds. Toutes les variantes et implémentations décrites ci-dessus s’appliquent à ce procédé et ce dispositif. La représente un procédé selon certaines implémentations de l’invention. Lors d’une étape E1, un ou plusieurs utilisateurs transmettent une requête à un terminal tel le terminal T1, demandant le déploiement d’une application. Cette application peut par exemple faire partie d’une offre disponible ou offerte par un opérateur auprès duquel l’utilisateur a souscrit un abonnement. La requête peut donc être destinée à l’opérateur. Lors d’une étape E2, le ou les critères nécessaires à l’exécution de l’application sont obtenus ainsi que les capacités des nœuds et/ou des groupes de nœuds. Comme mentionné précédemment, ces critères peuvent être contenus dans au moins un fichier lié à l’application et aux groupes de nœuds ou nœuds. Dans certains modes de réalisation, ils peuvent être contenus dans des fichiers de type YaML ou HELM. Des exemples de tels critères ont été décrits en référence à la . Lors d’une étape E3, les critères sont mis en correspondance avec les capacités des groupes de nœuds ou nœuds. afin de sélectionner un groupe de nœud sur lequel déployer l’application. Comme mentionné précédemment cette mise en correspondance peut être effectuée en fonction d’une hiérarchie des critères par exemple ou un parcours des groupes de nœuds selon un certain ordre. Les différentes sélections décrites en référence à la peuvent par exemple s’appliquer à la . A l’issue de l’étape E3, un groupe de nœuds est donc sélectionné pour déployer l’application. Lors d’une étape E4, une requête peut être transmise au groupe de nœuds sélectionné pour déployer l’application. Lors d’une étape E5, un répartiteur de charge du groupe de nœuds peut déterminer si l’application est déployée sur un seul nœud ou sur plusieurs nœuds du groupe de nœuds comme expliqué précédemment. Lors d’une étape E6, l’application est déployée sur le ou les nœuds sélectionnés. Le procédé est mis en œuvre régulièrement, ou périodiquement, de façon aléatoire ou lors d’évènements occasionnant une utilisation de l’application, de manière à essayer de déployer ou redéployer l’application sur le nœud dont les capacités répondent au mieux aux critères de l’application. Si l’application avait été précédemment déployée sur un autre groupe de nœuds et qu’elle est maintenant déployée sur un groupe de nœuds dont la capacité correspond mieux à ces critères, étape E7, alors on passe à l’étape E8 dans laquelle l’instance précédemment installée est soit supprimée, soit indiquée comme non utilisée mais conservée sur ce groupe de nœuds sur lequel elle était installée, puis le procédé passe à l’étape E2. Si l’application n’avait pas été précédemment déployée alors le procédé reprend à l’étape E2. Ainsi, suite à l’étape E7 ou E8, le procédé revient à l’étape E2 et compare régulièrement, ou périodiquement, de façon aléatoire ou lors d’évènements occasionnant une utilisation de l’application, les critères d’exécution des applications déployées et les capacités des nœuds et re-déploient les applications dont les critères d’exécution correspondent mieux aux capacités d’autres groupes de nœuds sur ces autres groupes de nœuds. Comme mentionné précédemment, le terme « mieux » est relatif au mode de sélection mis en œuvre et précédemment décrit, en fonction de l’importance des critères pour chaque application. La représente un exemple d’au moins une partie d’architecture matérielle d’un des terminaux T1 à T6, permettant l’implémentation d’un procédé selon la présente divulgation. Cette architecture matérielle est celle d’un ordinateur. D’autres éléments d’architecture matérielle sont présents dans le terminal et non représentés ici. L’architecture matérielle comprend un ou plusieurs processeurs 1 (un seul est représenté sur la ) mettant en œuvre un procédé selon la présente divulgation, une mémoire morte 2 (de type « ROM »), une mémoire non volatile réinscriptible 3 (de type « EEPROM » ou « Flash NAND » par exemple), une mémoire volatile réinscriptible 4 (de type « RAM ») une interface de communication 5. La mémoire morte 2 constitue un support d’enregistrement conforme à un exemple de mode de réalisation de l’invention, lisible par le processeur ou les processeurs 1 et sur lequel est enregistré un programme d’ordinateur PROG conforme à un exemple de mode de réalisation de l’invention comportant des instructions pour l’exécution d’étapes du procédé selon la présente divulgation. En variante, le programme d’ordinateur PROG est stocké dans la mémoire non volatile réinscriptible 3. Le programme d’ordinateur PROG peut permettre aux terminaux T1 à T6 de mettre en œuvre au moins une partie du procédé conforme à la présente divulgation. Ce programme d’ordinateur PROG peut ainsi définir des modules fonctionnels et logiciels, configurés pour mettre en œuvre les étapes d’un procédé conforme à un exemple de mode de réalisation de l’invention, ou au moins une partie de ces étapes. Ces modules fonctionnels s’appuient sur ou commandent les éléments matériels 21, 22, 23, 24, 25 d’un des terminaux T1 à T6 cités précédemment. Procédé d’exécution d’au moins une application sur au moins un nœud d’un système comprenant un ou plusieurs groupes de nœuds, ledit procédé comprenant : - une sélection (E3) d’au moins un premier groupe (G1, G2, G3, G4, G5) d’au moins un nœud (N1 à N53) pour déployer ladite application, ladite sélection étant fonction d’au moins une information d’exécution associée à ladite application et comprenant au moins un critère d’exécution de ladite application et d’au moins une information de capacité associée à au moins un nœud dudit au moins un premier groupe de nœuds, ladite sélection étant opérée lors d’un déploiement de ladite application et/ou lors d’une exécution de ladite application Procédé selon la revendication 1 dans lequel, ladite sélection est opérée lors d’une exécution de ladite application, lors d’une modification de capacité d’au moins un desdits nœuds dudit système, et/ou lors d’une reconfiguration dudit système. Procédé selon l’une des revendications 1 ou 2 dans lequel lesdits critères sont ordonnés, ladite sélection dudit au moins un premier groupe de nœuds (G1, G2, G3, G4, G5) sélectionne ledit au moins un premier groupe de nœuds (G1, G2, G3, G4, G5) dont ladite capacité d’au moins un nœud répond au critère d’ordre le plus élevé. Procédé selon la revendication 3 dans lequel, lorsque ladite sélection est opérée lors de l’exécution de ladite application, elle comprend - une sélection d’au moins un second groupe de nœuds (G1, G2, G3, G4, G5) pour le déploiement de ladite application, lorsque ledit second groupe de nœuds est associé à une capacité correspondant à un desdits critères d’ordre plus élevé que le premier groupe de nœuds sur lequel l’application était déployée, -une suppression de ladite application dudit au moins premier groupe de nœuds (G1, G2, G3, G4, G5) sur lequel elle était précédemment déployée. Procédé selon la revendication 3 dans lequel, lorsque ladite sélection est opérée lors de l’exécution de ladite application, elle comprend -une sélection (E3)d’au moins un nouveau nœud (N1 à N53) pour le déploiement de ladite application, lorsque ledit nouveau nœud (N1 à N53) est associé à une capacité correspondant à un desdits critères d’ordre plus élevé que le ou les nœuds (N1 à N53) sur lequel l’application était déployée, ledit au moins un nouveau nœud (N1 à N53) pouvant être un nœud dudit premier groupe de nœuds (G1, G2, G3, G4, G5) sur lequel l’application était déployée ou un nœud (N1 à N53) d’un autre groupe de nœud (G1, G2, G3, G4, G5) que le premier groupe de nœud (G1, G2, G3, G4, G5) sur lequel l’application était déployée, - une suppression ou une indication de non utilisation (E8) de ladite application dudit au moins un ou plusieurs nœuds (N1 à N53) sur lequel elle était précédemment déployée. Procédé selon l’une des revendications précédentes dans lequel, lorsque ledit au moins un critère comprend au moins une information de confidentialité relative à ladite application, ladite sélection sélectionne (E3) ledit premier groupe de nœuds (G1, G2, G3, G4, G5) en fonction d’un critère de proximité entre ledit premier groupe de nœuds (G1, G2, G3, G4, G5) et un terminal utilisateur (T1 à T6) de ladite application. Procédé selon la revendication 6 dans lequel ledit critère de proximité est relatif à : - une distance physique entre ledit premier groupe de nœuds (G1, G2, G3, G4, G5) et ledit terminal utilisateur (T1 à T6) de ladite application, et/ou -un nombre de niveaux hiérarchiques de groupes de nœuds (G1, G2, G3, G4, G5) entre ledit premier groupe de nœuds (G1, G2, G3, G4, G5) et ledit terminal utilisateur (T1 à T6) de ladite application. Procédé selon la revendication 7 dans lequel ladite sélection comprend - un parcours desdits groupes de nœuds (G1, G2, G3, G4, G5) dans un ordre croissant de nombre de niveaux hiérarchiques entre ledit terminal utilisateur et lesdits groupes de nœuds (G1, G2, G3, G4, G5), - pour les groupes de nœuds parcourus (G1, G2, G3, G4, G5), une mise en correspondance entre le au moins un critère autre que ledit critère de confidentialité et ladite au moins une information de capacité, - la sélection du premier groupe de nœuds (G1, G2, G3, G4, G5) parcouru dont l’une au moins desdites caractéristiques techniques correspond à au moins un premier critère autre que ledit critère de confidentialité. Procédé selon l’une des revendications précédentes dans lequel lorsque ladite capacité d’au moins un seul nœud (N1 à N53) dudit premier groupe de nœud (G1, G2, G3, G4, G5) ne répond pas audit critère d’exécution ladite application est déployée sur au moins deux nœuds (N1 à N53) dudit premier groupe de nœuds (G1, G2, G3, G4, G5) dont la capacité combinée répond audit critère. Procédé selon l’une des revendications précédentes dans lequel lorsqu’aucun groupe de nœud (G1, G2, G3, G4, G5) n’a à lui seul une capacité pour répondre audit critère d’exécution, la sélection comprend une sélection d’au moins deux groupes de nœuds (G1, G2, G3, G4, G5), dont la capacité combinée d’au moins un nœud (N1 à N53) de chacun desdits au moins deux groupes de nœuds (G1, G2, G3, G4, G5)répond audit critère, ledit procédé comprenant - une répartition de ladite application sur au moins deux nœuds (N1 à N53) desdits au moins deux nœuds (N1 à N53) dont la capacité combinée répond audit critère, - un pilotage des groupes de nœuds (G1, G2, G3, G4, G5)sur lesquels ladite application est répartie pour l’exécution de ladite application.