Serverless ou pas serverless,
quechoisir ?
ExempledesAPIssurleCloudMicrosoftAzure
Meetup Juin 2017
Laurent Yin
Consultant Cloud & Integration
Marius Zaharia
Senior Cloud Architect
Azure MVP & Advisor
Introduction
Couche APIs
Architecture centrée autour des APIs
Applications mobiles Applications web
Applications clientes
natives
Objets connectés
Applications
d’entreprise
Applications
partenaires
Scénarii d’APIs : au cœur des archis SI
Scénarii
Concepts autour des architectures serverless
Ou full of servers?
Cloud
Evénements
Evénements
Evénements
CODE
Il n’y a plus la notion de
serveur.L’infrastructure supportée par les serveurs est abstraite.
Adaptation à la charge : gestion automatique de la scalabilité
Les nouvelles métriques plus pertinentes :
• les événements,
• la durée d’exécution
Déploiement simple sans contraintes d’infrastructure :
introduit de nouveaux niveaux de développement
La plateforme Cloud Microsoft Azure
Open and hybrid
Data-driven intelligence
Trust
App innovation
Les possibilités pour vos APIs sur Azure
API Apps vs Azure Functions :
FIGHT !
Azure API Apps
vs
Azure FunctionsDEMOs
Fonctionnalités
API Apps
 APIs déployées sans modifications de code
 APIs cloud ou hybridation on-premises
 Plateforme managée (PaaS) Hautement
disponible
 Métadonnées Swagger
 SSL, domaines custom
 affinité Cookie/ARR configurable
 Cross-Origin Resource Sharing (CORS)
configurable
Azure Functions
 Traitements stateless
 Plateforme managée (PaaS++)
 Scalabilité transparente
 Coût lié à l’événement et à l’opération
 SSL, domaines custom
 Cross-Origin Resource Sharing (CORS)
configurable
Plateforme technique
API Apps
 Plateforme App Service
 App Service Plans (partage des
apps)
 OS Windows (masqué)
 IIS comme serveur applicatif
Azure Functions
 Géré par Microsoft Azure
 OS Windows (masqué)
 IIS comme serveur applicatif
Développement : langages et frameworks
API Apps
 C#, Java, Python, PHP, Nodejs
 .NET Framework 3.5-4.6
 Java 7-8
 PHP 5.5-7.1
 Python 2.7-3.4
 Web Sockets
 32 ou 64 bit
 App Extensions
Azure Functions
 Se base sur le WebJobs SDK
 C#, JavaScript, F#, Python, PHP,
 Bash,
 Batch,
 PowerShell
Déploiement et cycle de vie
API Apps
 Déploiement via FTP, webdeploy
 Sources : Visual Studio Team
Services, GitHub, BitBucket,
stockage cloud, GIT local, …
 Versioning inclus
 Continuous Delivery natif avec
VSTS
 Jusqu’à 20 slots
Azure Functions
 WebDeploy
 Sources : Visual Studio Team
Services, GitHub, BitBucket,
stockage cloud, GIT local, …
 Continuous Delivery natif avec
VSTS
 Slot en preview
Intégration
API Apps
 Intégration avec Logic Apps et API
Management
(voire avec Power Apps et Flow)
 VNET / VPN avec on-premises
 Connexions hybrides avec on-
premises (sans VPN) possibles
 Exposition définition API
(Swagger)
Azure Functions
 Connecteurs natifs :
 Service Bus
 Azure Storage
 OneDrive
 Twilio
 Intégration avec Logic App
 Exposition définition API
(Swagger)
Mise à l’échelle
API Apps
 Scale Up-Down: de 1 à 4 CPU
 Niveaux de service Free et Shared
disponibles
 Scale Out-In : de 1 à 20 instances
(voire 50 avec App Service
Environments)
 Durée : quelque minutes (B, S, P);
- dizaines de minutes pour ASEs
 Autoscale : règles très flexibles
Azure Functions
 Scalabilité transparente
 Instantané
 Les serveurs sont préinstanciés
