David O'Brien (Xirus): Mesures! Métrique! Métrique! Partie 1

David O'Brien a récemment ouvert sa propre entreprise, Xirus (https://xirus.com.au), en se concentrant sur les produits cloud Microsoft Azure Stack. Ils sont destinés à la création et au lancement coordonnés d'applications hybrides dans les centres de données, aux emplacements frontaliers, aux bureaux distants et au cloud.

David enseigne aux particuliers et aux entreprises tout ce qui concerne Microsoft Azure et Azure DevOps (anciennement VSTS) et est toujours engagé dans le conseil pratique et l'infra-codage. Il a été le lauréat du Microsoft MVP Award (Microsoft Most Valuable Professional) pendant 5 ans et a récemment reçu le MVP Azure Award. En tant que co-organisateur du Meetup Melbourne Microsoft Cloud et Datacentre, O'Brien intervient régulièrement lors de conférences internationales, combinant son intérêt pour le voyage dans le monde avec une passion pour le partage d'histoires informatiques avec la communauté. Le blog de David est situé sur david-obrien.net , et il publie également ses formations Pluralsight en ligne.

La présentation parle de l'importance des métriques pour comprendre ce qui se passe dans votre environnement et comment fonctionne votre application. Microsoft Azure propose un moyen puissant et simple d'afficher des métriques pour tous les types de charges de travail, et la conférence explique comment vous pouvez toutes les utiliser.

A 3 heures du matin, dimanche, pendant le sommeil, vous vous réveillez soudainement avec un SMS: "L'application supercritique ne répond plus". Que se passe-t-il? Où et quelle est la cause des «freins»? Dans cette présentation, vous découvrirez les services que Microsoft Azure propose aux clients pour collecter les journaux et, en particulier, les métriques pour vos charges de travail cloud. David vous dira quelles mesures devraient vous intéresser lorsque vous travaillez sur une plate-forme cloud et comment y accéder. Vous en apprendrez plus sur les outils open source et la création de tableaux de bord et, par conséquent, vous gagnerez suffisamment de connaissances pour créer vos propres tableaux de bord.

Et si à 3 heures du matin vous réveillez à nouveau un message concernant le plantage d'une application critique, vous pouvez rapidement en déterminer la cause.

Bonjour, aujourd'hui, nous parlerons des métriques. Je m'appelle David O'Brien, je suis le co-fondateur et propriétaire de la petite société de conseil australienne Xirus. Merci encore d'être venu ici pour passer votre temps avec moi. Alors pourquoi sommes-nous ici? Pour parler de métriques, ou plutôt, je vais vous en parler, et avant de faire quoi que ce soit, nous commençons par la théorie.



Je vais vous dire ce que sont les métriques, ce que vous pouvez en faire, ce à quoi vous devez faire attention, comment collecter et activer la collecte des métriques dans Azure et ce qu'est la visualisation des métriques. Je vais vous montrer à quoi ressemblent ces choses dans le cloud Microsoft et comment travailler avec ce cloud.

Avant de commencer, je vous demanderai de lever la main de ceux qui utilisent Microsoft Azure. Et qui travaille avec AWS? J'en vois quelques-uns. Et Google? ALI Cloud? Un homme! Bien. Que sont donc les métriques? La définition officielle de l'Institut national américain des normes et de la technologie ressemble à ceci: "Une métrique est une norme de mesure qui décrit les conditions et les règles de mesure d'une propriété et sert à comprendre les résultats de mesure." Qu'est-ce que ça veut dire?

Par exemple, considérez la métrique pour changer l'espace libre d'un disque de machine virtuelle. Par exemple, on nous donne le nombre 90, et ce nombre signifie des pourcentages, c'est-à-dire que la quantité d'espace disque libre est de 90%. Je note qu'il n'est pas très intéressant de lire la description de la définition des métriques, qui occupe 40 pages au format pdf.

Cependant, la métrique ne dit pas comment le résultat de la mesure a été obtenu, elle ne montre que ce résultat. Que faisons-nous avec les métriques?

Premièrement, nous mesurons la valeur de quelque chose, puis utilisons le résultat de la mesure.



