L'audience d'un site Web peut varier dans l'année, ou dans la journée, son succès peut arriver plus vite que prévu. Une plateforme d'informatique en nuage (cloud) telle que Windows Azure permet d'adapter les ressources d'hébergement nécessaires au succès du site. Bien qu'on veuille pouvoir personnaliser le site de façon poussée, il est intéressant de partir d'un framework existant pour bâtir son site. Nous verrons comment cela peut se faire par exemple avec Orchard.
V111109a
Développer un site Web fonctionnel et élastique sur Azure
1.
2. Développer un site Web
fonctionnel et élastique
sur Azure
Benjamin Guinebertière
http://blogs.msdn.com/benjguin, @benjguin
Division Plateforme & Ecosystème
Microsoft France
4ème trimestre 2011
2
4. Scénarios
Site qui commence avec peu d’utilisateurs, mais a de
grosses ambitions.
Payer peu tant qu’il y a peu d’audience
Pouvoir répondre à la demande rapidement quand elle
arrive
Pouvoir s’adapter à des pics, par exemple lors de passage
de spots publicitaires à la télévision
Quels types de sites
Site de nouvelles
Site web de commerce
Site institutionnel
Campagne marketing spécifique
…
4
5. Scénarios pour le Cloud
Inactivité
Compute
Compute
Utilisation
Utilisation Utilisation Moyenne
Temps Temps
Compute
Compute
Utilisation Moyenne Utilisation Moyenne
Temps Temps
5
6. Personnaliser sans tout gérer
Informatique Cloud IaaS Cloud PaaS Cloud SaaS
Traditionnelle Infrastructure Plate-Forme Software
de cloud
Géré par l’utilisateur
Applications Géré par l’utilisateur de cloud Applications Applications Applications
Runtime Runtime Runtime Runtime
Géré par l’utilisateur de cloud
Géré par l’opérateur Cloud
Middleware Middleware Middleware Middleware
Géré par l’opérateur Cloud
O/S O/S O/S O/S
Géré par l’opérateur Cloud
Virtualisation Virtualisation Virtualisation Virtualisation
Serveurs Serveurs Serveurs Serveurs
Stockage Stockage Stockage Stockage
Réseau Réseau Réseau Réseau
• Dans le cadre d’un cloud privé, l’opérateur de Cloud, c’est vous
• La gestion des couches « grises » est souvent automatisée au maximum
6
7. Personnaliser sans tout gérer
Hébergé sur du PaaS, on Cloud PaaS
peut se concentrer sur la Plate-Forme
de cloud
Géré par l’utilisateur
personnalisation du site Votre Site Web
(développement),
et le contenu éditorial
7
Géré par l’opérateur Cloud
11. Critères de choix du CMS
Quelques critères:
Capacité à personnaliser
Technologie de développement
Type de licence
Mode de support
Ecosystème
Références
Couverture fonctionnelle (éventuellement via des modules
complémentaires)
Gestion du multilingue
Architecture
Capacité à monter en charge
Hébergement possible sur une plateforme de cloud
+ les critères en lien avec Windows Azure
11
12. Public PaaS Microsoft
Expérience Développeurs
Utilisation des outils et compétences existantes
MarketPlace
12
13. Azure dans l’abonnement MSDN
http://j.mp/azuremsdn
http://www.microsoft.com/windowsazure/msdn-benefits/
13
15. Site Web typique sur Azure
Navigateur
Web Site
Web Site
LB Web ASMX, WCF)
(ASPX, Role
(ASPX, ASMX, WCF)
Cache distribué
AppFabric
Roles
CDN
LB
Blobs
Tables
Storage SQL Azure
15
17. Azure Drive
Application
Drive X:
Lease
Windows
Azure Blob Service
17
18. Critères liés à Windows Azure
Exécution sur Windows Server
Le langage n’est pas un critère bloquant.
Windows Azure peut exécuter du .NET, PHP, Java, Ruby, …
Architecture compatible avec Windows Azure
Fonctionnement en ferme Web, sans affinité de session
Stockage centralisé
Base de données relationnelle SQL Azure
Autres (URL des media, …)
Points à prendre en compte
Pour le moteur
Mais également pour les modules
18
19. Fonctionnement en ferme Web
du Web Role
Un rôle Azure
Instance
(VM)
= une ferme de serveurs
Chaque instance peut tomber
Instance Les instances ne tombent pas
(VM) en même temps
LB (notion de domaine de panne)
… C’est l’ensemble qui a une
disponibilité de 99,95%
Instance
(VM)
19
20. Stockage centralisé
Le stockage sur la VM est possible pour des données transitoires,
ou du cache
Les fichiers centralisés en Azure => blobs
Attention à l’Azure Drive:
lecture écriture depuis une VM à la fois max
Base de données SQL Azure
Drivers récents pour SQL Server. Au moins disponibles pour
PHP
Java (JDBC)
ADO.NET en .NET
Haute disponibilité des
blobs et SQL Azure
Cache distribué d’Azure
en .NET uniquement,
mais des caches open
source peuvent s’installer
sur Azure
Ex: Memcached
20
21. Fonctionnement en ferme web
Points d’attention
Session gérée en mémoire
Fichiers locaux à chaque serveur
Plus spécifiquement pour les CMS, regarder
Chargement dynamique de modules, de thèmes
Stockage du contenu (en base, sur disque)
Notification des modifications comme le changement d’un
thème (invalidation de cache)
Indexes (recherche)
21
22. Quelques CMS sur Azure
Liste non exhaustive
Rendre votre CMS
compatible avec la
plateforme Windows
Azure est toujours une
option
http://aka.ms/AFewCmsOnAzure
22
23. Exemple avec Orchard
Code open source (fondation Outercurve)
Contribution importante de la part de Microsoft
ASP.NET MVC3, avec syntaxe « Razor »
http://orchardproject.net
23
24. Etapes
Prendre en main le CMS
Créer le package dont on a besoin
Avec les bons modules et thèmes
Avec les éventuelles personnalisations dans le code C#
Déployer sur Azure
Configurer
…
24
25. Tester rapidement sur une
instance unique
Pour avoir une machine de test sur Azure
Créer un nouveau projet Azure
1 web role
Configurer Remote Desktop
Déployer
Se connecter en Remote Desktop
C’est sur une instance unique =>
uniquement pour tester quelques instants
25
26. Démo
Prise en main d’Orchard
sur une instance unique
Vidéo accélérée et quelques copies d’écrans
26
27. (vidéo non incluse ici, car incompatible avec le format
de publication)
27
29. Et pour le vrai site?
Téléchargement des sources
Inclusion des modules et thèmes dans les sources
Choix du type de machine virtuelle pour définir la
granularité
Package pour Azure
Déploiement sur Azure
Configuration initiale pour se connecter à SQL Azure
29
30. Démo
- Parcours des sources permettant de créer le
package
- Exécution du site hébergé sur Azure (2
instances)
- Passage à 3 instances au lieu de 2
31
31. Et qu’est-ce que je gagne?
Changement de la taille de la ferme
Créer de nouveaux environnements pour la pré-
production, recette ou intégration
Copier une base est simple
Basculement entre staging et production
Environnement pour exécuter des tests de charge
Haute disponibilité,
CDN,
…
32
32. Et l’élasticité elle-même ?
Pour ajuster le nombre d’instances à l’audience du site, il
faut avoir
Des indicateurs de performances qui remontent de la
plateforme
Des API pour modifier le nombre d’instances
Une gestion automatisée de l’ajout et de la suppression des
instances
Des règles qui décident de l’augmentation, ou de la
réduction du nombre d’instances
Un environnement d’exécution des règles
Outillage fourni par la plateforme Windows Azure
Voir guides de mise en œuvre
33
33. Quelques guides sur le sujet
Real World: Dynamically Scaling a Windows Azure Application
AzurePHP - Scaling PHP Applications on Windows Azure
Windows Azure Autoscaling Block BETA is out (Enterprise Library)
Auto-scaling in Azure. - Strive for excellence through continuous
improvements - Site Home - MSDN Blogs
34
35. Descente en charge
Plusieurs sites sur une même ferme Azure
Peut être pris en charge par le CMS
Windows Azure permet de configurer un Web Role pour
qu’il héberge plusieurs sites.
Voir billet de Wade Wegner
Windows Azure Accelerator for Web Roles
Hébergement de plusieurs sites dans une ferme Azure
http://waawebroles.codeplex.com/
36
36. Très grande montée en charge
Pour des fermes avec des centaines d’instances
Partitionnement fonctionnel: www, search, …
Partitionnement SQL Azure (fédérations)
Voir le blog de Cihan Biyikoglu
Modèle noSql: tables Windows Azure
Traffic Manager pour répartir la charge sur divers centres
de calculs Azure
37
37. Tests de charge dans Azure
Cf http://aka.ms/AzureLoadTestSummary
38
40. Conclusion
Héberger un site Web construit à partir d’un CMS open
source sur du PaaS permet
De disposer d’un site web personnalisable
De ne pas se préoccuper des détails d’infrastructure
D’adapter les ressources d’hébergement à l’audience
courante du site
Le CMS peut prendre plus ou moins en compte
l’architecture Azure, Azure peut aussi s’adapter
Testez gratuitement Windows Azure
http://windowsazure.fr
41