Qu'est-ce que la gestion des API?

Bonjour à tous! Amis, le 21 février, nous avons lancé le cours «Backend PHP Developer» . En prévision du lancement du cours, nous voulons partager avec vous la traduction d'un matériel intéressant. Bonne lecture!

En octobre, lors de la conférence NGINX Conf 2018, nous avons annoncé un nouveau module de contrôle API pour le contrôleur NGINX . Avec ce produit, nous renforçons notre position en tant que passerelle API la plus déployée de l'industrie - des millions de sites utilisent déjà NGINX Open Source et NGINX Plus pour transférer en toute sécurité le trafic entre les applications serveur et les consommateurs d'API fournis par ces applications.



Mais la gestion efficace des demandes des clients n'est qu'un aspect d'une API réussie (quoique extrêmement importante). Vous devez également gérer vos API tout au long de leur cycle de vie, y compris les définir et les publier, et protéger et gérer le trafic. Vous devez suivre et résoudre les problèmes de performances pour garantir la satisfaction des clients et analyser le trafic pour maximiser la valeur commerciale. Une gestion complète des API est essentielle pour l'adoption rapide et le succès continu de vos API.



La gestion des API couvre tout le cycle de vie de vos API
(Dans la figure: en partant du haut dans le sens des aiguilles d'une montre - Définition et publication, Sécurité, Gestion du trafic (passerelle API), Surveillance et support continus, Analyse de la quantité d'accès à l'API. Adaptation (Dev-portal);
au centre - Gestion des API)

Comme beaucoup de nos clients, vous constaterez peut-être que les concepts et la terminologie envahis par les solutions API sont assez intimidants. Dans ce blog, nous discutons des concepts clés de l'API et explorons la relation entre la gestion des API et les passerelles d'API.

Concepts clés

