48
Behind the scenes: 3 startups, 3 stacks techniques

Tech Round Table

Embed Size (px)

Citation preview

Page 1: Tech Round Table

Behind the scenes:

3 startups, 3 stacks techniques

Page 2: Tech Round Table

Shared Inboxes Built for Teams

Jeremy Bogatirsky

Page 3: Tech Round Table

Front?

• Paris / San Francisco

• YCombinator S14

• Email was made for 1 to 1 communication, email was not made for

team

• Dealing with shared inboxes is painful

• Intuitive collaboration over shared inboxes (Email, Twitter, SMS)

Page 4: Tech Round Table

Email client with collaborative features

Page 5: Tech Round Table

Front architecture on AWS

• Based on micro services (Node.js)

• Communication through message queues (Redis)

• Relational database (MySQL)

• Caching system (Memcached)

• Long-time persistence (Amazon S3)

Page 6: Tech Round Table

OK, now AWS resources

• Amazon EC2

– 20 running instances (Linux)

– 20 security groups

– 3 Elastic Load Balancers

– 3 Elastic IPs

• Amazon Elasticache

– 1 Memcached cluster (2 nodes of 13.5GB RAM)

– 1 Redis replication group

Page 7: Tech Round Table

More AWS resources

• Amazon RDS

– 2 instances (MySQL)

• Amazon S3

– 7 buckets in use

• Misc

– 9 IAM users

– 69 records in Amazon Route 53 hosted zone

– 3 web distributions in Amazon CloudFront

– 125 CloudWatch alarms

Page 8: Tech Round Table

Overall architecture

APIs

Internet

AmazonS3

Memcached

Redis

Internet

Workers

Page 9: Tech Round Table

Metrics

• 150 000 Emails/SMS/Tweets per day

• Up to 2 500 simultaneous users

• 20 000 000 push notifications per day (socket.io)

• No SLA agreement but you can't afford downtime when delivering

emails/sms/tweets

Page 10: Tech Round Table

Conclusion

• All-in-one cloud

• Flexible

• Scalable friendly

• Not so complicated as it seems at first

• It took minutes to be up and running

Page 11: Tech Round Table

Realytics

Leverage the AWS cloud

Page 12: Tech Round Table
Page 13: Tech Round Table
Page 14: Tech Round Table
Page 15: Tech Round Table
Page 16: Tech Round Table
Page 17: Tech Round Table
Page 18: Tech Round Table
Page 19: Tech Round Table

Custom analytics

engine

+

TV ads Real Time

tracking

+

Data Science

Page 20: Tech Round Table

Exact spot diffusion timestamp

Spot position in funnel Broadasted spot clues

Near RT High precision High granularity Ability to tackle specific

media scenario

C u s t o m A n a l y t i c s E n g i n e T V S t r e a m A n a l y s i s

Page 21: Tech Round Table

60K + spots analyzed

200M+ differentprofiles

1Mds eventsrelative to TV

50+ customers

140+ Channels8 countries

Page 22: Tech Round Table

Leveraging AWS : API Serving V1

Amazon S3

Route 53 Amazon SQSELB

Page 23: Tech Round Table

Leveraging AWS : Middleware V1

On PremisesAmazon SQS

RDS

Page 24: Tech Round Table

Issues & Bottlenecks encountered after 1 year

Data is growing fast (x2 every quarter) Inadequate RDBMS design to handle volume / throughput (1TB) Computation get slower (from seconds to hours) SQS, RDS are getting too expensive Multiple risk factors

Single region (EU-EAST-1) Limited HA Low security …

Page 25: Tech Round Table

Leveraging AWS : API Serving V2

KINESISRoute 53

Page 26: Tech Round Table

Leveraging AWS : Middleware V2

Amazon S3

On Premises

KINESIS

RDS Dynamo DBRedis

Page 27: Tech Round Table

Sébastien MONTEILCTO

