Upgrade to Pro — share decks privately, control downloads, hide ads and more …

2018-02 - Meetup AZUG FR - API Management et do...

2018-02 - Meetup AZUG FR - API Management et documentation

Nicolas ROBERT

February 27, 2018
Tweet

More Decks by Nicolas ROBERT

Other Decks in Programming

Transcript

  1. Diversification des services et modèles § Aujourd’hui, de plus en

    plus d’entreprises se projettent ou sont déjà dans le Cloud § Les grands Clouds publics –Azure et AWS – déploient à grande vitesse une diversité de services et fonctionnalités § Il devient de plus en plus difficile de s’y retrouver ou faire un choix clair
  2. Architecture moderne Cloud Agile / DevOps Architecture moderne Architecture moderne

    = Cet ensemble de concepts et modèles qui permettent de rendre les applications : • Plus rapides à implémenter, • Plus flexibles et élastiques, • Plus efficientes économiquement Elle s’appuie sur 2 piliers fondamentaux : I. Le Cloud II. Les pratiques DevOps et Agiles
  3. Architecture applicative moderne • Microservices • Event-Driven • Modern Orchestration

    • Architecture Lambda • … Infrastructure de déploiement moderne • Serverless • Containers • Modern Compute • Managed Containers • … Architecture moderne – 2 perspectives Des nouveaux patterns applicatifs, ou des modèles revisités dans le contexte du Cloud et du DevOps Des modèles de déploiement innovateurs devenus possibles par l’avènement du Cloud
  4. Architectures applicatives modernes dans Azure Azure Functions Event Grid Container

    Service (AKS) Container Instance (ACI) Service Fabric Cosmos DB Durable Functions Stream Analytics Event-Driven Microservices Modern Orchestration Arch. Lambda NoSQL L’applicabilité des patterns est multiple ; ce qui complexifie la classification et les associations des modèles. • Nous allons utiliser des matrices de choix et décision …… ……. Logic Apps
  5. Modèles de déploiement classique et modern Bare Metal IaaS PaaS

    Modern Compute Containers Serverless Managed Containers Serverless on Containers Modèles modernes : • Serverless, Containers, Modern Compute (Azure VMSS) Modèles composites : • Managed Containers (Azure ACI) • Serverless on Containers (Azure Functions on Linux) Modèles à venir : ? ? ? ? ?
  6. CONCEPTION Qui suis-je ? § Nicolas ROBERT § Technical Manager

    chez Cellenza § En charge de projets autour des thématiques : § Contact : https://stackoverflow.com/ users/3136339/nicolas-r https://www.linkedin.com/in/ robertnicolas/ @NicoRobPro Chatbot / Bot Framework Data, AI, Cognitive Services
  7. Sommaire API EXPOSER : Azure API Management CODER : Open

    API / Swagger DEPLOYER : VSTS + Azure PowerShell
  8. 1 Azure API Management 4 Mise à jour de la

    doc lors du déploiement 2 Documentation d’API avec Swagger 3 Synthèse
  9. Principales fonctionnalités § Portail « admin » (via portail Azure)

    § Utilisateurs : groupes, produits, souscriptions § Publisher / API Team : § Policies : quota, filtrage, etc. § Révisions § Versions § Possibilité de Mocking § Analytics § Customisation des pages portail dev § Portail « développeur » (utilisateurs APIs) : https://azug-demo.portal.azure-api.net/ § Souscription à des produits et récupération de clés d’API (Ocp-Apim-Subscription-Key) § Exemples d’utilisation du produit § Test
  10. Documenter son API Ici, nous sommes donc des « publishers

    » : une équipe en charge de la fourniture d’une API à des développeurs tiers. Objectif : simplifier, automatiser au maximum la livraison de notre API et de sa documentation
  11. Swashbuckle + Swashbuckle.Examples Swashbuckle.Examples Swashbuckle.AspNetCore.Examples § Documentation : § Exemples

    : Swashbuckle • Projets ASP.Net classiques Swashbuckle.AspNetCore • Projets .Net Core
  12. Informations générées § Swagger file : § https://azug-webapi-core- sample.azurewebsites.net/swagger/ v1/swagger.json

    § Affichage via Swagger UI : § https://azug-webapi-core- sample.azurewebsites.net/swagger/
  13. Utilisation d’Azure PowerShell Création d'une API Déploiement initial Mise à

    jour auto 1 Mise à jour auto 2 ... #1 – Définition d’un contexte $ApiMgmtContext = New-AzureRmApiManagementContext -ResourceGroupName "$(ApiMgtResourceGroupName)" -ServiceName "$(ApiMgtServiceName) » #2 – Import de la définition de l’API via le fichier JSON Swagger Import-AzureRmApiManagementApi -Context $ApiMgmtContext -SpecificationFormat "Swagger" -SpecificationUrl "$(ApiDescriptionFullPath) » -Path "$(ApiSuffix) » -ApiId "$(ApiUniqueId)"
  14. Synthèse § Dans cette démo vous avez vu : üComment

    ajouter une documentation simple et rapide üComment remonter cette documentation jusqu’aux utilisateurs de vos APIs üComment faire ces mises à jour de manière automatique § Les points que l’on a pas abordé : § Gestion des produits / utilisateurs / groupes § Sécurité : gestion autorisation (OAuth 2.0 / OpenID connect)
  15. Pour aller plus loin… § Quelques informations / documentations /

    outils / tutos : § Azure API Management : Documentation § Tarification : https://azure.microsoft.com/fr-fr/pricing/details/api-management/ § Utilisation avec Service Fabric : https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-api- management-overview § Personnalisation du portail développeur : https://docs.microsoft.com/fr-fr/azure/api-management/api- management-customize-styles § Azure PowerShell pour APIM : https://docs.microsoft.com/en- us/powershell/module/azurerm.apimanagement/?view=azurermps-5.3.0#api_management § Sources de ce Meetup sur Github : https://github.com/nrobert/Azure-WebApiCore-Sample § Twitter Azure API Management : https://twitter.com/azureapimgmt