Le second écran chez
M6Web
another (php) brick in the wall !
@omansour
Offre digitale et interactive du
groupe M6
~20 sites : Clubic – JeuxVideo.fr – AchetezFacile …
6play 1M+ Vidéos Vues / jou...
2nd screen
https://github.com/M6Web/HttpToStatsd/
https://github.com/M6Web/HttpToGelf/
Mme Michu
H2Gelf
H2Statsd
ELK
Statsd +
graphit...
Les utilisateurs font
n’importe quoi !
mme Michu
S3
static.*
proxy-cache
500k of Mme Michu …
Mieux vaut plein de petits
rapides qu’un seul lent.
before
Mobile'
devices'
Live'
broadcast'
events'
contents'
1meline'calcula1on'
Synchronis
ed'events'
responsetime rps
after
Mobile'
devices'
Live'
broadcast'
events'
contents'
1meline'calcula1on'
Synchroni
sed'
events'
Timeline(s)''
content...
REST in peace
Learn the rules like a pro,

so you can break them like an
artist.

— Pablo Picasso
/v1/contents/12?revision...
Caching is
architecture
temps réel - live
résilient & performant
log - monitoring
intégration au système tv
temps réel 

= 

très rapide
2M de votants sur 30 secondes de ramp-up
5 secondes de short polling
20 secondes de vote => 100k écritures / secondes
logs...
Infrastructure first !
logs
atomic counters
queue
cache pool
local mem
Principes
• connexion directe aux infras AWS (via token STS)
• traitements asynchrones des messages
• épargner au maximum ...
why PHP + latency
SQS DynamoDB
5 ms
WORKERS + AWS Client
• while(true)
https://github.com/M6Web/DaemonBundle
--run-max

--memory-max

UNIX signals

sf2 events...
Mme Michu
t STSToken
status
SQS
vote
workers
dynamo
DB
S3
BO
TV
Mme Michu
queue
messages
status
1 - status check
messages

seen
logs
2 - check seen
3 - log
4 - counter incr
local mem
5 -...
local mem
status
1 - status check
2 - get/delete counter
counters
3 - incr counters
count persistence
+42
+124
+25
Hotspots
• DynamoDB counter random spot
1
2
3
4
99…
batchGetItemrand(0,99)
Guzzle 3 + latency
100% CPU
Pour 250 VMs, décroche
ton téléphone !
CDN + short ttl = ¯_(ツ)_/¯
« Et je vais mettre à jour les dashboards
car là, je suis en mode Gilbert Montagné »
Un dev
★ Infrastructure first
★ scalability > webperf
★ real time ~= very fast
★ worker + PHP == OK
★ monitor all the things
★ fear the hotpsot !
★ caching is architecture
https://joind.in/talk/view/14286
 Le second écran chez M6Web, another (php) brick in the wall !
 Le second écran chez M6Web, another (php) brick in the wall !
 Le second écran chez M6Web, another (php) brick in the wall !
 Le second écran chez M6Web, another (php) brick in the wall !
 Le second écran chez M6Web, another (php) brick in the wall !
 Le second écran chez M6Web, another (php) brick in the wall !
 Le second écran chez M6Web, another (php) brick in the wall !
 Le second écran chez M6Web, another (php) brick in the wall !
 Le second écran chez M6Web, another (php) brick in the wall !
 Le second écran chez M6Web, another (php) brick in the wall !
 Le second écran chez M6Web, another (php) brick in the wall !
 Le second écran chez M6Web, another (php) brick in the wall !
 Le second écran chez M6Web, another (php) brick in the wall !
 Le second écran chez M6Web, another (php) brick in the wall !
 Le second écran chez M6Web, another (php) brick in the wall !
 Le second écran chez M6Web, another (php) brick in the wall !
 Le second écran chez M6Web, another (php) brick in the wall !
Prochain SlideShare
Chargement dans…5
×

Le second écran chez M6Web, another (php) brick in the wall !

799 vues

Publié le

