Windows Azure Web Sites, Cloud Services ou 
Virtual Machines ? Quelles technologies pour 
Windows Azure 
mon application web ? 
Benjamin Talmard - @benjiiim 
Windows Azure Technical Evangelist 
Microsoft France 
Julien Plée - @JulPlee 
Responsable Etudes et Développements 
Talentsoft
Donnez votre avis ! 
Depuis votre smartphone sur : 
http://notes.mstechdays.fr 
De nombreux lots à gagner toute les heures !!! 
Claviers, souris et jeux Microsoft… 
Merci de nous aider à améliorer les Techdays ! 
#mstechdays Windows Azure
WINDOWS AZURE WEB SITES, CLOUD 
SERVICES OU VIRTUAL MACHINES ? 
Un peu de théorie 
#mstechdays Windows Azure
« The power of choice » 
#mstechdays Windows Azure
Windows Azure Web Sites 
#mstechdays Windows Azure 
Code déployé à la demande 
sur de nouvelles instances
Windows Azure Cloud Services 
#mstechdays Windows Azure 
Package déployé à la 
demande sur de nouvelles 
instances
Windows Azure Virtual Machines 
#mstechdays Windows Azure 
Vhds persistés dans 
Windows Azure Blob 
Storage
WINDOWS AZURE WEB SITES, CLOUD 
SERVICES OU VIRTUAL MACHINES ? 
#mstechdays Windows Azure
Récapitulatif 
Contrôle sur la plateforme 
Simplicité 
#mstechdays Windows Azure
HelloTalent 
#mstechdays Windows Azure
QUELLES TECHNOLOGIES POUR MON 
APPLICATION WEB ? 
#mstechdays Windows Azure
SQL Server sur VM (IaaS) 
#mstechdays Windows Azure
Windows Azure Sql Database 
#mstechdays Windows Azure
Windows Azure SQL Database Premium 
Taille Coeurs CPU 
Worker 
Threads 
Sessions 
actives 
#mstechdays Windows Azure 
Disque (IOPS) RAM (Go) 
P1 1 200 2000 150 8 
P2 2 400 4000 300 16
NoSQL 
#mstechdays Windows Azure
Mécanismes de Retry Pattern 
• “Throttling” et erreurs transitoires 
• Frameworks disponibles 
– Entity Framework 6 
– Enterprise Library 
#mstechdays Windows Azure
Windows Azure Cache Service 
#mstechdays Windows Azure
In-Role Cache 
• Co-located Cache 
#mstechdays Windows Azure
In-Role Cache 
• Dedicated Cache 
#mstechdays Windows Azure
Communication asynchrone 
• Tiers faiblement couplés 
• Scalabilité indépendante 
• Expérience utilisateur plus agréable 
#mstechdays Windows Azure
Windows Azure Service Bus 
#mstechdays Windows Azure
Quel type de queue choisir? 
• Windows Azure Storage 
Queues 
– Plus de 5 GB de messages 
– Lifetime < 7 jours 
– Temps de leasing court et 
extensible par message 
– Suivi de la progression du 
traitement dans le message 
• Windows Azure Service Bus 
#mstechdays Windows Azure 
Queues 
– Moins de 5 GB de 
messages 
– Lifetime infini 
– Intégration complète avec 
WCF 
– FIFO garanti 
– Publish/Subscribe
ASP.Net Web Api 
• HTTP / REST seulement 
• JSON, XML, … 
• Pattern par défaut : 
Request/Response 
• Open Source 
WCF 
• Plusieurs protocoles de 
#mstechdays Windows Azure 
transports (HTTP, TCP, UDP, 
Custom) 
• Plusieurs formats d’encodage 
(Text, MTOM, Binaire) 
• Patterns supportés : Request- 
Reply, One Way et Duplex 
• Utilisation de WSDL pour la 
découverte 
ASP.NetWeb Api
Communication temps réel 
#mstechdays Windows Azure
Communication temps réel 
#mstechdays Windows Azure
Framework Javascript 
#mstechdays Windows Azure
Accès aux données 
• ADO.Net 4.5.1 
• Entity Framework 6 
• Micro ORMs 
• … 
#mstechdays Windows Azure
Ressources complémentaires 
• Microsoft server software support for Windows Azure Virtual Machines : 
http://support.microsoft.com/kb/2721672 
• Windows Azure Execution Models : http://www.windowsazure.com/en-us/ 
documentation/articles/fundamentals-application-models/ 
• Windows Azure Web Sites, Cloud Services and Virtual Machines comparison : 
http://www.windowsazure.com/en-us/documentation/articles/choose-web-site-cloud-service- 
vm/ 
• Choosing between SQL Server in Windows Azure VM & Windows Azure SQL Database : 
http://blogs.msdn.com/b/windowsazure/archive/2013/02/14/choosing-between-sql-server-in- 
windows-azure-vm-amp-windows-azure-sql-database.aspx 
• Building Real-World Cloud Apps with Windows Azure : 
http://www.asp.net/aspnet/overview/developing-apps-with-windows-azure/building-real-world- 
cloud-apps-with-windows-azure/introduction 
#mstechdays Windows Azure
Testez dès maintenant Windows Azure ! 
MSDN: 
150€ de 
ressources 
Partenaires: 
Poursuivez la 
discussion 
sur le stand “au 
coeur du SI” 
http://aka.ms/Azure/Partner 
http://aka.ms/MSDN/Avantages/Abo 
http://aka.ms/free/trial
Digital is business

