Catégories
Start-up et applications

Surveillance des applications dans les architectures logicielles modernes

Dans le monde moderne des logiciels, les applications et l'infrastructure se mélangent de différentes manières. Nulle part cela n'est plus apparent qu'avec les microservices, fournis dans des conteneurs qui contiennent également le code de configuration de l'infrastructure.

Cela, combiné à des architectures d'applications plus complexes (API, sources de données multiples, distributions multicloud et plus), et à la nature éphémère des logiciels en tant que temporaires et en constante évolution, change également le monde de la surveillance et crée un besoin de solutions d'observabilité.

Les solutions de surveillance des applications de première génération peinent à fournir le même niveau de visibilité dans les applications plus virtuelles d'aujourd'hui, c'est-à-dire les environnements conteneurisés et / ou orchestrés exécutant Docker et Kubernetes. Les applications basées sur des microservices massivement distribuées créent différents problèmes de visibilité pour les outils hérités. Bien sûr, la surveillance des applications est toujours importante, ce qui a conduit à la nécessité d'ajouter l'observabilité dans les applications exécutées dans ces environnements.

Alors que les outils de surveillance des applications héritées ont une visibilité approfondie sur le code Java et .NET, de nouveaux outils sont en train d'émerger qui se concentrent sur les piles d'applications et d'infrastructure modernes. Selon Chris Farrell, directeur technique et stratège APM chez Instana, fournisseur de solutions de surveillance, l'un des aspects importants d'un outil de surveillance de microservices est qu'il doit reconnaître et prendre en charge tous les différents microservices. "Je pense à cela comme un T géant où la barre verticale représente la profondeur de visibilité et la barre horizontale représente la largeur de visibilité", a-t-il expliqué. «Les outils APM hérités fonctionnent très bien sur la ligne verticale avec une visibilité approfondie du code qu'ils prennent en charge; pendant ce temps, les outils de microservices fonctionnent bien sur la ligne horizontale, prenant en charge un large éventail de technologies différentes. Voici la chose – être bon sur un axe ne se traduit pas nécessairement par de la valeur sur l'autre parce que leur modèle de données est construit d'une certaine manière. Quand j'entends des microservices APM, je pense: «  C'est ce que nous faisons. '' (Instana a) à la fois la profondeur de la visibilité au niveau du code et l'étendue de la prise en charge des microservices parce que c'est ce que nous nous proposons de faire, résoudre le problème de l'éphémère, dynamique , des systèmes complexes construits autour de microservices. »

En ce qui concerne l'observabilité et la surveillance des applications, il est important de penser aux différents types d'opérations informatiques que les individus et les équipes doivent traiter. Selon Farrell, «que vous parliez de SRE, d'ingénieurs DevOps ou d'opérateurs informatiques traditionnels, chacun a ses propres objectifs et besoins en matière de données. En fin de compte, c'est pourquoi une solution de surveillance doit être flexible dans les données qu'elle collecte et comment elle présente ces données.

Même s'il est important que les solutions de surveillance modernes reconnaissent et comprennent la complexité, ce n'est pas suffisant. Ils doivent également le faire par programme, a déclaré Farrell, car les systèmes d'aujourd'hui sont tout simplement trop complexes pour être compris par une personne. "Vous ajoutez l'aspect éphémère ou dynamique, et au moment où une personne pourrait réellement créer une carte ou comprendre comment les choses sont liées, quelque chose changera et vos connaissances seront obsolètes", a-t-il déclaré.

Les solutions modernes doivent également être capables de détecter les problèmes et de fournir des données dans leur contexte. Le contexte est la raison pour laquelle il est pratiquement impossible, même pour une très bonne équipe d’exploitation bien informée, de comprendre exactement tout ce qui se passe dans leur application. C'est là que les solutions qui prennent en charge à la fois la visibilité automatique propriétaire et l'instrumentation injectée manuellement peuvent être précieuses. Même si vous avez la possibilité d'instrumenter une application avec une solution automatisée, il y a encore de la place pour un élément d'observabilité pour ajouter du contexte. "Peut-être que c'est un paramètre qui a été transmis; c'est peut-être quelque chose à voir avec le code spécifique dont le développeur a besoin pour comprendre les performances de son morceau de code particulier », a déclaré Farrell à propos de la nécessité d'une compréhension contextuelle.

«C'est pourquoi un bon outil de surveillance moderne aura ses propres mesures et pourra apporter des mesures à partir de solutions d'observabilité comme OpenTracing, par exemple», a ajouté Farrell. «Le traçage est le point de départ d'une grande partie de ce joli contexte. Comme Instana, il est important de pouvoir faire les deux. De cette façon, vous offrez le meilleur des deux mondes. »

Pour prendre les décisions en cours et prendre les bonnes mesures pour fournir des performances de service appropriées, les équipes d'opérations informatiques modernes ont vraiment besoin de ce contexte profond. Il est précieux pour la surveillance continue, la vérification du déploiement ou de la restauration, le dépannage et les rapports. Bien que l'observabilité puisse à elle seule fournir des informations à un individu ou à quelques individus. C'est l'outil de surveillance qui permet de comprendre comment les choses fonctionnent ensemble; qui peut basculer entre une vue centrée sur l'utilisateur ou une application, et qui peut vous donner un cadre pour passer de la surveillance à la prise de décision au dépannage, puis, si nécessaire, passer à la création de rapports ou même à l'analyse de journaux.

Farrell a souligné que «la pièce APM est la partie qui relie le tout pour fournir cette visibilité contextuelle complète qui commence par la visibilité des composants individuels et finalement le relie tous ensemble pour les performances au niveau de l'application et les performances au niveau du service».

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *