2. 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
5. 5
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
…
6. 6
Scénarios pour le Cloud
Utilisation
Compute
Temps
Utilisation
Inactivité
Compute
Temps
Utilisation Moyenne
Utilisation
Moyenne
Compute
Temps
Compute
Temps
Utilisation Moyenne
7. 7
Personnaliser sans tout gérer
Informatique
Traditionnelle
Cloud IaaS
Infrastructure
Cloud PaaS
Plate-Forme
Stockage
Serveurs
Réseau
O/S
Middleware
Virtualisation
Applications
Runtime
Stockage
Serveurs
Réseau
O/S
Middleware
Virtualisation
Applications
Runtime
Géréparl’utilisateurdecloud
Géréparl’opérateurCloud
Géréparl’utilisateurdecloud
Géréparl’utilisateur
decloud
Stockage
Serveurs
Réseau
O/S
Middleware
Virtualisation
Applications
Runtime
Cloud SaaS
Software
Stockage
Serveurs
Réseau
O/S
Middleware
Virtualisation
Applications
Runtime
Géréparl’opérateurCloud
Géréparl’opérateurCloud
• 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
8. 8
Personnaliser sans tout gérer
Hébergé sur du PaaS, on
peut se concentrer sur la
personnalisation du site
(développement),
et le contenu éditorial
Cloud PaaS
Plate-Forme
Géréparl’utilisateur
decloud
Votre Site Web
Géréparl’opérateurCloud
12. 12
Critères de choix du CMS
Quelques critères:
Hébergement possible sur une plateforme de cloud
Capacité à personnaliser
Type de licence
Mode de support
Références
Ecosystème
Technologie de développement
Architecture
Capacité à monter en charge
Couverture fonctionnelle (éventuellement via des modules
complémentaires)
Gestion du multilingue
+ les critères en lien avec Windows Azure
16. 16
SQL Azure
Site Web typique sur Azure
Roles
LB
Web Site
(ASPX, ASMX, WCF)
Web Site
(ASPX, ASMX, WCF)Web Role
LB
Storage
Tables
Blobs
Navigateur
CDN
AppFabric
Cache distribué
18. 19
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
19. 20
Fonctionnement en ferme Web
du Web Role
Un rôle Azure
= une ferme de serveurs
Chaque instance peut tomber
Les instances ne tombent pas en
même temps
(notion de domaine de panne)
C’est l’ensemble qui a une
disponibilité de 99,95%
LB
Instance
(VM)
Instance
(VM)
Instance
(VM)
…
20. 21
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
21. 22
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)
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
Tester Orchard sur une instance Azure
ou sur un serveur local
Créer le package dont on a besoin, avec les bons modules
Déployer sur Azure
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
27. 28
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
28. 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
29. 31
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,
…
Et qu’est-ce que je gagne?
30. 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
31. 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
33. 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/
34. 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
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