Retour d’expérience
rest-ftp-daemon
chez France Télévisions
Un démon Ruby en prod, t’es sûr ?
Bruno MEDICI - RubyNord - 1/...
Contexte
Bruno Medici
Architecte web, hosting, médias
DISCLAIMER !
Contexte
France Télévisions
Editions Numériques
Projet Replay
?
Amener Ruby et l’opensource
Convaincre par l’exemple
Identifier le besoin réel
Légitimité et rôle prescripteur
rest-ftp-daemon
Démon système autonome
Protocoles médiévaux
Archi orientée microservices
rest-ftp-daemon
Transferts FTP, FTPs, TFPeS, sFTP
API RESTful (jobs)
Dashboard minimaliste pour incarner le projet
Framewo...
rest-ftp-daemon
Création d’un job (au sens REST)
1 {
2 "source": “[ohe1]/
201540/560cda1dd8156/128644488-560cda1dd8156.ts"...
rest-ftp-daemon
Anatomie d’un job
1 {
2 "id": "2ifz.5270",
3 "source": "[ohe1]/201540/560cda1dd8156/128644488-560cda1dd815...
rest-ftp-daemon
Dashboard
Points de vigilance
Keep it generic + KISS
Factorisation
Beware of virtual needs
Points de vigilance
Assurer l’ouverture du code et la relève
Développer la communauté [TODO]
Papa n’est pas là, apprends a...
Du POC à la production
Et sinon ton POC, il a l’air de marcher, tu crois
que ça tiendrait ?
Du POC à la production
Robustesse vs démo
Caution et regards externes
Structure projet et tests basiques
Du POC à la production
Industrialisation et déploiement
Maîtrise (ou manque de) de Ruby
On est en production !
nov 2014: mise à l’oeuvre
fév 2015: production partielle, chaînes premières
sep 2015: production su...
On est en production !
200 contenus par jour
700 jobs par jour
30% des jobs en erreur
50% des jobs sont des doublons
On est en production !
Next steps
Créer la communauté
Evolutions fonctionnelles
Renforcement des tests
rest-ftp-daemon
github.com/bmedici/rest-ftp-daemon
bmedici@bmconseil.com
Prochain SlideShare
Chargement dans…5
×

RubyNord - retour d'expérience sur Ruby - rest-ftp-daemon

56 vues

Publié le

Support de présentation à l'Apero Ruby du 1/10/2015
Retour d'expérience sur rest-ftp-daemon chez France Télévisions

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

  • Soyez le premier à aimer ceci

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

Aucune remarque pour cette diapositive

RubyNord - retour d'expérience sur Ruby - rest-ftp-daemon

  1. 1. Retour d’expérience rest-ftp-daemon chez France Télévisions Un démon Ruby en prod, t’es sûr ? Bruno MEDICI - RubyNord - 1/10/2015
  2. 2. Contexte Bruno Medici Architecte web, hosting, médias DISCLAIMER !
  3. 3. Contexte France Télévisions Editions Numériques Projet Replay
  4. 4. ?
  5. 5. Amener Ruby et l’opensource Convaincre par l’exemple Identifier le besoin réel Légitimité et rôle prescripteur
  6. 6. rest-ftp-daemon Démon système autonome Protocoles médiévaux Archi orientée microservices
  7. 7. rest-ftp-daemon Transferts FTP, FTPs, TFPeS, sFTP API RESTful (jobs) Dashboard minimaliste pour incarner le projet Framework léger: Grape (Rack? Celluloid?) Remontée de notifications HTTP
  8. 8. rest-ftp-daemon Création d’un job (au sens REST) 1 { 2 "source": “[ohe1]/ 201540/560cda1dd8156/128644488-560cda1dd8156.ts", 3 "target": “[arkena]/ 201540/560cda1dd8156/128644488-560cda1dd8156.ts", 4 "label": "Les maternelles”, 5 "priority": null, 6 "notify": "http://webservices.francetelevisions.fr/xxxxx/yyyyy/ 560cda1dd8156/cfe20be5e107f30e1a841b91a762a131" 7 } POST /replay/jobs/
  9. 9. rest-ftp-daemon Anatomie d’un job 1 { 2 "id": "2ifz.5270", 3 "source": "[ohe1]/201540/560cda1dd8156/128644488-560cda1dd8156.ts", 4 "target": "[arkena]/201540/560cda1dd8156/128644488-560cda1dd8156.ts", 5 "label": "Les maternelles", 6 "priority": null, 7 "notify": "http://webservices.francetelevisions.fr/xxxxx/yyyyy/560cda1dd8156/cfe20be5e107f30e1a841b91a762a131", 8 "overwrite": true, 9 "mkdir": true, 10 "tempfile": true, 11 "error": null, 12 "status": "finished", 13 "queued_at": "2015-10-01T10:39:47.990+02:00", 14 "updated_at": "2015-10-01T10:42:44.731+02:00", 15 "started_at": "2015-10-01T10:39:48.004+02:00", 16 "finished_at": "2015-10-01T10:42:44.732+02:00", 17 "age": 662.64, 18 "exectime": 176.73, 19 "params": { 20 "source_path": "/space/datanfs/originserver/prod/ohe1/201540/560cda1dd8156/128644488-560cda1dd8156.ts", 21 "source_method": "file", 22 "target_uri": "ftpes://xxxxxxxxxxxxx/201540/560cda1dd8156/128644488-560cda1dd8156.ts", 23 "target_method": "ftpes", 24 "source_processed": 1, 25 "source_count": 1, 26 "source_files": [ 27 "/space/datanfs/originserver/prod/ohe1/201540/560cda1dd8156/128644488-560cda1dd8156.ts" 28 ], 29 "transfer_total": 4785106284, 30 "source_current": null, 31 "transfer_sent": 4785106284, 32 "progress": 100, 33 "transfer_bitrate": 216791284 34 } 35 } GET /replay/jobs/2ifz.5270
  10. 10. rest-ftp-daemon Dashboard
  11. 11. Points de vigilance Keep it generic + KISS Factorisation Beware of virtual needs
  12. 12. Points de vigilance Assurer l’ouverture du code et la relève Développer la communauté [TODO] Papa n’est pas là, apprends aussi par toi-même
  13. 13. Du POC à la production Et sinon ton POC, il a l’air de marcher, tu crois que ça tiendrait ?
  14. 14. Du POC à la production Robustesse vs démo Caution et regards externes Structure projet et tests basiques
  15. 15. Du POC à la production Industrialisation et déploiement Maîtrise (ou manque de) de Ruby
  16. 16. On est en production ! nov 2014: mise à l’oeuvre fév 2015: production partielle, chaînes premières sep 2015: production sur 100% des contenus
  17. 17. On est en production ! 200 contenus par jour 700 jobs par jour 30% des jobs en erreur 50% des jobs sont des doublons
  18. 18. On est en production !
  19. 19. Next steps Créer la communauté Evolutions fonctionnelles Renforcement des tests
  20. 20. rest-ftp-daemon github.com/bmedici/rest-ftp-daemon bmedici@bmconseil.com

×