Modifier

Partager via


Déploiements d’API automatisés avec APIOps

Gestion des API Azure
Azure DevOps
Azure Pipelines

APIOps est une méthodologie qui applique les concepts de GitOps et de DevOps au déploiement d’API. Comme DevOps, APIOps permet aux membres des équipes d’apporter facilement des modifications et de les déployer de manière itérative et automatisée. Cette architecture montre comment vous pouvez améliorer l’ensemble du cycle de vie et de la qualité de l’API en utilisant APIOps.

Architecture

Diagramme de l’architecture de déploiements d’API automatisés utilisant APIOps sur Azure.

Téléchargez un fichier Visio de cette architecture.

Workflow

  1. Les opérateurs d’API exécutent le pipeline extracteur pour synchroniser le dépôt Git avec l’instance Gestion des API et le remplir avec des objets de Gestion des API au format approprié.

  2. Si une modification de l’API est détectée dans l’instance Gestion des API, une demande de tirage (PR) est créée pour que les opérateurs soient examinés. Les opérateurs fusionnent les modifications dans le dépôt Git.

  3. Les développeurs d’API clonent le dépôt Git, créent une branche, et créent des définitions d’API à partir de la spécification OpenAPI ou des outils de leur choix.

  4. Si un développeur pousse les modifications vers le dépôt, une demande de tirage est créée pour révision.

  5. La PR peut être approuvée ou révisée automatiquement, en fonction du niveau de contrôle nécessaire.

  6. Une fois les changements approuvés et fusionnés, le pipeline de publication déploie les derniers changements sur l’instance Gestion des API.

  7. Les opérateurs d’API créent et modifient les stratégies, les diagnostics, les produits et d’autres objets pertinents de Gestion des API, puis valident les changements.

  8. Les changements sont révisés et fusionnés après l’approbation.

  9. Une fois les changements fusionnés, le pipeline de publication déploie les changements à l’aide du processus des définitions d’API.

Composants

  • Gestion des API Azure crée des passerelles d’API modernes et cohérentes pour les services principaux. En plus du routage des appels d’API vers les back-ends, cette plateforme vérifie également les informations d’identification, applique les quotas d’utilisation et journalise les métadonnées.

  • Azure DevOps est un service qui vous permet de gérer votre cycle de vie de développement de bout en bout, notamment la planification et la gestion du projet, la compilation et la mise en production, en passant par la gestion du code.

  • Azure Pipelines permet l’intégration continue (CI) et la livraison continue (CD) afin de tester et générer votre code et de l’expédier vers n’importe quelle cible.

  • Azure Repos est un ensemble d’outils de gestion de version, y compris Git standard, que vous pouvez utiliser pour gérer votre code.

Autres solutions

Cette solution utilise Azure Repos pour fournir les fonctionnalités Git et Azure Pipelines fournit les pipelines. Vous pouvez utiliser n’importe quelle technologie comparable.

Détails du scénario

APIOps utilise la gestion de versions pour gérer les API et créer une piste d’audit des modifications apportées aux API, aux stratégies et aux opérations.

Les développeurs d’API qui utilisent une méthodologie APIOps révisent et auditent les API plus tôt et plus fréquemment, interceptant et corrigeant les écarts avec les normes d’API plus rapidement pour améliorer les spécifications et la qualité des API. Plus vous créez et déployez d’API avec une approche APIOps, plus vous avez de cohérence entre les API.

Cette architecture APIOps utilise Gestion des API Azure comme plateforme de gestion des API. Azure DevOps organise la gestion des API. Azure Repos fournit des fonctionnalités Git et Azure Pipelines crée le pipeline CI/CD.

Cas d’usage potentiels

  • Toute organisation qui développe et gère des API
  • Secteurs d’activité hautement réglementés : assurance, banque, finance, gouvernement

Considérations

Ces considérations implémentent les piliers d’Azure Well-Architected Framework, un ensemble de principes directeurs que vous pouvez utiliser pour améliorer la qualité d’une charge de travail. Pour plus d’informations, consultez Microsoft Azure Well-Architected Framework.

