2. 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
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 WEB SITES, CLOUD
SERVICES OU VIRTUAL MACHINES ?
Un peu de théorie
#mstechdays Windows Azure
5. « The power of choice »
#mstechdays Windows Azure
6. Windows Azure Web Sites
#mstechdays Windows Azure
Code déployé à la demande
sur de nouvelles instances
7. Windows Azure Cloud Services
#mstechdays Windows Azure
Package déployé à la
demande sur de nouvelles
instances
8. Windows Azure Virtual Machines
#mstechdays Windows Azure
Vhds persistés dans
Windows Azure Blob
Storage
9. WINDOWS AZURE WEB SITES, CLOUD
SERVICES OU VIRTUAL MACHINES ?
#mstechdays Windows Azure
23. 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
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
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 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
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
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.
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
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.
Insister sur la partie environnement persistants
Exemples de workloads non compatibles avec le PaaS : SharePoint, SQL Server, Oracle, Dynamics Nav, …
Démo:
Windows Azure Web Sites (Julien)
Windows Azure Cloud Service (Julien)
Windows Azure Virtual Machines (Benjamin)
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
Benjamin
Creusons maintenant un peu plus loin, avec d’autres briques que la plateforme exécutant le code,
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
Message : Database as a Service, totalement managé par Microsoft, sur infrastructure mutualisée, avec ressources partagées donc limitées.
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)
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
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
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
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
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
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
Julien
Queue
Asynchronous communication
Offline processing
Load-balancing
Topic & Subscription
Asynchronous communication
Publish/Subscription pattern
Message routing
Julien
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
SignalR Message : choix logique pour les développeurs .NET
Socket.IO Message : choix logique pour les développeurs Node.JS
SignalR ScaleOutMessage : Implémentation très simple sous Azure avec un Windows Azure Service Bus Topic (sinon Redis, ou Sql Server)
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
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