Site web fonctionnel et élastique sur Azure

Preview:

DESCRIPTION

Introduction Scénario CMS Azure Exemple avec Orchard Elasticité Pour aller plus loin Conclusion

Citation preview

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

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

Recommended