[email protected]

Frédéric [email protected]

Page 28: Tech Round Table

Etsy - A little MarketPlusieurs millions d’utilisateurs

Une migration transparente et (presque) sans douleurVincent Paulin – Technology R&D project manager

@Genokilller

Page 29: Tech Round Table

Qui sommes nous ?

Lancé en 2008, place de marchée dédiée au fait-main et à l’artisanat

français.

Lancé en 2011, place de marché dédiée à l’achat de fournitures pour

créer.

Page 30: Tech Round Table

Ça donne quoi en chiffres technique ?

– 10 TB d’images

– +200 GB de base de données

• ~ 3500 lectures/seconde

• ~ 350 écritures/seconde

– Cluster Elasticsearch (5 serveurs)

– +20 serveurs au total (frontaux + SQL+ Cache + Varnish,

etc.)

– Jusqu’à 10 deploys/jour

Page 31: Tech Round Table

Architecture technique

Vue d’ensemble

Page 32: Tech Round Table

Ce que nous avons

Varnish

Apache - PHP

APIs

Nginx

Internal calls

(APIs)

Page 33: Tech Round Table

Mais aussi...

Page 34: Tech Round Table

Migration

Assets

Page 35: Tech Round Table

Assets

Nginx

Page 36: Tech Round Table

Comment ?

• Plusieurs TB de données

– Plus de 100 000 dossiers

– 1 dossier = 1 identifiant de vendeur

• Toutes les images de ses produits

dans ce dossier

• Jusqu’à 25 000 fichiers par dossier

Page 37: Tech Round Table

Double écriture

Upload

Page 38: Tech Round Table

Synchronisation

● Parcours des IDs de vendeurs

● aws cp du dossier vers le bucket Amazon S3

● Update database SQLite

Page 39: Tech Round Table

Migration

Databases

Page 40: Tech Round Table

Databases

• Plusieurs GB de données

• Plus de 10 bases de données

Page 41: Tech Round Table

Comment ?

• Dédier un slave pour les backups– Le verrouiller :

STOP SLAVE;FLUSH TABLES WITH READ LOCK;

• Bien noter la position du master

SHOW MASTER STATUS;

• Effectuer un dump complet de chaque base de données

• Une fois terminé

UNLOCK TABLES;START SLAVE;

mysqldump --no-create-info --skip-triggers <database_name> |gzip > <database>_data.sql.gz

mysqldump --no-data <database_name> > <database>_schema.sql

Page 42: Tech Round Table

Upload et traitement du dump

Copie du dump sur

Amazon S3

avec AWS CLIDécompression

Traitement

Intertion

Page 43: Tech Round Table

Connecter la nouvelle base de données en

slave

Page 44: Tech Round Table

Ce à quoi il faut faire attention

– Vérifier la durée de rétention des bin logs• Pour le master en production

– Un dump, c’est long– Le slave doit avoir suffisamment de temps pour se

resynchroniser avec le master• Pour le slave qui recevra la connexion du serveur RDS en slave

– L’insertion des données peut-être très longue

– Prévoir une instance EC2 suffisamment puissante pour traiter le dump SQL.

– Prévoir une instance RDS suffisamment puissante pour être synchronisée avec le slave de production

Page 45: Tech Round Table

Des données avec une durée de vie courte ?

• Session• Autorisation API• Token utilisateur• …

Ne perdez pas de temps et d’IOPS avec ces tables durant la re-synchronisation

Adoptez un schéma de type blackhole jusqu’à la fin synchronisation.

Page 46: Tech Round Table

Merci !

[email protected]

Page 47: Tech Round Table

Jeremy Bogatirsky

Lead Developer

Sébastien Monteil

CTO & Co-Founder

Vincent Paulin

Responsible R&D

Page 48: Tech Round Table

Inscrivez-vous gratuitement à l’adresse :

aws.amazon.com/summits/paris