SlideShare une entreprise Scribd logo
A la queue leu leu
intro 1/2


• Au début du web on faisait des pages

• Puis on s'est mis à faire des sites

• Maintenant on fait des plate-formes
intro 2/2

Désormais, le site web est une partie de l'infra…



… et bien souvent, c'est la partie emergée de
l'iceberg
En synchrone



• On est bézu baisé
En asynchrone
• monitorer la dispo de vos ressources CPU (=workers);
• lancer une tâche quand un worker se libère;
• surveiller si la tâche se termine (et si elle se termine
  bien…);
• en cas de problème, réessayer ou alerter.


D’où le besoin pour un gestionnaire de file d'attentes =
Message Queue dans la langue de Shakespeare.
En Python
• Celery : la plus connue
• rq : alternative light
• bindings Python à ØMQ : construisez votre
  propre gestionnaire !
• pleins d'autres projets (Mozilla en a mis
  plusieurs en OSS)
Celery 1/3
• A commencé comme une app django
• Désormais autonome (mais toujours une intégration
  avec django=dj-celery)
• Gros projet, énormément de fonctionnalités out-of-
  box : c'est un framework à lui tout seul
• Nombreux backends (RabbitMQ, redis, Mongo,
  MySQL…)
Celery 2/3
• Le gros pb : toutes les fonctionnalités ne sont pas dispo avec tous
   les backends !!
• Choisir un backend, c'est éventuellement se couper de plein de
   fonctionnalités…
• Le backend (RMQ) recommandé est loin d'être le plus efficace :
    – Impossible de réessayer une tâche qui a plantée;
    – Pas de gestion des priorités;
• Le code évolue beaucoup et vite : c'est bien mais ça peut vous
   amener à réécrire pas mal de code juste pour suivre les
   changements de Celery
Celery 3/3
Un framework:

• Comme tous les frameworks, requiert du temps
  pour bien le maîtriser

• Bien lire la doc, notamment le tableau qui liste
  les options dispo en fonction des backends

• Peut être arrivé un peu tôt.
rq

• Plus simple

• Doc minimaliste (mais il y a moins à dire)

• Redis est le broker

• Unix only

• Taillé pour Heroku et les services similaires
ØMQ



ØMG ! ØMG !! ØMG !!!
Do It Yourself


• Plus simple qu'on ne le croit !

• Tout est disponible dans Python avec gevent
  et redis
Monitorer

• Attention aux features, mais c'est pas le plus
  important.

• Coder c'est 25% du temps, le plus long, c'est
  de monitorer !
Questions

Contenu connexe

Tendances

JRuby: l'alliance de Ruby avec Java
JRuby: l'alliance de Ruby avec JavaJRuby: l'alliance de Ruby avec Java
JRuby: l'alliance de Ruby avec Java
Cyrille Bonnet
 
Rails 3 au Djangocong
Rails 3 au DjangocongRails 3 au Djangocong
Rails 3 au Djangocong
Jérémy Lecour
 
Développer et déployer une application php maintenable
Développer et déployer une application php maintenableDévelopper et déployer une application php maintenable
Développer et déployer une application php maintenable
LeTesteur
 
Paris JUG Spring Batch
Paris JUG Spring BatchParis JUG Spring Batch
Paris JUG Spring Batch
Olivier BAZOUD
 
Chtijug springbatch 2011
Chtijug springbatch 2011Chtijug springbatch 2011
Chtijug springbatch 2011
Olivier BAZOUD
 
EventMachine
EventMachineEventMachine
EventMachine
LeTesteur
 
PHP : écrire et déployer des applications maintenables !
PHP : écrire et déployer des applications maintenables !PHP : écrire et déployer des applications maintenables !
PHP : écrire et déployer des applications maintenables !
Microsoft
 
Présentation de Node.js
Présentation de Node.jsPrésentation de Node.js
Présentation de Node.js
Mickael Couzinet
 
