SlideShare une entreprise Scribd logo
1  sur  65
Nice performance using SF2 cache wrapping sf1 application Marc Weistroff Emmanuel Cohen Sf Live SF 2011 Thursday, March 3 2011
Who we are ,[object Object],[object Object],[object Object],[object Object],[object Object]
Who we are ,[object Object],[object Object],[object Object],[object Object],[object Object]
This talk ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Our client ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
 
 
 
The project ,[object Object],[object Object],[object Object]
 
 
Technical objectives ,[object Object],[object Object],[object Object]
Constraints ,[object Object],[object Object],[object Object]
How does this app work ?
Our symfony 1 application design HTML Renderer XML Server OCARI Culture OCARI Content ,[object Object],[object Object],[object Object],[object Object],Sources deliver heterogeneous data ,[object Object],[object Object]
Our symfony 1 application design ,[object Object],[object Object],[object Object]
Addressing performance  with Symfony2
Addressing performance with Sf2 ,[object Object],[object Object],[object Object]
Performance with Symfony2 : HTTP Cache ,[object Object],[object Object],[object Object]
Performance with Symfony2 : HTTP Cache ,[object Object],[object Object],[object Object],[object Object]
Performance with Symfony2 : HTTP Cache ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],Performance with Symfony2: Cache issues
[object Object],[object Object],Performance with Symfony2: Cache issues
Performance with Symfony2: ESI ,[object Object],[object Object],[object Object],[object Object]
ESI : A page in lexpress.fr
Performance with Symfony2: ESI ,[object Object]
Performance with Symfony2: ESI ,[object Object],[object Object]
How does ESI work?
Performance with Symfony2: ESI ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
/movie/dogma
/movie/dogma
Html Fragment ,[object Object],[object Object],[object Object]
What you need ,[object Object],[object Object],[object Object],[object Object]
First request ever Client Proxy Application /movie/dogma /movie/dogma miss Cache-Control: s-maxage=600 /movie/dogma/casting /movie/dogma/critics Cache-Control: s-maxage=3600 Cache-Control: s-maxage=300
Request at t+200 Client Proxy Application /movie/dogma hit
The application is never hit! As if the complete page was cached in the reverse proxy
Request at t+500 Client Proxy Application /movie/dogma /movie/dogma/critics Cache-Control: s-maxage=300 hit
The application is partially hit And has to build only a small fragment of the page
Pros ,[object Object],[object Object],[object Object]
Cons ,[object Object],[object Object]
But our app is symfony 1 right ?
[object Object],Wrap it. Our app is symfony 1
Our symfony 1 application design HTML Renderer XML Server OCARI Culture OCARI Content Symfony1 wrapper Edge side Symfony2 ,[object Object],[object Object],[object Object],[object Object],Sources deliver heterogeneous data ,[object Object],[object Object]
Wrapping symfony 1 with Symfony2
Constraint ,[object Object],[object Object]
symfony 1 needs tweaking in order to work around a few obstacles
Which ones ? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
What about Symfony2? ,[object Object],[object Object],[object Object],[object Object]
HttpKernelttpKernelInterface ,[object Object],[object Object],[object Object]
Addressing the issues ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Final app architecture EsiCacheKernel SymfonyWrapperKernel symfony 1 application
https://github.com/marcw/sflive-2011
Then… You have to design your app to serve HTML fragments!
Designing your app ,[object Object],[object Object],[object Object]
And now where happy
Or are we ?
Our choices ,[object Object],[object Object],[object Object],[object Object]
This is symfony1 :  DO NOT TRY ANY OF THIS AT HOME!
Our results ,[object Object],[object Object],[object Object]
What to do next ?
Implementing cache validation ,[object Object],[object Object]
Proxy ESI New response Or 304 URL-> {ETag} ETag-> lastmodified If Etag absent or stale Response with HTTP headers Etag LastModified Client Request with HTTP headers If-None-Match If-Modified-Since App New response Or 304 If cache entry is not fresh enough Cache Validation Optimizer
Contact @ L’Express ,[object Object],[object Object],[object Object],[object Object]
Questions ? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Thank you! Please rate this talk at http://joind.in/2749