Sécurité

La sécurité fournit des garanties contre les attaques délibérées, et contre l’utilisation abusive de vos données et systèmes importants. Pour plus d’informations, consultez Vue d’ensemble du pilier Sécurité.

Cette solution offre plusieurs avantages en matière de sécurité. Les développeurs individuels, et même les opérateurs, n’accèdent pas directement à l’instance Gestion des API pour appliquer les changements ou les mises à jour. À la place, les utilisateurs poussent les changements dans un dépôt Git, puis l’extracteur et les pipelines de publication les lisent et les appliquent à l’instance Gestion des API. Cette approche suit les bonnes pratiques de sécurité du moindre privilège en ne donnant pas aux équipes l’autorisation d’écrire sur l’instance du service Gestion des API. Dans des scénarios de diagnostic ou de résolution des problèmes, vous pouvez accorder des autorisations élevées pendant une durée limitée au cas par cas.

Afin que les instances Gestion des API utilisent les bonnes pratiques de sécurité, vous pouvez étendre cette solution pour appliquer les bonnes pratique de l’API en utilisant des outils tiers et des tests unitaires. Les équipes peuvent fournir des commentaires précoces en révisant la PR si les changements proposés sur une API ou une stratégie ne respectent pas les standards.

En plus de la configuration des autorisations de dépôt, implémentez les mesures de sécurité suivantes dans les dépôts Git synchronisés avec les instances Gestion des API :

  • Examen de la demande de tirage (Pull Request) : utilisez des branches et protégez les branches qui représentent l’état des instances Gestion des API contre l’envoi direct de changements. Demandez à ce que les PR bénéficient d’au moins un réviseur afin d’appliquer le principe des quatre yeux.
  • Historique immuable : autorisez seulement les nouvelles validations sur les changements existants. L’historique immuable est particulièrement important pour les audits.
  • Authentification multifacteur : exigez que vos utilisateurs activent l’authentification à deux facteurs.
  • Validations signées : autorisez aussi uniquement les validations signées qui ne peuvent pas être modifiées après le fait.

Optimisation des coûts

L’optimisation des coûts consiste à réduire les dépenses inutiles et à améliorer l’efficacité opérationnelle. Pour plus d’informations, consultez Vue d’ensemble du pilier d’optimisation des coûts.

  • Utiliser la calculatrice de prix Azure pour estimer les coûts.

  • Gestion des API offre les niveaux suivants : Consommation, Développeur, De base, Standard et Premium.

  • GitHub offre un service gratuit. Toutefois, pour utiliser les fonctionnalités de sécurité avancées, comme les propriétaires de code ou les réviseurs obligatoires, vous avez besoin d’un Plan d’équipe. Pour plus d’informations, consultez les Tarifs GitHub.

Excellence opérationnelle

L’excellence opérationnelle couvre les processus d’exploitation qui déploient une application et maintiennent son fonctionnement en production. Pour plus d’informations, consultez Vue d’ensemble du pilier Excellence opérationnelle.

APIOps peut augmenter la productivité DevOps pour le développement et les déploiements d’API. L’une des fonctionnalités les plus utiles est la possibilité d’utiliser des opérations Git pour restaurer rapidement les changements qui se comportent de manière inattendue. Le graphe de validation contient toutes les validations pour aider l’analyse post-mortem.

Les opérateurs d’API gèrent souvent plusieurs environnements pour le même ensemble d’API. Souvent, vous pouvez avoir plusieurs phases d’une API déployées sur différentes instances Gestion des API ou dans une instance Gestion des API partagée. Le référentiel Git, qui est la seule source de vérité, indique les versions des applications actuellement déployées sur un cluster.

Quand un utilisateur crée une PR dans le dépôt Git, l’opérateur d’API sait qu’il a du nouveau code à réviser. Par exemple, quand un développeur prend la spécification OpenAPI et génère l’implémentation de l’API, il ajoute ce nouveau code au dépôt. Les opérateurs peuvent réviser la PR et vérifier que l’API qui a été envoyée pour révision suit les bonnes pratiques et les standards.

