Développer un site Web fonctionnel et élastique sur Azure

42

description

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

Transcript of Développer un site Web fonctionnel et élastique sur Azure

Page 1: Développer un site Web fonctionnel et élastique sur Azure
Page 2: 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

Page 3: Développer un site Web fonctionnel et élastique sur Azure

3

Plan

Introduction

Scénario

CMS

Azure

Exemple avec Orchard

Elasticité

Pour aller plus loin

Conclusion

Page 4: Développer un site Web fonctionnel et élastique sur Azure

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

Page 5: Développer un site Web fonctionnel et élastique sur Azure

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

Page 6: Développer un site Web fonctionnel et élastique sur Azure

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

Page 7: Développer un site Web fonctionnel et élastique sur Azure

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

Page 8: Développer un site Web fonctionnel et élastique sur Azure

8

Ne pas partir de rien

Content Management Server

Page 9: Développer un site Web fonctionnel et élastique sur Azure

9

Démo

Fonctionnalités de base d’un CMS

Page 10: Développer un site Web fonctionnel et élastique sur Azure

10

Mise en page

Page 11: Développer un site Web fonctionnel et élastique sur Azure

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

Page 12: Développer un site Web fonctionnel et élastique sur Azure

12

Public PaaS Microsoft

MarketPlace

Expérience Développeurs Utilisation des outils et compétences existantes

Page 14: Développer un site Web fonctionnel et élastique sur Azure

14

Les rôles Azure

Front-End Front-End

Page 15: Développer un site Web fonctionnel et élastique sur Azure

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é

Page 16: Développer un site Web fonctionnel et élastique sur Azure

16

Blobs

Blob Container Account

cohowinery

images

PIC01.JPG

PIC02.JPG

videos VID1.AVI

http://<account>.blob.core.windows.net/<container>/<blobname>

Page 17: Développer un site Web fonctionnel et élastique sur Azure

17

Azure Drive

Windows Azure Blob Service

Application

Lease

Drive X:

Page 18: Développer un site Web fonctionnel et élastique sur Azure

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

Page 19: Développer un site Web fonctionnel et élastique sur Azure

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)

Page 20: Développer un site Web fonctionnel et élastique sur Azure

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

Page 21: Développer un site Web fonctionnel et élastique sur Azure

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)

Page 22: Développer un site Web fonctionnel et élastique sur Azure

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

Page 23: Développer un site Web fonctionnel et élastique sur Azure

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

Page 24: Développer un site Web fonctionnel et élastique sur Azure

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

Page 25: Développer un site Web fonctionnel et élastique 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

Page 26: Développer un site Web fonctionnel et élastique sur Azure

26

Démo

Prise en main d’Orchard sur une instance unique Vidéo accélérée et quelques copies d’écrans

Page 27: Développer un site Web fonctionnel et élastique sur Azure

27

(vidéo non incluse ici, car incompatible avec le format de publication)

Page 28: Développer un site Web fonctionnel et élastique sur Azure

28

Page 29: Développer un site Web fonctionnel et élastique sur Azure

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

Page 30: Développer un site Web fonctionnel et élastique sur 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

Page 31: Développer un site Web fonctionnel et élastique sur Azure

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?

Page 32: Développer un site Web fonctionnel et élastique sur Azure

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

Page 33: Développer un site Web fonctionnel et élastique sur Azure

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

Page 34: Développer un site Web fonctionnel et élastique sur Azure

35

Sur Azure Marketplace AppMarket

Page 35: Développer un site Web fonctionnel et élastique sur Azure

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/

Page 36: Développer un site Web fonctionnel et élastique sur Azure

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

Page 37: Développer un site Web fonctionnel et élastique sur Azure

38

Tests de charge dans Azure

Cf http://aka.ms/AzureLoadTestSummary

Page 38: Développer un site Web fonctionnel et élastique sur Azure

39

Affinité de session

Cf http://aka.ms/AzureARR

Page 39: Développer un site Web fonctionnel et élastique sur Azure

40

Conclusion

Page 40: Développer un site Web fonctionnel et élastique sur Azure

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

Page 41: Développer un site Web fonctionnel et élastique sur Azure

42

Ressources

http://windowsazure.fr

+ les liens dans la présentation elle-même

Page 42: Développer un site Web fonctionnel et élastique sur Azure