Contenu connexe

En vedette

El sistema solar
El sistema solarEl sistema solar
El sistema solar
asdghjk
 
LMAStrategies-JulyAugust
LMAStrategies-JulyAugustLMAStrategies-JulyAugust
LMAStrategies-JulyAugust
Deb Dobson
 

En vedette (20)

Inspire yourself by Symfony2 to create better code
Inspire yourself by Symfony2 to create better codeInspire yourself by Symfony2 to create better code
Inspire yourself by Symfony2 to create better code
 
Package management for champions
Package management for championsPackage management for champions
Package management for champions
 
Relish Events 2009
Relish Events 2009Relish Events 2009
Relish Events 2009
 
TRANSITOS BOOK
TRANSITOS BOOKTRANSITOS BOOK
TRANSITOS BOOK
 
El sistema solar
El sistema solarEl sistema solar
El sistema solar
 
LMAStrategies-JulyAugust
LMAStrategies-JulyAugustLMAStrategies-JulyAugust
LMAStrategies-JulyAugust
 
Comenzar
ComenzarComenzar
Comenzar
 
Al ghazali
Al ghazaliAl ghazali
Al ghazali
 
Big Data 101
Big Data 101Big Data 101
Big Data 101
 
Clase Timer 1
Clase Timer 1Clase Timer 1
Clase Timer 1
 
Rpp smp ips
Rpp smp ipsRpp smp ips
Rpp smp ips
 
Caricatures
CaricaturesCaricatures
Caricatures
 
Kapitel 8: 
Fundamentale vs. Technische Analyse
Kapitel 8: 
Fundamentale vs. Technische AnalyseKapitel 8: 
Fundamentale vs. Technische Analyse
Kapitel 8: 
Fundamentale vs. Technische Analyse
 
Kapitel 5: 
Übersicht der Martkanalyse
Kapitel 5: 
Übersicht der MartkanalyseKapitel 5: 
Übersicht der Martkanalyse
Kapitel 5: 
Übersicht der Martkanalyse
 
pediatria
pediatriapediatria
pediatria
 
Kapitel 3: Typen von Vermögenswerten
Kapitel 3: Typen von VermögenswertenKapitel 3: Typen von Vermögenswerten
Kapitel 3: Typen von Vermögenswerten
 
Kapitel 6: Fundamentale Analyse
Kapitel 6: Fundamentale AnalyseKapitel 6: Fundamentale Analyse
Kapitel 6: Fundamentale Analyse
 
Europa e Europeus - Germânicos
Europa e Europeus - GermânicosEuropa e Europeus - Germânicos
Europa e Europeus - Germânicos
 
Salesforce Developer Console ppt
Salesforce Developer Console  pptSalesforce Developer Console  ppt
Salesforce Developer Console ppt
 
Kapitel 9: 
Eingehende Handelsstrategien und Taktiken
Kapitel 9: 
Eingehende Handelsstrategien und TaktikenKapitel 9: 
Eingehende Handelsstrategien und Taktiken
Kapitel 9: 
Eingehende Handelsstrategien und Taktiken
 

Similaire à Nice performance using Sf2 cache wrapping Sf1 application - Paris

Symfony Components 2.0 on PHP 5.3
Symfony Components 2.0 on PHP 5.3Symfony Components 2.0 on PHP 5.3
Symfony Components 2.0 on PHP 5.3
Fabien Potencier
 
An introduction to Symfony 2 for symfony 1 developers
An introduction to Symfony 2 for symfony 1 developersAn introduction to Symfony 2 for symfony 1 developers
An introduction to Symfony 2 for symfony 1 developers
Giorgio Cefaro
 
Developing html5 mobile applications using cold fusion 11
Developing html5 mobile applications using cold fusion 11Developing html5 mobile applications using cold fusion 11
Developing html5 mobile applications using cold fusion 11
ColdFusionConference
 
Symfony2 San Francisco Meetup 2009
Symfony2 San Francisco Meetup 2009Symfony2 San Francisco Meetup 2009
Symfony2 San Francisco Meetup 2009
Fabien Potencier
 

