Dans cette session, nous présenterons les critères de choix importants qui vous permettront de déterminer le service Windows Azure le plus adapté pour l’hébergement d’une application web. Après avoir abordé les aspects techniques et tarifaires propres à Windows Azure, nous parlerons des différentes possibilités qui s’offrent à vous au niveau frameworks (accès aux données, retry-pattern, communication temps réel, …), le tout en prenant appui sur l’exemple de l’éditeur de logiciels Talentsoft, qui a fait ces choix pour l’une de leurs applications disponibles en mode Software as a Service.
Speakers : Julien Plée (TalentSoft), Benjamin Talmard (Microsoft France)
Office 365 Dev PnP & PowerShell : exploitez enfin le potentiel de votre écosy...
Windows Azure Web Sites, Cloud Services ou Virtual Machines ? Quelles technologies pour mon application web ?
1.
2. Windows Azure Web Sites, Cloud Services
ou Virtual Machines ? Quelles technologies
pour mon application web ?
Benjamin Talmard - @benjiiim
Windows Azure Technical Evangelist
Microsoft France
Julien Plée - @JulPlee
Responsable Etudes et Développements
Talentsoft
Windows Azure
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
Un peu de théorie
MACHINES ?
#mstechdays
Windows Azure
5. « The power of choice »
#mstechdays
Windows Azure
6. Windows Azure Web Sites
Code déployé à la demande
sur de nouvelles instances
#mstechdays
Windows Azure
7. Windows Azure Cloud Services
Package déployé à la
demande sur de nouvelles
instances
#mstechdays
Windows Azure
8. Windows Azure Virtual Machines
Vhds persistés dans
Windows Azure Blob
Storage
#mstechdays
Windows Azure
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
#mstechdays
• Windows Azure Service Bus
Queues
– Moins de 5 GB de
messages
– Lifetime infini
– Intégration complète avec
WCF
– FIFO garanti
– Publish/Subscribe
Windows Azure
24. ASP.Net Web Api
ASP.Net Web Api
WCF
• HTTP / REST seulement
• JSON, XML, …
• Pattern par défaut :
Request/Response
• Open Source
• Plusieurs protocoles de
transports (HTTP, TCP, UDP,
Custom)
• Plusieurs formats d’encodage
(Text, MTOM, Binaire)
• Patterns supportés : RequestReply, One Way et Duplex
• Utilisation de WSDL pour la
découverte
#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/enus/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-cloudservice-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-sqlserver-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-realworld-cloud-apps-with-windows-azure/introduction
#mstechdays
Windows Azure
30. Testez dès maintenant Windows Azure !
MSDN:
Partenaires:
http://aka.ms/MSDN/Avantages/Abo
150€ de
ressources
http://aka.ms/Azure/Partner
Poursuivez la
discussion
sur le stand “au
coeur du SI”
http://aka.ms/free/trial
20 secondesPré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 secondesDe 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érieurPas d’accès à l’OSPas 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. WorkerRole : Windows + exécution de code hors d’IIS.Nouvelles tailles de machines en Preview pour les calculs hautes performances.
Insister sur la partie environnement persistantsExemples de workloads non compatibles avec le PaaS : SharePoint, SQL Server, Oracle, Dynamics Nav, …
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 virtuelBesoin d’un SLA de 99,95 %Passage de Cloud Services à Virtual Machines :Applications avec état ou non supportés autrementMigration rapide ou environnements de développement d’une production hébergée ailleursLinux
BenjaminCreusons 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 HelloTalentNoSQLDataStorageFully managed PaaSKey-valueHierarchicalREST APIGeo replication
Message : erreurs transitoirespeuvent 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éfaillantFramework 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
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
JulienQueueAsynchronous communicationOffline processingLoad-balancingTopic & SubscriptionAsynchronous communicationPublish/Subscription patternMessage routing
Julien
JulienMessage 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 connectionresiliency Micro Orm comme Dapper Message : pour avoir certaines fonctionnalités simples de technologies ORM sans sacrifices au niveau performances
Discours BenjaminVia 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/AboVous ê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/PartnerVia 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