2014 applications web sur Azure

  • 2.
    Windows Azure WebSites, Cloud Services ou Virtual Machines ? Quelles technologies pour Windows Azure mon application web ? Benjamin Talmard - @benjiiim Windows Azure Technical Evangelist Microsoft France Julien Plée - @JulPlee Responsable Etudes et Développements Talentsoft
  • 3.
    Donnez votre avis! Depuis votre smartphone sur : http://notes.mstechdays.fr De nombreux lots à gagner toute les heures !!! Claviers, souris et jeux Microsoft… Merci de nous aider à améliorer les Techdays ! #mstechdays Windows Azure
  • 4.
    WINDOWS AZURE WEBSITES, CLOUD SERVICES OU VIRTUAL MACHINES ? Un peu de théorie #mstechdays Windows Azure
  • 5.
    « The powerof choice » #mstechdays Windows Azure
  • 6.
    Windows Azure WebSites #mstechdays Windows Azure Code déployé à la demande sur de nouvelles instances
  • 7.
    Windows Azure CloudServices #mstechdays Windows Azure Package déployé à la demande sur de nouvelles instances
  • 8.
    Windows Azure VirtualMachines #mstechdays Windows Azure Vhds persistés dans Windows Azure Blob Storage
  • 9.
    WINDOWS AZURE WEBSITES, CLOUD SERVICES OU VIRTUAL MACHINES ? #mstechdays Windows Azure
  • 10.
    Récapitulatif Contrôle surla plateforme Simplicité #mstechdays Windows Azure
  • 11.
  • 12.
    QUELLES TECHNOLOGIES POURMON APPLICATION WEB ? #mstechdays Windows Azure
  • 13.
    SQL Server surVM (IaaS) #mstechdays Windows Azure
  • 14.
    Windows Azure SqlDatabase #mstechdays Windows Azure
  • 15.
    Windows Azure SQLDatabase Premium Taille Coeurs CPU Worker Threads Sessions actives #mstechdays Windows Azure Disque (IOPS) RAM (Go) P1 1 200 2000 150 8 P2 2 400 4000 300 16
  • 16.
  • 17.
    Mécanismes de RetryPattern • “Throttling” et erreurs transitoires • Frameworks disponibles – Entity Framework 6 – Enterprise Library #mstechdays Windows Azure
  • 18.
    Windows Azure CacheService #mstechdays Windows Azure
  • 19.
    In-Role Cache •Co-located Cache #mstechdays Windows Azure
  • 20.
    In-Role Cache •Dedicated Cache #mstechdays Windows Azure
  • 21.
    Communication asynchrone •Tiers faiblement couplés • Scalabilité indépendante • Expérience utilisateur plus agréable #mstechdays Windows Azure
  • 22.
    Windows Azure ServiceBus #mstechdays Windows Azure
  • 23.
    Quel type dequeue choisir? • Windows Azure Storage Queues – Plus de 5 GB de messages – Lifetime < 7 jours – Temps de leasing court et extensible par message – Suivi de la progression du traitement dans le message • Windows Azure Service Bus #mstechdays Windows Azure Queues – Moins de 5 GB de messages – Lifetime infini – Intégration complète avec WCF – FIFO garanti – Publish/Subscribe
  • 24.
    ASP.Net Web Api • HTTP / REST seulement • JSON, XML, … • Pattern par défaut : Request/Response • Open Source WCF • Plusieurs protocoles de #mstechdays Windows Azure transports (HTTP, TCP, UDP, Custom) • Plusieurs formats d’encodage (Text, MTOM, Binaire) • Patterns supportés : Request- Reply, One Way et Duplex • Utilisation de WSDL pour la découverte ASP.NetWeb Api
  • 25.
    Communication temps réel #mstechdays Windows Azure
  • 26.
    Communication temps réel #mstechdays Windows Azure
  • 27.
  • 28.
    Accès aux données • ADO.Net 4.5.1 • Entity Framework 6 • Micro ORMs • … #mstechdays Windows Azure
  • 29.
    Ressources complémentaires •Microsoft server software support for Windows Azure Virtual Machines : http://support.microsoft.com/kb/2721672 • Windows Azure Execution Models : http://www.windowsazure.com/en-us/ documentation/articles/fundamentals-application-models/ • Windows Azure Web Sites, Cloud Services and Virtual Machines comparison : http://www.windowsazure.com/en-us/documentation/articles/choose-web-site-cloud-service- vm/ • Choosing between SQL Server in Windows Azure VM & Windows Azure SQL Database : http://blogs.msdn.com/b/windowsazure/archive/2013/02/14/choosing-between-sql-server-in- windows-azure-vm-amp-windows-azure-sql-database.aspx • Building Real-World Cloud Apps with Windows Azure : http://www.asp.net/aspnet/overview/developing-apps-with-windows-azure/building-real-world- cloud-apps-with-windows-azure/introduction #mstechdays Windows Azure
  • 30.
    Testez dès maintenantWindows Azure ! MSDN: 150€ de ressources Partenaires: Poursuivez la discussion sur le stand “au coeur du SI” http://aka.ms/Azure/Partner http://aka.ms/MSDN/Avantages/Abo http://aka.ms/free/trial
  • 31.

