Aussi absurde que cela puisse paraître, certains informaticiens semblent regretter l’époque des mainframes, comme celle d’un bon vieux temps où le système informatique était entièrement sous leur contrôle. Aujourd’hui, la situation s’est compliquée avec l’arrivée de l’informatique distribué, du cloud et de la mobilité, qui rendent le développement plus complexe que jamais. Au lieu d’une mise à jour du serveur, il faut dorénavant mettre à jour chaque terminal, en créant des applications qui peuvent fonctionner sur chacun et en diffusant le message à l’ensemble de la population. Que doit faire l’informatique ? Utilisé intelligemment, le DevOps peut être la solution.
L’évolution du DevOps
Après des méthodes agiles (terme apparu au début des années 2000) et de DevOps, il est clair que ces concepts entremêlés sont très vastes, recouvrant un grand nombre d’attitudes et d’approches, de plates-formes, d’outils et de solutions. La méthode agile de développement a accéléré le développement mais au détriment du déploiement, rendu encore plus difficile car bon nombre d’entreprises ne parvenaient tout simplement pas à suivre le rythme imposé. En mettant l’accent sur la collaboration entre les informaticiens et les développeurs avec ses plates-formes, outils et pratiques, le DevOps vise à un déploiement plus rapide des applications par des tests continus, un développement constant des fonctionnalités et une maintenance au quotidien. Si l’intention est louable, le process doit cependant être spécifiquement adapté à chaque tâche pour fonctionner.
Aujourd’hui, les environnements de développement se répartissent en trois catégories : le « low-code », les applications orientées déploiement et, dans une catégorie à part, les mobiles. Le développement d’applications dans ces trois environnements fait intervenir un large éventail de compétences et d’outils. Par conséquent, l’approche et le degré d’utilisation du DevOps doivent varier également, allant de pratiquement zéro dans les environnements low-code à un usage étendu pour les mobiles.
Low-Code = Zero Ops
Dans les environnements cloud aPaaS low-code, le DevOps peut être relégué au second plan. Puisque c’est le fournisseur qui gère, maintient et contrôle l’environnement de déploiement, le « citizen developer » ou l’analyste métier est habilité à travailler sur le développement de l’interface utilisateur et d’autres fonctionnalités faisant appel à très peu de compétences informatiques. Dans ces environnements, les super-utilisateurs peuvent facilement diffuser des applications low-code. Une forte présence de DevOps n’est ici pas nécessaire car il n’existe généralement pas d’environnements séparés vers lesquels propager les applications. L’analyste métier se borne à appliquer les modifications et à les mettre en production.
En l’occurrence, l’informatique a plutôt pour rôle de « veiller au grain », n’intervenant qu’en cas de nécessité. Nous qualifions ces environnements de Zero Ops, comportant le moins de DevOps possible. Cela laisse les utilisateurs fonctionnels, les informaticiens et les développeurs libres de se concentrer sur leurs tâches stratégiques et leur cœur de compétences, en canalisant de manière appropriée des ressources et des gains de productivité à la clé sur toute la ligne.
Orientation déploiement = Controlled Ops
Les applications globales fortement transactionnelles, évolutives en termes de charge et critiques pour l’entreprise forment la catégorie « orienté déploiement ». L’objectif du DevOps dans ces environnements à forte intensité de code est d’affranchir les développeurs des questions de déploiement, pour leur permettre de se consacrer à leur compétence première : l’écriture du code. Bien exécuté, le DevOps peut efficacement faire passer les applications du développement au déploiement, en favorisant une étroite collaboration entre développeurs et informaticiens. Dans cet environnement, un processus DevOps bien maîtrisé peut faciliter la tâche de l’équipe pour l’exécution du déploiement des applications et sa gestion future, en adaptant automatiquement les applications au moyen de règles reposant sur l’usage.
C’est pourquoi nous donnons au DevOps dans ces environnements l’appellation Controlled Ops, désignant une collaboration étroitement contrôlée par les développeurs et les informaticiens.
Mobiles = Extended Ops
Du développement au déploiement, à la maintenance, la supervision et l’analyse, les mobiles ont introduit une nouvelle complexité dans la diffusion des applications. Les développeurs doivent gérer les plates-formes iOS, Windows et Android, sans parler de leurs multiples versions respectives. Ensuite vient le problème de l’environnement de développement lui-même : web, natif ou hybride. Et que dire des terminaux : des modèles innombrables de téléphones et de tablettes. N’oublions pas non plus les diverses options de déploiement : app stores publics ou privés, services de partage de fichiers… Enfin, l’utilisateur final dispose de modes d’interaction sans précédent avec son appareil, ce qui oblige à inscrire la réactivité et le confort au cœur de l’expérience utilisateur.
Cet environnement s’entend Extended Ops, c’est-à-dire un environnement hautement collaboratif où les acteurs en matière de développement, de déploiement, de maintenance, de support et d’utilisation jouent tous un rôle déterminant pour le succès d’une application. Dans le domaine de la mobilité, chacun doit avoir sa place à la table du DevOps car les applications mobiles sont littéralement itératives, en constante mutation, principalement sous l’effet des retours des utilisateurs. La capacité à opérer de manière transparente et ultrarapide les mises à jour et les modifications demandées par les utilisateurs peut déterminer le succès ou l’échec d’une application. La collaboration, les plates-formes et les outils qu’offre le DevOps dans cet environnement n’ont jamais été aussi essentiels dans la mesure où les utilisateurs fonctionnels doivent désormais être associés à la conception et au développement de l’application, ainsi qu’à l’analyse de son utilisation, laquelle dictera les évolutions futures. Bien mené, Extended Ops accueille volontiers les utilisateurs fonctionnels mais ne les implique pas dans le processus DevOps proprement dit : cela revenant aux informaticiens et aux développeurs.
En résumé
Le DevOps peut avoir un impact sur l’ensemble du cycle de diffusion des applications. Qu’il s’agisse d’améliorer la fréquence de déploiement, ce qui peut accélérer la mise en service, ou bien de raccourcir les délais de lancement des nouvelles versions tout en réduisant les taux de pannes, le DevOps a pour objectif d’assurer un maximum de prévisibilité, d’efficacité, de sécurité et de facilité pour l’application mobile la plus simple comme pour le système transactionnel le plus complexe. La clé du succès consiste à appliquer le niveau approprié de collaboration et à employer les bons outils pour faire en sorte qu’il favorise la qualité et la productivité, au lieu de les brider.
_________
Mark Troester est Vice-président Marketing Solutions, Progress