Comment automatiser la supervision avec Puppet ?
Comment automatiser la supervision avec Puppet ?Comment automatiser la supervision avec Puppet ?
Comment automatiser la supervision avec Puppet ?
Aurélie Henriot
 
SdE 6 - Planification
SdE 6 - PlanificationSdE 6 - Planification
SdE 6 - Planification
Alexandru Radovici
 
Réu technodejs
Réu technodejsRéu technodejs
Réu technodejs
naholyr
 
Frameworks : A history of violence
Frameworks : A history of violenceFrameworks : A history of violence
Frameworks : A history of violence
Francois Zaninotto
 
Migration de Tomcat vers Vert.x
Migration de Tomcat vers Vert.xMigration de Tomcat vers Vert.x
Migration de Tomcat vers Vert.x
FlorianBoulay
 
Présentation de nodejs
Présentation de nodejsPrésentation de nodejs
Présentation de nodejs
13p
 
Node.js et les nouvelles technologies javascript
Node.js et les nouvelles technologies javascriptNode.js et les nouvelles technologies javascript
Node.js et les nouvelles technologies javascript
Khalid Jebbari
 
2014.12.11 - TECH CONF #3 - Présentation Node.js
2014.12.11 - TECH CONF #3 - Présentation Node.js2014.12.11 - TECH CONF #3 - Présentation Node.js
2014.12.11 - TECH CONF #3 - Présentation Node.js
TelecomValley
 
Vert.x 3
Vert.x 3Vert.x 3
Vert.x 3
Xavier MARIN
 
ALF1 - Introduction
ALF1 - IntroductionALF1 - Introduction
ALF1 - Introduction
Alexandru Radovici
 

Tendances (19)

JRuby: l'alliance de Ruby avec Java
JRuby: l'alliance de Ruby avec JavaJRuby: l'alliance de Ruby avec Java
JRuby: l'alliance de Ruby avec Java
 
Rails 3 au Djangocong
Rails 3 au DjangocongRails 3 au Djangocong
Rails 3 au Djangocong
 
Développer et déployer une application php maintenable
Développer et déployer une application php maintenableDévelopper et déployer une application php maintenable
Développer et déployer une application php maintenable
 
Paris JUG Spring Batch
Paris JUG Spring BatchParis JUG Spring Batch
Paris JUG Spring Batch
 
Chtijug springbatch 2011
Chtijug springbatch 2011Chtijug springbatch 2011
Chtijug springbatch 2011
 
EventMachine
EventMachineEventMachine
EventMachine
 
PHP : écrire et déployer des applications maintenables !
PHP : écrire et déployer des applications maintenables !PHP : écrire et déployer des applications maintenables !
PHP : écrire et déployer des applications maintenables !
 
Présentation de Node.js
Présentation de Node.jsPrésentation de Node.js
Présentation de Node.js
 
Comment automatiser la supervision avec Puppet ?
Comment automatiser la supervision avec Puppet ?Comment automatiser la supervision avec Puppet ?
Comment automatiser la supervision avec Puppet ?
 
SdE 6 - Planification
SdE 6 - PlanificationSdE 6 - Planification
SdE 6 - Planification
 
Réu technodejs
Réu technodejsRéu technodejs
Réu technodejs
 
Frameworks : A history of violence
Frameworks : A history of violenceFrameworks : A history of violence
Frameworks : A history of violence
 
Spring Batch ParisJUG
Spring Batch ParisJUG Spring Batch ParisJUG
Spring Batch ParisJUG
 
Migration de Tomcat vers Vert.x
Migration de Tomcat vers Vert.xMigration de Tomcat vers Vert.x
Migration de Tomcat vers Vert.x
 
Présentation de nodejs
Présentation de nodejsPrésentation de nodejs
Présentation de nodejs
 
Node.js et les nouvelles technologies javascript
Node.js et les nouvelles technologies javascriptNode.js et les nouvelles technologies javascript
Node.js et les nouvelles technologies javascript
 
