Accueil > API Management : définition, gestion et objectifs
Adnan El Akkaoui
2 avril 2020

API Management : définition, gestion et objectifs

API Management : définition, gestion et objectifs

Après avoir abordé lors de l’article précédent le rôle central de l’API dans la stratégie d’entreprise, nous allons aujourd’hui nous consacrer à la gestion par API Management. Différents axes vont être abordés tout au long de ce billet de blog coécrit par Wael Amri et Adnan El Akkaoui.

 

Définition de l’API Management

Qu’est-ce qu’une plateforme d’API Management ?

 

Une plateforme d’API Management offre un environnement sécurisé et fiable pour exposer et gérer vos APIs. Elle fournit tous les outils nécessaires pour la gestion de bout en bout des APIs et donc l’échange des données.

Une telle plateforme garantit des performances optimales des APIs et permet notamment au client :

  • D’imposer une sécurité de très haut niveau en s’authentifiant et en gérant les accès,
  • De versionner les APIs,
  • La possibilité de contrôler l’accès aux APIs via les « Policies »,
  • La surveillance de l’état des APIs avec les outils de monitoring.

API Management : son fonctionnement

 

 

Les enjeux de l’APIM

Les enjeux de l’API Management (APIM) peuvent être répartis selon 2 grands axes :

  • Le cycle de vie des API Management,
  • L’écosystème des API Management.

 

Cycle de vie des API Management

Le cycle de vie des APIM répond aux enjeux de 3 thèmes que nous allons aborder : Scope, Scale, Standards.

 

Scope : l’importance de la portée du programme d’APIs

L’un des grands défis de l’exploitation d’un programme d’API Management est d’atteindre le niveau approprié de contrôle central. Pour le rendre encore plus compétitif, le niveau approprié change à mesure que le produit d’API Management mûrit.

Au début du programme, il est normal de se concentrer directement sur les détails du design de l’API. Dans les cas où les APIs en sont à leur commencement, ces détails de conception peuvent provenir directement de l’équipe qui le met en œuvre. Au fur et à mesure de l’augmentation du nombre d’équipes travaillant sur les APIs, la variété des styles, des expériences et des points de vue vont augmenter également. Il devient alors plus difficile de maintenir la cohérence entre toutes les équipes et de faire respecter les directives publiées par l’entreprise.

En d’autres termes, plus la portée de notre programme s’étend, plus l’ensemble des lignes directrices doit s’étendre de manière appropriée.

 

Scale : gestion des problématiques de mise à l’échelle des APIs

Le deuxième grand défi permettant de créer et de maintenir un programme d’API Management robuste consiste à gérer les problématiques de scaling au fil du temps. Comme nous l’avons vu dans le point précédent, le fait d’augmenter le nombre d’équipes et le nombre d’APIs créées par ces dernières est déjà un défi en tant que tel. Les processus nécessaires de monitoring et de gestion des APIs au moment de leurs exécutions changeront également à mesure que le système mûrit. Les outils nécessaires pour suivre les APIs implémentées par la même équipe dans un seul emplacement physique sont très différents des outils nécessaires pour suivre des centaines ou des milliers d’APIs dispersées sur plusieurs fuseaux horaires et pays.

 

Standards : la puissance des normes

L’un des principaux changements qui se produit lorsqu’on commence à opérer au niveau de l’écosystème plutôt qu’au niveau de l’API, réside dans la puissance des standards et des normes. En effet, ces derniers fournissent des bonnes pratiques aux équipes en charge du design et de l’implémentation et qui déploient des APIs au niveau de l’organisation.

Par exemple, l’une des raisons pour laquelle le WWW (World Wide Web) a pu continuer à bien fonctionner depuis sa création en 1990 est que ses concepteurs ont décidé très tôt de s’appuyer sur des normes générales. Leurs forces résident dans le fait qu’elles s’appliquent à tous les types de plateformes logicielles et de langages au lieu de créer étroitement des pratiques de mise en œuvre ciblées et basées sur un langage ou un cadre unique. Cela permet aux équipes créatives d’inventer de nouveaux langages, modèles d’architecture et même des cadres d’exécution sans casser les implémentations existantes.

 

