Dossier - Enjeux - ALM - Modernisation des applications : conteneurs et microservices

Objectifs de l’étude :
 
Identifier les principaux moteurs de la modernisation des applications.
Comprendre les principales options de modernisation des applications, disponibles sur le marché, et les facteurs qui déterminent la meilleure approche pour chaque entreprise et chaque application.
Fournir une vue d'ensemble des architectures de conteneurs et de microservices, ainsi qu’une analyse de leurs inconvénients et avantages pour le processus de modernisation des applications.
Analyser les facteurs de succès et les principaux risques pour les projets de modernisation des applications avec des conteneurs et des microservices.

La nécessité de moderniser les applications

Les applications héritées - l'ampleur du défi
 
Il y a presque deux décennies, le problème du passage à l'an 2000 a enseigné aux professionnels des systèmes d'information deux précieuses leçons :
 
< Il est difficile d'obtenir une vue exhaustive et fiable du patrimoine d'applications d'une grande entreprise ;
< Bon nombre des applications dont le DSI est responsable ne sont que partiellement connues et souvent peu documentées, même lorsqu'elles supportent des fonctions métiers essentielles.
 
Pour les applications « mainframe » vieillissantes, cette situation a peu changé, en grande partie à cause de l'ampleur du problème : le coût, le temps et la difficulté que représenterait leur réécriture. Le volume de systèmes et d'applications vraiment très anciens encore en service est devenu au fil du temps un problème quasi insoluble. Ces applications sont souvent si complexes et si peu connues que les entreprises hésitent à prendre le risque d'y apporter des changements. Et pourtant, bon nombre de ces applications héritées prennent en charge des processus opérationnels fondamentaux et soutiennent bon nombre d’infrastructures nationales, de fonctions bancaires et d'assurance, de réseaux de transport et d'administration publique.
 
Pour les applications moins anciennes, la situation est différente. Bien qu'elles soient beaucoup plus faciles à maintenir (grâce à des structures plus simples et à des langages plus répandus), elles manquent encore de flexibilité par rapport aux applications les plus modernes. Leur mise à jour est généralement moins onéreuse et, pour cette raison, les entreprises sont plus disposées à moderniser la partie la plus récente de ces applications héritées. 
 
Facteurs poussant à la modernisation des applications
 
< Risque plus élevé : Lorsque les anciennes applications sont mal connues, il devient difficile de les maintenir ou de les modifier. Cela entraîne inévitablement des risques accrus en matière de sécurité commerciale et de cybersécurité, que l’entreprise, en tant que responsable, tient à atténuer.
< Choix limité et coûts d'infrastructure plus élevés : Les applications plus anciennes sont généralement étroitement liées à l'infrastructure sur laquelle elles fonctionnent. Ces infrastructures plus anciennes deviennent au fil du temps de moins en moins fiables, plus coûteuses et inefficaces.
< Compétences limitées : Les entreprises n'ont pas toujours les compétences nécessaires pour maintenir leurs propres applications plus anciennes. Cela pose un vrai problème dans le cas du code écrit pour les anciens « mainframes », mais cela vaut aussi pour un large éventail d'anciens codes.
< Expérience utilisateur insatisfaisante : Le marché s'attend de plus en plus à ce que les applications soient intuitives, cohérentes, évolutives, disponibles et sécurisées. Ces attentes sont dérivées des applications grand public, qui sont de plus en plus souvent comblées par les applications commerciales les plus récentes. Or les applications plus anciennes sont bien en-deçà de ces critères. 
 
Facteurs d'attraction de la modernisation
 
< Flexibilité accrue : La modernisation des applications offre la possibilité de découpler l'application de l'infrastructure sous-jacente, des silos de données associés, etc. Il est ainsi beaucoup plus facile de modifier l'application et les composants associés lorsque cela est nécessaire. 
< Productivité accrue : La modernisation de l'application permet aux équipes en charge du développement, de l'exploitation et de la maintenance de travailler dans les environnements qu'elles préfèrent. Cela rend ces équipes beaucoup plus efficaces, avec une amélioration conséquente de la productivité.
< Économies d'échelle : Les entreprises intéressées par les solutions basées sur le Cloud peuvent inclure dans le cahier des charges de la modernisation de leurs applications que ces dernières soient prêtes pour le cloud. En fonction de la fréquence d'utilisation, cela peut ensuite entraîner une réduction des coûts d'infrastructure. 
<
De même, abandonner des environnements logiciels anciens non standards permet habituellement de généraliser l'application modernisée, ce qui réduit encore une fois les coûts de maintenance.
< Amélioration de la sécurité et de la conformité : Dans le cadre du processus de modernisation des applications, elles peuvent également être mises en adéquation avec les exigences actuelles de cybersécurité et de conformité. 
 
Options de modernisation des applications
 
L'âge de l’application et les bénéfices identifiés pour justifier le changement ont un impact sur la solution à privilégier pour engager le projet de modernisation d’applications.
 
Nouvelle plateforme
 
Cette approche (également connue sous le nom de « lift and shift », littéralement « soulever et déplacer ») vise à apporter le minimum de changements possibles pour que l'application existante soit opérationnelle sur une nouvelle plateforme (par exemple sur un environnement virtuel au lieu d’une infrastructure dédiée). Il est important de comprendre que cette approche ne permet pas vraiment de moderniser les applications, mais elle fournit une solution lorsque les plateformes existantes sont en fin de vie.
 
Remaniement du code (« refactoring »)
 
Pour les applications qui peuvent être sauvées, le « refactoring » permet de renouveler le code existant afin de mieux l'adapter aux méthodologies et environnements de développement actuels. Tout en préservant les fonctionnalités essentielles de l'ancienne application, le remaniement du code permet d'éliminer la redondance et d'optimiser le nouvel environnement.
 
Réécriture
 
C'est une restructuration radicale de l'application, pour répondre à de multiples nouvelles exigences (sécurité, flexibilité, fiabilité, etc.). La réécriture est généralement la solution à la fois la plus coûteuse et la plus risquée, repartant de zéro depuis le recueil des exigences mais ce n’est pas forcément le cas si les fonctionnalités fournies sont relativement simples. Cette approche ne consiste pas à préserver le code, il s'agit de réécrire l'ensemble de l'application pour mieux répondre aux besoins actuels et aux plans futurs. Elle a le mérite de pouvoir repartir sur des « bases propres » et d’envisager un champ de liberté optimale en termes d’architecture et de technologies.
 
Remplacement 
 
Il s'agit d'une option réaliste lorsqu'une entreprise utilise déjà une application ancienne pour laquelle il existe des solutions de rechange génériques. Dans ce cas, il est très souvent judicieux d'adopter une solution SaaS générique mais cela suppose d’accepter un degré de personnalisation plus restreint en contrepartie d'une tierce maintenance. Les solutions de remplacement les plus simples sont des solutions SaaS mutualisées, largement déployées dans les entreprises et ayant fait leurs preuves (par ex. : ServiceNow, Workday, SalesForce, etc.).
 
Statu quo
 
Toutes les options de modernisation décrites impliquent du temps, des coûts et des risques à un certain niveau. Ces derniers doivent toujours être mesurés par rapport à l'option "ne rien faire" qui, dans certains cas, sera le bon choix.
 
>> L'integralité de ce dossier est réservée à nos abonnés

Commentaires

Publier un nouveau commentaire