SlideShare a Scribd company logo
1 of 26
Download to read offline
Is Cool Story
« 1 jeu, 1 framework, 3 mois, 4
devs, 8 millions de joueurs. »

      Alexandre Rodière   Bertrand Tornil
Weka Entertainment

●   Jeux dans Facebook
●   LAMP
●   Forte charge
●   Rythme fonctionnel élevé


    => Symfony 1 + Framework Weka
Is Cool

●   2 ans de développement incrémental
●   Pas de framework, pas de MVC
Le Défi


●   1 jeu facebook en PHP « old school »
●   Entre 500.000 et 1.000.000 de VU/j
●   Entre 50 et 100 millions de PV/j
●   1 milliard de points cool


    => La même chose sous symfony2
Les contraintes

●   Debut le 15 novembre 2010

●   Fin pour le sfLive2011

●   Pas de coupure de l'application

●   Maintien du rythme de sortie des fonctionnalités
Les atouts

●   Habitudes de développement très agile
       – 122 RC déployées
       – 87 Releases déployées


●   Arrêt des applications FBML par Facebook

●   Enthousiasme

●   Deadline sfLive
Les atouts (bis)

–   Weka IsCoolers
     ●   Rémi Janot, Pierre Tisserant, Antoine Bernier
–   Sensio Sensei
     ●   Noël Guilbert
–   Cloud SysAdmins
     ●   Vermeer Grange, Charles-Christian Croix, Fabien
         Vaneenoo
–   Leads Bienveillants
     ●   Alexandre Rodière, Bertrand Tornil
La stratégie

●   Migration FBML → Iframe
       – Effet tache d'huile
       – Double vhost


●   Mise en oeuvre sur la plus petite page

●   Greffe sur les demandes fonctionnelles
Les préparatifs

●   Avant de pouvoir boostraper en sf2
    ●   La mise en place de l'infra (un double-vhost)
         – réalisée le 30 novembre 2010
    ●   Architecture du code
         – Bundles IsCool
         – Bundles plus génériques (SNS)
         – Bundles Externes (DBAL, partenaires...)
Les préparatifs (hatifs ?)