Par exemple, nous avons appris la quantité d'espace disque libre et maintenant nous pouvons l'utiliser, utiliser cette mémoire, etc. Après avoir obtenu le résultat de la métrique, nous devons l'interpréter. Par exemple, la métrique a produit un résultat de 90. Nous devons savoir ce que signifie ce nombre: la quantité d'espace libre ou la quantité d'espace disque utilisée en pourcentage ou en gigaoctets, la latence du réseau égale à 90 ms, etc., c'est-à-dire que nous devons interpréter la signification de la valeur métrique. Pour que les métriques aient du sens, après avoir interprété une seule valeur métrique, nous devons assurer la collecte de plusieurs valeurs. Ceci est très important car de nombreuses personnes ne sont pas conscientes de la nécessité de collecter des métriques. Microsoft a rendu très facile l'obtention de métriques, mais vous devez vous assurer qu'elles sont collectées. Ces métriques sont stockées pendant seulement 41 jours et disparaissent le 42ème jour.Par conséquent, selon les propriétés de votre équipement externe ou interne, vous devez prendre soin de sauvegarder les métriques pendant plus de 41 jours - sous forme de journaux, de magazines, etc. Ainsi, après la collecte, vous devez les placer dans un endroit qui vous permet d'augmenter, si nécessaire, toutes les statistiques sur les changements dans les résultats des métriques. En les plaçant là, vous pouvez commencer à travailler efficacement avec eux.

Ce n'est qu'après avoir reçu les valeurs métriques, les avoir interprétées et les avoir collectées, que vous pouvez créer un SLA - un accord sur le niveau de service. Ce SLA peut ne pas être d'une importance particulière pour vos clients, il est plus important pour vos collègues, gestionnaires, ceux qui fournissent le système et sont préoccupés par ses fonctionnalités. La mesure peut mesurer le nombre de tickets - par exemple, vous obtenez 5 tickets par jour, et dans ce cas, elle montre la vitesse de réponse aux demandes des utilisateurs et la vitesse de dépannage. Une métrique ne doit pas simplement indiquer que votre site se charge en 20 ms ou une vitesse de réponse de 20 ms, une métrique est plus qu'un indicateur technique.

Par conséquent, l'objectif de notre conversation est de vous présenter une image détaillée de l'essence des métriques. La métrique sert à l'examiner et vous pouvez obtenir une image complète du processus.



Dès que nous obtenons la métrique, nous pouvons garantir 99% de l'état de fonctionnement du système, car ce n'est pas seulement un regard sur le fichier journal qui dit que le système fonctionne. Une garantie de disponibilité à 99% signifie que, par exemple, dans 99% des cas, l'API répond avec une vitesse normale de 30 ms. C'est exactement ce qui intéresse vos utilisateurs, vos collègues et managers. Beaucoup de nos clients suivent les journaux des serveurs Web, alors qu'ils ne remarquent aucune erreur et pensent que tout est en ordre. Par exemple, ils voient un indicateur de vitesse du réseau de 200 Mo / s et pensent: «ok, tout va bien!». Mais pour atteindre ces 200, les utilisateurs ont besoin d'une vitesse de réponse de 30 millisecondes, et c'est exactement l'indicateur qui n'est pas mesuré et n'est pas collecté dans les fichiers journaux. Dans le même temps, les utilisateurs sont surpris que le site se charge très lentement, car, sans avoir la bonne métrique,Ils ne connaissent pas les raisons de ce comportement.

Mais comme nous avons un SLA qui garantit 100% de disponibilité, les clients commencent à exprimer leur indignation, car en réalité le site est très difficile à utiliser. Par conséquent, pour créer un SLA objectif, vous devez voir l'image complète du processus créé par les métriques collectées. C'est le sujet de mon débat en cours avec certains fournisseurs qui, lors de la création du SLA, ne comprennent pas ce que signifie le terme «disponibilité» et, dans la plupart des cas, n'expliquent pas à leurs clients comment fonctionne leur API.

Si vous avez créé un service, par exemple, une API pour une troisième personne, vous devez comprendre ce que signifie la métrique reçue 39,5 - réponse, réponse réussie, réponse à une vitesse de 20 ms ou à une vitesse de 5 ms. C'est vous qui devez adapter leur SLA à votre propre SLA, à vos propres métriques.

Après avoir compris tout cela, vous pouvez commencer à créer un tableau de bord intelligent. Dites-moi, quelqu'un a-t-il déjà utilisé l'application de visualisation interactive de Grafana? Bien! Je suis un grand fan de cette open source, car cette chose est gratuite et facile à utiliser.