Notes de l'éditeur

  • #4 Slide obligatoire. Ne pas effacer.
  • #5 20 secondes Présentation en deux parties : - La première consacrée à la présentation des briques de calcul de Windows Azure. - La deuxième consacrée à différentes catégories de technologies utiles dans des applications webs
  • #6 40 secondes De manière générale, Microsoft = choix (CloudOS par exemple). Pour héberger une application sur Windows Azure : 3 technologies différentes, dont le principal élément différentiateur est la barrière entre ce qui est géré par Microsoft et ce qui est géré par vous.
  • #7 Microsoft fournit des process d’IIS W3WP et des frameworks déjà configurés, soit en mutualisé, soit en dédié. Ouverture à différentes technologies, différents outils ou différents process. Différentiation avec Cloud Services : SLA de disponibilité inférieur Pas d’accès à l’OS Pas besoin de packager pour Windows Azure
  • #8 Insister sur le fait que l’OS devient une commodité géré par Windows Azure pour faire tourner une application développée par le client. Stateless et automatisé à 100 % (startup task si besoin de customisation). Package réalisé par Visual Studio et consommer par Windows Azure qui provisionne en fonction du besoin. Web Role : Windows + IIS. Worker Role : Windows + exécution de code hors d’IIS. Nouvelles tailles de machines en Preview pour les calculs hautes performances.
  • #9 Insister sur la partie environnement persistants Exemples de workloads non compatibles avec le PaaS : SharePoint, SQL Server, Oracle, Dynamics Nav, …
  • #10 Démo: Windows Azure Web Sites (Julien) Windows Azure Cloud Service (Julien) Windows Azure Virtual Machines (Benjamin)
  • #11 Stratégie conseillée : partir par Windows Azure Web Sites, et monter progressivement si cela ne peut pas suffire et que vous avez besoin de plus de contrôle. Passage de Web Sites à Cloud Services : Applications multi-tiers ne pouvant pas se satisfaire de simples jobs (mise à l’échelle indépendante ou middle-tiers) Besoin d’avoir accès à des fonctionnalités de Windows non exposées ou d’être sur un réseau virtuel Besoin d’un SLA de 99,95 % Passage de Cloud Services à Virtual Machines : Applications avec état ou non supportés autrement Migration rapide ou environnements de développement d’une production hébergée ailleurs Linux
  • #13 Benjamin Creusons maintenant un peu plus loin, avec d’autres briques que la plateforme exécutant le code,
  • #14 Message : l’ensemble des fonctionnalités de SQL Server, telles qu’elles existent OnPremise, tailles de machine spécifiques, gestion complète, … http://blogs.msdn.com/b/windowsazure/archive/2013/02/14/choosing-between-sql-server-in-windows-azure-vm-amp-windows-azure-sql-database.aspx 
  • #15 Message : Database as a Service, totalement managé par Microsoft, sur infrastructure mutualisée, avec ressources partagées donc limitées.
  • #16 Message : même interface côté applicatif que SqlDatabase mais ressources dédiées par client, plutôt que mutualisées, Le principe est de pouvoir être plus prévisible (moins dépendant des autres) et plus performant, tout en continuant à déléguer l’administration. Puis passage à Julien pour illustration du choix HelloTalent (SQL Database avec réflexion pour passer sur Premium dans le futur)
  • #17 Message : ne pas utiliser du relationnel quand cela n'apporte pas de valeur. D'autres options moins onéreuses et potentiellement plus performantes existent.  Exemples : logs applicatifs, images/fichiers métiers, données métier si très gros volume (internet of things)  Puis passage à Julien pour illustration HelloTalent NoSQL Data Storage Fully managed PaaS Key-value Hierarchical REST API Geo replication
  • #18 Message : erreurs transitoires peuvent se produire, vous devez les gérer, et la meilleure manière pour cela reste le retry pattern  Exemples : vous sollicitez trop une ressource et un mécanisme de protection a été mise en place; une ressource cloud n'est plus accessible pendant quelques secondes; commodity hardware défaillant Framework disponibles  Entity Framework 6  Message : Une simple configuration vous permet d'activer pour l'ensemble des requêtes passant par Entity Framework  Demo : affichage d'un fichier de configuration.  Enterprise Library  Vérifier s'il n'y a rien d'autre
  • #19 Introduction du pourquoi du cache. Message : Cache as a Service : technologie dérivée de Windows Server AppFabric Caching, qui consiste à stocker des données en RAM sur une couche intermédiaire entre vos frontaux et vos bases de données.  Vous configurez une taille entre 128 Mo et 150 Go (voir plus) et Windows Azure s'occupe du reste, de la gestion des machines nécessaires à la haute disponibilité  Côté applicatif, un SDK simple et similaire au SDK AppFabric Caching ou au SDK Memcached est disponible.  Cas d'usage : sessions webs, ASP.Net page output, données métiers en tant qu'objets sérialisés accédés fréquemment, accès à partir d’un cloud service différent, isolation complète du cache, high availability…  Démo : créer un cache dans le portail et montrer un bout de code l'utilisant  Charge/volumétrie trop importante sur Web Roles Sécurité du cache Utilisable de tout type de service Si pas assez de ressources sur le web role => dédié Si on perd un web role, on peut perdre le cache non synchronisé => n’arrive pas sur un service dédié redondé Rapide car même machine Moins cher car pas de service supplémentaire Pas de throttling car environnement cotenant
  • #20 Message : Utiliser une portion de la mémoire de vos frontaux Web (Web ou Worker Role) ou des instances dédiées de Web/Worker role pour gérer vous-même votre cache  Avantage : vous n'avez pas de limite de taille ou d'options de déploiement. Vous n'avez pas de colocataire à ce niveau de service. Vous avez des performances encore meilleures.  Inconvénient : passage à l'échelle non indépendant, configuration et gestion par vos soins, …  Plus rapide Moins cher Pas de throttling
  • #21 Message : utiliser une portion de la mémoire de vos frontaux Web (Web ou Worker Role) ou des instances dédiées de Web/Worker role pour gérer vous-même votre cache  Avantage : vous n'avez pas de limite de taille ou d'options de déploiement. Vous n'avez pas de colocataire à ce niveau de service. Vous avez des performances encore meilleures.  Inconvénient : passage à l'échelle non indépendant, configuration et gestion par vos soins, …  Plus rapide Moins cher Pas de throttling
  • #22 Message Benjamin : de manière générale, une bonne pratique est d'utiliser des fonctionnalités asynchrones dès que possible dans vos applications (accès aux données, tâches longues, …). Vous êtes donc encouragé à procéder de la sorte pour vos communications inter layers ou inter services  Service Bus  Windows Azure Storage Queues  Web API  WCF 
  • #23 Julien Queue Asynchronous communication Offline processing Load-balancing Topic & Subscription Asynchronous communication Publish/Subscription pattern Message routing
  • #24 Julien
  • #25 Julien Message principal est le fait qu’il ne faut pas se poser de questions si on veut faire de l’http/Rest => GO for ASP.Net Web API. Cf http://msdn.microsoft.com/en-us/vstudio/jj823172(v=vs.120).aspx
  • #26 SignalR  Message : choix logique pour les développeurs .NET  Socket.IO  Message : choix logique pour les développeurs Node.JS 
  • #27 SignalR ScaleOut Message : Implémentation très simple sous Azure avec un Windows Azure Service Bus Topic (sinon Redis, ou Sql Server)
  • #29 ADO.Net directement  Message : .NET 4.5.1 vient avec une fonctionnalité importante : il recrée une connexion de manière transparente si elle a été coupée par le serveur  Entity Framework  Message : à partir d'EF 6.02 pour avoir la connection resiliency  Micro Orm comme Dapper  Message : pour avoir certaines fonctionnalités simples de technologies ORM sans sacrifices au niveau performances 
  • #31 Discours Benjamin Via un abonnement MSDN : en fonction de son abonnement (Professionnel, Premium, Ultimate), vous avez droit à des ressources mensuelles Windows Azure allant jusqu’à 115 € que vous pouvez utiliser pour n’importe quelles services Azure. Ces avantages s’activent en quelques clics sans carte bleue. http://aka.ms/MSDN/Avantages/Abo Vous êtes partenaires Microsoft, membre Cloud Essentials ou Cloud Accelerate : les membres du programme Microsoft Partner Network Cloud Essentials reçoivent gratuitement un crédit mensuel Windows Azure de €75.  http://aka.ms/Azure/Partner Via l’ouverture d’un compte Windows Azure sur le site produit : pour chaque ouverture de compte, vous disposer d’une période d’essai d’un mois avec 150 € de ressources. http://aka.ms/free/trial