Les rouages du travail distribué
   julien.salleyron@gmail.com    ◦ Geek                                                @juguul    ◦ Copix Team    ◦ Lead ...
« O Draconian Devil ! Oh Lame Saint. » « Leonardo Da Vinci, The Mona Lisa »
?
manager
« Quelqu’un de dispo sait faire ça ? »
Gearman             Worker              Worker             WorkerJe sais faire « Hello »   Je sais faire « Bye »   Je sais...
Tâches       Tâches    Workers                    en attente   en cours    total   telnet server port (telnet 127.0.0.1 4...
Client   J’aimerai faire « Hello » ?            Gearman                              Worker Worker     Worker             ...
Moi aussi                                        Bah moije veux faire     Client             Client     Je veux faire   « ...
« Quelle est la plus grosse tâche ? »
FIFO(First In First Out)
FIFO  (First In First Out)           FIFE(First In First Execute)
12:00:00 -> demande « BonjourMadame »12:00:05 -> demande « HelloTheWorld »12:00:07 <- réponse « HelloTheWorld »12:00:10 <-...
12:00:00 -> demande « Bye » (1)12:00:01 -> demande « Bye » (2)12:00:02 -> demande « Bye » (3)12:00:05 <- réponse « bye » (...
Client3Client1   Client2                     HIGH          Gearman          Worker           Bye
Client2Client1             Client3           LOW          Gearman          Worker           Task
12:00:00   ->   demande       «   Hello   »   (1)12:00:01   ->   demande       «   Hello   »   (Low 2)12:00:02   ->   dema...
Un manager polyglotte
   Création d’un worker qui compte :Appel client d’un worker qui compte :gearman -f wc -h localhost -p 4730
   PECL (utilisé dans les slides)pecl install gearman   PEARpear install Net_Gearman
« Et les workers, ils travaillent sans données ? »
Chaine de caractères *                         * Norme JSON
Reconnaissance de QRCode
« J’aimerai reconnaitreun QRCode »                          Gearman                                    « Je sais reconnait...
« Plus de puissance ! Toujours plus de                         puissance ! »
Client             Client             Gearman                                WorkerWorker       Worker                    ...
Server 1               Server 2      Client                 Client                Gearman                                 ...
Server 1             Server 2      Client                Client                Server                                     ...
Server 1                 Server 2            Client                   Client                           Server             ...
Server 1                         Server 2               Client                           Client                           ...
Server 1                 Server 2            Client                   Client                           Server             ...
mais ce n’est pas tout !
Le résultat m’importe peu, « just do it » !
Client    « Tu le feras plus tard »Background Gearman  Worker   Task
Gestion des logs
ClientBackground Gearman  Worker Envoi log par mail
Client             « Tant que tu le fais un jour »Background Gearman
   Gestion par timeout
« Elle est où la liste des tâches à faire »
« il reste tout ça à             faire »Gearman
   gearmand -d -q libsqlite3 --libsqlite3-db ./test.db                   « ce qu’il reste à faire »                      ...
« Tous ensemble, tous ensemble ! Hey !! »
Client          Task1            +          Task1            +          Task2         Gearman                   WorkerWork...
Tarification multi-produit
« Mais il est où ce bug »
« les workers ont planté, faut les relancer !!!!!!! »
« Au fait, il prends quoien paramètre ton worker ? »
Des questions ?
Gearman
Gearman
Gearman
Gearman
Gearman
Gearman
Gearman
Gearman
Gearman
Gearman
Gearman
Gearman
Gearman
Gearman
Gearman
Gearman
Upcoming SlideShare
Loading in …5
×

Gearman

725 views
659 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
725
On SlideShare
0
From Embeds
0
Number of Embeds
15
Actions
Shares
0
Downloads
11
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Gearman

  1. 1. Les rouages du travail distribué
  2. 2.  julien.salleyron@gmail.com ◦ Geek @juguul ◦ Copix Team ◦ Lead developper de l’extension AOP pour PHP* https://github.com/AOP-PHP * Présentation de AOP et AOP-PHP à 15h45 même salle
  3. 3. « O Draconian Devil ! Oh Lame Saint. » « Leonardo Da Vinci, The Mona Lisa »
  4. 4. ?
  5. 5. manager
  6. 6. « Quelqu’un de dispo sait faire ça ? »
  7. 7. Gearman Worker Worker WorkerJe sais faire « Hello » Je sais faire « Bye » Je sais faire « Hello » Je sais faire « Bye »
  8. 8. Tâches Tâches Workers en attente en cours total telnet server port (telnet 127.0.0.1 4730) ◦ Status ◦ Workers
  9. 9. Client J’aimerai faire « Hello » ? Gearman Worker Worker Worker « Hello »« Hello » « Bye » « Bye »
  10. 10. Moi aussi Bah moije veux faire Client Client Je veux faire « Hello » « Bye » Gearman Worker Worker Worker « Hello » « Hello » « Bye » « Bye »
  11. 11. « Quelle est la plus grosse tâche ? »
  12. 12. FIFO(First In First Out)
  13. 13. FIFO (First In First Out) FIFE(First In First Execute)
  14. 14. 12:00:00 -> demande « BonjourMadame »12:00:05 -> demande « HelloTheWorld »12:00:07 <- réponse « HelloTheWorld »12:00:10 <- réponse « BonjourMadame »
  15. 15. 12:00:00 -> demande « Bye » (1)12:00:01 -> demande « Bye » (2)12:00:02 -> demande « Bye » (3)12:00:05 <- réponse « bye » (1)12:00:10 <- réponse « bye » (2)12:00:15 <- réponse « bye » (3)
  16. 16. Client3Client1 Client2 HIGH Gearman Worker Bye
  17. 17. Client2Client1 Client3 LOW Gearman Worker Task
  18. 18. 12:00:00 -> demande « Hello » (1)12:00:01 -> demande « Hello » (Low 2)12:00:02 -> demande « Hello » (3)12:00:03 -> demande « Hello » (High 4)12:00:05 <- réponse « Hello » (1)12:00:10 <- réponse « Hello » (4)12:00:15 <- réponse « Hello » (3)12:00:20 <- réponse « Hello » (2)
  19. 19. Un manager polyglotte
  20. 20.  Création d’un worker qui compte :Appel client d’un worker qui compte :gearman -f wc -h localhost -p 4730
  21. 21.  PECL (utilisé dans les slides)pecl install gearman PEARpear install Net_Gearman
  22. 22. « Et les workers, ils travaillent sans données ? »
  23. 23. Chaine de caractères * * Norme JSON
  24. 24. Reconnaissance de QRCode
  25. 25. « J’aimerai reconnaitreun QRCode » Gearman « Je sais reconnaitre les QRCode »
  26. 26. « Plus de puissance ! Toujours plus de puissance ! »
  27. 27. Client Client Gearman WorkerWorker Worker Task1Task1 Task2 Task2
  28. 28. Server 1 Server 2 Client Client Gearman WorkerWorker Worker Task1Task1 Task2 Task2Server 3 Server 4
  29. 29. Server 1 Server 2 Client Client Server WorkerWorker Worker Worker Task1 WorkerTask1 Task2 Task1 Task2 Task1 Task2 Task2Server 3 Server 4
  30. 30. Server 1 Server 2 Client Client Server WorkerWorker Worker Worker Task1Task1 Task1 Task2 Task2Server 5 Server 3 Server 4
  31. 31. Server 1 Server 2 Client Client Server WorkerWorker Worker Worker Task1Task1 Task1 Task2 Worker Worker Worker Task2 Task1 Task1 Task1Server 5 Server 3 Server 4 Server N Server N+1 Server N+2 GearMan 39
  32. 32. Server 1 Server 2 Client Client Server WorkerWorker Worker Worker Task1Task1 Task1 Task2 Task2Server 5 Server 3 Server 4
  33. 33. mais ce n’est pas tout !
  34. 34. Le résultat m’importe peu, « just do it » !
  35. 35. Client « Tu le feras plus tard »Background Gearman Worker Task
  36. 36. Gestion des logs
  37. 37. ClientBackground Gearman Worker Envoi log par mail
  38. 38. Client « Tant que tu le fais un jour »Background Gearman
  39. 39.  Gestion par timeout
  40. 40. « Elle est où la liste des tâches à faire »
  41. 41. « il reste tout ça à faire »Gearman
  42. 42.  gearmand -d -q libsqlite3 --libsqlite3-db ./test.db « ce qu’il reste à faire » BDD Gearman
  43. 43. « Tous ensemble, tous ensemble ! Hey !! »
  44. 44. Client Task1 + Task1 + Task2 Gearman WorkerWorker Worker Task1Task1 Task2 Task2
  45. 45. Tarification multi-produit
  46. 46. « Mais il est où ce bug »
  47. 47. « les workers ont planté, faut les relancer !!!!!!! »
  48. 48. « Au fait, il prends quoien paramètre ton worker ? »
  49. 49. Des questions ?

×