Ecosystème des API Management

Dans cette partie, nous allons mettre l’accent sur les trois défis liés à l’écosystème d’API Management : la technologie, les équipes et la gouvernance.

 

La technologie au service du Business

Lorsque qu’on démarre un programme d’API, il est important de prendre une série de décisions techniques qui affecteront toutes nos APIs. Le fait que toutes nos APIs ne soient qu’un petit ensemble à ce stade n’est pas important. Ce qui importe, c’est le fait de disposer d’un ensemble cohérent d’outils et de technologies sur lesquels nous pouvons compter lors de la création de notre programme d’API initial.

Cela signifie généralement qu’il faut sélectionner et prendre en charge un petit ensemble d’outils et fournir un ensemble de documents d’orientation très clairs et souvent détaillés pour aider nos équipes d’API à concevoir et à créer des APIs qui résolvent les problèmes du business et fonctionnent ensemble.

 

Les équipes

La technologie n’est pas le seul aspect à prendre en compte dans la gestion des APIs. La composition des équipes doit également s’adapter à mesure que l’écosystème évolue. Une fois de plus, au début de notre programme API, il est possible de n’avoir que quelques personnes engagées pour gérer la mise en place des APIs. Les profils de Développeur Full-stack, de Développeur MEAN (MongoDB, Express.js, Angular.js, Node.js) ou de Développeur maîtrisant tous les aspects de notre programme API sont notamment recherchés pour constituer une équipe efficace. On pourra entendre peut-être aussi beaucoup parler d’équipes de démarrage ou d’équipes autonomes. Finalement, tout se résume à avoir toutes les compétences dont nous avons besoin dans une seule équipe.

 

La gouvernance

Le dernier enjeu auquel répond un écosystème d’APIM est l’approche générale de la gouvernance du programme API. Une fois de plus, comme dans d’autres cas mentionnés ici, nous constatons que le rôle et les leviers de gouvernance changeront à mesure que l’écosystème se développera. De nouveaux défis apparaissent et les anciennes méthodes ne sont plus aussi efficaces qu’elles l’étaient par le passé. En effet, au niveau de l’entreprise, s’en tenir aux anciens modèles de gouvernance peut ralentir et même bloquer le succès des APIs.

Comme dans n’importe quel domaine de leadership, lorsque la portée et l’échelle sont limitées, une approche basée sur la fourniture de conseils directs peut être la plus efficace. Cela est souvent vrai pour les petites équipes, mais aussi pour les nouvelles équipes. Lorsqu’il n’y a pas beaucoup d’expérience d’exploitation, le moyen le plus rapide de réussir est de fournir cette expérience sous la forme de directives détaillées et/ou de documents de processus.

 

en savoir plus sur l'API management grâce aux experts Cellenza

 

API Management : atouts et limites

 

Les atouts d’Azure API Management

La solution Azure API Management est un moyen fiable, sécurisé et évolutif pour publier, consommer et gérer les API exécutées sur la plateforme Azure. Elle garantit des performances optimales des APIs, le monitoring et plusieurs autres atouts parmi lesquels nous retrouvons :

La protection contre les menaces : les APIs Gateways offrent une protection prête à l’emploi contre les attaques de robots, l’utilisation non autorisée, les virus susceptibles de corrompre vos systèmes backend et d’autres logiciels malveillants.

Les analyses et les rapports : les portails et l’API Gateways permettent aux organisations d’analyser les programmes d’API avec des capacités d’analyse avancées. Le trafic API, le nombre d’utilisateurs, la disponibilité des APIs, les APIs les plus populaires, les APIs qui génèrent le plus de revenus ne sont que quelques-unes des métriques que vous pouvez analyser avec l’API Management.