2014.12.11 - TECH CONF #3 - Présentation Node.js
2014.12.11 - TECH CONF #3 - Présentation Node.js2014.12.11 - TECH CONF #3 - Présentation Node.js
2014.12.11 - TECH CONF #3 - Présentation Node.js
 
Vert.x 3
Vert.x 3Vert.x 3
Vert.x 3
 
ALF1 - Introduction
ALF1 - IntroductionALF1 - Introduction
ALF1 - Introduction
 

En vedette

Révision
Révision   Révision
Révision
Rémi Détrez
 
Direction Ressources Humaines à temps partagé
Direction Ressources Humaines à temps partagéDirection Ressources Humaines à temps partagé
Direction Ressources Humaines à temps partagé
Atlays
 
Projet Babel Métal
Projet Babel MétalProjet Babel Métal
Projet Babel Métal
0596957s
 
Imagenes de escher
Imagenes de escherImagenes de escher
Imagenes de escher
Rosalía Pasini
 
Ana 159 164
Ana  159 164Ana  159 164
Ana 159 164
Privada
 
Arxtech Touch Monitors English
Arxtech Touch Monitors EnglishArxtech Touch Monitors English
Arxtech Touch Monitors English
Arxtech Canada
 
Práctica XII: Factura y guía de atención al cliente en sistema braille Gas Na...
Práctica XII: Factura y guía de atención al cliente en sistema braille Gas Na...Práctica XII: Factura y guía de atención al cliente en sistema braille Gas Na...
Práctica XII: Factura y guía de atención al cliente en sistema braille Gas Na...
TransparenciaporColombia
 
Dissertation_de_DIH-final
Dissertation_de_DIH-finalDissertation_de_DIH-final
Dissertation_de_DIH-final
KinseyGrumbach
 
Etude de cas e-réputation - Groupe 4
Etude de cas e-réputation - Groupe 4Etude de cas e-réputation - Groupe 4
Etude de cas e-réputation - Groupe 4
Christophe Blazquez
 
Txusart
TxusartTxusart
Histoire de Prudence
Histoire de PrudenceHistoire de Prudence
Histoire de Prudence
PierreSnaet
 
100 tâches à effectuer pour réussir votre référencement google
100 tâches à effectuer pour réussir votre référencement google100 tâches à effectuer pour réussir votre référencement google
100 tâches à effectuer pour réussir votre référencement google
ludovic barthélémy
 
Unid 4 act 3 carmen indira velez
Unid 4 act 3 carmen indira velezUnid 4 act 3 carmen indira velez
Unid 4 act 3 carmen indira velez
carivfi
 
La Veille de Né Kid Du 08 04 10 : les nonos
La Veille de Né Kid Du 08 04 10 : les nonosLa Veille de Né Kid Du 08 04 10 : les nonos
La Veille de Né Kid Du 08 04 10 : les nonos
Né Kid
 
Coloriage de Noël www.coloriageonline.com
Coloriage de Noël www.coloriageonline.comColoriage de Noël www.coloriageonline.com
Coloriage de Noël www.coloriageonline.com
Gifig Mania
 
Conférence GEFCO CEREZA Value Chain Execution
Conférence GEFCO CEREZA Value Chain ExecutionConférence GEFCO CEREZA Value Chain Execution
Conférence GEFCO CEREZA Value Chain Execution
Talan Consulting
 
Amabilidad
AmabilidadAmabilidad
Amabilidad
Cris Araújo
 
Arxtech Canada Line card v3
Arxtech Canada Line card v3Arxtech Canada Line card v3
Arxtech Canada Line card v3
Arxtech Canada
 
Le manifeste du parler-vrai
Le manifeste du parler-vraiLe manifeste du parler-vrai
Le manifeste du parler-vrai
We FEED
 

En vedette (20)

Révision
Révision   Révision
Révision
 
Direction Ressources Humaines à temps partagé
Direction Ressources Humaines à temps partagéDirection Ressources Humaines à temps partagé
Direction Ressources Humaines à temps partagé
 