●   L'authentification
    ● Gros morceau, en fait... Oauth... (aura
      nécéssité d'ajuster l'extensibilité du bundle
      d'authentification de sf2)
●   Les premiers bundles maisons
    ●   Memcache
    ●   nosql
    ●   pinba
Dans les faits

●   La schizophrénie du code (les 2 vhosts)
    ●
        Toutes les classes cores, puis métiers doivent passer
        au fur-et-à-mesure à la moulinette :
        –   Autoloader
        –   Injectabilité
              ● Chasse aux statiques


        –   Création des Bundles
              ● Configuration du DIC
On s'arrange avec l'autoloader

●   Création d'un ensemble cohérent de classes
    pour l'autoloader
La chasse aux statiques



            Sachant que le code
            doit pouvoir continuer
            de fonctionner dans
            les 2 contextes
La chasse (d'eau ?)
Au final... c'est bon, mangez-en

●   Accepter d'adopter une nouvelle philosophie
●   Avant, par exemple :
    ●   On implémentait une classe itérateur. point.
●   En sf2 :
    ●   On cherche la généricité pour rendre injectable
    ●   induit de bonnes pratiques, à savoir viser la
        généricité (on écrit l'itérateur générique), puis on
        injecte la spécificité
Des chiffres !

●   Le 22 décembre 2010
    ●   Passage de la page « invit »
Des chiffres !

●   Le 22 décembre 2010
    ●   Passage de la page invit
         – ~500 hit/jours
         – Mais les couches basses sont là
            ● Authentification

            ● Localisation

            ● Pinba

            ● Mysql via dbal

            ● Redis

            ● memcache
Ensuite ?

●   Le 24 janvier 2011
    ●   Passage des webservices partenaires
         – 30000-40000 hits/jours
         – Nouvelles couches métiers
Un peu de charge...

●   Le 10 février 2011
    ●   Passage de myKiwi sur la home
Un peu de charge...

●   Le 10 février 2011
    ●   Passage de myKiwi sur la home
         – 250 à 1500 hits / sec
         – L'objet player est chargé + les grades
         – Le bootstrap sf2 tient la charge. Les
           chiffres nous ont même surpris :
           ● Ancien vhost : 600ms / req
           ● Nouveau vhost en sf2 : 80ms / req

           ● ?
Certes...

●   Le 24 février
    ●   Passage de la page «Ma collection»
    ●   57 familles de 7 élements
Certes... (itudes ?)

●   Le 24 février
    ●   Passage de la page «Ma collection»
         – ~10 hits/sec
         – Classes métiers les plus complexes,
           itérateurs et caches d'itérateurs objets
           composés de différents storages
         – Avant : 792ms
         – Après : 468ms … 40% de mieux
Ok, and now ??

●   Le 2 mars 2011
    ●   Passage de la dernière feature
    ●   Développement entièrement sous sf2
    ●   Front HTML5
    ●   La vache Kiwi...
Ok, and now ??

●   Le 2 mars 2011 : la vache Kiwi...




●   ...et ca tient :)
L'heure du bilan

●   Le cycle fonctionnel est lancé.
●   Les performances suivent (- 40%)
●   Nous pouvons nous préoccuper de notre métier
    ● Le jeu
●   Nous pouvons maintenant nous attaquer aux
    migrations sf1 → sf2 des autres jeux
Questions




  ?
            Bertrand Tornil

         bertrand@cafe.com

         Twitter : @bobuss



         Alexandre Rodière

            alx@cafe.com

        Twitter : @alx_rodiere

More Related Content

Viewers also liked

Mobile commerce km
Mobile commerce kmMobile commerce km
Mobile commerce kmKartik Mehta
 
TIBCO Loyalty Lab paris event
TIBCO Loyalty Lab paris eventTIBCO Loyalty Lab paris event
TIBCO Loyalty Lab paris eventGerald Guigui
 
Brand Positioning, a component of INDIGITAL BRANDING MODEL©
Brand Positioning, a component of INDIGITAL BRANDING MODEL©Brand Positioning, a component of INDIGITAL BRANDING MODEL©
Brand Positioning, a component of INDIGITAL BRANDING MODEL©Alfredo Escobar
 
Big on Mobile, Big on Facebook. How the European super startups did it.
Big on Mobile, Big on Facebook. How the European super startups did it. Big on Mobile, Big on Facebook. How the European super startups did it.
Big on Mobile, Big on Facebook. How the European super startups did it. Julien Lesaicherre
 
IBM MQ Overview (IBM Message Queue)
IBM MQ Overview (IBM Message Queue)IBM MQ Overview (IBM Message Queue)
IBM MQ Overview (IBM Message Queue)Juarez Junior
 
Indian IT industry analysis of 5 slides and company ( Infosys) analysis ( FY ...
Indian IT industry analysis of 5 slides and company ( Infosys) analysis ( FY ...Indian IT industry analysis of 5 slides and company ( Infosys) analysis ( FY ...
Indian IT industry analysis of 5 slides and company ( Infosys) analysis ( FY ...Saurabh Mittra
 
Efficient Pagination Using MySQL
Efficient Pagination Using MySQLEfficient Pagination Using MySQL
Efficient Pagination Using MySQLSurat Singh Bhati
 
Performance and scalability for machine learning
Performance and scalability for machine learningPerformance and scalability for machine learning
Performance and scalability for machine learningArnaud Rachez
 
Maximizing information and communications technologies for development in fai...
Maximizing information and communications technologies for development in fai...Maximizing information and communications technologies for development in fai...
Maximizing information and communications technologies for development in fai...Ed Dodds
 
Talking data 2014年上半年移动旅行应用行业报告
Talking data 2014年上半年移动旅行应用行业报告Talking data 2014年上半年移动旅行应用行业报告
Talking data 2014年上半年移动旅行应用行业报告Leo Cui
 
Administrateurs salariés, Droits devoir et enjeux
Administrateurs salariés,  Droits devoir et enjeuxAdministrateurs salariés,  Droits devoir et enjeux
Administrateurs salariés, Droits devoir et enjeuxChristophe Gauthier
 
How ai work, Abstract for dummies based on excellent artilce from The Economist
How ai work, Abstract for dummies based on excellent artilce from The EconomistHow ai work, Abstract for dummies based on excellent artilce from The Economist
How ai work, Abstract for dummies based on excellent artilce from The EconomistBertrand Petit
 
Meetup_FGVA_Prédiction et prévention du churn @ Ankama
Meetup_FGVA_Prédiction et prévention du churn @ Ankama Meetup_FGVA_Prédiction et prévention du churn @ Ankama
Meetup_FGVA_Prédiction et prévention du churn @ Ankama Johan-André Jeanville
 
Datacenter Operation Management
Datacenter Operation ManagementDatacenter Operation Management
Datacenter Operation ManagementSimon DUCHENE
 
Préparation de Données Hadoop avec Trifacta
Préparation de Données Hadoop avec TrifactaPréparation de Données Hadoop avec Trifacta
Préparation de Données Hadoop avec TrifactaVictor Coustenoble
 
COMMENT LE BIGDATA CHANGE LA BUSINESS INTELLIGENCE ?
COMMENT LE BIGDATA CHANGE LA BUSINESS INTELLIGENCE ?COMMENT LE BIGDATA CHANGE LA BUSINESS INTELLIGENCE ?
COMMENT LE BIGDATA CHANGE LA BUSINESS INTELLIGENCE ?Vincent Heuschling
 

Viewers also liked (20)

Mobile commerce km
Mobile commerce kmMobile commerce km
Mobile commerce km
 
TIBCO Loyalty Lab paris event
TIBCO Loyalty Lab paris eventTIBCO Loyalty Lab paris event
TIBCO Loyalty Lab paris event
 
Brand Positioning, a component of INDIGITAL BRANDING MODEL©
Brand Positioning, a component of INDIGITAL BRANDING MODEL©Brand Positioning, a component of INDIGITAL BRANDING MODEL©
Brand Positioning, a component of INDIGITAL BRANDING MODEL©
 
CANDDi Insights
CANDDi InsightsCANDDi Insights
CANDDi Insights
 
sfPot aop
sfPot aopsfPot aop
sfPot aop
 
Big on Mobile, Big on Facebook. How the European super startups did it.
Big on Mobile, Big on Facebook. How the European super startups did it. Big on Mobile, Big on Facebook. How the European super startups did it.
Big on Mobile, Big on Facebook. How the European super startups did it.
 
IBM MQ Overview (IBM Message Queue)
IBM MQ Overview (IBM Message Queue)IBM MQ Overview (IBM Message Queue)
IBM MQ Overview (IBM Message Queue)
 
Indian IT industry analysis of 5 slides and company ( Infosys) analysis ( FY ...
Indian IT industry analysis of 5 slides and company ( Infosys) analysis ( FY ...Indian IT industry analysis of 5 slides and company ( Infosys) analysis ( FY ...
Indian IT industry analysis of 5 slides and company ( Infosys) analysis ( FY ...
 
Efficient Pagination Using MySQL
Efficient Pagination Using MySQLEfficient Pagination Using MySQL
Efficient Pagination Using MySQL
 
Best Bourbons
Best BourbonsBest Bourbons
Best Bourbons
 
Performance and scalability for machine learning
Performance and scalability for machine learningPerformance and scalability for machine learning
Performance and scalability for machine learning
 
Maximizing information and communications technologies for development in fai...
Maximizing information and communications technologies for development in fai...Maximizing information and communications technologies for development in fai...
Maximizing information and communications technologies for development in fai...
 
Talking data 2014年上半年移动旅行应用行业报告
Talking data 2014年上半年移动旅行应用行业报告Talking data 2014年上半年移动旅行应用行业报告
Talking data 2014年上半年移动旅行应用行业报告
 
Administrateurs salariés, Droits devoir et enjeux
Administrateurs salariés,  Droits devoir et enjeuxAdministrateurs salariés,  Droits devoir et enjeux
Administrateurs salariés, Droits devoir et enjeux
 
How ai work, Abstract for dummies based on excellent artilce from The Economist
How ai work, Abstract for dummies based on excellent artilce from The EconomistHow ai work, Abstract for dummies based on excellent artilce from The Economist
How ai work, Abstract for dummies based on excellent artilce from The Economist
 
Meetup_FGVA_Prédiction et prévention du churn @ Ankama
Meetup_FGVA_Prédiction et prévention du churn @ Ankama Meetup_FGVA_Prédiction et prévention du churn @ Ankama
Meetup_FGVA_Prédiction et prévention du churn @ Ankama
 
Lab'innovation Capgemini
Lab'innovation CapgeminiLab'innovation Capgemini
Lab'innovation Capgemini
 
Datacenter Operation Management
Datacenter Operation ManagementDatacenter Operation Management
Datacenter Operation Management
 
Préparation de Données Hadoop avec Trifacta
Préparation de Données Hadoop avec TrifactaPréparation de Données Hadoop avec Trifacta
Préparation de Données Hadoop avec Trifacta
 
COMMENT LE BIGDATA CHANGE LA BUSINESS INTELLIGENCE ?
COMMENT LE BIGDATA CHANGE LA BUSINESS INTELLIGENCE ?COMMENT LE BIGDATA CHANGE LA BUSINESS INTELLIGENCE ?
COMMENT LE BIGDATA CHANGE LA BUSINESS INTELLIGENCE ?
 

Similar to Is Cool Story - Symfony live 2011

Conférence Shinken à SophiaConf2012 (Jean Gabès)
Conférence Shinken à SophiaConf2012 (Jean Gabès)Conférence Shinken à SophiaConf2012 (Jean Gabès)
Conférence Shinken à SophiaConf2012 (Jean Gabès)Jean Gabès
 
Xebicon'16 : Kodo Kojo, une usine logicielle en trois clics. Par Antoine Le T...
Xebicon'16 : Kodo Kojo, une usine logicielle en trois clics. Par Antoine Le T...Xebicon'16 : Kodo Kojo, une usine logicielle en trois clics. Par Antoine Le T...
Xebicon'16 : Kodo Kojo, une usine logicielle en trois clics. Par Antoine Le T...Publicis Sapient Engineering
 
la boite à outils de développements dans firefox devtools
la boite à outils de développements dans firefox devtoolsla boite à outils de développements dans firefox devtools
la boite à outils de développements dans firefox devtoolsChristophe Villeneuve
 
Retour d'expérience développement jeux android
Retour d'expérience développement jeux androidRetour d'expérience développement jeux android
Retour d'expérience développement jeux androidjodem
 
Microservices IRL - Devoxx-fr 2016
Microservices IRL - Devoxx-fr 2016Microservices IRL - Devoxx-fr 2016
Microservices IRL - Devoxx-fr 2016Stephan Lagraulet
 
La boîte à outils de développements dans Firefox
La boîte à outils de développements dans FirefoxLa boîte à outils de développements dans Firefox
La boîte à outils de développements dans FirefoxChristophe Villeneuve
 
Des poneys à Liberation.fr
Des poneys à Liberation.frDes poneys à Liberation.fr
Des poneys à Liberation.frliberation_dev
 
Confoo 2022 - le cycle d'une instance MySQL
Confoo 2022  - le cycle d'une instance MySQLConfoo 2022  - le cycle d'une instance MySQL
Confoo 2022 - le cycle d'une instance MySQLFrederic Descamps
 
Plongée au cœur du Framework .NET 4.5
Plongée au cœur du Framework .NET 4.5Plongée au cœur du Framework .NET 4.5
Plongée au cœur du Framework .NET 4.5Microsoft
 
Importer 500 millions de données de MySQL vers Neo4j
Importer 500 millions de données de MySQL vers Neo4jImporter 500 millions de données de MySQL vers Neo4j
Importer 500 millions de données de MySQL vers Neo4jGabriel Pillet 🐙
 
Les nouveautés d'Unity 2018
Les nouveautés d'Unity 2018Les nouveautés d'Unity 2018
Les nouveautés d'Unity 2018Yannick Comte
 
controler vos donnees éthiques dans le web
controler vos donnees éthiques dans le webcontroler vos donnees éthiques dans le web
controler vos donnees éthiques dans le webChristophe Villeneuve
 
OCTO - 2013 - Devoxx - la mort du gc
OCTO - 2013 - Devoxx - la mort du gcOCTO - 2013 - Devoxx - la mort du gc
OCTO - 2013 - Devoxx - la mort du gcOCTO Technology
 
Serveur nomade dans l'nternet des Objets
Serveur nomade dans l'nternet des ObjetsServeur nomade dans l'nternet des Objets
Serveur nomade dans l'nternet des ObjetsChristophe Villeneuve
 
Presentation Brutal Donut par Julien PATTE
Presentation Brutal Donut par Julien PATTEPresentation Brutal Donut par Julien PATTE
Presentation Brutal Donut par Julien PATTEBeMyApp
 
Djangocong 2010 django-et_xmpp
Djangocong 2010 django-et_xmppDjangocong 2010 django-et_xmpp
Djangocong 2010 django-et_xmppJean-Michel ARMAND
 
Jeux vidéo sur mobile - Unity3d
Jeux vidéo sur mobile - Unity3dJeux vidéo sur mobile - Unity3d
Jeux vidéo sur mobile - Unity3dXavier MARIN
 
Paris Container Day 2016 : Conteneurisation de l’usine logicielle (Retour d'e...
Paris Container Day 2016 : Conteneurisation de l’usine logicielle (Retour d'e...Paris Container Day 2016 : Conteneurisation de l’usine logicielle (Retour d'e...
Paris Container Day 2016 : Conteneurisation de l’usine logicielle (Retour d'e...Publicis Sapient Engineering
 
MHA : MySQL haute dispo, chez Viadeo par Olivier Dasini
MHA : MySQL haute dispo, chez Viadeo par Olivier DasiniMHA : MySQL haute dispo, chez Viadeo par Olivier Dasini
MHA : MySQL haute dispo, chez Viadeo par Olivier DasiniOlivier DASINI
 

Similar to Is Cool Story - Symfony live 2011 (20)

Conférence Shinken à SophiaConf2012 (Jean Gabès)
Conférence Shinken à SophiaConf2012 (Jean Gabès)Conférence Shinken à SophiaConf2012 (Jean Gabès)
Conférence Shinken à SophiaConf2012 (Jean Gabès)
 
Xebicon'16 : Kodo Kojo, une usine logicielle en trois clics. Par Antoine Le T...
Xebicon'16 : Kodo Kojo, une usine logicielle en trois clics. Par Antoine Le T...Xebicon'16 : Kodo Kojo, une usine logicielle en trois clics. Par Antoine Le T...
Xebicon'16 : Kodo Kojo, une usine logicielle en trois clics. Par Antoine Le T...
 
la boite à outils de développements dans firefox devtools
la boite à outils de développements dans firefox devtoolsla boite à outils de développements dans firefox devtools
la boite à outils de développements dans firefox devtools
 
Retour d'expérience développement jeux android
Retour d'expérience développement jeux androidRetour d'expérience développement jeux android
Retour d'expérience développement jeux android
 
Microservices IRL - Devoxx-fr 2016
Microservices IRL - Devoxx-fr 2016Microservices IRL - Devoxx-fr 2016
Microservices IRL - Devoxx-fr 2016
 
La boîte à outils de développements dans Firefox
La boîte à outils de développements dans FirefoxLa boîte à outils de développements dans Firefox
La boîte à outils de développements dans Firefox
 
Pas possible en drupal, c'est faux
Pas possible en drupal, c'est fauxPas possible en drupal, c'est faux
Pas possible en drupal, c'est faux
 
Des poneys à Liberation.fr
Des poneys à Liberation.frDes poneys à Liberation.fr
Des poneys à Liberation.fr
 
Confoo 2022 - le cycle d'une instance MySQL
Confoo 2022  - le cycle d'une instance MySQLConfoo 2022  - le cycle d'une instance MySQL
Confoo 2022 - le cycle d'une instance MySQL
 
Plongée au cœur du Framework .NET 4.5
Plongée au cœur du Framework .NET 4.5Plongée au cœur du Framework .NET 4.5
Plongée au cœur du Framework .NET 4.5
 
Importer 500 millions de données de MySQL vers Neo4j
Importer 500 millions de données de MySQL vers Neo4jImporter 500 millions de données de MySQL vers Neo4j
Importer 500 millions de données de MySQL vers Neo4j
 
Les nouveautés d'Unity 2018
Les nouveautés d'Unity 2018Les nouveautés d'Unity 2018
Les nouveautés d'Unity 2018
 
controler vos donnees éthiques dans le web
controler vos donnees éthiques dans le webcontroler vos donnees éthiques dans le web
controler vos donnees éthiques dans le web
 
OCTO - 2013 - Devoxx - la mort du gc
OCTO - 2013 - Devoxx - la mort du gcOCTO - 2013 - Devoxx - la mort du gc
OCTO - 2013 - Devoxx - la mort du gc
 
Serveur nomade dans l'nternet des Objets
Serveur nomade dans l'nternet des ObjetsServeur nomade dans l'nternet des Objets
Serveur nomade dans l'nternet des Objets
 
Presentation Brutal Donut par Julien PATTE
Presentation Brutal Donut par Julien PATTEPresentation Brutal Donut par Julien PATTE
Presentation Brutal Donut par Julien PATTE
 
Djangocong 2010 django-et_xmpp
Djangocong 2010 django-et_xmppDjangocong 2010 django-et_xmpp
Djangocong 2010 django-et_xmpp
 
Jeux vidéo sur mobile - Unity3d
Jeux vidéo sur mobile - Unity3dJeux vidéo sur mobile - Unity3d
Jeux vidéo sur mobile - Unity3d
 
Paris Container Day 2016 : Conteneurisation de l’usine logicielle (Retour d'e...
Paris Container Day 2016 : Conteneurisation de l’usine logicielle (Retour d'e...Paris Container Day 2016 : Conteneurisation de l’usine logicielle (Retour d'e...
Paris Container Day 2016 : Conteneurisation de l’usine logicielle (Retour d'e...
 
MHA : MySQL haute dispo, chez Viadeo par Olivier Dasini
MHA : MySQL haute dispo, chez Viadeo par Olivier DasiniMHA : MySQL haute dispo, chez Viadeo par Olivier Dasini
MHA : MySQL haute dispo, chez Viadeo par Olivier Dasini
 

Is Cool Story - Symfony live 2011

  • 1. Is Cool Story « 1 jeu, 1 framework, 3 mois, 4 devs, 8 millions de joueurs. » Alexandre Rodière Bertrand Tornil
  • 2. Weka Entertainment ● Jeux dans Facebook ● LAMP ● Forte charge ● Rythme fonctionnel élevé => Symfony 1 + Framework Weka
  • 3. Is Cool ● 2 ans de développement incrémental ● Pas de framework, pas de MVC
  • 4. Le Défi ● 1 jeu facebook en PHP « old school » ● Entre 500.000 et 1.000.000 de VU/j ● Entre 50 et 100 millions de PV/j ● 1 milliard de points cool => La même chose sous symfony2
  • 5. Les contraintes ● Debut le 15 novembre 2010 ● Fin pour le sfLive2011 ● Pas de coupure de l'application ● Maintien du rythme de sortie des fonctionnalités
  • 6. Les atouts ● Habitudes de développement très agile – 122 RC déployées – 87 Releases déployées ● Arrêt des applications FBML par Facebook ● Enthousiasme ● Deadline sfLive
  • 7. Les atouts (bis) – Weka IsCoolers ● Rémi Janot, Pierre Tisserant, Antoine Bernier – Sensio Sensei ● Noël Guilbert – Cloud SysAdmins ● Vermeer Grange, Charles-Christian Croix, Fabien Vaneenoo – Leads Bienveillants ● Alexandre Rodière, Bertrand Tornil
  • 8. La stratégie ● Migration FBML → Iframe – Effet tache d'huile – Double vhost ● Mise en oeuvre sur la plus petite page ● Greffe sur les demandes fonctionnelles
  • 9. Les préparatifs ● Avant de pouvoir boostraper en sf2 ● La mise en place de l'infra (un double-vhost) – réalisée le 30 novembre 2010 ● Architecture du code – Bundles IsCool – Bundles plus génériques (SNS) – Bundles Externes (DBAL, partenaires...)
  • 10. Les préparatifs (hatifs ?) ● L'authentification ● Gros morceau, en fait... Oauth... (aura nécéssité d'ajuster l'extensibilité du bundle d'authentification de sf2) ● Les premiers bundles maisons ● Memcache ● nosql ● pinba
  • 11. Dans les faits ● La schizophrénie du code (les 2 vhosts) ● Toutes les classes cores, puis métiers doivent passer au fur-et-à-mesure à la moulinette : – Autoloader – Injectabilité ● Chasse aux statiques – Création des Bundles ● Configuration du DIC
  • 12. On s'arrange avec l'autoloader ● Création d'un ensemble cohérent de classes pour l'autoloader
  • 13. La chasse aux statiques Sachant que le code doit pouvoir continuer de fonctionner dans les 2 contextes
  • 15. Au final... c'est bon, mangez-en ● Accepter d'adopter une nouvelle philosophie ● Avant, par exemple : ● On implémentait une classe itérateur. point. ● En sf2 : ● On cherche la généricité pour rendre injectable ● induit de bonnes pratiques, à savoir viser la généricité (on écrit l'itérateur générique), puis on injecte la spécificité
  • 16. Des chiffres ! ● Le 22 décembre 2010 ● Passage de la page « invit »
  • 17. Des chiffres ! ● Le 22 décembre 2010 ● Passage de la page invit – ~500 hit/jours – Mais les couches basses sont là ● Authentification ● Localisation ● Pinba ● Mysql via dbal ● Redis ● memcache
  • 18. Ensuite ? ● Le 24 janvier 2011 ● Passage des webservices partenaires – 30000-40000 hits/jours – Nouvelles couches métiers
  • 19. Un peu de charge... ● Le 10 février 2011 ● Passage de myKiwi sur la home
  • 20. Un peu de charge... ● Le 10 février 2011 ● Passage de myKiwi sur la home – 250 à 1500 hits / sec – L'objet player est chargé + les grades – Le bootstrap sf2 tient la charge. Les chiffres nous ont même surpris : ● Ancien vhost : 600ms / req ● Nouveau vhost en sf2 : 80ms / req ● ?
  • 21. Certes... ● Le 24 février ● Passage de la page «Ma collection» ● 57 familles de 7 élements
  • 22. Certes... (itudes ?) ● Le 24 février ● Passage de la page «Ma collection» – ~10 hits/sec – Classes métiers les plus complexes, itérateurs et caches d'itérateurs objets composés de différents storages – Avant : 792ms – Après : 468ms … 40% de mieux
  • 23. Ok, and now ?? ● Le 2 mars 2011 ● Passage de la dernière feature ● Développement entièrement sous sf2 ● Front HTML5 ● La vache Kiwi...
  • 24. Ok, and now ?? ● Le 2 mars 2011 : la vache Kiwi... ● ...et ca tient :)
  • 25. L'heure du bilan ● Le cycle fonctionnel est lancé. ● Les performances suivent (- 40%) ● Nous pouvons nous préoccuper de notre métier ● Le jeu ● Nous pouvons maintenant nous attaquer aux migrations sf1 → sf2 des autres jeux
  • 26. Questions ? Bertrand Tornil bertrand@cafe.com Twitter : @bobuss Alexandre Rodière alx@cafe.com Twitter : @alx_rodiere