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

Post on 01-Dec-2014

994 views 1 download

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

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

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