DéveloppeurWeb.Com
    DéveloppeurWeb.Com
    • Agile Zone
    • AI Zone
    • Cloud Zone
    • Database Zone
    • DevOps Zone
    • Integration Zone
    • Web Dev Zone
    DéveloppeurWeb.Com
    Home»Uncategorized»Résoudre les goulots d’étranglement dans les flux de vos applications de microservices
    Uncategorized

    Résoudre les goulots d’étranglement dans les flux de vos applications de microservices

    mars 16, 2023
    Résoudre les goulots d'étranglement dans les flux de vos applications de microservices
    Share
    Facebook Twitter Pinterest Reddit WhatsApp Email

    Importance de l’analyse des goulots d’étranglement dans les microservices

    L’analyse des goulots d’étranglement est devenue une partie importante du développement des microservices pour de nombreuses raisons. Tel que:

    1. Identifier et isoler les problèmes de performances

    La réalisation d’une analyse des goulots d’étranglement permet au développeur d’identifier les domaines spécifiques où l’application rencontre des problèmes de performances. Ce processus implique l’identification des composants lents de l’application et l’évaluation de ses raisons. Des métriques telles que le temps de réponse, le taux d’erreur et le débit peuvent être utilisées pour identifier et isoler les goulots d’étranglement afin d’améliorer les performances globales de l’application.

    2. Optimiser l’utilisation des ressources

    Lorsqu’un service utilise trop de ressources, telles que la mémoire, le temps CPU ou les E/S, il peut dégrader les performances des autres services, créant un goulot d’étranglement. L’analyse des goulots d’étranglement peut aider à identifier ces services gourmands en ressources et à optimiser l’utilisation des ressources. L’optimisation de l’utilisation des ressources peut impliquer la réécriture du code pour optimiser l’utilisation des ressources, la mise à l’échelle des services et la modification de l’infrastructure pour améliorer les performances globales de l’application.

    3. Améliorer l’expérience utilisateur

    Les applications lentes et gourmandes en ressources ont tendance à avoir un impact négatif sur l’expérience utilisateur, ce qui peut entraîner un taux de désabonnement plus élevé et éventuellement entraîner une perte d’activité. Cela peut être évité en effectuant une analyse des goulots d’étranglement pour identifier les performances et les goulots d’étranglement des ressources à un stade précoce et les optimiser pour une meilleure expérience utilisateur.

    4. Évolutivité améliorée

    L’analyse des goulots d’étranglement peut améliorer l’évolutivité de plusieurs façons.

    • Allocation efficace des ressources : L’identification des goulots d’étranglement des ressources permettra d’optimiser l’allocation des ressources, d’améliorer les performances et d’augmenter le débit des applications.
    • Équilibrage de charge amélioré : L’analyse des goulots d’étranglement permet aux développeurs d’identifier les services sous-utilisés et surutilisés, ce qui leur permet de mettre en œuvre de meilleures stratégies d’équilibrage de charge et d’améliorer les performances globales des applications.
    • Mise à l’échelle optimale : L’analyse des goulots d’étranglement peut également aider à identifier les services qui doivent être mis à l’échelle et ceux qui doivent être réduits et à trouver le point optimal pour la mise à l’échelle de chaque service.

    5. Réduire les coûts

    L’amélioration de l’utilisation des ressources et l’optimisation de la mise à l’échelle réduiront les coûts d’infrastructure et les coûts d’exploitation similaires, et l’application pourra gérer une charge plus importante avec moins de ressources.

    Dans l’ensemble, il est crucial d’effectuer une analyse des goulots d’étranglement lors de la mise en œuvre d’un logiciel pour identifier et résoudre les goulots d’étranglement, améliorer les performances, l’utilisation des ressources et l’expérience utilisateur, et réduire les coûts.

    Défis liés à l’identification des goulots d’étranglement

    L’identification et la résolution des goulots d’étranglement dans une application sont devenues un élément crucial du développement logiciel. Cependant, les applications distribuées modernes s’étendent sur de nombreux services, et une tâche peut impliquer plusieurs services, processus et threads. Par conséquent, il peut y avoir de nombreux endroits où un goulot d’étranglement peut se produire, et trouver ces points de congestion peut être difficile.

    L’importance de l’observabilité dans les systèmes distribués modernes a augmenté en raison de la difficulté de localiser et d’identifier ces goulots d’étranglement. Par conséquent, les frameworks qui fournissent des protocoles et des outils standardisés pour la collecte de données de télémétrie, tels que OpenTelemetry, ont gagné en popularité. L’utilisation de ces outils pour collecter des données de télémétrie peut être utile lors de l’analyse des goulots d’étranglement dans des applications complexes.

    Helios est un outil basé sur les normes OTel qui peut aider les développeurs à maintenir l’observabilité dans l’application avec la capacité de traçage de bout en bout. Helios peut fournir un traçage de bout en bout même dans des scénarios complexes tels que les applications de microservices. En ajoutant Helios dans tous les services et avec les données de télémétrie collectées, les goulots d’étranglement peuvent être facilement tracés et localisés au service exact avec les tableaux de bord fournis.

    Utilisation de la visualisation E2E Trace pour identifier et optimiser les goulots d’étranglement dans une application de microservices

    Pour illustrer la visualisation des traces E2E, considérons un exemple de trois microservices : le service utilisateur, le service de paiement et le service de commande.

    Lorsqu’un utilisateur passe une commande, le service de commande récupère les détails de l’utilisateur auprès du service utilisateur et crée un paiement à l’aide du service de paiement. Après cela, le service de commande passera une commande pour l’utilisateur.

    Supposons que lors de l’exécution de cette opération, le service de commande exécute des requêtes de base de données inefficaces, créant un goulot d’étranglement pour l’application. En raison de la réduction de l’expérience utilisateur et des plaintes, ce point de congestion doit être identifié et corrigé par une analyse des goulots d’étranglement. Utilisons Helios comme outil de télémétrie dans ce scénario pour identifier le goulot d’étranglement.

    Étape 1 : Identifier les goulots d’étranglement

    Pour mieux comprendre où se trouve le goulot d’étranglement, examinez les traces des demandes récentes et essayez de déterminer quels terminaux ralentissent l’application. Ici, nous utiliserons la visualisation de trace Helios E2E.

    Ici, nous utiliserons la visualisation de trace Helios E2E.

    L’image ci-dessus montre le tableau de bord avec le temps passé sur les demandes les plus récentes. Et en changeant de services et de points de terminaison d’API, vous pouvez facilement identifier le temps que chaque demande a pris.

    Dans ce cas, il est clair que le point de terminaison des commandes a pris plus de temps qu’il ne le devrait et réduit les performances de l’ensemble de l’application. Comme il s’agit d’une application basée sur des microservices, un goulot d’étranglement peut survenir à de nombreux endroits. Par conséquent, pour identifier exactement où se produit le goulot d’étranglement, Helios fournit une visualisation pour chaque trace qui peut être révélée en cliquant sur l’une des barres de durée des requêtes.

    Le temps passé sur chaque service

    Le temps passé sur chaque service est indiqué dans l’image ci-dessus, et il est clair que le service de commande est à l’origine du goulot d’étranglement.

    Étape 2 : Analyse des goulots d’étranglement

    Une fois l’emplacement du goulot d’étranglement identifié, il est crucial d’identifier la cause première pour traiter et résoudre efficacement les problèmes de performances. Les goulots d’étranglement peuvent avoir de nombreuses raisons, telles que,

    • Algorithmes ou code inefficaces qui causent des retards dans le traitement des demandes : De mauvaises pratiques de programmation et une mauvaise utilisation des structures de données et des algorithmes peuvent entraîner des retards dans le traitement des demandes, réduisant ainsi les performances de l’application et l’expérience utilisateur. L’utilisation d’un code, d’algorithmes et de structures de données optimisés et efficaces peut éviter de tels goulots d’étranglement,
    • Schémas et requêtes de base de données mal conçus : Des schémas et des requêtes de base de données mal conçus peuvent entraîner des retards importants lors de l’exécution d’opérations de base de données. Surtout dans un environnement de microservices, il peut y avoir des interactions complexes avec des bases de données impliquant plusieurs services, ce qui peut encore augmenter les retards. Par conséquent, les schémas de base de données et les requêtes doivent être optimisés conformément aux exigences de l’application.
    • Ressources réseau ou infrastructure surchargées : Une bande passante insuffisante, des ressources réseau limitées et des ressources d’infrastructure insuffisantes peuvent entraîner l’échec du réseau ou de l’infrastructure face à un volume important de demandes. Les microservices doivent être conçus pour faire face aux charges de demandes de pointe, et des stratégies de mise à l’échelle appropriées peuvent être utilisées pour gérer des charges de demandes élevées.
    • Services externes lents ou indisponibles : L’indisponibilité ou la lenteur des dépendances tierces d’une application peuvent également provoquer des goulots d’étranglement. Un trafic important, la maintenance du service, des problèmes de réseau ou tout autre problème externe peuvent entraîner le ralentissement ou l’indisponibilité des dépendances.
    • Interférence ou conflit entre les microservices en concurrence pour les ressources partagées : Lorsque les microservices interagissent les uns avec les autres, deux services peuvent être nécessaires pour utiliser la même ressource ou pour accéder simultanément aux données, ce qui entraîne des retards ou des défaillances du système. Vous pouvez résoudre ces points de congestion en utilisant des techniques de planification, des mécanismes de mise en cache ou en modifiant l’architecture pour empêcher plusieurs services d’accéder aux données sur la même ressource.

    Diverses raisons peuvent provoquer des goulots d’étranglement dans les microservices, et seules quelques causes profondes les plus courantes sont mentionnées ci-dessus.

    Pour localiser davantage l’emplacement du goulot d’étranglement, OTel définit un mécanisme appelé instrumentation manuelle qui permet au développeur d’envelopper n’importe quelle partie du code suspect dans une étendue distincte où il peut être identifié comme un bloc distinct. Cela permet aux développeurs de vérifier le temps passé sur chaque fonction pour localiser facilement le goulot d’étranglement.

    La requête doit être analysée et optimisée pour résoudre le goulot d'étranglement.

    Avec l’étendue personnalisée implémentée enveloppant la fonction de requête de base de données, il est visible que le goulot d’étranglement se trouve dans l’implémentation de la requête. La requête doit être analysée et optimisée pour résoudre le goulot d’étranglement.

    Étape 3 : Évaluer la solution

    Une fois la solution implémentée, nous pouvons vérifier à nouveau la visualisation de trace E2E fournie par Helios et vérifier que le goulot d’étranglement a été corrigé, comme le montre l’image ci-dessous.

    nous pouvons vérifier la visualisation de la trace E2E.

    Comme il s’agissait d’une application simple créée pour les démonstrations, le goulot d’étranglement était simple à trouver et à corriger. Mais dans une application complexe du monde réel, l’identification et la résolution d’un goulot d’étranglement peuvent impliquer de nombreux changements. Mais l’utilisation d’applications telles que Helios peut faciliter l’identification et la résolution des goulots d’étranglement dans votre application. L’exemple d’application utilisé pour l’exemple est téléchargé ici.

    Conclusion

    Les systèmes distribués modernes devenant de plus en plus complexes, des outils et des techniques efficaces doivent être utilisés pour identifier les goulots d’étranglement des applications. En utilisant des solutions de traçage distribuées comme OpenTelemetry et Helios, les développeurs peuvent identifier et résoudre efficacement les goulots d’étranglement des applications, améliorant ainsi l’expérience utilisateur et les revenus de l’entreprise.

    J’espère que vous avez trouvé cet article utile et merci de l’avoir lu !

    Share. Facebook Twitter Pinterest LinkedIn WhatsApp Reddit Email
    Add A Comment

    Leave A Reply Cancel Reply

    Catégories

    • Politique de cookies
    • Politique de confidentialité
    • CONTACT
    • Politique du DMCA
    • CONDITIONS D’UTILISATION
    • Avertissement
    © 2023 DéveloppeurWeb.Com.

    Type above and press Enter to search. Press Esc to cancel.