Site web fonctionnel et élastique sur Azure
-
Upload
microsoft-technet-france -
Category
Technology
-
view
651 -
download
0
description
Transcript of Site web fonctionnel et élastique sur Azure
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
3
Plan
Introduction
Scénario
CMS
Azure
Exemple avec Orchard
Elasticité
Pour aller plus loin
Conclusion
4
Introduction
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
Scénarios pour le Cloud
Utilisation
Co
mp
ute
Temps
Utilisation
Inactivité
Co
mp
ute
Temps
Utilisation Moyenne
Utilisation Moyenne
Co
mp
ute
Temps
Co
mp
ute
Temps
Utilisation Moyenne
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é
par
l’uti
lisa
teu
r d
e c
lou
d
Géré
par l’o
péra
teu
r Clo
ud
Géré
par
l’uti
lisa
teu
r d
e c
lou
d
Géré
par
l’uti
lisa
teu
r
de c
lou
d
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é
par l’o
péra
teu
r Clo
ud
Géré
par l’o
péra
teu
r Clo
ud
• 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
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é
par
l’uti
lisa
teu
r
de c
lou
d
Votre Site Web G
éré
par l’o
péra
teu
r Clo
ud
9
Ne pas partir de rien Content Management Server
10
Démo
Fonctionnalités de base d’un CMS
11
Mise en page
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
13
Public PaaS Microsoft
MarketPlace
Expérience Développeurs Utilisation des outils et compétences existantes
14
Azure dans l’abonnement MSDN
http://j.mp/azuremsdn http://www.microsoft.com/windowsazure/msdn-benefits/
15
Les rôles Azure
Front-End Front-End
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é
17
Blobs
Blob Container Account
cohowinery
images
PIC01.JPG
PIC02.JPG
videos VID1.AVI
http://<account>.blob.core.windows.net/<container>/<blobname>
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
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)
…
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
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)
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
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
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
26
Vidéo accélérée
Test sur un web role avec une instance
27
(vidéo)
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
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
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?
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
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
Sur Azure Marketplace AppMarket
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
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
Tests de charge dans Azure
Cf http://aka.ms/AzureLoadTestSummary
38
Affinité de session
Cf http://aka.ms/AzureARR
39
Conclusion
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
Ressources
http://windowsazure.fr
+ les liens dans la présentation elle-même