M6 est leader en France sur les pratiques intégrant programme tv et interactions numériques. Ces systèmes à forte charge utilisent massivement PHP et des solutions cloud de Amazon Web Service. Cette présentation a pour but de vous présenter un retour d'expérience sur la conception et la réalisation de ces systèmes. Je vous propose d’aborder les différentes architectures et les différents outils mis en place au travers de deux projets d’émissions ayant été diffusées en 2014. Le mur se lèvera t’il au Luxembourg ?!

Publié dans : Internet
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
799
Sur SlideShare
0
Issues des intégrations
0
Intégrations
11
Actions
Partages
0
Téléchargements
0
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Le second écran chez M6Web, another (php) brick in the wall !

  1. 1. Le second écran chez M6Web another (php) brick in the wall ! @omansour
  2. 2. Offre digitale et interactive du groupe M6 ~20 sites : Clubic – JeuxVideo.fr – AchetezFacile … 6play 1M+ Vidéos Vues / jour Catchup + Live + 2nd écran
  3. 3. 2nd screen
  4. 4. https://github.com/M6Web/HttpToStatsd/ https://github.com/M6Web/HttpToGelf/ Mme Michu H2Gelf H2Statsd ELK Statsd + graphite + grafana HTTP UDP
  5. 5. Les utilisateurs font n’importe quoi !
  6. 6. mme Michu S3 static.* proxy-cache 500k of Mme Michu …
  7. 7. Mieux vaut plein de petits rapides qu’un seul lent.
  8. 8. before Mobile' devices' Live' broadcast' events' contents' 1meline'calcula1on' Synchronis ed'events' responsetime rps
  9. 9. after Mobile' devices' Live' broadcast' events' contents' 1meline'calcula1on' Synchroni sed' events' Timeline(s)'' contents' responsetime rps
  10. 10. REST in peace Learn the rules like a pro,
 so you can break them like an artist.
 — Pablo Picasso /v1/contents/12?revision=3
  11. 11. Caching is architecture
  12. 12. temps réel - live résilient & performant log - monitoring intégration au système tv
  13. 13. temps réel 
 = 
 très rapide
  14. 14. 2M de votants sur 30 secondes de ramp-up 5 secondes de short polling 20 secondes de vote => 100k écritures / secondes logs de tous les votes (Maître Nadjar)
  15. 15. Infrastructure first !
  16. 16. logs atomic counters queue cache pool local mem
  17. 17. Principes • connexion directe aux infras AWS (via token STS) • traitements asynchrones des messages • épargner au maximum les services managés
  18. 18. why PHP + latency SQS DynamoDB 5 ms
  19. 19. WORKERS + AWS Client • while(true) https://github.com/M6Web/DaemonBundle --run-max
 --memory-max
 UNIX signals
 sf2 events • AWS client 2.6 - waiting for v3 ! https://github.com/M6Web/AwsBundle
  20. 20. Mme Michu t STSToken status SQS vote workers dynamo DB S3 BO TV
  21. 21. Mme Michu queue messages status 1 - status check messages
 seen logs 2 - check seen 3 - log 4 - counter incr local mem 5 - write message seen message acquisition
  22. 22. local mem status 1 - status check 2 - get/delete counter counters 3 - incr counters count persistence +42 +124 +25
  23. 23. Hotspots • DynamoDB counter random spot 1 2 3 4 99… batchGetItemrand(0,99)
  24. 24. Guzzle 3 + latency
  25. 25. 100% CPU
  26. 26. Pour 250 VMs, décroche ton téléphone !
  27. 27. CDN + short ttl = ¯_(ツ)_/¯
  28. 28. « Et je vais mettre à jour les dashboards car là, je suis en mode Gilbert Montagné » Un dev
  29. 29. ★ Infrastructure first ★ scalability > webperf ★ real time ~= very fast ★ worker + PHP == OK
  30. 30. ★ monitor all the things ★ fear the hotpsot ! ★ caching is architecture
  31. 31. https://joind.in/talk/view/14286

×