Projet Babel Métal
Projet Babel MétalProjet Babel Métal
Projet Babel Métal
 
Imagenes de escher
Imagenes de escherImagenes de escher
Imagenes de escher
 
Ana 159 164
Ana  159 164Ana  159 164
Ana 159 164
 
Arxtech Touch Monitors English
Arxtech Touch Monitors EnglishArxtech Touch Monitors English
Arxtech Touch Monitors English
 
licence-aes-2016-2017
licence-aes-2016-2017licence-aes-2016-2017
licence-aes-2016-2017
 
Práctica XII: Factura y guía de atención al cliente en sistema braille Gas Na...
Práctica XII: Factura y guía de atención al cliente en sistema braille Gas Na...Práctica XII: Factura y guía de atención al cliente en sistema braille Gas Na...
Práctica XII: Factura y guía de atención al cliente en sistema braille Gas Na...
 
Dissertation_de_DIH-final
Dissertation_de_DIH-finalDissertation_de_DIH-final
Dissertation_de_DIH-final
 
Etude de cas e-réputation - Groupe 4
Etude de cas e-réputation - Groupe 4Etude de cas e-réputation - Groupe 4
Etude de cas e-réputation - Groupe 4
 
Txusart
TxusartTxusart
Txusart
 
Histoire de Prudence
Histoire de PrudenceHistoire de Prudence
Histoire de Prudence
 
100 tâches à effectuer pour réussir votre référencement google
100 tâches à effectuer pour réussir votre référencement google100 tâches à effectuer pour réussir votre référencement google
100 tâches à effectuer pour réussir votre référencement google
 
Unid 4 act 3 carmen indira velez
Unid 4 act 3 carmen indira velezUnid 4 act 3 carmen indira velez
Unid 4 act 3 carmen indira velez
 
La Veille de Né Kid Du 08 04 10 : les nonos
La Veille de Né Kid Du 08 04 10 : les nonosLa Veille de Né Kid Du 08 04 10 : les nonos
La Veille de Né Kid Du 08 04 10 : les nonos
 
Coloriage de Noël www.coloriageonline.com
Coloriage de Noël www.coloriageonline.comColoriage de Noël www.coloriageonline.com
Coloriage de Noël www.coloriageonline.com
 
Conférence GEFCO CEREZA Value Chain Execution
Conférence GEFCO CEREZA Value Chain ExecutionConférence GEFCO CEREZA Value Chain Execution
Conférence GEFCO CEREZA Value Chain Execution
 
Amabilidad
AmabilidadAmabilidad
Amabilidad
 
Arxtech Canada Line card v3
Arxtech Canada Line card v3Arxtech Canada Line card v3
Arxtech Canada Line card v3
 
Le manifeste du parler-vrai
Le manifeste du parler-vraiLe manifeste du parler-vrai
Le manifeste du parler-vrai
 

Similaire à A la queue leu leu

FinistJUG - Apache TomEE
FinistJUG - Apache TomEEFinistJUG - Apache TomEE
FinistJUG - Apache TomEE
Horacio Gonzalez
 
Drush make driven development
Drush make driven developmentDrush make driven development
Drush make driven development
Sébastien Corbin
 
Apache solr andré bois-crettez 08
Apache solr   andré bois-crettez 08Apache solr   andré bois-crettez 08
Apache solr andré bois-crettez 08
Loïc Descotte
 
Rex docker en production meeutp-docker-nantes
Rex docker en production meeutp-docker-nantesRex docker en production meeutp-docker-nantes
Rex docker en production meeutp-docker-nantes
Christophe Furmaniak
 
Genielogiciel
GenielogicielGenielogiciel
Road map to DevOps engineering - Elie Sirius
Road map to DevOps engineering -  Elie SiriusRoad map to DevOps engineering -  Elie Sirius
Road map to DevOps engineering - Elie Sirius
GDG Bujumbura
 
GetText / Rails - FR
GetText / Rails - FRGetText / Rails - FR
GetText / Rails - FR
Sylvain Abélard
 
