Brevet FR3028972A1 — publié le 20160527

METHODES POUR LA GESTION DU CYCLE DE VIE D'UNE APPLICATION CLOUD A TRAVERS UNE PLURALITE D'INFRASTRUCTURES EN NUAGE La présente invention concerne les méthodes de gestion du cycle de vie d'une application Cloud (ou une application en nuage) déployée sur plusieurs infrastructures en nuage. L'informatique en nuage (dit, en terminologie anglo-saxonne, « Cloud » ou « Cloud computing ») permet de soutenir une charge de travail (workload) dynamique avec un approvisionnement élastique en ressources pour répondre au juste besoin d'une application. Le Cloud est, ainsi, considéré comme une solution économique dans la mesure où on paye uniquement que pour ce qu'on consomme en ressources. Il s'ensuit que les technologies de Cloud connaissent un succès grandissant avec une offre de plus en plus diversifiée, donnant lieu à un paysage de Clouds disparates et non homogènes. Cependant, il est question de pouvoir déplacer une application et/ou un service avec la charge de travail correspondante entre différents Clouds publics et/ou privés. Ce déplacement permet de faire migrer, à travers un réseau, une application, ses données, ses dépendances ainsi que la charge de travail associée s'exécutant dans une infrastructure en nuage « A » vers une autre infrastructure en nuage « B ». Plus généralement, la portabilité en nuage informatique est la capacité de déplacer une charge de travail d'un fournisseur de nuage à un autre, sans nécessiter de modifications significatives dans l'application ou dans son contexte. La portabilité des charges de travail d'un Cloud à un autre peut être motivée par différents arguments tels que - éviter le syndrome de dépendance exclusive à l'égard d'un seul fournisseur de Cloud ; - profiter d'un meilleur prix et/ou d'une meilleure qualité de service proposé(e) par une autre infrastructure en nuage; - un seul Cloud ne peut généralement satisfaire tous les besoins d'un client (par exemple, une infrastructure en nuage sans pannes, économiquement avantageuse, qui couvre plusieurs zones géographiques et qui offre la meilleure qualité de service). 3028972 2 Cette question de portabilité de la charge de travail a fait l'objet d'un standard TOSCA (pour « Topology and Orchestration Specification for Cloud Applications). Ainsi, le déplacement d'une charge de travail d'une infrastructure en nuage à une autre est rendu possible de sorte qu'une 5 application peut être déployée, simultanément ou d'une manière successive, sur une pluralité d'infrastructures en nuage. Toutefois, une telle portabilité des applications Cloud nécessite une certaine agilité à prendre en compte non seulement dans le développement de ces applications, mais aussi dans leur déploiement tout au long de leur 10 cycle de vie. Cette agilité doit permettre aux équipes chargées du développement et de l'exploration, de maintenir les applications Cloud tout au long de leur cycle de vie (par exemple, intégration de nouvelles fonctions/caractéristiques, mise à jour, adaptation à une infrastructure Cloud particulière). Plus généralement, une gestion du cycle de vie (ou 15 « Lifecycle management » en terminologie anglo-saxonne) des applications Cloud déplaçables d'une infrastructure Cloud à une autre est requise. Un objet de la présente invention est de faciliter la conception et la portabilité, selon le standard TOSCA, des applications Cloud. Un autre objet de la présente invention est de rendre l'évolution des 20 applications Cloud indépendante des technologies et des infrastructures de déploiement de sorte à permettre l'intégration de toute version ultérieure d'une application en nuage (ou une application Cloud) dans toute infrastructure et couche de déploiement existantes. Un autre objet de la présente invention est d'accélérer la conception des 25 infrastructures d'applications Cloud et d'améliorer la réutilisation des ressources. Un autre objet de la présente invention est de favoriser et de faciliter la collaboration entre les développeurs et les équipes opérationnelles (c.à.d. les équipes de déploiement) dans la création des composants et des plans 30 architecturaux des applications Cloud tout au long du cycle de vie de ces applications. 3028972 3 Un autre objet de la présente invention est de permettre l'intégration des applications Cloud avec les systèmes existants via l'API REST (REpresentational State Transfer) et des méthodes d'installation automatique (pluggable). 5 Un autre objet de la présente invention est de favoriser la portabilité/migration d'une application Cloud à travers plusieurs infrastructures informatiques en nuage avec le minimum d'effort. L'invention se rapporte, selon un premier aspect, à une plateforme collaborative pour la gestion du cycle de vie d'une application en nuage, 10 cette plateforme collaborative comprenant des moyens configurés pour définir en tant que code une pluralité de besoins, en termes d'infrastructure en nuage, de l'application en nuage. Cette plateforme est configurée pour intégrer une fonctionnalité en projet pour approvisionner en fonctionnalités l'application en nuage. 15 A ces fins, l'invention propose, selon un deuxième aspect, une méthode pour la gestion du cycle de vie d'une application en nuage, cette méthode comprenant une première étape de définition en tant que code d'une pluralité de besoins, en termes d'infrastructure en nuage, de l'application en nuage, et une deuxième étape de réception par une plateforme 20 collaborative de la définition en tant que code de ladite pluralité de besoins. Avantageusement, la définition desdits besoins est faite dans un format TOSCA. L'invention se rapporte, selon un troisième aspect, à un produit programme 25 d'ordinateur implémenté sur un support mémoire, susceptible d'être mis en oeuvre au sein d'une unité de traitement informatique et comprenant des instructions pour la mise en oeuvre de la méthode résumée ci-dessus. D'autres objets et avantages de l'invention apparaîtront à la lumière de la description de modes de réalisation, faite ci-après en référence à la figure 30 1 annexée qui illustre schématiquement un mode de réalisation pour la gestion du cycle de vie d'une application Cloud. 3028972 4 En se référant à la figure 1, il est affiché une plateforme collaborative 10 pour la gestion du cycle de vie d'une application déployée dans une ou plusieurs infrastructure(s) en nuage. La gestion du cycle de vie d'une application en nuage a pour but la création et le maintien de cette 5 application Cloud tout au long de son cycle de vie. Un aspect de la gestion du cycle de vie d'une application Cloud se rapporte à sa portabilité d'une infrastructure en nuage à une autre. Pour cela, la plateforme collaborative 10 prend en compte les besoins suivants: la réutilisabilité, l'extensibilité, la flexibilité, la consistance, et l'évolution de 10 l'application cloud. Dans un mode de réalisation, la gestion du cycle de vie d'une application Cloud comprend: - la gestion de la version de l'application Cloud; - la gestion de l'environnement et l'adaptation des ressources cloud 15 - l'intégration de politiques de mise à jour ; - la construction et l'exécution de certaines fonctionnalités ; ou - l'intégration d'une fonctionnalité dans un workflow existant. La plateforme collaborative 10 pour la gestion du cycle de vie d'une application Cloud comprend une abstraction de la relation entre 20 l'application Cloud et l'infrastructure technique supportant cette application Cloud. A cet égard, les besoins de l'application cloud et son architecture en termes d'infrastructure sont modélisés d'une manière indépendante du catalogue des infrastructures des fournisseurs Cloud. Cette modélisation 25 comprend une abstraction des relations liant le déploiement et le cycle de vie de l'application Cloud aux langages et API propres aux infrastructures en nuage. Cette modélisation permet, ainsi, d'isoler/distinguer l'évolution d'une application Cloud des langages propriétaires, des infrastructures d'exécution, et des technologies de déploiement. 30 Dans la plateforme collaborative 10 pour la gestion du cycle de vie d'une application Cloud, les composants et les besoins de l'application cloud sont de type noeud TOSCA et modélisés en format TOSCA. Ces composants 3028972 5 sont, en outre, définis selon le langage TOSCA. Avantageusement, le standard TOSCA s'est imposée comme un paradigme de choix offrant un modèle commun pour surmonter le problème d'hétérogénéité au niveau des infrastructures en nuage ; et 5 permettant un déploiement déplaçable à toute infrastructure Cloud accommodante, une migration fluide des applications existantes, et des applications multi-cloud. Dans un mode de réalisation, les besoins de l'application Cloud en termes d'infrastructure en nuage sont définis en tant que code (comme code, ou en 10 anglais « Application as code »). Ceci a pour effet de faciliter la gestion du cycle de vie de l'application à travers une pluralité d'infrastructures en nuage. La définition des besoins d'une application cloud dans un format TOSCA est faite d'une manière collaborative entre les différents intervenants dans 15 la définition des besoins en termes d'infrastructure d'une application Cloud. A titre d'exemple, ces besoins peuvent être exprimés par l'équipe opérationnelle 1, l'équipe middleware 2, le directeur 3 des systèmes d'information, l'architecte 4 de l'application cloud, le propriétaire 5 de l'application cloud, les développeurs 6 de l'application cloud. La définition 20 des besoins en termes d'infrastructure en nuage de l'application Cloud faite par les intervenants 1-6 est reçue par la plateforme collaborative 10. Un membre de l'équipe opérationnelle 1 peut, par exemple, configurer l'application cloud et les espaces de travail. Un développeur 5 de l'application Cloud peut, par exemple, établir des artefacts applicatifs 25 customisés (tels que des scripts) ou définir des topologies d'application. De même, un membre de l'équipe middleware 1 peut établir et charger un middleware dans la plateforme collaborative 10. Dans un mode de réalisation, la plateforme collaborative 10 permet d'intégrer, via une interface appropriée (c'est-à-dire, un API), des 30 fonctionnalités en projet pour approvisionner en fonctionnalités une application Cloud, et/ou pour spécifier un certain environnement pour effectuer un test de bout-en-bout d'une certaine fonctionnalité, tout en 3028972 6 tenant compte des contraintes de l'application cloud telle que sa disponibilité continue. A titre d'exemples, la plateforme 10 permet les fonctionnalités suivantes : la rationalisation du système informatique, la planification de la capacité de 5 l'application, la gestion des supports middleware et leurs dates d'expiration. Les fonctionnalités chargées dans la plateforme collaborative 10 peuvent être destinés pour un développement 11 , pour des essais d'acceptation 12 (ou UAT pour User Acceptance Test), pour une pré-production 13 ou pour 10 une production 14 par l'application cloud. La plateforme collaborative 10 rassemble les rôles de gestion des utilisateurs afin de renforcer la collaboration pour une meilleure gestion du cycle de vie de l'application cloud. La plateforme 10 favorise, avantageusement, la collaboration entre les développeurs et les équipes de 15 déploiement de sorte à tirer profit des compétences des différents experts intervenants dans la gestion de cette application Cloud. Un intervenant dans la gestion de l'application Cloud peut, en particulier, contribuer et apporter ses contributions pour les réutiliser d'une manière simple et déclarative. Il s'ensuit que la plateforme collaborative 10 permet 20 - une étroite collaboration entre les équipes de déploiement et de développement ; - une gestion du cycle de vie d'une application cloud; et - une administration de l'infrastructure cloud. Dans un mode de réalisation, la plateforme 10 comprend, en outre, des 25 moyens existants pour l'orchestration et l'exécution des applications Cloud (tel que l'outil Cloudify, http://getcloudify.org). La plateforme collaborative 10 permet de gérer les topologies des applications cloud, ainsi que leur déploiement et leur administration pour une meilleure visibilité, une meilleure gestion du cycle de vie, et une 30 meilleure disponibilité de l'application cloud. 3028972 7 La plateforme 10 supporte un environnement collaboratif pour la conception, la gestion du cycle de vie, et l'administration de l'application Cloud. Avantageusement, la plateforme 10 collaborative pour la gestion du cycle 5 de vie d'une application Cloud confère à cette application - un aspect multi-environnements, multi-versions, et multiinfrastructures de sorte à favoriser sa portabilité, notamment, via le standard TOSCA ; - une conception flexible avec une composition exploitant des modèles 10 TOSCA prédéfinis; - une customisation d'environnements applicatifs. La plateforme 10 collaborative permet, avantageusement, - d'établir un lien entre un environnement de développement agile et celui du déploiement de sorte à permettre une agilité de bout-en-bout 15 (ou une agilité intégrée); - d'avoir une visibilité sur le cycle de vie de l'application à travers les différents environnements Cloud. REVENDICATIONS1. Une plateforme collaborative (10) pour la gestion du cycle de vie d'une application en nuage, cette plateforme collaborative comprenant des moyens configurés pour définir en tant que code une pluralité de besoins, en termes d'infrastructure en nuage, de l'application en nuage. 2. La plateforme collaborative de la revendication précédente, étant en outre configurée pour intégrer une fonctionnalité en projet pour approvisionner en fonctionnalités l'application en nuage. 3. La plateforme de la revendication 1 ou 2, dans laquelle la définition de ladite pluralité de besoins est faite dans un format TOSCA. 4. Méthode pour la gestion du cycle de vie d'une application en nuage, cette méthode comprenant une première étape de définition en tant que code d'une pluralité de besoins, en termes d'infrastructure en nuage, de l'application en nuage, et une deuxième étape de réception par une plateforme collaborative (10) de la définition en tant que code de ladite pluralité de besoins. 5. Méthode de la revendication précédente, dans laquelle la définition de ladite pluralité de besoins est faite dans un format TOSCA. 6. Produit programme d'ordinateur implémenté sur un support mémoire, 25 susceptible d'être mis en oeuvre au sein d'une unité de traitement informatique et comprenant des instructions pour la mise en oeuvre d'une méthode selon la revendication 4 ou 5.