Développer un site Web fonctionnel et élastique sur Azure
-
Upload
benjguin -
Category
Technology
-
view
994 -
download
1
description
Transcript of Développer un 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
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
…
5
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
6
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’u
tilisa
teu
r d
e c
lou
d
Géré
par l’o
péra
teu
r Clo
ud
Géré
par
l’u
tilisa
teu
r d
e c
lou
d
Géré
par
l’u
tilisa
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
7
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’u
tilisa
teu
r
de c
lou
d
Votre Site Web G
éré
par l’o
péra
teu
r Clo
ud
8
Ne pas partir de rien
Content Management Server
9
Démo
Fonctionnalités de base d’un CMS
10
Mise en page
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
12
Public PaaS Microsoft
MarketPlace
Expérience Développeurs Utilisation des outils et compétences existantes
13
Azure dans l’abonnement MSDN
http://j.mp/azuremsdn http://www.microsoft.com/windowsazure/msdn-benefits/
14
Les rôles Azure
Front-End Front-End
15
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é
16
Blobs
Blob Container Account
cohowinery
images
PIC01.JPG
PIC02.JPG
videos VID1.AVI
http://<account>.blob.core.windows.net/<container>/<blobname>
17
Azure Drive
Windows Azure Blob Service
Application
Lease
Drive X:
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
19
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
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
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
Quelques CMS sur Azure
http://aka.ms/AFewCmsOnAzure
Liste non exhaustive
Rendre votre CMS
compatible avec la
plateforme Windows
Azure est toujours une
option
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
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
…
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
Démo
Prise en main d’Orchard sur une instance unique Vidéo accélérée et quelques copies d’écrans
27
(vidéo non incluse ici, car incompatible avec le format de publication)
28
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
31
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
32
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?
33
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
34
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
35
Sur Azure Marketplace AppMarket
36
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/
37
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
Tests de charge dans Azure
Cf http://aka.ms/AzureLoadTestSummary
39
Affinité de session
Cf http://aka.ms/AzureARR
40
Conclusion
41
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
42
Ressources
http://windowsazure.fr
+ les liens dans la présentation elle-même