Track 1 - Atelier 4 - Déployer des applications hautement scalables sur AWS

68
Stephan Hadinger, Sr. Manager, Solution Architecture Déployer des applications hautement scalables sur AWS

description

AWS fournit une plateforme idéale pour déployer des systèmes hautement disponibles, fiables et scalables avec le minimum d’intervention humaine. Lors de cette session vous découvrirez des modèles d’architectures hautement disponibles et capables de supporter à moindre coût de très hauts niveaux de charge avec une faible latence. Vous serez guidés au travers des choix possibles d’architecture pour chaque tiers de l’application afin d’assurer sécurité, scalabilité, disponibilité et performance.

Transcript of Track 1 - Atelier 4 - Déployer des applications hautement scalables sur AWS

Page 1: Track 1 - Atelier 4 - Déployer des applications hautement scalables sur AWS

Stephan Hadinger, Sr. Manager, Solution Architecture

Déployer des applications

hautement scalables sur AWS

Page 2: Track 1 - Atelier 4 - Déployer des applications hautement scalables sur AWS

Qu’est-ce qu’une application hautement scalable?

3 principes d’architecture

Les différentes couches d’une architecture scalable

CANAL+ / eNovance : leur histoire

Pendant cette session :

Page 3: Track 1 - Atelier 4 - Déployer des applications hautement scalables sur AWS

Qu’est-ce qu’une application

hautement scalable?

Page 4: Track 1 - Atelier 4 - Déployer des applications hautement scalables sur AWS

Besoins réels

Besoins prévus

Insatisfaction

clients

Gaspillage

Besoins

Temps

Elastic capacity No need to guess capacity requirements and over-provision Capacité élastique

Page 5: Track 1 - Atelier 4 - Déployer des applications hautement scalables sur AWS

Capacité élastique

Besoins

Temps

Elastic capacity No need to guess capacity requirements and over-provision Capacité élastique

Page 6: Track 1 - Atelier 4 - Déployer des applications hautement scalables sur AWS

Built on a global footprint

9 Régions

25 Zones de disponibilité

Expansion continue

Des zones de disponibilités régionales

Page 7: Track 1 - Atelier 4 - Déployer des applications hautement scalables sur AWS

3 principes…

Page 8: Track 1 - Atelier 4 - Déployer des applications hautement scalables sur AWS

Echelle

1

Page 9: Track 1 - Atelier 4 - Déployer des applications hautement scalables sur AWS

Elasticité

1

Echelle

Page 10: Track 1 - Atelier 4 - Déployer des applications hautement scalables sur AWS

Etats Données

1

Elasticité

Echelle

Page 11: Track 1 - Atelier 4 - Déployer des applications hautement scalables sur AWS

Sécurité

Echelle

Elasticité

Etats Données

2

Page 12: Track 1 - Atelier 4 - Déployer des applications hautement scalables sur AWS

Inhérent 2

Sécurité

Echelle

Elasticité

Etats Données

Page 13: Track 1 - Atelier 4 - Déployer des applications hautement scalables sur AWS

VPC

Groupes

2 Inhérent Sécurité

Echelle

Elasticité

Etats Données

Page 14: Track 1 - Atelier 4 - Déployer des applications hautement scalables sur AWS

Pannes Sécurité Inhérent

VPC

Groupes

3

Echelle

Elasticité

Etats Données

Page 15: Track 1 - Atelier 4 - Déployer des applications hautement scalables sur AWS

Prévues 3

Pannes Sécurité Inhérent

VPC

Groupes

Echelle

Elasticité

Etats Données

Page 16: Track 1 - Atelier 4 - Déployer des applications hautement scalables sur AWS

Automatisation

Tests

3 Prévues Pannes Sécurité Inhérent

VPC

Groupes

Echelle

Elasticité

Etats Données

Page 17: Track 1 - Atelier 4 - Déployer des applications hautement scalables sur AWS

Automatisation

Tests

Prévues Pannes Sécurité Inhérent

VPC

Groupes

Echelle

Elasticité

Etats Données

Page 18: Track 1 - Atelier 4 - Déployer des applications hautement scalables sur AWS

Les différentes couches

d’une architecture

scalable