Similaire à Nice performance using Sf2 cache wrapping Sf1 application - Paris (20)

Symfony Components 2.0 on PHP 5.3
Symfony Components 2.0 on PHP 5.3Symfony Components 2.0 on PHP 5.3
Symfony Components 2.0 on PHP 5.3
 
Window Shopping Browser - Bug Hunting in 2012
Window Shopping Browser - Bug Hunting in 2012Window Shopping Browser - Bug Hunting in 2012
Window Shopping Browser - Bug Hunting in 2012
 
Progressively enhance your Symfony 4 app using Vue, API Platform, Mercure and...
Progressively enhance your Symfony 4 app using Vue, API Platform, Mercure and...Progressively enhance your Symfony 4 app using Vue, API Platform, Mercure and...
Progressively enhance your Symfony 4 app using Vue, API Platform, Mercure and...
 
Symfony 2.0 on PHP 5.3
Symfony 2.0 on PHP 5.3Symfony 2.0 on PHP 5.3
Symfony 2.0 on PHP 5.3
 
How Symfony Changed My Life
How Symfony Changed My LifeHow Symfony Changed My Life
How Symfony Changed My Life
 
25 Intro to Symfony #burningkeyboards
25 Intro to Symfony #burningkeyboards25 Intro to Symfony #burningkeyboards
25 Intro to Symfony #burningkeyboards
 
An introduction to Symfony 2 for symfony 1 developers
An introduction to Symfony 2 for symfony 1 developersAn introduction to Symfony 2 for symfony 1 developers
An introduction to Symfony 2 for symfony 1 developers
 
Elm & Elixir: Functional Programming and Web
Elm & Elixir: Functional Programming and WebElm & Elixir: Functional Programming and Web
Elm & Elixir: Functional Programming and Web
 
How Symfony changed my life (#SfPot, Paris, 19th November 2015)
How Symfony changed my life (#SfPot, Paris, 19th November 2015)How Symfony changed my life (#SfPot, Paris, 19th November 2015)
How Symfony changed my life (#SfPot, Paris, 19th November 2015)
 
Ny symfony meetup may 2015
Ny symfony meetup may 2015Ny symfony meetup may 2015
Ny symfony meetup may 2015
 
Symfony on steroids
: Vue.js, Mercure, Panther
Symfony on steroids
: Vue.js, Mercure, PantherSymfony on steroids
: Vue.js, Mercure, Panther
Symfony on steroids
: Vue.js, Mercure, Panther
 
Symfony2 components to the rescue of your PHP projects
Symfony2 components to the rescue of your PHP projectsSymfony2 components to the rescue of your PHP projects
Symfony2 components to the rescue of your PHP projects
 
Symfony State Of The Union, March 2010
Symfony State Of The Union, March 2010Symfony State Of The Union, March 2010
Symfony State Of The Union, March 2010
 
Developing html5 mobile applications using cold fusion 11
Developing html5 mobile applications using cold fusion 11Developing html5 mobile applications using cold fusion 11
Developing html5 mobile applications using cold fusion 11
 
Symfony2 San Francisco Meetup 2009
Symfony2 San Francisco Meetup 2009Symfony2 San Francisco Meetup 2009
Symfony2 San Francisco Meetup 2009
 
Php Conference Brazil - Phalcon Giant Killer
Php Conference Brazil - Phalcon Giant KillerPhp Conference Brazil - Phalcon Giant Killer
Php Conference Brazil - Phalcon Giant Killer
 
A Glymse of Symfony 2
A Glymse of Symfony 2A Glymse of Symfony 2
A Glymse of Symfony 2
 
Modularity problems
Modularity  problemsModularity  problems
Modularity problems
 
The why and how of moving to php 7
The why and how of moving to php 7The why and how of moving to php 7
The why and how of moving to php 7
 
Web componenet using angular element
Web componenet using angular elementWeb componenet using angular element
Web componenet using angular element
 

Dernier

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Dernier (20)

AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 

Nice performance using Sf2 cache wrapping Sf1 application - Paris