Les applications sont au cœur des métiers de nombreuses organisations, et leur indisponibilité peut entraîner des pertes financières importantes, voire nuire à la réputation de l’entreprise. Le Maintien en Condition Opérationnelle (MCO) de ces applications est donc un enjeu stratégique. Surtout s’il s’agit d’applications critiques, caractérisées par des exigences de disponibilité, de performance et de sécurité particulièrement élevées ! Le MCO de ces applications nécessite donc la mise en œuvre de solutions techniques robustes et d’une organisation rigoureuse. Des architectures hautement disponibles, des outils de monitoring avancés et des stratégies de reprise après sinistre sont autant d’éléments clés à prendre en compte.
Jean François Guéritte, Ingénieur Systèmes & DevOps, architecte solution, nous donne les bases et les bonnes pratiques en matière de MCO d’applications, même critiques.
Quelles sont les activités couvertes par le MCO d’applications ?
Le MCO signifie Maintien en Condition Opérationnelle, il s’agit donc d’une phase de Run et non de Build. Le MCO d’une application désigne l’ensemble des actions et des stratégies mises en œuvre pour garantir sa disponibilité, sa performance et sa sécurité tout au long de son cycle de vie. En d’autres termes, il s’agit d’assurer que l’application fonctionne de manière optimale et continue à répondre aux besoins des utilisateurs. Le MCO d’application se décline de plusieurs façons, chacune ayant un objectif spécifique. Le MCO préventif tout d’abord, consiste à anticiper les pannes et les dysfonctionnements en mettant en place des actions régulières de maintenance. Par exemple : la surveillance proactive des performances de l’application, les mises à jour régulière, la réalisation de tests de non-régression ou encore la sauvegarde des données. Le MCO correctif intervient quant à lui après qu’un incident ait été constaté. L’objectif est de rétablir le fonctionnement normal de l’application le plus rapidement possible. Cela implique l’identification de la cause de la panne, la mise en place de mesures correctives et la restauration des données (si nécessaire). Le MCO peut également être évolutif quand il vise à adapter l’application aux évolutions des besoins métiers, des technologies et de l’environnement. Quoi qu’il en soit, il s’agit d’être à la fois pro-actif et en capacité de gérer des missions sur incidents, qu’ils soient techniques ou fonctionnels.
Comment cela se passe sur le terrain, concrètement ?
Tout dépend de la taille de l’architecture, et notamment s’il y a plusieurs architectures en parallèle, et du niveau de « Legacy » des applications. Pour autant, la maintenance préventive se base essentiellement sur du monitoring et du data monitoring afin de déceler des problèmes connus (qui sont déjà survenus), ou d’identifier de nouveaux. Evidemment, il n’est pas question de faire de la maintenance préventive sur de l’intégration (par exemple), elle s’opère uniquement en production : le contexte est donc également à prendre en compte.
La maintenance corrective des applications quant à elle s’appuie beaucoup sur la documentation, qui est souvent le « parent pauvre » de nombreuses équipes IT. Car si elle est bien présente pour l’utilisateur, elle l’est beaucoup moins pour les IT Ops, ceux qui doivent justement assurer la maintenance. Il est donc nécessaire de construire ce fonds documentaire, avec du Confluence par exemple (un logiciel de wiki, utilisé comme logiciel de travail collaboratif) avec deux types de documentation : un howto (comment faire) et une base de connaissances. La première va servir à répondre à cette question : « j’ai un problème, comment je rétablis l’application ? » (Howto restart x-service par exemple), et la seconde à répondre à cette question « à quoi correspond l’erreur XXXXX ? ». Le but à atteindre : si un nouvel IT Ops rejoint l’équipe et qu’un problème survient, il doit être en mesure de répondre à l’incident sans connaître préalablement l’historique applicatif et d’infrastructure du (des) SI.
Existe-t-il des spécificités du MCO d’applications critiques ?
Dans un contexte critique, comme l’aviation par exemple, le moindre problème lié à l’indisponibilité ou au mauvais fonctionnement d’une application peut avoir des répercutions énormes. De fait, le niveau des standards du MCO est fortement relevé : il faut être le plus précis possible, le plus à jour possible, et le plus compréhensible également. Car la communication est essentielle dans ce contexte. Le tout dans un climat où la pression est forte, notamment en matière de timing. Il est donc nécessaire de bien prioriser et d’être très autonome (notamment sur les astreintes). De fait, il faut posséder une bonne compréhension de ce qu’est une infrastructure, et maitriser « l’art du failover » (Le failover consiste à réaffecter automatiquement les tâches à un système de secours, de telle sorte que la procédure soit aussi transparente que possible pour l’utilisateur final).
Par exemple, imaginons une application A qui fonctionne de façon optimale sur son infrastructure, en lecture et en écriture. En cas de défaillance de celle-ci, le failover peut gérer une bascule sur une autre infrastructure B, portant une application cousine de l’application A, mais qui ne fonctionne qu’en lecture. Elle ne peut donc pas être mise à jour (pas d’écriture) et ne doit servir que ponctuellement. En revanche, qu’il s’agisse de la version A ou B, nous parlons d’applications « on line », disponible à travers un VPN. Et dans un contexte très critique, une application C, cousine des applications A et B, peut également exister, et peut prendre la forme d’un exécutable à installer sur un poste informatique, en cas de défaillance même du failover.
Comment Inside accompagne ses clients sur ces enjeux de MCO ?
Dans le cadre du MCO d’applications critiques, les moyens à mettre en œuvre sont essentiellement humains. Et Inside dispose d’un panel d’expertise très large, capable de répondre à de nombreux cas de figure. Mais dans ce contexte spécifique, notre force est de pouvoir fournir des IT Ops « couteau suisse », très polyvalent pour répondre à minima à toutes les défaillances qu’ils peuvent rencontrer. Car s’il fallait créer une « core team » de spécialistes pour couvrir tous les possibles, le coût serait trop important pour le client. Et en plus de veiller à la fluidité des process business en assurant un MCO de haut niveau, cette polyvalence de nos chefs de projet techniques assure également une veille technique importante. Le but est d’être en mesure d’identifier des axes d’amélioration possibles avant même qu’un problème ne survienne. Comme nous l’avons indiqué au début, la pro activité est essentielle dans ce domaine.
Vous souhaitez échanger avec nos experts autour de la maintenance en condition opérationnelle en milieu critique, c’est par ici !