Rationalisation et échelle: un aperçu approfondi de la mise en cache Azure APIM

Introduction
La mise en cache est l’une des techniques les plus efficaces pour améliorer l’évolutivité et les performances dans les API. Azure API Management (APIM) applique la mise en cache pour réduire backend temps de réponse, réguler les rafales de trafic et réduire la latence. Il peut aider votre service à gérer les pics dans le trafic (tels que les ventes flash ou les événements promotionnels). Pour éviter trop d’appels à votre backend, la demande initiale remplit le cache et des demandes supplémentaires sont servies à partir du cache d’APIM.
Objectif
Ce billet de blog traite de plusieurs paramètres et configurations tout en offrant un aperçu complet de la façon dont les différentes fonctionnalités de mise en cache fonctionnent dans APIM.
Pourquoi la mise en cache est importante dans la gestion des API
La mise en cache des points de terminaison API améliore les performances, l’évolutivité et l’expérience utilisateur. Autrement dit, il diminue le temps et les efforts requis pour le processus backend. Une réponse à chaque demande faite est enregistrée afin que les mêmes données ne soient pas demandées plusieurs fois sur le backend. Cela réduit la base de données, ainsi que d’autres services, charge et améliore l’utilisation d’une API. Le fait d’avoir une mise en cache dans un APIM déployé permet d’économiser du temps et des ressources monétaires pour une entreprise.
La mise en cache d’APIM fournit
La mise en cache de gestion de l’API Azure est gérée par des politiques qui sont appliquées séquentiellement aux réponses ou aux demandes d’API.
- Performance: En livrant du contenu hors du cache uniquement au lieu de passer des appels backend coûteux
- Évolutivité: Le fardeau qui est mis sur le backend est transféré, permettant ainsi aux API de faire face à un trafic plus élevé
- Expérience utilisateur: Améliore le temps de réponse pris et améliore ainsi l’expérience utilisateur
- Économies de coûts: Réduit la fréquence des appels à l’infrastructure backend, ce qui réduit les coûts
- Latence: Abaissé par l’efficacité de l’API
2. Configuration des paramètres de mise en cache dans APIM
La configuration de la mise en cache pour la gestion des API Azure est un processus simple, car l’implémentation de base peut être effectuée uniquement via l’interface utilisateur.
Guide étape par étape –
- Connectez-vous au portail Azure et accédez à la ressource de gestion de l’API.
- Cliquez sur le bouton / menu API et choisissez l’API pour laquelle vous souhaitez configurer la mise en cache.
- Accédez à l’onglet Design et accédez au traitement entrant.
- Appuyez sur Ajouter la stratégie, puis choisissez les réponses du cache.
- Configurer la durée de mise en cache, les paramètres à varier et le type de réponse de mise en cache à utiliser.
- Après avoir apporté toutes les modifications, enregistrez la configuration et déployez les modifications à l’API.
Configuration de la mise en cache via la définition de la politique: Plutôt que de configurer la mise en cache via le portail Azure, nous pouvons également définir des configurations de mise en cache via un fichier XML de stratégie pour des options spécifiques et détaillées.
3. Options de configuration de mise en cache:
Cette option spécifie la durée du cache de réponse. Une valeur de 3600 secondes signifie que la réponse peut être mise en cache pendant 1 heure, mais la valeur appropriée variera en fonction de l’utilisation, selon la fréquence à laquelle vous redéquettez vos données.
Quand utiliser: Catalogues de produits, sites Web avec de nombreuses données statiques ou semi-statiques, taux de change, etc.
Avantage clé: Il améliore les performances de l’API en évitant les demandes répétées du backend pour récupérer les mêmes données.
Par défaut, cela génère des caches uniques pour chaque compte de développeur, ce qui fait les appels API via le portail de développeur APIM. APIM évite le partage de cache du développeur en incluant le contexte du développeur dans le cadre de la clé de cache.
Quand utiliser: API multi-locataires où chaque développeur reçoit des données de test isolées. Environnements de test pour empêcher la pollution croisée dans le cache.
Avantage clé: Fournit des réponses API précises et isolées à chaque développeur sans conflit.
Varient selon les groupes de développeurs:
Ce choix permet à un ensemble de développeurs de partager une seule entrée de cache plutôt que de cache individuellement par développeur. Ces développeurs dans les mêmes groupes partagent des réponses si plus d’un développeur se trouve dans le même groupe, mais leurs données restent isolées des autres groupes.
Quand utiliser: Cache en équipe, où tous les développeurs d’une équipe ont lu une réponse en cache commune.
Environnements à plusieurs niveaux dans lesquels différents groupes reçoivent des réponses variables.
Avantage clé: Préserve l’efficacité du cache sans provoquer des fuites de données entre les équipes.
Cela oblige APIM à aller au backend sur chaque service d’une réponse en cache expirée. La réponse est validée et rafraîchie ou une nouvelle est récupérée.
Quand utiliser: Lorsque la fraîcheur des données est importante, comme les données du marché financier ou les articles de presse nouvellement mis à jour. Les API qui ont encore besoin d’un certain degré de contrôle sur le rapport Hit and Miss Cache et l’expiration du cache géré.
Avantage clé: Réduit la quantité de récupération des données récupérant du backend et maintient les données importantes à jour.
Permet à la mise en cache d’être divisée par les en-têtes de demande, de sorte que les variations des en-têtes (par exemple, les choix de langue ou les types d’appareils) sont honorés dans les réponses mises en cache.
Quand utiliser: API multi-langues cache différentes traductions à l’aide de l’en-tête d’accept-langage. Contenu spécifique à l’appareil: cache divisée par mobile et bureau.
Avantage clé: Garantis Le contenu approprié est livré en fonction des en-têtes spécifiques au client.
Spécifie si les clients en aval (par exemple, les proxies, les navigateurs et les CDN) sont autorisés à mettre en cache des réponses mises en cache dans APIM.
Options:
- Aucun: Interdit toutes les demandes d’être révalidées en interdisant tout type de mise en aval en aval.
- Défaut: Il utilise les en-têtes de contrôle de cache de l’API. Les clients en aval (navigateurs, CDN) respecteront l’indication de l’API backend sur le contrôle du cache: sans cache ou control de cache: max-age = 3600. Cela permet un contrôle encore plus fin sans empêcher la logique backend.
- Force-External: Permet clairement les tiers (comme un CDN) pour se cacher.
Quand utiliser: Pour les éléments de mise en cache dans CDN avec des données statiques à haute charge, telles que des catalogues de produits, utilisent la force externe. Pour les API liées aux séances utilisateur ou à modifier fréquemment des ensembles de données, il est nécessaire d’éviter la mise en cache externe.
Avantage clé: Différents niveaux de contrôle sur les données et utilisent l’ensemble du potentiel de mise en cache.
Autoriser la mise en cache de réponse privée:
En mettant en cache les réponses de l’API par l’utilisateur, il garantit que les utilisateurs ne partagent pas d’informations sensibles. Il améliore les performances avec la protection de la vie privée en minimisant les appels d’API inutiles.
Quand utiliser: Tableaux de bord personnalisés (par exemple, «récemment joué» de Spotify et «Continuer Watching» de Netflix). Informations spécifiques à l’utilisateur pour un accès rapide, à savoir les transactions bancaires.
Avantage clé: Le principal avantage est qu’il accélère les expériences des utilisateurs personnalisés sans compromettre la confidentialité.
Varier selon les paramètres de la chaîne de requête:
Il fait que les réponses en cache stockent différemment en fonction du paramètre de requête. Donc, si une demande d’API comprend une chaîne de requête (par exemple, / API / Products? Catégorie = Electronics), APIM mettra en cache les réponses pour différentes catégories séparément.
Quand utiliser: API avec filtrage basé sur la requête (par exemple, / api / produits? Catégorie = électronique). Les API basées sur le filtrage où les réponses changent considérablement.
Avantage clé: Évite les réponses incorrectes lorsque les paramètres de requête modifient considérablement les résultats de l’API.
Il indique si APIM doit être caché en interne ou le passer à un système de mise en cache extérieur. Par exemple, redis db.
Choix:
- Interne: Cela dépend de la mise en cache en mémoire intégrée d’APIM.
- Préfère externe: Il attribue la mise en cache à un système extérieur (par exemple, cache azur pour redis).
Quand utiliser: Les API avec de grands ensembles de données ou des taux de trafic élevés – préfèrent la mise en cache externe pour une meilleure évolutivité.
Avantage clé: Améliore les performances dans les applications à grande échelle tout en gérant efficacement la mémoire.
4. Assemblage de tout: un exemple d’extrait de politique XML:
<policies> <inbound> <base /> </inbound> <backend> <base /> </backend> <outbound> <cache-response duration="3600" must-revalidate="true" vary-by-query-parameter="category" vary-by-developer="true" downstream-caching-type="default" allow-private-response-caching="true" /> <base /> </outbound> </policies>
Conclusion
La gestion des API Azure est un moyen évolutif et sécurisé d’améliorer l’évolutivité, les performances et la charge arrière. Les options de mise en cache vous permettent d’améliorer le temps de réponse, de réduire le coût des infrastructures et de fournir aux utilisateurs une expérience transparente. Ce blog a expliqué toutes les fonctionnalités que nous obtenons dans la mise en cache APIM dans l’interface utilisateur, également avec un code XML.
Source link