Si vous n'avez pas utilisé Grafana, je vais vous expliquer comment l'utiliser. Qui est né dans les années 80-90, se souvient probablement des oursons CareBears attentionnés? Je ne sais pas à quel point ces ours étaient populaires en Russie, mais en termes de paramètres, nous devrions être les mêmes "ours attentionnés". Comme je l'ai dit, vous avez besoin d'une image détaillée de l'ensemble du système, et cela ne devrait pas concerner uniquement votre API, votre site Web ou votre service fonctionnant sur une machine virtuelle.



Vous devez organiser la collecte des mesures qui reflètent le mieux le fonctionnement de l'ensemble du système. La plupart d'entre vous sont des développeurs de logiciels, donc votre vie est en constante évolution, s'adaptant aux nouvelles exigences du produit, et tout comme vous êtes préoccupé par les processus de codage, vous devez prendre soin des métriques. Vous devez savoir comment la métrique touche chaque ligne de code que vous écrivez. Par exemple, la semaine prochaine, vous démarrez une nouvelle société de marketing et attendez un grand nombre d'utilisateurs à visiter votre site. Pour analyser cet événement, vous aurez besoin de mesures et vous aurez peut-être besoin d'un panel complet pour suivre l'activité de ces personnes. Vous aurez besoin de mesures pour déterminer le succès et le fonctionnement de votre entreprise de marketing. Ils vous aideront, par exemple,développer un système CRM efficace de gestion de la relation client.

Commençons donc avec notre service cloud Azure. Il est très facile de trouver et d'organiser la collection de métriques, car il existe Azure Monitor. Ce moniteur centralise la gestion de la configuration de votre système. Chacun des éléments Azure que vous souhaitez appliquer sur votre système a de nombreuses métriques par défaut activées. Il s'agit d'une application gratuite qui fonctionne directement «prête à l'emploi» et ne nécessite aucun réglage préalable, vous n'avez pas besoin d'écrire quoi que ce soit et de la «visser» à votre système. Nous vérifierons cela en consultant la démo suivante.



De plus, il est possible d'envoyer ces métriques à des applications tierces, telles que le système de stockage et d'analyse des journaux Splunk, l'application de gestion des journaux basée sur le cloud SumoLogic, l'outil de traitement des journaux ELK, IBM Radar. Certes, il existe de petites différences qui dépendent des ressources que vous utilisez - une machine virtuelle, des services réseau, des bases de données Azure SQL, c'est-à-dire que l'utilisation des métriques diffère selon les fonctions de votre environnement de travail. Je ne dirai pas que ces différences sont graves, mais, malheureusement, elles sont toujours présentes et cela doit être pris en compte. L'inclusion et le transfert de métriques sont possibles de plusieurs manières: via Portal, CLI / Power Shell ou à l'aide de modèles ARM.



Avant de commencer la première démonstration, je répondrai à vos questions. S'il n'y a pas de questions, commençons. L'écran montre à quoi ressemble la page Azure Monitor. L'un d'entre vous peut-il dire que ce moniteur ne fonctionne pas?



Donc, maintenant tout est en ordre, vous voyez à quoi ressemblent les services de moniteur. Je peux dire que c'est un excellent outil très simple pour le travail quotidien. Avec lui, vous pouvez surveiller les applications, les réseaux et l'infrastructure. Récemment, l'interface de surveillance a été améliorée, et si auparavant les services étaient situés à différents endroits, maintenant toutes les informations sur les services sont consolidées sur la page d'accueil du moniteur.

Le tableau des mesures est un onglet le long du chemin Home \ Monitor \ Metrics que vous pouvez consulter pour voir toutes les mesures disponibles et sélectionner celles qui sont nécessaires. Mais si vous devez activer la collecte des mesures, vous devez utiliser le chemin du répertoire Home \ Monitor \ Diagnostic settings et cocher les cases Enabled / Disabled metrics. Par défaut, presque toutes les mesures sont activées, mais si vous devez activer quelque chose de plus, vous devrez changer l'état de diagnostic de Désactivé en Activé.



Pour ce faire, cliquez sur la ligne de la métrique sélectionnée et sur l'onglet qui ouvre le mode diagnostic. Si vous allez analyser la mesure sélectionnée, après avoir cliqué sur le lien Activer le diagnostic, cochez la case Envoyer à Log Analytics dans la fenêtre qui apparaît.