Page 19: Track 1 - Atelier 4 - Déployer des applications hautement scalables sur AWS

Données

Données scalables

Stockage d’objets

Page 20: Track 1 - Atelier 4 - Déployer des applications hautement scalables sur AWS

Données

Objets dans S3 Amazon S3 conçu pour une durabilité de

99.999999999%

Accès web aux objets

hautement scalable

Hautement redondé au sein

d’une région

Page 21: Track 1 - Atelier 4 - Déployer des applications hautement scalables sur AWS

Qu’est-ce que S3?

Stockage de données hautement scalable

Utilisable avec des API Un stockage web plutôt

qu’un file system

Rapide

Hautement disponible et durable

Economique

Données

Page 22: Track 1 - Atelier 4 - Déployer des applications hautement scalables sur AWS

Données

Page 23: Track 1 - Atelier 4 - Déployer des applications hautement scalables sur AWS

Données

Données scalables

Stockage d’objets Données relationnelles

Page 24: Track 1 - Atelier 4 - Déployer des applications hautement scalables sur AWS

Données

Scalabilité horizontale Master/Slave

Relativement simple à configurer

PIOPS pour des hautes performances

Taille d’instance facile à changer

Il y a une limite haute

Page 25: Track 1 - Atelier 4 - Déployer des applications hautement scalables sur AWS

Données

hash ring

Scalabilité par sharding horizontal

Plus complexe pour la couche applicative

Pas de limite à la scalabilité

Sharding par fonction or par espace de clefs

Bases de données relationnelles ou NoSQL

A

B C

D

Page 26: Track 1 - Atelier 4 - Déployer des applications hautement scalables sur AWS

Données

Données scalables

Stockage d’objets Données relationnelles

NoSQL

Page 27: Track 1 - Atelier 4 - Déployer des applications hautement scalables sur AWS

Données

Scalabilité horizontale –

service opéré

DynamoDB Base de données NoSQL a débit réglable

Rapide, prédictible, performant

Totalement distribué, architecture tolérante aux pannes

Page 28: Track 1 - Atelier 4 - Déployer des applications hautement scalables sur AWS

Données

DynamoDB Hautes performance lecture/écriture

prédictible et réglable par table

Scalabilité via la console ou par API

Tournez le

bouton

Page 29: Track 1 - Atelier 4 - Déployer des applications hautement scalables sur AWS

Données

Débit réglé à un niveau bas

Table Partition

SSD

Région

Diagramme purement illustratif

Page 30: Track 1 - Atelier 4 - Déployer des applications hautement scalables sur AWS

Données

Région

Table Partition

SS

D

Table Partition

SS

D

Table Partition

SS

D

Table Partition

SS

D

Table Partition

SS

D

Table Partition

SS

D

Table Partition

SS

D

Table Partition

SS

D

Table Partition

SS

D

Table Partition

SS

D

Accroissement du débit

Diagramme purement illustratif

Page 31: Track 1 - Atelier 4 - Déployer des applications hautement scalables sur AWS

Données

Région

Table Partition

Table Partition

Table Partition

Table Partition

Table Partition

Table Partition

Table Partition

Table Partition

Table Partition

Table Partition

Table Partition

Table Partition

Table Partition

Table Partition

Table Partition

Table Partition

Table Partition

Table Partition

Table Partition

Table Partition

Table Partition

Table Partition

Table Partition

Table Partition

Table Partition

Table Partition

Table Partition

Table Partition

Table Partition

Table Partition

Table Partition

Table Partition

Table Partition

Table Partition

Table Partition

Table Partition

Table Partition

Table Partition

Table Partition

Table Partition

Débit réglé à un niveau très élevé

Diagramme purement illustratif

Page 32: Track 1 - Atelier 4 - Déployer des applications hautement scalables sur AWS

Données

Application

Couplage faible des composants

Plus le couplage est faible,

plus l’application est scalable

Composants indépendants

Conçus comme des boîtes noires

Interactions découplées

Clusters avec répartition de charge

Page 33: Track 1 - Atelier 4 - Déployer des applications hautement scalables sur AWS

Données

Application

Amazon SQS

Processing

task/processing trigger

Processing results

Amazon SQS File d’attente fiable, hautement extensible, pour

