BT

Diffuser les Connaissances et l'Innovation dans le Développement Logiciel d'Entreprise

Contribuez

Sujets

Sélectionner votre région

Accueil InfoQ Articles L'Intelligence Artificielle Prend-Elle Le Dessus Sur Le DevOps ?

L'Intelligence Artificielle Prend-Elle Le Dessus Sur Le DevOps ?

Points Clés

  • La plupart des entreprises travaillent avec une forme d'infrastructure hybride ou cloud, mais la gestion de celle-ci est devenue presque impossible sans une forme d'aide de l'IA.
  • Pour les équipes qui exploitent plusieurs clouds différents, les interfaces d'IA sont devenues presque une nécessité à mesure qu'elles font évoluer leur programme DevOps.
  • Il est évident que l'IA a déjà un impact énorme sur la vitesse et la qualité de livraison des logiciels.
  • La révolution de l'IA a eu pour effet secondaire de rendre les équipes DevOps plus occupées que jamais, et avec des cycles de développement beaucoup plus rapides également.
  • En fin de compte, les équipes de développement ont toujours besoin d'un leadership stratégique, et bien que l'IA soit désormais très performante dans de nombreux domaines, elle n'a toujours pas la capacité de répondre à la demande des utilisateurs de manière vraiment créative.

Pour de nombreux développeurs, prédire l'avenir de DevOps est devenu une sorte de passe-temps favori. Notre secteur a connu une évolution rapide au cours de la dernière décennie et, au cours de cette même période, le rôle du programmeur a également changé de manière fondamentale.

En fait, et en particulier parmi les développeurs d'un âge (disons) particulier, on pourrait croire que le rôle du développeur "traditionnel" n'existe plus. Plutôt que de suivre le cycle de vie traditionnel du développement logiciel - dans lequel le logiciel est planifié, construit, puis publié - beaucoup d'entre nous travaillent aujourd'hui au sein d'équipes pluridisciplinaires dans lesquelles le développement et les opérations se côtoient et sont de plus en plus indissociables.

Ce modèle est devenu connu sous le nom de DevOps, mais seulement récemment. Et il n'a fallu que quelques années (ou mois ?) pour que DevOps lui-même commence à changer et à s'adapter. Aujourd'hui, nous sommes à la dérive dans une mer d'acronymes (y compris le plus récent DevSecOps) qui désignent une façon légèrement différente de travailler, et chacun une vision légèrement différente de l'avenir.

Parmi les plus récents, on trouve AIOps. Dans cette vision, les outils d'IA remplacent peu à peu le rôle du développeur - tout comme DevOps l'a fait auparavant - et finiront par supplanter entièrement DevOps.

Envisager cette  prédiction comme étant vraie est délicat mais, dans cet article, nous allons tout de même essayer. Nous examinerons ce que l'IA promet de faire pour le processus de développement, évaluerons si elle peut vraiment un jour prendre le relais des développeurs humains, puis nous verrons à quoi DevOps pourrait ressembler dans une décennie.

La Promesse de l'Automatisation

Tout d'abord, et afin de comprendre pourquoi les outils d'IA ont été si rapidement adoptés par les équipes DevOps, il est utile de comprendre ce qu'ils promettent de réaliser. Cette promesse peut essentiellement être divisée en deux parties :

  • D'une part, l'utilisation d'outils d'IA est "simplement" un moyen pour les développeurs surmenés de rester au top des systèmes de plus en plus complexes avec lesquels ils travaillent.
  • D'autre part, les outils d'IA offrent une gamme de techniques automatisées de développement et de déploiement de code qui ont transformé plus fondamentalement la façon dont les logiciels sont créés.

En ce qui concerne le premier – les outils d'IA qui nous facilitent la vie – il suffit de regarder la prolifération des modèles d'infrastructure cloud au cours de la dernière décennie pour voir pourquoi l'IA a été nécessaire. De nos jours, la plupart des entreprises travaillent avec une forme d'infrastructure hybride/cloud, et la gestion de celle-ci est devenue presque impossible sans une certaine forme d'aide de l'IA. En effet, les infrastructures hybrides et multi-clouds, les architectures microservices comme les conteneurs et les applications hyperscale ont créé un environnement informatique d'entreprise plus compliqué que jamais à suivre.

