Le rôle des robots pour le DevOps

DevOps, qui en était à ses balbutiements, est devenu un domaine prioritaire pour la majorité des DSI. DevOps est devenu un objectif principal et a façonné le monde de l’ingénierie et des opérations de logiciels et d’infrastructures au cours des dernières années.

Certaines des principales tendances de DevOps incluent:

  • L’automatisation des lignes d’assemblage DevOps
  • Des alertes intelligentes et exploitables à partir d’outils de surveillance
  • Surveillance et orchestration de l’infrastructure

Collaboration améliorée

Avec l’adoption croissante de DevOps, les entreprises sont aujourd’hui confrontées à de nombreux défis concernant le cycle de vie de la livraison de services.

  • Pour les applications avec des configurations d’environnement complexes, la création, la configuration et le déploiement d’un nouvel environnement sont coûteux, prennent du temps et sont sujets à des erreurs.
  • En raison d’interventions manuelles, le déplacement de code dans des environnements implique des risques et peut entraîner des erreurs
  • Les équipes de développement cherchent à maximiser les changements en écrivant un nouveau code ou en améliorant le code existant, tandis que les équipes opérationnelles cherchent à minimiser les changements afin de suivre les indicateurs de performance clés et les contrats de niveau de service. Ces objectifs sont de nature opposée et créent une culture d’accusation entre les équipes de développement et d’opérations.
  • Les entreprises ne peuvent pas synchroniser développement, test et production en raison des écarts entre les processus et les outils. Un processus manuel ne peut pas combler ce manque cohérence; ainsi, les interruptions de production sont courantes.

Divers mécanismes de collaboration permettent aux équipes de travailler et d’apprendre ensemble pour produire de meilleurs résultats. La figure ci-dessous illustre le cycle de vie complet de DevOps. La collaboration entre les phases est essentielle au succès de la transformation DevOps de votre entreprise.

Cycle de vie DevOps

Que sont les ChatOps et les Bots?

ChatOps est un terme inventé par GitHub pour expliquer le principe de «placer des outils au milieu d’une conversation». Dans un pipeline CI / CD typique (Continuous Integration / Continuous Delivery), vous interagissez avec plusieurs outils dotés de fonctionnalités variées, tels que la gestion de code source (SCM), gestion des anomalies, intégration continue, déploiement continu et autres. Ce sont tous des outils discrets, mais rien ne les relie. C’est ici qu’intervient ChatOps .

Un bot est un pont entre l’outil de collaboration et les outils DevOps. Le bot reçoit une requête de l’utilisateur sous la forme d’une commande de discussion via un outil de collaboration, analyse la requête et exécute un ensemble de commandes sur l’outil DevOps cible.

Les composants principaux de ChatOps et des bots sont:

Application de messagerie / outil de collaboration: il s’agit du système de discussion frontal qui relie les différents intervenants et leur permet d’interagir entre eux et les systèmes qui les entourent.

Le bot: C’est le coeur de ChatOps. Un bot est le ciment entre votre outil de collaboration et vos systèmes. Il facilite la communication via un canal bidirectionnel où vous pouvez extraire des informations pertinentes des systèmes et agir sur les informations reçues. Un bot se situe entre votre outil de collaboration et les outils DevOps, par exemple Hubot, Lita, ErrBot ou AWS Lex.

Plate-forme / infrastructure cible: L’ intégration avec les plates-formes cibles / outils DevOps est un élément clé de la réussite de la mise en œuvre de bots. Ce sont les outils et plates-formes cibles sur lesquels le bot exécutera les commandes requises. L’intégration d’outils permet à votre bot de communiquer avec des outils et d’exécuter des actions telles que la construction, le déploiement, le test, la mise en service et la mise à l’échelle d’une infrastructure directement à partir de la fenêtre de discussion.

Où les robots s’intègrent dans le pipeline DevOps

Les robots peuvent se révéler être un accélérateur à différentes étapes du pipeline CI / CD. Vous trouverez ci-dessous les détails de l’intégration avec divers outils DevOps à chaque phase du cycle de vie:

  • Planification proactive – JIRA
  • Gestion des pré-requis- JIRA
  • Intégration continue – Jenkins
  • Déploiement continu – Ansible, Chef
  • Surveillance continue – Nagios, Grafana, Splunk
  • Feedback continu – JIRA

