Utiliser l'IA/ML pour optimiser la livraison continue avec Harness et PagerDuty
À première vue, l’application de l’apprentissage automatique à Livraison continue Cela peut sembler un peu comme casser une cacahuète à coups de masse. L'automatisation du déploiement peut-elle être si difficile ?
Il s’avère que c’est bien plus complexe que nous le pensons.
Le passage d’un nouveau déploiement en production a généralement deux conséquences :
- Le service reste opérationnel et nous pensons que tout va bien.
- Le service ne reste pas en place et l'enfer se déchaîne.
En réalité, ces deux points représentent la façon dont 95 % des organisations mesurent la réussite d'un déploiement (en hausse = bon, en baisse = mauvais). Les clients satisfaits de PagerDuty connaissent mieux le résultat n° 2 (le déluge d'alertes/incidents qui a frappé votre téléphone portable). Cependant, le scénario n° 1 est également trompeur, car un service qui reste opérationnel n'implique pas automatiquement un bon fonctionnement, des performances ou une qualité optimale.
Inconvénients des contrôles de santé de déploiement manuel
Une chose que nous avons apprise de nos 25 premiers clients chez Harnais est que la plupart des organisations ont généralement 3 à 5 ingénieurs qui passent chacun au moins une heure à vérifier manuellement les déploiements de production. Par exemple, l'un de nos clients, Build.com , avait l'habitude d'avoir 5 à 6 chefs d'équipe qui passaient chacun une heure à analyser manuellement les données de Nouvelle relique et Sumo Logic —ce qui signifie généralement avoir plusieurs fenêtres de console/navigateur ouvertes et basculer entre les scripts bash, la surveillance des performances des applications et les outils d'analyse des journaux.
Étant donné que le cerveau humain ne peut se concentrer que sur 8 à 10 éléments de sa mémoire à court terme et compte tenu de la quantité de données entrantes provenant de divers systèmes, il est assez facile pour les humains en 2018 de passer à côté de certaines choses. L'analyse manuelle et les contrôles de santé représentent des défis lorsque l'on dispose de plusieurs centaines de milliers de mesures de séries chronologiques et de quelques millions d'entrées de journaux à examiner après le déploiement.
Laissez l'IA/l'apprentissage automatique vous assister dans vos bilans de santé
Chez Harness, nous ne nous contentons pas d'automatiser le déploiement des artefacts logiciels en production ; nous automatisons également les contrôles de santé grâce à l'IA et au Machine Learning. C'est ce que nous appelons Vérification continue .
Nous utilisons principalement des algorithmes d'apprentissage automatique non supervisés tels que les modèles de Markov cachés, la représentation agrégée symbolique, le clustering KMeans et certains réseaux neuronaux pour automatiser la détection des anomalies et des régressions à partir des données APM et des journaux.
Quelques secondes après le déploiement d'un nouvel artefact logiciel, Harness peut se connecter à n'importe quel APM ou outil de journalisation et générer automatiquement un modèle de comportement de l'application du point de vue des performances (temps de réponse/débit) et de la qualité (erreur/exception/événements).
Harness compare ensuite ces modèles aux déploiements précédents et signale instantanément toute nouvelle anomalie ou régression. Ce qui prend des heures à traiter et à analyser ne prend que quelques secondes grâce aux algorithmes de machine learning.
Par exemple, les captures d'écran ci-dessous proviennent de la vérification Harness des données AppDynamics APM :

Dans l'image ci-dessus, vous pouvez voir que Harness a signalé deux baisses de performances des transactions métier après le déploiement. L'image ci-dessous montre également que le temps de réponse d'une transaction (Demande de connexion) est passé de 31 ms à 165 ms. L'ensemble de cette analyse est automatisé grâce à l'IA/ML.

Voici un autre exemple de détection d'anomalies d'erreur/exception par Harness dans les journaux d'application de Splunk :

Les points rouges indiquent les nouvelles erreurs introduites dans les journaux d'application suite au déploiement. Les points gris et bleus représentent les événements de référence ou les erreurs/exceptions normalement observés à chaque déploiement.
Harness utilise le clustering K-Means avec des calculs de distance Jacard et cosinus pour générer ces visuels. Cliquer sur un point affiche également la trace de la pile et la cause première de l'événement.
Automatisez la restauration avec l'intelligence artificielle/machine learning
Harness peut également automatiser le retour en arrière des déploiements grâce aux informations de sa vérification continue. Considérez Harness comme un filet de sécurité permettant aux équipes Dev/DevOps de déployer plus rapidement, puis de revenir en arrière dès qu'elles détectent de nouvelles anomalies ou régressions.
Grâce à la prise en charge prochaine de Harness pour PagerDuty, les entreprises pourront utiliser PagerDuty comme canal de notification et source de vérification. Par exemple, Harness peut interroger PagerDuty avant son déploiement pour détecter d'éventuels incidents en production. Déployer dans un environnement à risque est la dernière chose que les équipes Dev/DevOps souhaitent.
En résumé, Harness propose Livraison continue en tant que service qui aide les entreprises à automatiser le déploiement et la livraison de logiciels aux utilisateurs finaux en production. Nous aidons nos clients à évoluer rapidement sans rupture.
Steve Burton est CI/CD et DevOps Evangelist chez Harness.io. Avant Harness, Steve a travaillé comme geek chez AppDynamics, Moogsoft et Glassdoor. Il a débuté sa carrière comme développeur Java en 2004 chez Sapient. Lorsqu'il ne s'amuse pas avec la technologie, il regarde des courses de F1 ou fait des recherches sur les voitures sur Internet.