stocker des messages échangés entre instances

Page 34: Track 1 - Atelier 4 - Déployer des applications hautement scalables sur AWS

Données

Application

Controller A Controller B Controller C

Couplage fort

Page 35: Track 1 - Atelier 4 - Déployer des applications hautement scalables sur AWS

Données

Application

Controller A Controller B Controller C

Controller A Controller B Controller C

Couplage fort

Couplage faible

Q Q Q

Page 36: Track 1 - Atelier 4 - Déployer des applications hautement scalables sur AWS

Données

Application

Auto Scaling Ajustement automatique d’un cluster de serveurs basé sur la

demande

Trigger auto-

scaling

policy

Feature Details

Control Define minimum and maximum instance pool

sizes and when scaling and cool down occurs.

Integrated to

Amazon

CloudWatch

Use metrics gathered by CloudWatch to drive

scaling.

Instance types Run Auto Scaling for On-Demand and Spot

Instances. Compatible with VPC.

Page 37: Track 1 - Atelier 4 - Déployer des applications hautement scalables sur AWS

Données

Application

Où les états

sont-ils

stockés?

Page 38: Track 1 - Atelier 4 - Déployer des applications hautement scalables sur AWS

Données

Application

Cookies des

navigateurs

Framework

de gestion

de sessions

Sessions en

bases de

données

Sessions en

mémoire

Où les états

sont-ils

stockés?

Page 39: Track 1 - Atelier 4 - Déployer des applications hautement scalables sur AWS

Données

Application

Le stockage d’état doit être

Performant

Scalable

Fiable

Page 40: Track 1 - Atelier 4 - Déployer des applications hautement scalables sur AWS

Données

Application

Trigger auto-

scaling

policy

Où stocker les états ?

Page 41: Track 1 - Atelier 4 - Déployer des applications hautement scalables sur AWS

Données

Application

Trigger auto-

scaling

policy

Pas ici

Où stocker les états ?

Page 42: Track 1 - Atelier 4 - Déployer des applications hautement scalables sur AWS

Données

Application

Trigger auto-

scaling

policy

Pas ici

Service d’états

de sessions

Les états doivent rester EXTERIEURS

au périmètre des serveurs sujets à

scalabilité

Où stocker les états ?

Page 43: Track 1 - Atelier 4 - Déployer des applications hautement scalables sur AWS

Données

Application

Performant Scalable Fiable

Où stocker les états ?

Page 44: Track 1 - Atelier 4 - Déployer des applications hautement scalables sur AWS

Données

Application

Répartition de

charge

Feature Details

Available Load balance across instances in multiple Availability

Zones

Health checks Automatically checks health of instances and takes

them in or out of service

Session stickiness Route requests to the same instance

Secure sockets layer Supports SSL offload from web and application

servers with flexible cipher support

Monitoring Publishes metrics to CloudWatch

Elastic Load Balancing Permet de créer de applications

hautement scalables

Distribue la charge entre des instances

EC2 dans plusieurs zones de

disponibilité

Page 45: Track 1 - Atelier 4 - Déployer des applications hautement scalables sur AWS

Données

Application

Répartition de

charge

Distribution

Région A

Route53

Région B

Requête

Route53 Service DNS global

Route53

16ms 92ms

Page 46: Track 1 - Atelier 4 - Déployer des applications hautement scalables sur AWS

Données

Application

Répartition de

charge

Distribution

Région A

Route53

Région B

Route53 Service DNS global

Route53

16ms 92ms

Requête

Entrée DNS Région A

Page 47: Track 1 - Atelier 4 - Déployer des applications hautement scalables sur AWS

London

Paris

NY

Servi depuis S3