GetText / Rails
GetText / RailsGetText / Rails
GetText / Rails
Sylvain Abélard
 
Caching reboot: javax.cache & Ehcache 3
Caching reboot: javax.cache & Ehcache 3Caching reboot: javax.cache & Ehcache 3
Caching reboot: javax.cache & Ehcache 3
Louis Jacomet
 
Android distribution cyanogen mod _ guillaume lesniak, student at miage nancy
Android distribution   cyanogen mod _ guillaume lesniak, student at miage nancyAndroid distribution   cyanogen mod _ guillaume lesniak, student at miage nancy
Android distribution cyanogen mod _ guillaume lesniak, student at miage nancy
Paris Open Source Summit
 
Cours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfCours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdf
boulonvert
 
Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !
VISEO
 
SdE 2 - Introduction
SdE 2 - IntroductionSdE 2 - Introduction
SdE 2 - Introduction
Alexandru Radovici
 
Etat de l'art des systèmes embarqués, utilisation du logiciel libre
Etat de l'art des systèmes embarqués, utilisation du logiciel libreEtat de l'art des systèmes embarqués, utilisation du logiciel libre
Etat de l'art des systèmes embarqués, utilisation du logiciel libre
Pierre Ficheux
 
709469716-Docker-Intro.pptx709469716-Docker-Intro.pptx
709469716-Docker-Intro.pptx709469716-Docker-Intro.pptx709469716-Docker-Intro.pptx709469716-Docker-Intro.pptx
709469716-Docker-Intro.pptx709469716-Docker-Intro.pptx
AbdellahELMAMOUN
 
Infrastructure as code drupal
Infrastructure as code drupalInfrastructure as code drupal
Infrastructure as code drupal
Christophe Villeneuve
 
Perfug BOF devoxx2017.pptx
Perfug BOF devoxx2017.pptxPerfug BOF devoxx2017.pptx
Perfug BOF devoxx2017.pptx
Marc Bojoly
 
Des poneys à Liberation.fr
Des poneys à Liberation.frDes poneys à Liberation.fr
Des poneys à Liberation.fr
liberation_dev
 
Alphorm.com Formation Le langage Ruby
Alphorm.com Formation Le langage RubyAlphorm.com Formation Le langage Ruby
Alphorm.com Formation Le langage Ruby
Alphorm
 

Similaire à A la queue leu leu (20)

FinistJUG - Apache TomEE
FinistJUG - Apache TomEEFinistJUG - Apache TomEE
FinistJUG - Apache TomEE
 
Drush make driven development
Drush make driven developmentDrush make driven development
Drush make driven development
 
Apache solr andré bois-crettez 08
Apache solr   andré bois-crettez 08Apache solr   andré bois-crettez 08
Apache solr andré bois-crettez 08
 
Rex docker en production meeutp-docker-nantes
Rex docker en production meeutp-docker-nantesRex docker en production meeutp-docker-nantes
Rex docker en production meeutp-docker-nantes
 
Genielogiciel
GenielogicielGenielogiciel
Genielogiciel
 
Road map to DevOps engineering - Elie Sirius
Road map to DevOps engineering -  Elie SiriusRoad map to DevOps engineering -  Elie Sirius
Road map to DevOps engineering - Elie Sirius
 
Ns operationqueue
Ns operationqueueNs operationqueue
Ns operationqueue
 
GetText / Rails - FR
GetText / Rails - FRGetText / Rails - FR
GetText / Rails - FR
 
GetText / Rails
GetText / RailsGetText / Rails
GetText / Rails
 
Caching reboot: javax.cache & Ehcache 3
Caching reboot: javax.cache & Ehcache 3Caching reboot: javax.cache & Ehcache 3
Caching reboot: javax.cache & Ehcache 3
 
Android distribution cyanogen mod _ guillaume lesniak, student at miage nancy
Android distribution   cyanogen mod _ guillaume lesniak, student at miage nancyAndroid distribution   cyanogen mod _ guillaume lesniak, student at miage nancy
Android distribution cyanogen mod _ guillaume lesniak, student at miage nancy
 