La monétisation des APIs : en ouvrant un flux de donnés et en rendant vos données disponibles pour un accès plus large et en plus des revenus qu’elles génèrent, vous pouvez générer des revenus directs à partir des APIs. Les principales solutions d’API Management permettent des abonnements aux APIs qui fournissent des flux de revenus supplémentaires en exposant des APIs que certains paieraient pour les utiliser.

La gestion des accès : il est possible de mettre en place un workflow de travail standardisé dans votre organisation, notamment pour gérer les utilisateurs qui peuvent accéder à vos APIs. L’API Management vous permet de tirer parti de diverses normes telles que SAML, OpenID Connect, LDAP, OAuth, JWT, Kerberos pour garder le contrôle sur les droits accès.

L’API Marketplaces : l’API Management vous offre un portail qu’il est possible de personnaliser (apparence pour chaque Marketplace…).

La documentation :  l’un des plus grands obstacles à l’adoption de l’API est le manque de bonne documentation. L’API Gateways vous permet de partager votre fichier de définition d’API dans différents formats. De plus, elle vous permet de partager de la documentation supplémentaire sous forme de PDF, PowerPoint, XLSX, TXT, JPEG et d’autres formats de fichiers.

Le service mesh : le service mesh facilite la gestion et la mise en réseau des microservices en créant une couche de contrôle dans laquelle vous définissez les règles des transactions des microservices. L’API Management vous permettra d’intégrer votre service mesh dans la couche de gestion d’API.

 

Les limites d’Azure API Management

Malgré les nombreux atouts, Azure API Management comporte quelques limites comme :

  • L’automatisation de l’infrastructure réseau qui ne fonctionne pas toujours bien,
  • La tarification qui peut devenir difficile à suivre et à prévoir (c’est un problème courant avec les produits Azure). C’est aussi cher pour les startups et les petites entreprises.

 

Les cas d’usages de l’API Management (APIM)

L’API Management fournit une interface unique pour approvisionner et administrer vos applications clientes (applications mobiles, applications serveurs).

Avec un API Management plusieurs possibilités sont offertes, à savoir :

  • La gestion d’un catalogue de services : les APIs exposées par l’API management sont référencées et organisées. On dispose alors d’une vitrine pour un usage interne ou externe,
  • Une consommation des APIs simplifiée via un portail développeur, ce qui favorise la collaboration et l’innovation,
  • La sécurisation des APIs : en agrégeant les APIs dans l’APIM et en veillant à ce que les micro-services ne soient pas exposés, on va limiter les potentielles cyberattaques,
  • La surveillance des APIs en consultant les métriques d’utilisation, l’identification des erreurs et la configuration de la limitation des accès aux APIs,
  • La création et l’exécution des rôles sur les APIs : on pourra définir des API Policies sur les requêtes entrantes par API ou par opération exécutée par l’API,
  • La simplification de la gestion des APIs : on offre la possibilité de gérer leurs cycles de vie en introduisant facilement les nouvelles versions, qui sont susceptibles de comprendre des breaking changes traduits par la suppression d’une opération d’une API ou le changement du modèle,
  • La mise à disposition d’une interface centrale pour consolider et gérer plusieurs APIs sur différentes plateformes,
  • L’implémentation native du mécanisme d’authentification.

 

Les avantages à utiliser Azure API Management

Cette plateforme de gestion hybride et multi-Cloud pour les APIs permet de créer des APIs Gateways cohérentes et modernes pour les services backend existants.

L’interfaçage établi entre les services backend et les APIs permet d’assurer une meilleure sécurité, du monitoring et de la documentation des APIs publiées dans le Cloud.

 