L'API de gestion a ses propres concepts et terminologie:

  • API internes - Les API internes sont disponibles uniquement pour d'autres applications (et leurs développeurs) au sein de l'entreprise, mais pas pour les utilisateurs externes. Les API internes aident à ouvrir les données et à favoriser la collaboration entre les unités fonctionnelles de l'entreprise. Voici un bon exemple: avant de fournir une assistance aux clients, l'équipe de support technique de l'entreprise doit déterminer si le client a un contrat de support valide. Ces informations sont déjà stockées dans un système de gestion de la relation client (CRM) d'entreprise tel que Salesforce. Au lieu de dupliquer des informations dans sa propre base de données, l'application de support client appelle l'API CRM interne.
  • API externes - Les API externes sont disponibles pour les utilisateurs extérieurs à votre entreprise. Ils fournissent des outils pour établir des partenariats avec des développeurs tiers, ainsi que l'ensemble de votre écosystème commercial de fournisseurs, distributeurs, revendeurs et même clients. Les API externes permettent également aux entreprises de générer de nouvelles sources de revenus à l'aide de modèles commerciaux innovants. Google maps en est un bon exemple. De nombreux sites Web et applications tiers intègrent une carte Google pour aider les utilisateurs finaux à localiser l'emplacement d'un magasin ou à obtenir un itinéraire. L'accès à la carte pour l'utilisateur final ne coûte rien, mais après un certain nombre de clics, Google facture des frais sur le site ou l'application pour chaque appel d'API.
  • Définition et publication . Les solutions de gestion des API fournissent une interface intuitive pour définir des API significatives, y compris le chemin de base (URL), les ressources et les points de terminaison.

    • Les ressources sont fondamentales pour toute définition d'API; ils sont une abstraction d'informations sur lesquelles l'API effectue des opérations. Les documents et les identifiants clients sont des exemples de ressources. L'API est appelée pour obtenir ces informations.
    • Les points de terminaison indiquent où se trouvent les ressources. Les API ont une URL de base à laquelle des chemins de point de terminaison sont ajoutés. Tous les points de terminaison API font référence à l'URL de base.

  • Par exemple, au point de terminaison de l'API, https://app.enterprise.com/v1/inventory/ , /v1 est le chemin de base et /inventory est la ressource.
  • Les solutions de gestion des API permettent aux auteurs d'API de publier des API dans divers environnements, tels que ceux destinés à la production, aux tests ou à la préparation. Cela garantit la cohérence de chaque environnement et évite les erreurs de configuration. Les solutions automatisent également la création de nouvelles API et la modification des API existantes.
  • Passerelle API - Comme mentionné précédemment, les passerelles API protègent et fournissent le trafic entre votre backend et les consommateurs de vos API. La fonctionnalité de passerelle comprend l'authentification des appels API, le routage des demandes vers les backends correspondants, l'application de limites de vitesse pour éviter de surcharger vos systèmes ou d'atténuer les attaques DDoS, le déchargement du trafic SSL / TLS pour améliorer les performances et la gestion des erreurs et exceptions.
  • Microgateway - de nombreuses solutions ont un plan de données centralisé et étroitement lié (passerelle API) et un plan de contrôle (outil de gestion API). Tous les appels d'API doivent passer par le plan de contrôle, ce qui ajoute du retard. La passerelle API de cette approche architecturale est inefficace lors du traitement du trafic dans des environnements distribués (par exemple, le trafic intra-service dans un environnement de microservices ou le traitement du trafic IoT pour prendre en charge l'analyse en temps réel). Par conséquent, pour la gestion du trafic, lorsque les consommateurs et les fournisseurs d'API sont à proximité, les fournisseurs de solutions obsolètes ont introduit un composant logiciel supplémentaire - une micro-passerelle pour le traitement des appels d'API.
  • API Analytics - Au fur et à mesure que vos API deviennent populaires, vous devez vous assurer qu'elles apportent de la valeur à vos utilisateurs et répondent à vos objectifs commerciaux. C'est là que l'analyse devient critique. Les solutions de gestion des API fournissent des informations critiques via des visualisations (telles que des tableaux de bord et des rapports) des mesures et de l'utilisation des API, vous informant (à titre d'exemples) des API utilisées plus ou moins souvent, de l'évolution du trafic d'API au fil du temps et des développeurs sont les meilleurs consommateurs d'API. Les analyses d'API permettent au propriétaire d'une entreprise d'API, parfois appelé «gestionnaire de produit API», d'avoir un aperçu des performances d'un programme d'API.
  • Analytics est également important pour le dépannage. Les solutions de gestion des API fournissent une compréhension approfondie des performances de chaque API. Ces mesures permettent aux équipes d'infrastructure et d'exploitation de suivre et de résoudre les problèmes de performances et de sécurité. Voici des exemples de questions auxquelles un analyste peut répondre:

    • Quels sont l'état et la disponibilité de toutes mes instances de passerelle API?
    • Quand voit-on des ralentissements pour une API?
    • Quand les erreurs HTTP se produisent-elles pour une API?
    • Quels sont l'état et la disponibilité de toutes mes instances de la passerelle API?
    • Quand observe-t-on des ralentissements pour l'API?
    • Quand les erreurs HTTP se produisent-elles pour une API?

  • Sécurité des API - La sécurité est un aspect essentiel de l'infrastructure des API. Sans protection fiable, tout le monde peut accéder à vos données et API et introduire un comportement malveillant en appelant une demande à une API non sécurisée. L'API de sécurité comprend les éléments suivants:

    • Authentification - L'authentification fait référence au processus de détermination fiable de l'identité de l'appelant. Les clés d'API sont un mécanisme standard pour authentifier et identifier les abonnés qui souhaitent accéder à l'API. Les solutions de gestion des API fournissent aux fournisseurs d'API une interface pour générer des clés d'API, qui peuvent ensuite être transmises à des développeurs tiers pour une utilisation dans les appels d'API. OAuth est un mécanisme d'authentification largement utilisé.
    • Autorisation - L'autorisation fait référence au processus de détermination des privilèges ou des niveaux d'accès accordés à un utilisateur. Une façon d'autoriser les utilisateurs consiste à utiliser les jetons Web JSON (JWT). Les JWT sont des jetons d'accès qui revendiquent (les revendications sont la terminologie JWT pour les privilèges individuels). Par exemple, un JWT présenté par une application cliente peut inclure une assertion autorisant l'accès à une ressource spécifique. Si l'application cliente tente d'accéder à d'autres ressources, une erreur HTTP 403 interdite est renvoyée, une erreur est renvoyée.
    • Contrôle d'accès basé sur les rôles (RBAC) - RBAC fait référence à la définition des rôles d'utilisateur avec des privilèges spécifiques. Par exemple, les employés d'Infrastructure & Operations ne sont généralement pas responsables de la création et de la publication d'une API, mais uniquement de la surveillance et du dépannage. Ainsi, ils se voient attribuer un rôle qui n'a que ces privilèges. De même, seul le gestionnaire de produits API se voit attribuer un rôle qui a accès aux analyses d'API.
    • Limite de vitesse - la limite de vitesse fait référence à l'imposition d'une limite sur le nombre de demandes que l'agent demandeur peut effectuer sur une certaine période (par exemple, 10 000 demandes par seconde). Les limites de vitesse empêchent la surcharge de vos systèmes dorsaux et aident à atténuer les attaques DDoS. La solution de gestion des API fournit une interface pour déterminer les limites de vitesse que la passerelle API applique ensuite. Les limites de vitesse vous permettent également d'offrir des niveaux de service à plusieurs niveaux (par exemple, les clients Gold peuvent faire 10 000 demandes par seconde et les clients Silver peuvent en faire 5 000).

  • Portail pour les développeurs . Le portail des développeurs est un site en ligne où vous publiez des ressources qui vous aident à adapter rapidement vos consommateurs d'API, comme un catalogue d'API externe, une documentation complète et des exemples de code. Le portail des développeurs permet également aux développeurs tiers d'enregistrer leurs applications et de recevoir des clés d'API et des JWT. Certaines solutions fournissent également un mécanisme d'interaction entre les développeurs qui utilisent votre API. Un portail de développeur bien conçu est essentiel au succès de votre programme API.

Gérer l'API NGINX: utiliser la passerelle API leader de l'industrie

NGINX est déjà la passerelle API la plus utilisée de l'industrie - dans notre récente enquête, 40% de nos clients ont déclaré utiliser NGINX comme passerelle API.

Le nouveau module de contrôle API du contrôleur NGINX , qui sortira bientôt, combine la puissance et l'efficacité de NGINX Plus en tant que passerelle API avec de nouvelles fonctionnalités de niveau de gestion. Le contrôleur NGINX permet aux équipes Infrastructure & Operations et DevOps de définir, publier, protéger, suivre et analyser l'API, tout en gardant le contrôle sur le développement de l'API. Une surveillance et des alertes complètes garantissent la disponibilité, les performances et la fiabilité des applications. Le contrôleur NGINX offre une compréhension approfondie des métriques clés, permettant aux équipes Infrastrfrastructure & Operations et DevOps d'éviter d'abord les problèmes de performances et de résoudre rapidement tous les problèmes qui surviennent.

Notre approche de la gestion des API est différente des solutions traditionnelles. Contrairement à ces solutions, la passerelle API NGINX Plus (plan de données) ne nécessite pas de connexion permanente au contrôleur NGINX (plan de contrôle), de sorte que le trafic d'exécution de l'API est isolé du trafic de contrôle. Le contrôleur NGINX élimine le besoin de bases de données locales ou de composants supplémentaires qui peuvent créer une complexité, des retards et des points de défaillance inutiles pour les passerelles API NGINX Plus. Cela maximise les performances en réduisant le temps de réponse moyen pour servir un appel API et minimise le volume et la complexité de la passerelle. Le fait de détacher le plan de données du plan de contrôle vous donne la flexibilité de déployer autant d'instances de la passerelle API que l'exige l'architecture de votre application. Le contrôleur NGINX vous donne la liberté de choisir le bon déploiement pour les besoins internes et externes de l'API avec une solution facile, simple et hautes performances qui tire pleinement parti du plan de données NGINX Plus.

La technologie NGINX prend en charge les portails de développement Capital One - Devexchange . Cela a permis à Capital One d'adapter ses applications à 12 milliards d'opérations par jour avec des pics de 2 millions d'opérations par seconde avec des retards de seulement 10 à 30 millisecondes. NGINX prend également en charge le portail Adobe pour les développeurs d' E / S Adobe . Adobe I / O permet aux développeurs d'intégrer, d'étendre et de créer des applications basées sur les produits et technologies Adobe à l'aide de l'API. La plateforme traite des millions de demandes par jour avec un léger retard.

Voici une traduction, comment vous l'aimez? Nous attendons vos commentaires et vous invitons traditionnellement à une leçon ouverte , qui aura lieu le 11 février par notre professeur Igor Sakhankov .

Source: https://habr.com/ru/post/fr439222/


All Articles