Cours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfCours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdf
 
Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !
 
SdE 2 - Introduction
SdE 2 - IntroductionSdE 2 - Introduction
SdE 2 - Introduction
 
Etat de l'art des systèmes embarqués, utilisation du logiciel libre
Etat de l'art des systèmes embarqués, utilisation du logiciel libreEtat de l'art des systèmes embarqués, utilisation du logiciel libre
Etat de l'art des systèmes embarqués, utilisation du logiciel libre
 
709469716-Docker-Intro.pptx709469716-Docker-Intro.pptx
709469716-Docker-Intro.pptx709469716-Docker-Intro.pptx709469716-Docker-Intro.pptx709469716-Docker-Intro.pptx
709469716-Docker-Intro.pptx709469716-Docker-Intro.pptx
 
Infrastructure as code drupal
Infrastructure as code drupalInfrastructure as code drupal
Infrastructure as code drupal
 
Perfug BOF devoxx2017.pptx
Perfug BOF devoxx2017.pptxPerfug BOF devoxx2017.pptx
Perfug BOF devoxx2017.pptx
 
Des poneys à Liberation.fr
Des poneys à Liberation.frDes poneys à Liberation.fr
Des poneys à Liberation.fr
 
Alphorm.com Formation Le langage Ruby
Alphorm.com Formation Le langage RubyAlphorm.com Formation Le langage Ruby
Alphorm.com Formation Le langage Ruby
 

A la queue leu leu

  • 2. intro 1/2 • Au début du web on faisait des pages • Puis on s'est mis à faire des sites • Maintenant on fait des plate-formes
  • 3. intro 2/2 Désormais, le site web est une partie de l'infra… … et bien souvent, c'est la partie emergée de l'iceberg
  • 4. En synchrone • On est bézu baisé
  • 5. En asynchrone • monitorer la dispo de vos ressources CPU (=workers); • lancer une tâche quand un worker se libère; • surveiller si la tâche se termine (et si elle se termine bien…); • en cas de problème, réessayer ou alerter. D’où le besoin pour un gestionnaire de file d'attentes = Message Queue dans la langue de Shakespeare.
  • 6. En Python • Celery : la plus connue • rq : alternative light • bindings Python à ØMQ : construisez votre propre gestionnaire ! • pleins d'autres projets (Mozilla en a mis plusieurs en OSS)
  • 7. Celery 1/3 • A commencé comme une app django • Désormais autonome (mais toujours une intégration avec django=dj-celery) • Gros projet, énormément de fonctionnalités out-of- box : c'est un framework à lui tout seul • Nombreux backends (RabbitMQ, redis, Mongo, MySQL…)
  • 8. Celery 2/3 • Le gros pb : toutes les fonctionnalités ne sont pas dispo avec tous les backends !! • Choisir un backend, c'est éventuellement se couper de plein de fonctionnalités… • Le backend (RMQ) recommandé est loin d'être le plus efficace : – Impossible de réessayer une tâche qui a plantée; – Pas de gestion des priorités; • Le code évolue beaucoup et vite : c'est bien mais ça peut vous amener à réécrire pas mal de code juste pour suivre les changements de Celery
  • 9. Celery 3/3 Un framework: • Comme tous les frameworks, requiert du temps pour bien le maîtriser • Bien lire la doc, notamment le tableau qui liste les options dispo en fonction des backends • Peut être arrivé un peu tôt.
  • 10. rq • Plus simple • Doc minimaliste (mais il y a moins à dire) • Redis est le broker • Unix only • Taillé pour Heroku et les services similaires
  • 11. ØMQ ØMG ! ØMG !! ØMG !!!
  • 12. Do It Yourself • Plus simple qu'on ne le croit ! • Tout est disponible dans Python avec gevent et redis
  • 13. Monitorer • Attention aux features, mais c'est pas le plus important. • Coder c'est 25% du temps, le plus long, c'est de monitorer !