Fiabilité, continuité, testabilité
API Apps
 Jusqu’à 20 slots de staging
 Tests de performance
 Test en production (swap
progressif entre slots)
 Azure Backup : sauvegarde dans le
cloud et restauration
 Log Stream des logs web et
applicatifs
Azure Functions
 Possibilité de tester directement
sur le portail Azure
 Support des slots de staging
 Fonctionnalités Proxies
Productivité
API Apps
 Développement et déploiement
itératifs
 Web Editor en preview
 Remote debugging dans Visual
Studio
 Fonctionnalité « clone app »
 Console de management Kudu
 Process Explorer
Azure Functions
 Peu de gestion, rapide à mettre en
place
 Développement directement à
partir du portail
Sécurité
API Apps
 Auth. : anonyme, Azure AD,
Facebook, Microsoft Account,
Google, Twitter
 Token Store disponible
 Protection niveau VNET possible
(avec NSG)
 Détection/protection d’attaques
possible, avec WAF ou App GW
Azure Functions
 Possibilité de sécuriser son API
nativement
 Auth. : anonyme, Azure AD,
Facebook, Microsoft Account,
Google, Twitter
Pricing
API Apps
 Basé sur App Service Plans: Free,
Shared, Basic, Standard, Premium
 Prix modique à la base mais
monte fortement jusqu’à Premium
& ASE
 A nous d’optimiser le
remplissement des instances pour
un cout optimal
Azure Functions
 Dépend du nombre d’exécutions
et de la durée d’exécution
 Prix très faible (0,169 pour 1 million
d’exécution)
 Attribution gratuite par mois
And the WINNER IS … well it depends!
API Apps
 APIs « classiques » (pour web)
 APIs d’entreprise & B2B
 Multi-tenant
 APIs « legacy » (on-premises)
 Besoin de scalabilité forte
Azure Functions
 APIs « rapides » et « légères »
 Plus orienté microservice
 Scénarii d’intégration
 Applications orientées message
 Mise à l’échelle ultra-rapide mais
limitée en nombre
Thank you.