Log Analytics est un peu comme Splunk, mais moins cher. Ce service vous permet de collecter toutes vos métriques, journaux et tout ce dont vous avez besoin, et de les placer dans l'espace de travail Log Analytics. Le service utilise un langage spécial de traitement des requêtes KQL - Kusto Quarry Language, nous considérerons son travail dans la prochaine démo. Pour l'instant, je note qu'avec son aide, vous pouvez formuler des requêtes concernant les métriques, les journaux, les termes, les tendances, les modèles, etc. et créer des tableaux de bord.

Ainsi, nous marquons la case à cocher Envoyer à Log Analytics et les cases à cocher du panneau LOG: DataPlaneRequests, MongoRequests et QueryRuntimeStatistics, et ci-dessous dans le panneau METRIC - la case à cocher Demandes. Ensuite, nous attribuons un nom et enregistrons les paramètres. Sur la ligne de commande, il s'agit de deux lignes de code. Soit dit en passant, le shell Azure Cloud en ce sens ressemble à Google, ce qui vous permet également d'utiliser la ligne de commande dans votre navigateur Web. AWS n'a rien de tel, donc Azure est beaucoup plus pratique dans ce sens.

Par exemple, je peux exécuter la démo via l'interface Web sans utiliser de code sur mon ordinateur portable. Pour ce faire, je dois m'authentifier à l'aide de mon compte Azure. Ensuite, vous pouvez utiliser, par exemple, terrafone, si vous l'utilisez déjà, attendre la connexion au service et obtenir l'environnement de travail Linux, que Microsoft utilise par défaut.



Ensuite, j'utilise le Bash intégré à Azure Cloud Shell. Une chose très utile est l'IDE intégré au navigateur, une version allégée de VS Code. Ensuite, je peux aller dans mon modèle de mesure d'erreur, le changer et le personnaliser selon mes besoins.



En configurant la collecte de métriques dans ce modèle, vous pouvez l'utiliser pour créer des métriques pour l'ensemble de votre infrastructure. Après avoir appliqué les mesures, collecté et enregistré, nous devrons les visualiser.



Azure Monitor ne traite que des métriques et ne fournit pas la possibilité d'obtenir une image globale de l'état de votre système. Vous pouvez utiliser un certain nombre d'autres applications qui s'exécutent en dehors d'Azure. Donc, si vous devez surveiller tous les processus, visualiser toutes les métriques collectées en un seul endroit, Azure Monitor ne fonctionnera pas pour cela.

Pour résoudre ce problème, Microsoft propose l'outil Power BI - un logiciel complet pour l'analyse commerciale, qui comprend la visualisation d'une grande variété de données. Il s'agit d'un produit assez cher, dont le coût dépend de l'ensemble des fonctions dont vous avez besoin. Par défaut, il vous propose 48 types de données traitées et est associé à Azure SQL Data Warehouses, Azure Data Lake Storage, Azure Machine Learning Services et Azure Databricks. Grâce à l'évolutivité, vous pouvez recevoir de nouvelles données toutes les 30 minutes. Cela peut être suffisant pour vos besoins ou pas assez si vous avez besoin d'une visualisation de surveillance en temps réel. Dans ce cas, il est recommandé d'utiliser des applications telles que celle que j'ai mentionnée par Grafana. De plus, la documentation Microsoft décrit la possibilité d'envoyer des métriques,journaux et tables d'événements utilisant les outils SIEM des systèmes de visualisation Splunk, SumoLogic, ELK et radar IBM.

23:40 min

A suivre très prochainement ...


Un peu de publicité :)


Merci de rester avec nous. Aimez-vous nos articles? Vous voulez voir des matériaux plus intéressants? Soutenez-nous en passant une commande ou en recommandant à vos amis, le cloud VPS pour les développeurs à partir de 4,99 $ , un analogue unique de serveurs d'entrée de gamme que nous avons inventé pour vous: Toute la vérité sur VPS (KVM) E5-2697 v3 (6 cœurs) 10 Go DDR4 480 Go SSD 1 Gbit / s à partir de 19 $ ou comment diviser le serveur? (les options sont disponibles avec RAID1 et RAID10, jusqu'à 24 cœurs et jusqu'à 40 Go de DDR4).

Dell R730xd 2 fois moins cher au centre de données Equinix Tier IV à Amsterdam? Nous avons seulement 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV à partir de 199 $ aux Pays-Bas!Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - à partir de 99 $! En savoir plus sur la création d'un bâtiment d'infrastructure. classe c utilisant des serveurs Dell R730xd E5-2650 v4 coûtant 9 000 euros pour un sou?

All Articles