Stephan Hadinger, Sr. Manager, Solution Architecture
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 :
Qu’est-ce qu’une application
hautement scalable?
Besoins réels
Besoins prévus
Insatisfaction
clients
Gaspillage
Besoins
Temps
Elastic capacity No need to guess capacity requirements and over-provision Capacité élastique
Capacité élastique
Besoins
Temps
Elastic capacity No need to guess capacity requirements and over-provision Capacité élastique
Built on a global footprint
9 Régions
25 Zones de disponibilité
Expansion continue
Des zones de disponibilités régionales
3 principes…
Echelle
1
Elasticité
1
Echelle
Etats Données
1
Elasticité
Echelle
Sécurité
Echelle
Elasticité
Etats Données
2
Inhérent 2
Sécurité
Echelle
Elasticité
Etats Données
VPC
Groupes
2 Inhérent Sécurité
Echelle
Elasticité
Etats Données
Pannes Sécurité Inhérent
VPC
Groupes
3
Echelle
Elasticité
Etats Données
Prévues 3
Pannes Sécurité Inhérent
VPC
Groupes
Echelle
Elasticité
Etats Données
Automatisation
Tests
3 Prévues Pannes Sécurité Inhérent
VPC
Groupes
Echelle
Elasticité
Etats Données
Automatisation
Tests
Prévues Pannes Sécurité Inhérent
VPC
Groupes
Echelle
Elasticité
Etats Données
Les différentes couches
d’une architecture
scalable
Données
Données scalables
Stockage d’objets
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
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
Données
Données
Données scalables
Stockage d’objets Données relationnelles
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
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
Données
Données scalables
Stockage d’objets Données relationnelles
NoSQL
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
Données
DynamoDB Hautes performance lecture/écriture
prédictible et réglable par table
Scalabilité via la console ou par API
Tournez le
bouton
Données
Débit réglé à un niveau bas
Table Partition
SSD
Région
Diagramme purement illustratif
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
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
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
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
Données
Application
Controller A Controller B Controller C
Couplage fort
Données
Application
Controller A Controller B Controller C
Controller A Controller B Controller C
Couplage fort
Couplage faible
Q Q Q
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.
Données
Application
Où les états
sont-ils
stockés?
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?
Données
Application
Le stockage d’état doit être
Performant
Scalable
Fiable
Données
Application
Trigger auto-
scaling
policy
Où stocker les états ?
Données
Application
Trigger auto-
scaling
policy
Pas ici
Où stocker les états ?
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 ?
Données
Application
Performant Scalable Fiable
Où stocker les états ?
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é
Données
Application
Répartition de
charge
Distribution
Région A
Route53
Région B
Requête
Route53 Service DNS global
Route53
16ms 92ms
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
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
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
Données
Application
Répartition de
charge
Distribution
Gestion
10 instances ?
Données
Application
Répartition de
charge
Distribution
Gestion
100 instances ?
Données
Application
Répartition de
charge
Distribution
Gestion
1.000 instances ?
Données
Application
Répartition de
charge
Distribution
Gestion
Automatisation et
management
Données
Application
Répartition de
charge
Distribution
Gestion
OpsWorks Elastic Beanstalk
CloudFormation EC2
Données
Application
Répartition de
charge
Distribution
Gestion
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é
De la théorie à la pratique
une histoire vraie…
Puissance
Flexibilité
Scalabilité
Couverture mondiale
Pas d’engagement
Pay-per-use
Infogérance
24/7
GTI/GTR
Monitoring
Backups
Expertise Open Source
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
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
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
Merci
Top Related