La surveillance dans le monde de DevOps
Qu'est-ce que la surveillance DevOps ?
DevOps a complètement changé la donne en ce qui concerne la façon dont les équipes de développement et d'exploitation informatique travaillent et collaborent ensemble. Avec des rôles clairement définis et une responsabilité partagée des produits et services déployés, DevOps a contribué à briser un environnement de travail traditionnellement cloisonné tout en créant des flux de travail rationalisés pour garantir des délais de production et de livraison plus rapides. L'objectif de DevOps était de se concentrer sur l'importance des flux de travail, en intégrant l'automatisation lorsque cela était possible afin d'augmenter l'efficacité et d'améliorer la productivité.
Des systèmes de surveillance plus rapides et plus agiles étaient nécessaires pour suivre les changements apportés par DevOps. La surveillance DevOps est une forme de surveillance proactive qui met l'accent sur la qualité au début du cycle de vie de la production, plutôt qu'une approche réactive. La surveillance DevOps met l'accent sur le déploiement rapide de services fiables et de nouvelles fonctionnalités ou mises à jour en effectuant des tests plus tôt, souvent dans un environnement de production. Cela signifie que les équipes ont pu publier des mises à jour et de nouvelles fonctionnalités plus fréquemment, avec une qualité améliorée et à moindre coût. Elle est conçue pour simuler les interactions réelles des utilisateurs avec votre service, qu'il s'agisse d'une application, d'un site Web, d'une API, etc.
Outils de surveillance DevOps
Les outils de surveillance DevOps sont essentiels pour suivre les données et informations spécifiques qui sont importantes pour votre entreprise.
Certains de nos outils de surveillance DevOps préférés incluent :
- Pour une stratégie globale de surveillance DevOps : Nagios
- Pour la surveillance des applications : New Relic, DynaTrace, AppDynamic
- Pour la surveillance des infrastructures : DataDog, LogicMonitor, SignalFX, Zenoss
- Pour les journaux de surveillance : Splunk, LogEntries, Loggly
Choisir le bon ensemble d’outils vous aidera à obtenir la meilleure vue d’ensemble de votre système DevOps afin de suivre les indicateurs clés tels que la disponibilité, l’utilisation du processeur et du disque, les temps de réponse, etc.
Au cœur de l’idée de DevOps La collaboration est une collaboration entre toutes les équipes impliquées dans les applications et l'infrastructure informatiques. Les développeurs, les opérations, l'assurance qualité, la sécurité, etc., ont tous des intérêts dans la livraison d'un produit ou d'un service. Alors, que signifie la collaboration en matière de surveillance dans le monde de DevOps ?
Comment DevOps change la donne
Par le passé, les différentes équipes impliquées dans la création ou la maintenance d'une application terminaient d'abord leur partie entièrement avant de la transmettre à l'équipe suivante. Par exemple, l'équipe de développement écrivait d'abord le code de l'application entière ou de fonctionnalités spécifiques de l'application avant de le transmettre à l'équipe d'assurance qualité (QA). L'équipe QA effectuait ensuite ses tests et analyses avant de l'envoyer aux opérations, et ainsi de suite.
C'est un peu comme une équipe de relais olympique où chaque personne court 100 mètres avant de passer le témoin au coureur suivant. Imaginez maintenant une équipe utilisant les idées DevOps comme si tous ces coureurs couraient simultanément, sur quatre sprints de 100 mètres au lieu d'un seul sprint de 400 mètres. Au lieu d'attendre qu'une équipe transmette le travail à la suivante, chacun travaille simultanément sur l'application dans son propre domaine de concentration. Les coureurs DevOps ont plus de possibilités d'ajuster la stratégie et de s'améliorer de manière itérative.
Agilité multiplateforme et basée sur le cloud
Les concepts DevOps sont souvent cités en référence à d’autres pratiques de développement logiciel telles qu’Agile. Les idées qui sous-tendent Agile et DevOps sont similaires : décomposer le travail en incréments plus petits, améliorer de manière itérative chaque incrément, éliminer les efforts lorsque cela a du sens et partager les apprentissages au sein de l’organisation.
Bien sûr, trop d'opinions peuvent conduire à leur propre lot de problèmes. Les applications bien conçues ont tendance à avoir plusieurs composants et des domaines de préoccupation clairement définis. C'est là que les architectures distribuées telles que les microservices entrent souvent en jeu. C'est aussi pourquoi les équipes qui adoptent la Méthodologie DevOps produire beaucoup plus de versions, car elles peuvent résoudre les problèmes plus rapidement.
L'importance des flux de travail
Deux esprits valent mieux qu'un, et une douzaine d'esprits valent encore mieux. La transparence et la visibilité de bout en bout sont des facteurs clés au sein de DevOps pour une bonne communication. La visibilité de bout en bout signifie que tout le monde est sur la même longueur d'onde tout au long du processus de développement. Lorsque tout le monde est sur la même longueur d'onde, le processus de développement devient beaucoup plus fluide et il y a moins de risques de devoir tout recommencer.
Des itérations plus rapides pour des utilisateurs plus heureux
Ce qu'il faut retenir de tout le chaos qui accompagne la création d'une application, c'est que l'objectif ultime est d'affiner et d'améliorer l'expérience de l'utilisateur final. Étant donné que la plupart des applications basées sur le cloud doivent réagir rapidement aux besoins changeants des utilisateurs et aux évolutions du marché, il est parfois nécessaire de publier rapidement des mises à jour pour ces applications. Les développeurs de logiciels qui utilisent les idées DevOps sont en mesure de répondre plus facilement à cette exigence, car il y a moins de goulots d'étranglement dans le flux de travail inter-équipes.
Outre le fait que cela contribue à la satisfaction des clients, cela contribue également à la satisfaction des développeurs, qui sont beaucoup moins susceptibles de perdre le sommeil à cause de bugs, de plantages ou d'incidents. La bonne communication étant une différence essentielle entre le style de développement traditionnel en cascade et les méthodes DevOps, cela influence également les besoins des outils.
Le style de surveillance DevOps n’est donc en aucun cas plus simple que la méthode traditionnelle en cascade, où les équipes n’avaient souvent besoin que de quelques outils pour l’ensemble du processus et de beaucoup d’humains pour compenser. Avoir une seule équipe travaillant sur une grande variété de domaines (développement, assurance qualité, opérations, etc.) nécessite de nombreux outils qui doivent bien fonctionner les uns avec les autres. Trouver un groupe d’outils qui sont tous compatibles peut être difficile, mais les résultats en valent la peine.
Une façon de considérer ces outils est de les diviser en quatre groupes de logiciels : la surveillance des performances des applications, la surveillance de l’infrastructure, l’analyse des journaux et, enfin et surtout, la gestion des incidents.
Surveiller vos applications
La surveillance des applications est un facteur clé pour identifier les problèmes (performances, régression ou autres) et les résoudre rapidement dans le cadre de l'itération d'une équipe. Trois des outils de surveillance des performances des applications (APM) les plus populaires sont Nouvelle relique , Dynatrace , et Dynamique des applications En plus de permettre aux équipes de surveiller et de gérer leurs logiciels, ils permettent également la surveillance de l'utilisateur final, ce qui est essentiel pour garantir qu'une application offre la meilleure expérience.
Surveiller votre infrastructure
L’autre face de la médaille de la surveillance des performances des applications est la surveillance de l’infrastructure. Il existe de très nombreux outils pour cela, notamment des solutions SaaS telles que Chien de données , Moniteur logique , et SignalFx , ainsi que des solutions hybrides telles que Zenoss. Bien qu'il s'agisse d'un favori des équipes qui passent de processus de développement traditionnels, Nagios seul ne suffit pas pour votre stratégie de surveillance DevOps.
Surveiller vos journaux
L'analyse des journaux est un élément essentiel du cycle d'amélioration itératif et constitue un élément essentiel du dépannage du système, du débogage et de la réponse aux incidents de sécurité. Les outils d'analyse des journaux les plus populaires incluent Splunk , Entrées de journal , et Loggly . Ils vous permettent d'étudier le comportement des utilisateurs en fonction de l'analyse des fichiers journaux. Ils vous permettent également de collecter rapidement une quantité de données provenant de diverses sources dans un flux de journaux centralisé. Il s'agit d'un moyen pratique de maintenir et d'analyser les fichiers journaux. Outre le débogage, l'analyse des journaux joue un rôle clé pour vous aider à vous conformer aux politiques et réglementations de sécurité et est essentielle dans le processus d'audit et d'inspection.
Gestion rapide et efficace des incidents
DevOps surpasse vraiment l'approche traditionnelle en cascade dans le domaine de la gestion des incidents. C'est avec l'aide de plateformes de gestion des incidents comme PagerDuty que les applications basées sur le cloud peuvent désormais encourager les utilisateurs à résoudre eux-mêmes la plupart de leurs problèmes. PagerDuty est unique dans ses capacités car non seulement vous permet d'intégrer Avec pratiquement tous les outils que vous pouvez imaginer, il vous permet de personnaliser vos flux de travail de gestion des incidents en fonction des différentes équipes. Cette approche évite les goulots d'étranglement et permet d'atteindre l'objectif ultime de fournir la meilleure expérience utilisateur.
Améliorer l'expérience de l'utilisateur final
Le respect des pratiques DevOps rend les applications plus résilientes, car il est plus facile de détecter les problèmes d'implémentation et les déficiences. Grâce aux outils de surveillance de l'infrastructure, un afflux soudain d'utilisateurs qui provoquerait normalement un plantage du système peut être facilement détecté. Grâce aux outils de surveillance des applications, les ingénieurs peuvent se plonger dans les détails de l'impact sur les performances, et tous les problèmes qui ont échappé à tous les différents niveaux de qualité et de surveillance nécessitent souvent une inspection plus approfondie grâce à des outils d'analyse des journaux. En même temps, tous ces outils sont liés à une plate-forme de gestion des incidents comme PagerDuty , pour permettre aux ingénieurs de trier et de collaborer rapidement sur les incidents
En ce qui concerne l’amélioration de l’expérience utilisateur, DevOps a des années d’avance sur la méthode traditionnelle en cascade et ceux qui souhaitent suivre le rythme de la technologie devront adopter au moins certains aspects de cette approche. Les utilisateurs d’applications créées et surveillées par des équipes qui utilisent les méthodologies DevOps sont habitués à ce que leurs problèmes soient résolus rapidement et efficacement. Ces mêmes utilisateurs toléreront rarement de longs délais d’attente pour corriger des bugs et des catastrophes telles que des pannes de système, et quiconque souhaite avoir un impact sur ce marché devra intensifier ses efforts ou être laissé pour compte.