tech round table
TRANSCRIPT
![Page 1: Tech Round Table](https://reader031.vdocuments.us/reader031/viewer/2022032217/55a9b4f71a28abc7698b475f/html5/thumbnails/1.jpg)
Behind the scenes:
3 startups, 3 stacks techniques
![Page 2: Tech Round Table](https://reader031.vdocuments.us/reader031/viewer/2022032217/55a9b4f71a28abc7698b475f/html5/thumbnails/2.jpg)
Shared Inboxes Built for Teams
Jeremy Bogatirsky
![Page 3: Tech Round Table](https://reader031.vdocuments.us/reader031/viewer/2022032217/55a9b4f71a28abc7698b475f/html5/thumbnails/3.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022032217/55a9b4f71a28abc7698b475f/html5/thumbnails/4.jpg)
Email client with collaborative features
![Page 5: Tech Round Table](https://reader031.vdocuments.us/reader031/viewer/2022032217/55a9b4f71a28abc7698b475f/html5/thumbnails/5.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022032217/55a9b4f71a28abc7698b475f/html5/thumbnails/6.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022032217/55a9b4f71a28abc7698b475f/html5/thumbnails/7.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022032217/55a9b4f71a28abc7698b475f/html5/thumbnails/8.jpg)
Overall architecture
APIs
Internet
AmazonS3
Memcached
Redis
Internet
Workers
![Page 9: Tech Round Table](https://reader031.vdocuments.us/reader031/viewer/2022032217/55a9b4f71a28abc7698b475f/html5/thumbnails/9.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022032217/55a9b4f71a28abc7698b475f/html5/thumbnails/10.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022032217/55a9b4f71a28abc7698b475f/html5/thumbnails/11.jpg)
Realytics
Leverage the AWS cloud
![Page 12: Tech Round Table](https://reader031.vdocuments.us/reader031/viewer/2022032217/55a9b4f71a28abc7698b475f/html5/thumbnails/12.jpg)
![Page 13: Tech Round Table](https://reader031.vdocuments.us/reader031/viewer/2022032217/55a9b4f71a28abc7698b475f/html5/thumbnails/13.jpg)
![Page 14: Tech Round Table](https://reader031.vdocuments.us/reader031/viewer/2022032217/55a9b4f71a28abc7698b475f/html5/thumbnails/14.jpg)
![Page 15: Tech Round Table](https://reader031.vdocuments.us/reader031/viewer/2022032217/55a9b4f71a28abc7698b475f/html5/thumbnails/15.jpg)
![Page 16: Tech Round Table](https://reader031.vdocuments.us/reader031/viewer/2022032217/55a9b4f71a28abc7698b475f/html5/thumbnails/16.jpg)
![Page 17: Tech Round Table](https://reader031.vdocuments.us/reader031/viewer/2022032217/55a9b4f71a28abc7698b475f/html5/thumbnails/17.jpg)
![Page 18: Tech Round Table](https://reader031.vdocuments.us/reader031/viewer/2022032217/55a9b4f71a28abc7698b475f/html5/thumbnails/18.jpg)
![Page 19: Tech Round Table](https://reader031.vdocuments.us/reader031/viewer/2022032217/55a9b4f71a28abc7698b475f/html5/thumbnails/19.jpg)
Custom analytics
engine
+
TV ads Real Time
tracking
+
Data Science
![Page 20: Tech Round Table](https://reader031.vdocuments.us/reader031/viewer/2022032217/55a9b4f71a28abc7698b475f/html5/thumbnails/20.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022032217/55a9b4f71a28abc7698b475f/html5/thumbnails/21.jpg)
60K + spots analyzed
200M+ differentprofiles
1Mds eventsrelative to TV
50+ customers
140+ Channels8 countries
![Page 22: Tech Round Table](https://reader031.vdocuments.us/reader031/viewer/2022032217/55a9b4f71a28abc7698b475f/html5/thumbnails/22.jpg)
Leveraging AWS : API Serving V1
Amazon S3
Route 53 Amazon SQSELB
![Page 23: Tech Round Table](https://reader031.vdocuments.us/reader031/viewer/2022032217/55a9b4f71a28abc7698b475f/html5/thumbnails/23.jpg)
Leveraging AWS : Middleware V1
On PremisesAmazon SQS
RDS
![Page 24: Tech Round Table](https://reader031.vdocuments.us/reader031/viewer/2022032217/55a9b4f71a28abc7698b475f/html5/thumbnails/24.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022032217/55a9b4f71a28abc7698b475f/html5/thumbnails/25.jpg)
Leveraging AWS : API Serving V2
KINESISRoute 53
![Page 26: Tech Round Table](https://reader031.vdocuments.us/reader031/viewer/2022032217/55a9b4f71a28abc7698b475f/html5/thumbnails/26.jpg)
Leveraging AWS : Middleware V2
Amazon S3
On Premises
KINESIS
RDS Dynamo DBRedis
![Page 28: Tech Round Table](https://reader031.vdocuments.us/reader031/viewer/2022032217/55a9b4f71a28abc7698b475f/html5/thumbnails/28.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022032217/55a9b4f71a28abc7698b475f/html5/thumbnails/29.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022032217/55a9b4f71a28abc7698b475f/html5/thumbnails/30.jpg)
Ç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](https://reader031.vdocuments.us/reader031/viewer/2022032217/55a9b4f71a28abc7698b475f/html5/thumbnails/31.jpg)
Architecture technique
Vue d’ensemble
![Page 32: Tech Round Table](https://reader031.vdocuments.us/reader031/viewer/2022032217/55a9b4f71a28abc7698b475f/html5/thumbnails/32.jpg)
Ce que nous avons
Varnish
Apache - PHP
APIs
Nginx
Internal calls
(APIs)
![Page 33: Tech Round Table](https://reader031.vdocuments.us/reader031/viewer/2022032217/55a9b4f71a28abc7698b475f/html5/thumbnails/33.jpg)
Mais aussi...
![Page 34: Tech Round Table](https://reader031.vdocuments.us/reader031/viewer/2022032217/55a9b4f71a28abc7698b475f/html5/thumbnails/34.jpg)
Migration
Assets
![Page 35: Tech Round Table](https://reader031.vdocuments.us/reader031/viewer/2022032217/55a9b4f71a28abc7698b475f/html5/thumbnails/35.jpg)
Assets
Nginx
![Page 36: Tech Round Table](https://reader031.vdocuments.us/reader031/viewer/2022032217/55a9b4f71a28abc7698b475f/html5/thumbnails/36.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022032217/55a9b4f71a28abc7698b475f/html5/thumbnails/37.jpg)
Double écriture
Upload
![Page 38: Tech Round Table](https://reader031.vdocuments.us/reader031/viewer/2022032217/55a9b4f71a28abc7698b475f/html5/thumbnails/38.jpg)
Synchronisation
● Parcours des IDs de vendeurs
● aws cp du dossier vers le bucket Amazon S3
● Update database SQLite
![Page 39: Tech Round Table](https://reader031.vdocuments.us/reader031/viewer/2022032217/55a9b4f71a28abc7698b475f/html5/thumbnails/39.jpg)
Migration
Databases
![Page 40: Tech Round Table](https://reader031.vdocuments.us/reader031/viewer/2022032217/55a9b4f71a28abc7698b475f/html5/thumbnails/40.jpg)
Databases
• Plusieurs GB de données
• Plus de 10 bases de données
![Page 41: Tech Round Table](https://reader031.vdocuments.us/reader031/viewer/2022032217/55a9b4f71a28abc7698b475f/html5/thumbnails/41.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022032217/55a9b4f71a28abc7698b475f/html5/thumbnails/42.jpg)
Upload et traitement du dump
Copie du dump sur
Amazon S3
avec AWS CLIDécompression
Traitement
Intertion
![Page 43: Tech Round Table](https://reader031.vdocuments.us/reader031/viewer/2022032217/55a9b4f71a28abc7698b475f/html5/thumbnails/43.jpg)
Connecter la nouvelle base de données en
slave
![Page 44: Tech Round Table](https://reader031.vdocuments.us/reader031/viewer/2022032217/55a9b4f71a28abc7698b475f/html5/thumbnails/44.jpg)
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](https://reader031.vdocuments.us/reader031/viewer/2022032217/55a9b4f71a28abc7698b475f/html5/thumbnails/45.jpg)
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 47: Tech Round Table](https://reader031.vdocuments.us/reader031/viewer/2022032217/55a9b4f71a28abc7698b475f/html5/thumbnails/47.jpg)
Jeremy Bogatirsky
Lead Developer
Sébastien Monteil
CTO & Co-Founder
Vincent Paulin
Responsible R&D
![Page 48: Tech Round Table](https://reader031.vdocuments.us/reader031/viewer/2022032217/55a9b4f71a28abc7698b475f/html5/thumbnails/48.jpg)
Inscrivez-vous gratuitement à l’adresse :
aws.amazon.com/summits/paris