/images/*

3

Servi depuis EC2

*.php

2

CNAME unique

www.mysite.com

1

CloudFront Réseau mondial de distribution de

contenu

Données

Application

Répartition de

charge

Distribution

Page 48: Track 1 - Atelier 4 - Déployer des applications hautement scalables sur AWS

Te

mp

s d

e r

ép

on

se

Cha

rge

se

rve

ur

Te

mp

s d

e r

ép

on

se

Cha

rge

se

rve

ur

Tem

ps d

e r

éponse

Charg

e

serv

eu

r

Sans CDN CDN pour

contenus

statiques

CDN pour

contenus

dynamiques

et statiques

CloudFront Réseau mondial de distribution de

contenu

Données

Application

Répartition de

charge

Distribution

Page 49: Track 1 - Atelier 4 - Déployer des applications hautement scalables sur AWS

Données

Application

Répartition de

charge

Distribution

Gestion

Page 50: Track 1 - Atelier 4 - Déployer des applications hautement scalables sur AWS

10 instances ?

Données

Application

Répartition de

charge

Distribution

Gestion

Page 51: Track 1 - Atelier 4 - Déployer des applications hautement scalables sur AWS

100 instances ?

Données

Application

Répartition de

charge

Distribution

Gestion

Page 52: Track 1 - Atelier 4 - Déployer des applications hautement scalables sur AWS

1.000 instances ?

Données

Application

Répartition de

charge

Distribution

Gestion

Page 53: Track 1 - Atelier 4 - Déployer des applications hautement scalables sur AWS

Automatisation et

management

Données

Application

Répartition de

charge

Distribution

Gestion

Page 54: Track 1 - Atelier 4 - Déployer des applications hautement scalables sur AWS

OpsWorks Elastic Beanstalk

CloudFormation EC2

Données

Application

Répartition de

charge

Distribution

Gestion

Page 55: Track 1 - Atelier 4 - Déployer des applications hautement scalables sur AWS

Summary

Utilisez ces techniques quand c’est nécessaire

Connaître les options est le premier pas

Scalabilité est la possibilité de bouger les points de

contention vers la partie le composant le moins coûteux

AWS vous simplifie la tâche – vous que votre

application ne soit pas victime de son succès

Résumé

Page 56: Track 1 - Atelier 4 - Déployer des applications hautement scalables sur AWS

De la théorie à la pratique

une histoire vraie…

Page 57: Track 1 - Atelier 4 - Déployer des applications hautement scalables sur AWS
Page 58: Track 1 - Atelier 4 - Déployer des applications hautement scalables sur AWS
Page 59: Track 1 - Atelier 4 - Déployer des applications hautement scalables sur AWS
Page 60: Track 1 - Atelier 4 - Déployer des applications hautement scalables sur AWS
Page 61: Track 1 - Atelier 4 - Déployer des applications hautement scalables sur AWS
Page 62: Track 1 - Atelier 4 - Déployer des applications hautement scalables sur AWS

Puissance

Flexibilité

Scalabilité

Couverture mondiale

Pas d’engagement

Pay-per-use

Infogérance

24/7

GTI/GTR

Monitoring

Backups

Expertise Open Source

Page 63: Track 1 - Atelier 4 - Déployer des applications hautement scalables sur AWS

Hébergement et infogérance de l’application

Disponibilité: 24/7

Elasticité: à la demande car taille d’audience/Pics d’audience non connus

Faciliter les déploiements/ Pouvoir lancer de nouveaux projets rapidement

Réactivité, Engagement fort sur les SLA

Expertise: Infrastructure AWS et technologies émergentes: MongoDB, Ruby

Page 64: Track 1 - Atelier 4 - Déployer des applications hautement scalables sur AWS

Design d’une infrastructure d’hébergement AWS: ELB, EC2, S3

Mise en place d’outils d’automatisation customisés pour le client

Infogérance 24/7 par équipe Devops bilingue

Support MongoDB géré par eNovance

SLA: engagement sur un SLA unique pour l’ensemble de l’infrastructure

Page 65: Track 1 - Atelier 4 - Déployer des applications hautement scalables sur AWS

Availability

Zone A Availability

Zone B

Availability

Zone C

Unicorn Ruby

MongoDB Primary

S3 Bucket

Puppet Capistrano Logstach

MongoDB Secondary

MongoDB Secondary

Elastic Load

Balancing

Unicorn Ruby

EBS

SnapShot

EBS Storage

EBS Storage

EBS Storage

Page 66: Track 1 - Atelier 4 - Déployer des applications hautement scalables sur AWS
Page 67: Track 1 - Atelier 4 - Déployer des applications hautement scalables sur AWS
Page 68: Track 1 - Atelier 4 - Déployer des applications hautement scalables sur AWS

Merci