Efficacité des performances

L’efficacité des performances est la capacité de votre charge de travail à s’adapter à la demande des utilisateurs de façon efficace. Pour plus d’informations, consultez Vue d’ensemble du pilier d’efficacité des performances.

APIOps a de nombreux avantages, mais plus les paysages de Gestion des API se développent, plus il est difficile de les gérer. Cette solution permet de relever des défis, tels que :

  • Avoir une vue d’ensemble de tous les environnements et instances Gestion des API.
  • Suivre les changements critiques des API et des stratégies.
  • Création d’une piste d’audit pour tous les changements déployés.

Déployer ce scénario

Le déploiement de cette solution implique les étapes suivantes :

  • Développer l’API dans le portail ou effectuer des changements sur la spécification OpenAPI en utilisant l’outil de votre choix.

    • Si vous effectuez des changements dans le portail, vous pouvez exécuter l’extracteur pour extraire automatiquement toutes les API et d’autres stratégies, opérations et configurations pertinentes de Gestion des API. Vous pouvez synchroniser ces informations dans le dépôt Git.

    • Si vous le souhaitez, utilisez l’interface CLI Azure DevOps pour créer une nouvelle demande de tirage.

  • Le workflow de l’extracteur comprend les étapes suivantes :

  • Dans notre scénario, le pipeline qui télécharge les changements effectués dans le portail vers l’instance Gestion des API a les étapes suivantes : Générer l’extracteur, Créer des artefacts à partir du portail et Créer une branche de modèle.

    • Générer l’extracteur

      Cette étape génère le code de l’extracteur.

    • Créer des artefacts à partir du portail

      Cette étape exécute l’extracteur et crée des artefacts qui ressemblent à une structure de dépôt Git comme celle illustrée dans la capture d’écran suivante :

      Capture d’écran d’ « Automation d’APIM » montrant des « instances d’APIM » et une hiérarchie de dossiers.

      • Créer une branche de modèle

        Une fois l’artefact généré, cette étape crée une PR avec les changements extraits pour que l’équipe de plateforme puisse les réviser.

        La première fois que vous exécutez l’extracteur, il tire tout ce qui se trouve dans le dépôt Git. La PR créée contient toutes les API, stratégies, artefacts, etc.

        Les extractions ultérieures contiennent uniquement les changements effectués avant l’extraction dans la PR. Parfois, les changements peuvent concerner uniquement la spécification d’une API, ce qui est le cas dans l’exemple de PR suivant.

        Capture d’écran d’un exemple de demande de tirage après extraction, montrant des modifications proposées d’un fichier nommé « specification.yml ».

  • Un réviseur accède aux demandes de tirage pour afficher les demandes de tirage mises à jour. Vous pouvez également configurer des approbations automatiques pour automatiser cette étape.

    Capture d’écran d’un exemple de demande de tirage, montrant des modifications de contenu dans un fichier « policy.xml » et des changements uniquement d’espaces dans d’autres fichiers.

  • Une fois la PR approuvée, elle déclenche un autre pipeline dont le sens de publication part de Gestion des API vers le portail. Dans notre exemple, il a les étapes suivantes : générer le créateur, générer le terminateur et publier les instances APIM.

    Capture d’écran des étapes d’un pipeline APIM-publish-to-portal.

    • L’étape générer le créateur gère la création des API.
    • L’étape générer le terminateur traite toutes les suppressions.
    • L’étape publier les instances APIM publie les changements effectués sur l’instance Gestion des API.

    Capture d’écran montrant les travaux dans un exemple de pipeline APIM-publish-to-portal.

    Après l’exécution de ce pipeline, tous les changements sont publiés dans l’instance Gestion des API.

Contributeurs

Cet article est géré par Microsoft. Il a été écrit à l’origine par les contributeurs suivants.

Auteur principal :

Pour afficher les profils LinkedIn non publics, connectez-vous à LinkedIn.

Étapes suivantes