La plateforme API Management de Microsoft Azure présente de multiples avantages :

  • Disponibilité immédiate en utilisant un abonnement Azure,
  • Capitalisation des fonctionnalités internes (C#, Azure DevOps),
  • Tirer profit du modèle SaaS pour une phase d’évaluation (facturation mensuelle, évolutivité, mise en place rapide),
  • Déploiement multi-région.

Le schéma ci-dessous montre l’Azure API Management en interaction au sein de l’écosystème Microsoft Azure :

Azure APIM en interaction avec Azure

 

 Comment implémenter une solution d’API Management  ?

 

Mise en place de notre APIM via le portail

Dans ce qui va suivre, nous allons mettre en place le service API management à travers le portail Azure. Il faut bien évidemment avoir une souscription Azure et créer en amont un resource group.

Mise en place APIM via la portail

 

 

Une fois le resource group créé, nous allons mettre en place le service nous permettant de gérer les performances, à savoir « Application Insights » qui est une fonctionnalité d’Azure Monitor. Ce service va nous faciliter la supervision de notre APIM en temps réel, détecter les anomalies, diagnostiquer les problèmes qu’on pourra rencontrer et enfin comprendre l’usage que les utilisateurs font de notre APIM.

APIM sur Azure : Application Insight

 

 

Ensuite, nous allons entamer la phase de création de l’API Management depuis le portail Azure.

Création de l'API Management depuis le portail Azure

 

 

 

Le service Azure APIM prend en charge l’importation de nouvelles APIs, soit à travers la création de celles-ci en les associant à l’APIM ou bien via l’ajout à des APIs existantes. Plusieurs alternatives sont offertes lors de ce processus :

  • OpenAPI Specification,
  • WADL,
  • WSDL,
  • Logic App,
  • API App,
  • Function App.

 

Quel style d’architecture adopter ?

L’ouverture du système d’information est un enjeu majeur pour développer de nouveaux business models et accélérer l’innovation. Nous pensons que ce point constitue le moteur de l’économie numérique. En effet, il existe en ce moment plusieurs démarches pour répondre aux différents enjeux qui sont présents, à savoir :

  • Open API,
  • SOAP,
  • REST,
  • Azure Functions.

Dans ce qui suit, nous allons détailler ces différentes démarches.

 

Open API

Ce principe consiste à bâtir un écosystème ouvert via l’exposition de services qui vont être consommés par des tiers sans pour autant avoir une idée préconçue sur l’usage qui en sera fait. C’est donc cette stratégie d’écosystème ouvert qui va engendrer :

  • La création des revenus directs en les facturant. C’est le cas de Google Maps qui devient payant au-delà de 25 000 transactions (appels) par jour.
  • L’émergence de nouveaux usages pour sa plateforme et donc faire évoluer son modèle de revenu. Comme le cas d’Apple en 2009, qui a constaté que les développeurs d’applications souhaitaient vendre non seulement des applications, mais aussi des contenus pour leurs applications. Le modèle de l’App Store a donc évolué pour intégrer cette possibilité.
  • L’externalisation de la branche R&D puis le rachat des startups les plus talentueuses comme l’a fait SalesForce avec Financialforce.com.

 

SOAP

SOAP (Simple Object Access Protocol) est un protocole de communication qui repose sur le langage XML. Il permet le transfert des messages entre des programmes qui s’exécutent dans des systèmes d’exploitation distincts (Windows, Linux).

Microsoft a développé la technologie SOAP pour remplacer les anciennes technologies comme DCOM et CORBA. Ces technologies ont échoué car elles reposent sur la messagerie binaire. La messagerie XML utilisée par SOAP fonctionne mieux sur Internet.

 

REST

REST (REpresentational State Transfer) est un style d’architecture pour les systèmes distribués basés sur l’exposition des ressources.

Actuellement, la technologie REST API est plus utilisée que SOAP car elle est plus performante et consomme moins de bande passante.

Avec l’utilisation croissante du Cloud, l’architecture REST demeure le choix le plus adapté pour créer des APIs qui permettent aux utilisateurs de se connecter et d’interagir avec les services Cloud.

 

Azure Functions AS API

Les Azure Functions peuvent être utilisées comme une plateforme légère pour créer des APIs. Elles prennent en charge un certain nombre de fonctionnalités, notamment les custom routes et les output bindings qui vont nous permettre d’implémenter des règles métiers complexes.

Elles ont également un modèle de tarification basé sur la consommation et suivent donc l’architecture Serverless. En effet, il s’agit d’un modèle de tarification à l’utilisation à faible coût quand on dispose d’un faible trafic. Ce modèle peut évoluer ou exploser pour des niveaux de demande plus élevés.

 

Architecture technique d’une APIM

APIM : les différents intervenants

 

Le schéma ci-dessus nous montre clairement l’interaction entre les différents intervenants à travers l’APIM. L’APIM crée une couche d’abstraction des APIs à partir de leurs implémentations respectives et permet la sécurisation des APIs (Microservices) en les agrégeant dans l’APIM et en interdisant leur exposition.

L’APIM est livré avec un portail développeur qui est un site Web généré automatiquement et entièrement personnalisable où l’on peut découvrir et paramétrer les APIs.

L’API Gateway est le point d’entrée unique pour tous les consommateurs et permet de gérer toutes les requêtes et de les transférer aux services appropriés. Il peut exposer un service diffèrent pour chaque consommateur.

Il est important de noter que le service APIM prend en charge l’importation des applications Azure Functions en tant que nouvelles APIs ou bien en les ajoutant à des APIs existantes. Dans notre cas de figure, nous allons procéder en créant notre API en tant qu’Azure Function et l’exposer par la suite en tant qu’API.

 

Nous allons commencer par créer le socle technique de notre exemple. Ce sera une Azure function de type Http Trigger et à chaque fois que l’on aura besoin d’exposer une opération de notre API, une nouvelle Azure function devra être mise en place.

 

Mise en place d'une nouvelle Azure Function

 

Les deux figures ci-dessous montrent l’ensemble des opérations exposées par les Azure Functions.

opérations exposées par les Azure Functions

 

Opérations exposées par les Azure Functions

 

 

Un test via Postman afin de vérifier que notre Azure function est opérationnelle, on récupère ci-dessous un produit en lui passant son identifiant en mode Template paramètre :

Test API avec Postman

 

 

 

Ensuite, on va créer un compte de stockage qui va correspondre à notre Table Storage.

Création du compte de stockage qui va correspondre au Table Storage

 

Par la suite, on va créer les function app qui va encapsuler nos Azure functions.

Création des function app

 

 

La phase de publication est primordiale pour visualiser nos Azure functions dans le portail Azure.

Publication Azure Function

 

 

Après la publication des Azure functions, il faut introduire la « Connection String » de la Table Storage dans la liste des configurations (cf capture ci-dessous) :

Introduction de la connexion string de la Table Storage

 

 

Une fois nos Azure functions exposées et afin de les sécuriser, on va les importer dans l’APIM.

Importation des Azure Function dans l'APIM

Importation des Azure Function

 

 

 

La figure ci-dessous, montre la mise en pratique de l’Azure function GetProducts et la réponse qui lui est associée.

Mise en pratique de l'Azure Function GetProducts

 

 

La capture d’écran ci-après illustre un appel à l’Azure Function CreateProduct en lui passant les paramètres de création dans le body puisqu’il s’agit d’une requête de type POST.

Appel à l'Azure Function Create Product

 

 

Pour clôturer nos tests, on va effectuer un appel à notre API en passant par l’APIM, via Postman :

Test appel API en passant par l'API grâce à Postman

 

 

Pour terminer, il faut noter qu’Azure API Management offre une solution de bout en bout pour gérer le cycle de vie des APIs. Cela favorise une approche simplifiée, rationalisée de la configuration et de la gestion de l’API. Il est important de souligner que l’interaction avec d’autres APIs développées et hébergées sur Azure est tout à fait réalisable.

Vous souhaitez aller plus loin sur ce sujet ? Découvrez la suite avec cet article sur les APIs dans un écosystème d’innovation.

 

 

Recevez notre livre blanc "Comprendre et intégrer les APIs dans son entreprise"

Nos autres articles
Commentaires
Laisser un commentaire

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

Restez au courant des dernières actualités !
Le meilleur de l’actualité sur le Cloud, le DevOps, l’IT directement dans votre boîte mail.