Les entreprises les plus innovantes utilisent des logiciels pour différencier leurs offres produits et services et, de plus en plus, le développement d’applications se déplace vers le “cloud”, en tant que nouvel écosystème générateur d’innovation. Cette modalité est, par définition, distribuée et, pour cette raison, certains abordent le sujet en open source, qui ouvre la voie à l’utilisation d’une poignée d’applications, sans avoir la connaissance de dizaines d’outils.

Grâce à la capacité, à l’infrastructure mondiale et à la flexibilité du cloud, des applications de haute qualité sont développées, plus rapidement. Cela nécessite des micro-services et des technologies de conteneur, des DevOps, Agile et PaaS, ainsi que de nouvelles pratiques logicielles modernes qui incluent des tests, un approvisionnement et un déploiement automatisés.

Les applications distribuées, entendues comme une architecture permettant de créer à partir de services cloud et/ou de ressources sur site, ajoutent une couche de complexité pour répondre aux différents ressources, systèmes, versions et environnements disponibles. Et, pour les utiliser comme une seule application, il y a quelques aspects qui méritent d’être rappelés :

1.- Cela semble évident, mais l’application doit être créée comme une seule entité, même si elle est composée de plusieurs technologies cloud. Bien qu’à ce stade, il est conseillé de mettre à disposition les applications, sans que cela implique la maîtrise de dizaines d’outils, et de gérer leur cycle de vie complet (installation, mise à jour et suppression).

2.- Elles doivent pouvoir être distribuées d’une manière aussi simple que le défi des applications que nous utilisons chaque jour dans notre travail. Pour y parvenir, il existe déjà une spécification de format de paquet (CNAB pour Cloud Native Application Bundle ) open source qui permet de gérer les applications distribuées. En utilisant un seul fichier installable, il est possible de fournir de manière fiable les ressources des applications, dans différents environnements, et de gérer facilement leur cycle de vie, sans avoir à utiliser des milliers d’outils.

Au final, l’objectif est de parvenir à une unité logique unique et de définir les aspects opérationnels de la gestion du cycle de vie des applications (installation, mise à niveau, désinstallation, signature numérique et vérification d’un paquet, même lorsque la technologie sous-jacente ne le prend pas en charge nativement). De cette manière, il est possible d’attester par une signature le cycle de vie de ce paquet, et de vérifier numériquement qu’il a atteint son état complet et peut être exporté et reproduire de manière fiable toutes les instances dans un autre environnement, ou les stocker pour une installation à distance.

En fait, les spécialistes de ce domaine pensent que le jour viendra où il sera si facile d’installer une application distribuée complète qu’elle pourra même être réalisée à partir d’une clé USB.  C’est un rêve qui pourrait devenir réalité.