APIs dans Azure : serverless ou pas serverless?

  • 1.
    Serverless ou passerverless, quechoisir ? ExempledesAPIssurleCloudMicrosoftAzure Meetup Juin 2017
  • 2.
    Laurent Yin Consultant Cloud& Integration Marius Zaharia Senior Cloud Architect Azure MVP & Advisor
  • 3.
  • 4.
    Couche APIs Architecture centréeautour des APIs Applications mobiles Applications web Applications clientes natives Objets connectés Applications d’entreprise Applications partenaires Scénarii d’APIs : au cœur des archis SI
  • 5.
  • 6.
    Concepts autour desarchitectures serverless Ou full of servers? Cloud Evénements Evénements Evénements CODE Il n’y a plus la notion de serveur.L’infrastructure supportée par les serveurs est abstraite. Adaptation à la charge : gestion automatique de la scalabilité Les nouvelles métriques plus pertinentes : • les événements, • la durée d’exécution Déploiement simple sans contraintes d’infrastructure : introduit de nouveaux niveaux de développement
  • 7.
    La plateforme CloudMicrosoft Azure Open and hybrid Data-driven intelligence Trust App innovation
  • 8.
    Les possibilités pourvos APIs sur Azure
  • 9.
    API Apps vsAzure Functions : FIGHT !
  • 10.
  • 11.
    Fonctionnalités API Apps  APIsdéployées sans modifications de code  APIs cloud ou hybridation on-premises  Plateforme managée (PaaS) Hautement disponible  Métadonnées Swagger  SSL, domaines custom  affinité Cookie/ARR configurable  Cross-Origin Resource Sharing (CORS) configurable Azure Functions  Traitements stateless  Plateforme managée (PaaS++)  Scalabilité transparente  Coût lié à l’événement et à l’opération  SSL, domaines custom  Cross-Origin Resource Sharing (CORS) configurable
  • 12.
    Plateforme technique API Apps Plateforme App Service  App Service Plans (partage des apps)  OS Windows (masqué)  IIS comme serveur applicatif Azure Functions  Géré par Microsoft Azure  OS Windows (masqué)  IIS comme serveur applicatif
  • 13.
    Développement : langageset frameworks API Apps  C#, Java, Python, PHP, Nodejs  .NET Framework 3.5-4.6  Java 7-8  PHP 5.5-7.1  Python 2.7-3.4  Web Sockets  32 ou 64 bit  App Extensions Azure Functions  Se base sur le WebJobs SDK  C#, JavaScript, F#, Python, PHP,  Bash,  Batch,  PowerShell
  • 14.
    Déploiement et cyclede vie API Apps  Déploiement via FTP, webdeploy  Sources : Visual Studio Team Services, GitHub, BitBucket, stockage cloud, GIT local, …  Versioning inclus  Continuous Delivery natif avec VSTS  Jusqu’à 20 slots Azure Functions  WebDeploy  Sources : Visual Studio Team Services, GitHub, BitBucket, stockage cloud, GIT local, …  Continuous Delivery natif avec VSTS  Slot en preview
  • 15.
    Intégration API Apps  Intégrationavec Logic Apps et API Management (voire avec Power Apps et Flow)  VNET / VPN avec on-premises  Connexions hybrides avec on- premises (sans VPN) possibles  Exposition définition API (Swagger) Azure Functions  Connecteurs natifs :  Service Bus  Azure Storage  OneDrive  Twilio  Intégration avec Logic App  Exposition définition API (Swagger)
  • 16.
    Mise à l’échelle APIApps  Scale Up-Down: de 1 à 4 CPU  Niveaux de service Free et Shared disponibles  Scale Out-In : de 1 à 20 instances (voire 50 avec App Service Environments)  Durée : quelque minutes (B, S, P); - dizaines de minutes pour ASEs  Autoscale : règles très flexibles Azure Functions  Scalabilité transparente  Instantané  Les serveurs sont préinstanciés
  • 17.
    Fiabilité, continuité, testabilité APIApps  Jusqu’à 20 slots de staging  Tests de performance  Test en production (swap progressif entre slots)  Azure Backup : sauvegarde dans le cloud et restauration  Log Stream des logs web et applicatifs Azure Functions  Possibilité de tester directement sur le portail Azure  Support des slots de staging  Fonctionnalités Proxies
  • 18.
    Productivité API Apps  Développementet déploiement itératifs  Web Editor en preview  Remote debugging dans Visual Studio  Fonctionnalité « clone app »  Console de management Kudu  Process Explorer Azure Functions  Peu de gestion, rapide à mettre en place  Développement directement à partir du portail
  • 19.
    Sécurité API Apps  Auth.: anonyme, Azure AD, Facebook, Microsoft Account, Google, Twitter  Token Store disponible  Protection niveau VNET possible (avec NSG)  Détection/protection d’attaques possible, avec WAF ou App GW Azure Functions  Possibilité de sécuriser son API nativement  Auth. : anonyme, Azure AD, Facebook, Microsoft Account, Google, Twitter
  • 20.
    Pricing API Apps  Basésur App Service Plans: Free, Shared, Basic, Standard, Premium  Prix modique à la base mais monte fortement jusqu’à Premium & ASE  A nous d’optimiser le remplissement des instances pour un cout optimal Azure Functions  Dépend du nombre d’exécutions et de la durée d’exécution  Prix très faible (0,169 pour 1 million d’exécution)  Attribution gratuite par mois
  • 21.
    And the WINNERIS … well it depends! API Apps  APIs « classiques » (pour web)  APIs d’entreprise & B2B  Multi-tenant  APIs « legacy » (on-premises)  Besoin de scalabilité forte Azure Functions  APIs « rapides » et « légères »  Plus orienté microservice  Scénarii d’intégration  Applications orientées message  Mise à l’échelle ultra-rapide mais limitée en nombre
  • 22.