Il y a ensuite le deuxième aspect de l'adoption des outils d'IA - le fait que certains outils d'IA comme l'assistant de codage IA de GitHub ou DeepDev de Microsoft ne font pas que nous faciliter la vie, ils ouvrent de nouvelles possibilités en matière de développement et de distribution de code. La vitesse à laquelle les systèmes d'IA peuvent évaluer les besoins individuels des utilisateurs, par exemple, permet de les utiliser pour modifier et spécifier le comportement de navigation Web par défaut pour chaque utilisateur individuellement, réduisant ainsi leur vulnérabilité à des types particuliers de logiciels malveillants lorsqu'ils utilisent nos logiciels.

DevOps, AIOps, and NoOps

En raison de leur utilité, les outils d'IA ont été largement et rapidement adoptés par toutes les équipes DevOps, sauf les plus récalcitrantes. En effet, pour les équipes qui exploitent désormais plusieurs clouds différents (et ce sont toutes les équipes, à peu près), les interfaces d'IA sont devenues presque une nécessité à mesure qu'elles font évoluer leur programme DevOps.

Le résultat le plus évident et le plus tangible de cette évolution concerne les données et les systèmes que les développeurs passent leur temps à examiner. Auparavant, une grande partie du rôle de l'équipe des opérations, par exemple, consistait à construire et à maintenir un tableau de bord que tous les membres du personnel pouvaient consulter et qui contenait toutes les données pertinentes sur un logiciel.

Aujourd'hui, cette tâche centrale est devenue largement obsolète. Les logiciels étant de plus en plus complexes, l'idée d'un tableau de bord unique contenant toutes les informations pertinentes sur un logiciel particulier a commencé à paraître absurde. Au lieu de cela, la plupart des équipes DevOps utilisent désormais des outils d'IA qui surveillent "automatiquement" le logiciel sur lequel elles travaillent et ne présentent des données que lorsqu'il est clair que quelque chose a mal tourné.

Il s'agit d'un changement radical dans la façon dont nous travaillons en tant que développeurs et personnel opérationnel, et il n'est donc pas surprenant qu'on lui ait donné son propre acronyme : AIOps. Certains sont même allés plus loin en affirmant que cette dépendance aux outils d'IA signifie que nous entrons dans l'ère du NoOps. Il est toutefois révélateur que les avis soient partagés quant au rôle qui a été éliminé : NoOps signifie-t-il "pas de développeurs" ou "pas d'opérations" ?

La Révolution de l'IA

Toutes ces réflexions sur le contexte philosophique du développement logiciel peuvent sembler un peu abstraites. Jusqu'à ce que l'on se penche sur les chiffres, qui montrent de manière frappante que l'IA a déjà un impact considérable sur la vitesse (voire la qualité) à laquelle les logiciels sont livrés.

L'enquête la plus récente de GitLab, menée auprès de plus de quatre mille développeurs, fournit des chiffres précis à ce sujet. Cette étude révèle que certaines entreprises publient de nouveaux codes jusqu'à dix fois plus rapidement qu'auparavant. Fait révélateur, 75 % d'entre elles utilisent l'IA et le ML pour tester et réviser le code avant sa publication. Il s'agit d'une augmentation d'un peu plus de 40 % par rapport aux chiffres d'il y a un an seulement.

Image Source

C'est une excellente nouvelle pour les développeurs, ou du moins pour ceux qui veulent produire rapidement beaucoup de code. Malheureusement, cela n'équivaut pas toujours à produire un code de qualité. Les tendances en matière d'attaques par ransomware montrent clairement, par exemple, qu'un code mal testé devient rapidement une source de vulnérabilité notable pour de nombreuses organisations, et que l'avènement des systèmes de test pilotés par l'IA n'a guère contribué à réduire ce phénomène.

Néanmoins, la direction que prend le voyage est étonnamment évidente. D'ici quelques années, il semble que la grande majorité des équipes DevOps s'appuieront sur des outils d'IA et que les logiciels seront publiés à une vitesse plusieurs fois supérieure à celle d'avant. Et cela nous ramène à la question que nous avons posée au départ : étant donné que les outils d'IA font maintenant une si grande partie du travail DevOps, avons-nous encore besoin de personnel DevOps humain ?
Eh bien, oui et non. Voici pourquoi.

Les Défis

Au niveau le plus superficiel, il est possible de répondre à cette question en se référant à un test très simple. À mesure que les outils d'IA ont été adoptés dans le secteur du développement, les développeurs ont-ils vu leur charge de travail diminuer ? Posez cette question au développeur moyen, et vous serez accueilli par un rire. La réponse est non.

