• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Symfony à la télé
 

Symfony à la télé

on

  • 3,232 views

Retour d’expérience sur l’intégration de symfony2 chez M6Web M6Web a opéré une transition de Java vers PHP il y a de nombreuses années mais a commencé a réaliser des applications Symfony2 ...

Retour d’expérience sur l’intégration de symfony2 chez M6Web M6Web a opéré une transition de Java vers PHP il y a de nombreuses années mais a commencé a réaliser des applications Symfony2 depuis 18 mois. Nous verrons ensemble les différentes étapes qui ont été franchies et quelles stratégies ont été adoptées pour opérer cette transition. Comment M6Web intègre le code legacy à Symfony2 ? Les bundles et librairies que nous avons développés pour adapter le socle SF2 à nos besoins et à nos contraintes d’exploitation. Comment le code est déployé dans notre data-center ou sur AWS. Ce que le framework a changé dans l’organisation des équipes. Et enfin, sur quels critères nous choisissons de construire une application avec Symfony2 ou une autre technologie. M6Web est une filiale à 100% de M6, en charge des offres digitales et interactives du groupe.

Statistics

Views

Total Views
3,232
Views on SlideShare
1,679
Embed Views
1,553

Actions

Likes
5
Downloads
17
Comments
0

16 Embeds 1,553

http://blog.kaliop.com 716
http://tech.m6web.fr 300
http://remibarbe.fr 282
http://www.scoop.it 101
https://twitter.com 61
http://deamonspace.fr 41
http://feedly.com 18
http://confluence.digitick.local 14
http://localhost 7
http://tweetedtimes.com 4
http://www.google.fr 3
http://newsblur.com 2
http://webcache.googleusercontent.com 1
http://leed.galsungen.net 1
http://www.inoreader.com 1
http://rss.jeoffrey54.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Symfony à la télé Symfony à la télé Presentation Transcript

    • symfony à la télé @omansour http://tech.m6web.fr
    • Oracle 7 PHP 3 symfony 0.6.3 wolfenstein 3D
    • Responsive Design offres digitales et interactives du Groupe M6 ~20 sites : Clubic – JeuxVideo.fr – AchetezFacile 6play - 60M Vidéos Vues / mois Catchup + Live + socialTV « moins de 200 rps t’es pas sérieux » « on est pas un centre de R&D »
    • http://tech.m6web.fr/monitoring-applicatif-pourquoi-et-comment/
    • http://tech.m6web.fr/vis-ma-vie-sysadmin-forumphp.html
    • Responsive Design $nbDevs < $nbProjects $nbDevs < $nbTechnos 306 repo GIT 150 domaines actifs PHP 5.2 - 5.3 – 5.4 – 5.5 MySQL 5.1 – 5.5 / innodb - myIsam Redis – Memcached - Varnish RabbitMQ – ZeroMQ NodeJS – Perl - shell
    • we all write bad code
    • http://tech.m6web.fr/la-poo-canada-dry/
    • Responsive Design symfony-m6-edition
 pour en finir avec pomme c / pomme v Faciliter la création des projets Diminuer Supprimer « le coût » de la qualité composer create-project m6/symfony-m6-edition . --repository-url=http://satis/ -s dev
    • «  Qui veut faire quelque chose trouve un moyen. 
 
 Qui ne veut rien faire trouve une excuse. »

    • Responsive Design transition
 sf2 first ! Pas de régressions Chaque projets est indépendant Séparer le legacy via du SOA Intégrer les contrôleurs sf2 en 1er dans la stack
    • Responsive Design + = (depuis 18 mois) •  HTTP 1.1 / config des contrôleurs •  $> php app/console router:debug •  Service Container •  Bundles •  Plein de gens géniaux autour
    • Responsive Design OSS spirit 117 bundles et composants
    • http://tech.m6web.fr/composer-installation-without-github.html
    • Responsive Design Bundles
 https://github.com/M6Web/ •  Redis + RedisBundle + RedisMock + cache-extra •  Statsd + StatsdBundle •  DomainUserBundle •  FirewallBundle (ip filtering) •  LogBridgeBundle …
    • Responsive Design Statsd
 http://tech.m6web.fr/how-we-use-statsd/ •  « Gardez les yeux ouverts sur la prod » •  Consistent hashing •  Bind sur des évènements •  Config basique dans chaque projet
 « fait le job »
    • Responsive Design config_prod.yml
    • Responsive Design LogBridgeBundle
 https://github.com/M6Web/LogBridgeBundle •  Log les requests / responses •  compatible monolog
    • Responsive Design DomainUserBundle
 http://tech.m6web.fr/api-a-consommer-avec-moderation/ •  Customise ton API par sous domaine •  routing •  cache •  parameters
    • app/config/users/raoul.yml http://raoul.monapi.fr
    • Responsive Design Testing
 comme tout le monde •  Tests Atoum => OK – ~20K assertions par projet •  Unitaire •  Fonctionnel => toutes les routes testées •  Behat => trop lent ?
    • Responsive Design “Et c’est quoi l’IP de la base de données ?” •  config_prod.yml: imports: - { resource: /srv/resource/db/doctrine/ image.yml }
    • « PHP est fait pour tout et pour tous »
 Rasmus Lerdorf (Forum PHP 2012)
    • « bof »
 
 Olivier Mansour (Symfony Live 2014)
    • varnish nginx nginx + lua nodejs symfony2 Perf  (rps/server)  
    • Responsive Design perfs != speed
 “en gros” Mais  en  gros  :   •  varnish  :  1ms   •  ngnix  :  4ms   •  nodejs  :  10ms   •  Sf2  :  qq  centaines     de  ms?!     http://tech.m6web.fr/refonte-de-notre-systeme-de-vote/
    • varnish nginx nginx + lua nodejs symfony2 nb lignes de code 
 (sans péter un câble) 300   30  000   30  
    • https://github.com/newsapps/beeswithmachineguns $> siege --concurrent=100 -b --time=30S -q <URL> http://tech.m6web.fr/benchmarking-websockets-avec-nodejs/
    • https://github.com/newsapps/beeswithmachineguns $> siege --concurrent=100 -b --time=30S -q <URL> http://tech.m6web.fr/benchmarking-websockets-avec-nodejs/
    • Responsive Design Architecture 
 for noob •  Amortissez tout sur un cache / sf2 au bon endroit •  Ne vous couplez pas à une archi non scalable •  1 gros appel pas performant versus n … et la webperf ? •  « Mieux vaut être prudent que désolé »
    • Responsive Design REST
 in peace •  « c’est pas REST » => OSEF •  Doit intégrer vos contraintes de charges /v1/contents/12?revision=3 Learn the rules like a pro so you can break them like an artist. — Pablo Picasso
    • BEFORE Mobile   devices   Live   broadcast   events   contents   Bmeline  calculaBon   Synchronis ed  events  
    • AFTER Mobile   devices   Live   broadcast   events   contents   Bmeline  calculaBon   Synchroni sed   events   Timeline(s)     contents   PHP  5.4  +  SF2  +  MySQL  
    • « Difficile à voir. Toujours en mouvement est l'avenir. »
 
 Maître Yoda
    • hOp://ask.fm/omansour_