Un chatbot joue un rôle majeur en rassemblant les différentes équipes dans un seul forum de discussion persistant pour trier et résoudre le problème. En plus du dépannage et du tri des problèmes, les bots peuvent être utilisés pour diverses tâches courantes, notamment:

  • Nettoyage des serveurs.
  • Lancement des travaux de build et de déploiement.
  • Rotation des journaux du serveur.
  • Application intégrée sur les outils de surveillance.
  • Collecte de métriques à partir d’outils tels que Nagios, Dynatrace ou AppDynamics.

Architecture technique d’un Bot

Pour atteindre les objectifs mentionnés, nous devons disposer d’une plate-forme bot de support. L’intégration forte des outils avec le bot garantit la qualité de la mise en œuvre et ouvre de nouvelles possibilités d’automatisation.

Architecture d'un bot DevOps

Comme le diagramme le montre, le chatbot est hébergé sur un outil de discussion tel que Slack. Cela peut être sur la plate-forme cloud ou une application de discussion / communication existante. Le bot est intégré à une base de données de références de type paires clé-valeur, qui est alimentée avec les réponses en fonction des activités ou des capacités qui lui ont été fournies. La clé peut être le nom de l’application à partir de laquelle extraire des données ou tout ID unique permettant de réduire le nombre de lectures. Une recherche de la clé définie correspondant à la clé secondaire est effectuée dans la base de données de réponses et une réponse est renvoyée au chatbot. En fonction du nombre de sorties, les requêtes peuvent être définies et stockées dans la base de données de réponses.

Bots DevOps: Cas d’utilisation

Vous trouverez ci-dessous quelques exemples de cas d’utilisation de bots. Cela inclut le cycle de vie complet de DevOps:

Planification proactive
Créerde nouvelles user stories dans les outils de planification de sprint et affecter des sprints aux équipes. Mettre à jour les sprints et les backlogs de produits.

Génération et intégration continue
Exécuter les tâches de build et obtenir en retour les statistiques correspondantes. Effectuer des builds tous les jours / tous les soirs et rapporter leur statut aux équipes concernées.

Déploiement continu
Exécuter des tâches de déploiement et effectuer des déploiements sur plusieurs environnements. Annuler les déploiements (Roll Back) en cas d’échec, de vérification des statuts, effectuer des actions post déploiement, telles que le redémarrage de la machine virtuelle Java.

Mise en service de l’infrastructure et gestion de la configuration
Lancer des ordres pour mettre en place une infrastructure ou des environnements d’application. Activer la surveillance et le redémarrage des services et des serveurs.

Surveillance continue
Fournir des statistiques sur les applications, effectuer des recherches quotidiennes de données ou encore collecter des métriques.

Feedback continu
Surveiller la santé des applications et effectuer des analyses.

Mesures clés de mesure

Pour réussir l’optimisation et améliorer les performances du processus de livraison continue, la mesure métrique est la clé. Ces indicateurs aideront à prendre certaines mesures correctives et préventives en fonction des résultats. Vous trouverez ci-dessous certains indicateurs de métriques clés pouvant être mesurés.

Réduction de l’effort
Indique la réduction des efforts manuels / humains pour des tâches telles que le déclenchement d’un build ou d’un déploiement ou la collecte de métriques à partir d’outils de surveillance.

Taux de réduction des erreurs humaines
Réduction de l’effort requis en raison des reprises dues à des erreurs humaines.

Réduire le temps de tri des problèmes
Indique le temps nécessaire pour résoudre les problèmes pour lesquels plusieurs parties étaient impliquées et ont nécessité un effort de tri de ces problèmes

Conclusion

Les bots DevOps peuvent considérablement améliorer l’efficacité de l’équipe, ainsi que la capacité de l’équipe à réagir aux urgences. Ils permettent d’économiser du temps et de l’argent, sont amusants à construire et à utiliser et peuvent avoir un impact positif sur le moral des équipes, tout en augmentant la productivité globale des équipes. Ceci s’applique aux équipes d’ingénierie et d’exploitation. Les entreprises qui se lancent dans la digitalisation sont à la recherche de partenaires ayant un état d’esprit d’ingénieur, qui savent comment intégrer des équipes agiles et collaboratives dotées des connaissances les plus récentes en matière de plateformes open source et de chaînes d’outils DevOps.

Auteurs:

Shriniwas Sathe
Saswati Mohanty

Traduit par Patrick Montier – Head of Digital – ilem

Source: https://devops.com/the-role-of-bots-in-devops/