En effet, comme les équipes DevOps consacrent moins de temps à la gestion quotidienne de leurs logiciels, le temps qu'elles y consacraient auparavant est désormais occupé par des tâches sans doute plus précieuses - planification stratégique, méta-analyses, et veiller à ce que leurs objectifs de développement soient conformes à ceux de la direction. En fait, la "révolution" de l'IA, dont beaucoup imaginaient qu'elle rendrait DevOps obsolète, semble avoir rendu les équipes plus grandes que jamais, et plus occupées que jamais. Cela est dû au fait qu'elle a eu pour effet secondaire de rendre les cycles de développement beaucoup plus rapides. 

Les responsables du secteur l'ont bien compris. Dans une récente interview accordée à ZDNet, Matthew Tiani, vice-président exécutif d'iTech AG, a noté que DevOps est désormais "renforcé par, entre autres, un ensemble d'outils techniques améliorés -- gestion du code source, CI/CD, orchestration".

Il a également ajouté qu'une mise en œuvre réussie de DevOps fait appel à "une méthodologie de développement compatible telle qu'agile et scrum, et un engagement de l'organisation à favoriser et encourager la collaboration entre le personnel de développement et le personnel opérationnel."

Apprendre à vivre ensemble

En pratique, ces facteurs et tendances signifient que les équipes DevOps se concentrent de plus en plus sur les objectifs commerciaux, plutôt que sur les défis techniques. C'est certainement un changement, mais ce n'est peut-être pas négatif en ce qui concerne la qualité des logiciels que nous produisons. En fait, on peut dire que les outils d'IA ont donné aux équipes la possibilité de concentrer leurs ressources humaines là où elles sont le plus efficaces, c'est-à-dire dans des tâches créatives, globales et stratégiques.

Il n'est pas nécessaire de chercher bien loin pour en avoir la preuve. Il suffit de penser, par exemple, que Vue JS est aujourd'hui le framework de développement qui connaît la croissance la plus rapide au monde, avec plus de 240 000 sites Web construits avec ce système. Avant l'arrivée des outils d'IA, l'idée qu'un nouveau cadre de développement complexe puisse être déployé aussi rapidement dans le monde entier aurait été risible. Aujourd'hui, grâce aux outils d'IA, les équipes DevOps ont beaucoup plus de liberté pour prendre des décisions courageuses et faire confiance à des outils suffisamment avancés pour relever les défis techniques.

Cela signifie qu'il est très peu probable que les outils d'IA remplacent DevOps, ou du moins pas de sitôt. Comme nous l'avons vu avec les tendances précédentes en matière d'adoption de DevOps, les équipes de développement ont toujours besoin d'un leadership stratégique, quelle que soit l'avancée de leurs outils techniques. Et bien que les IA soient désormais très performantes dans de nombreux domaines, il leur manque encore la capacité de répondre à la demande des utilisateurs de manière vraiment créative.

La ligne de fond

En résumé, nous aurons probablement besoin de développeurs humains pendant un certain temps encore. Et même si leur rôle est radicalement différent de ce qu'il était il y a dix ans, c'est le prix (et la joie) à payer pour travailler dans un secteur aussi dynamique.

A propos de l'auteur

Sam Bocetta est un ancien analyste de la sécurité, ayant passé la majeure partie de son temps en tant qu'ingénieur réseau pour la Marine. Il est maintenant semi-retraité et sensibilise le public aux technologies de sécurité et de confidentialité. Une grande partie du travail de Sam consistait à réaliser des tests de pénétration des systèmes balistiques. Il a analysé nos réseaux à la recherche de points d'entrée, puis a créé des évaluations des vulnérabilités en matière de sécurité sur la base de mes conclusions. De plus, il a aidé à planifier, gérer et exécuter des exercices de piratage « éthiques » sophistiqués pour identifier les vulnérabilités et réduire la posture de risque des systèmes d'entreprise utilisés par la Marine (à la fois sur terre et en mer). L'essentiel de son travail s'est concentré sur l'identification et la prévention des menaces applicatives et réseau, la réduction des zones de vecteurs d'attaque, la suppression des vulnérabilités et la création de rapports généraux. Il a su identifier les points faibles et créer de nouvelles stratégies qui ont renforcé nos réseaux contre un éventail de cybermenaces. Sam a travaillé en étroite collaboration avec des architectes et des développeurs pour identifier les contrôles d'atténuation des vulnérabilités identifiées dans les applications et a effectué des évaluations de sécurité pour émuler les tactiques, techniques et procédures d'une variété de menaces.

Evaluer cet article

Pertinence
Style

Contenu Éducatif

BT