an optimisation story at mage titans manchester 2016
TRANSCRIPT
@Tonegolf71 @Space48ers
#MageTitansMCR
Worked on Magento since 1.2
Technical Director @ Space 48
Love learning and collaborating
@Tonegolf71 @Space48ers
#MageTitansMCR
Overview• Monitoring
@Tonegolf71 @Space48ers
#MageTitansMCR
Overview• Monitoring
• General FPC efficiency
@Tonegolf71 @Space48ers
#MageTitansMCR
Overview• Monitoring
• General FPC efficiency
• Improvement examples (M1)
@Tonegolf71 @Space48ers
#MageTitansMCR
Overview• Monitoring
• General FPC efficiency
• Improvement examples (M1)
• M2 FPC
@Tonegolf71 @Space48ers
#MageTitansMCR
@Tonegolf71 @Space48ers
#MageTitansMCR
@Tonegolf71 @Space48ers
#MageTitansMCR
@Tonegolf71 @Space48ers
#MageTitansMCR
@Tonegolf71 @Space48ers
#MageTitansMCR
@Tonegolf71 @Space48ers
#MageTitansMCR
@Tonegolf71 @Space48ers
#MageTitansMCR
@Tonegolf71 @Space48ers
#MageTitansMCR
Where to start?
@Tonegolf71 @Space48ers
#MageTitansMCR
@Tonegolf71 @Space48ers
#MageTitansMCR
Max Chadwick@maxpchadwick
http://maxchadwick.xyz
Something Digital
Nomad Mage: https://goo.gl/3KnTO0
Mpchadwick_PageCacheHitRate : https://goo.gl/oWJZ0w
@Tonegolf71 @Space48ers
#MageTitansMCR
@Tonegolf71 @Space48ers
#MageTitansMCR
@Tonegolf71 @Space48ers
#MageTitansMCR
Do I have a cached version of the page?
Load Magento and get content for the
page and the containers, then
return
Do I have cached versions of all
containers on the page?
Load Magento and get content for
containers, merge in to cached page content and return
Return page and containers from cache
FULL HIT PARTIAL HIT MISS
YES
NO
YES
Response
Response
Response
NO
Request
@Tonegolf71 @Space48ers
#MageTitansMCR
@Tonegolf71 @Space48ers
#MageTitansMCR
@Tonegolf71 @Space48ers
#MageTitansMCR
Module 1: Opening Times
Call us today 8am - 10pm
@Tonegolf71 @Space48ers
#MageTitansMCR
Module 1: Opening Times
• Stores opening and closing times for days of the week
• A custom message is defined for each state
• Custom dates can be added for holidays etc.
@Tonegolf71 @Space48ers
#MageTitansMCR
Module 1: Opening Times
Call us today 8am - 10pm
@Tonegolf71 @Space48ers
#MageTitansMCR
Module 1: Opening TimesContainer Class
@Tonegolf71 @Space48ers
#MageTitansMCR
Module 1: Opening Times
Why would you do that?
Container Class
@Tonegolf71 @Space48ers
#MageTitansMCR
Module 1: Opening Times
How often should this change?
Call us today 8am - 10pm
@Tonegolf71 @Space48ers
#MageTitansMCR
Module 1: Opening Times
So we need to cache it right?
Call us today 8am - 10pm
@Tonegolf71 @Space48ers
#MageTitansMCR
@Tonegolf71 @Space48ers
#MageTitansMCR
Container Class
@Tonegolf71 @Space48ers
#MageTitansMCR
Module 2: MyFavourites
@Tonegolf71 @Space48ers
#MageTitansMCR
Module 2: MyFavouritesContainer Class
@Tonegolf71 @Space48ers
#MageTitansMCR
Module 2: MyFavourites
Why would you do that?
Container Class
@Tonegolf71 @Space48ers
#MageTitansMCR
Module 2: MyFavourites
Am I a favourite?
@Tonegolf71 @Space48ers
#MageTitansMCR
Module 2: MyFavourites
Am I a favourite?
Am I a favourite?
@Tonegolf71 @Space48ers
#MageTitansMCR
Module 2: MyFavourites
Am I a favourite?
Am I a favourite?
Am I a favourite?
@Tonegolf71 @Space48ers
#MageTitansMCR
Module 2: MyFavourites
Am I a favourite?
Am I a favourite?
Am I a favourite?
Am I a favourite?
@Tonegolf71 @Space48ers
#MageTitansMCR
@Tonegolf71 @Space48ers
#MageTitansMCR
Module 2: MyFavourites
@Tonegolf71 @Space48ers
#MageTitansMCR
Module 2: MyFavourites
@Tonegolf71 @Space48ers
#MageTitansMCR
Result: Greatly reduced partial hits!
@Tonegolf71 @Space48ers
#MageTitansMCR
This will blow your mind…
@Tonegolf71 @Space48ers
#MageTitansMCR
Crontab from hell
@Tonegolf71 @Space48ers
#MageTitansMCR
Crontab from hell
Why would you do that?
@Tonegolf71 @Space48ers
#MageTitansMCR
To be fair…
• Easy for me to question “Why?”
@Tonegolf71 @Space48ers
#MageTitansMCR
To be fair…
• Easy for me to question “Why?”
• Everyone is learning!
@Tonegolf71 @Space48ers
#MageTitansMCR
To be fair…
• Easy for me to question “Why?”
• Everyone is learning!
• We need to embrace such experiences
@Tonegolf71 @Space48ers
#MageTitansMCR
To be fair…
• Easy for me to question “Why?”
• Everyone is learning!
• We need to embrace such experiences
• Ideally we should SHARE such experiences!!
@Tonegolf71 @Space48ers
#MageTitansMCR
M2 FPC
@Tonegolf71 @Space48ers
#MageTitansMCR
Varnish FTW
@Tonegolf71 @Space48ers
#MageTitansMCR
Still has to deal with independently flushable content and private data
@Tonegolf71 @Space48ers
#MageTitansMCR
Shared public content… ESI
@Tonegolf71 @Space48ers
#MageTitansMCR
Private… AJAX and local storage
@Tonegolf71 @Space48ers
#MageTitansMCR
You can screw it up if you want?
@Tonegolf71 @Space48ers
#MageTitansMCR
@Tonegolf71 @Space48ers
#MageTitansMCR
If you use cacheable=“false" for a block, be aware the whole page will
be excluded from FPC
@Tonegolf71 @Space48ers
#MageTitansMCR
@Tonegolf71 @Space48ers
#MageTitansMCR
@Tonegolf71 @Space48ers
#MageTitansMCR
M2 FPC Monitoring?
@Tonegolf71 @Space48ers
#MageTitansMCR
Conclusion
@Tonegolf71 @Space48ers
#MageTitansMCR
With great power…
…comes great responsibility
@Tonegolf71 @Space48ers
#MageTitansMCR
Monitor as much as is practical
@Tonegolf71 @Space48ers
#MageTitansMCR
Embrace mistakes
@Tonegolf71 @Space48ers
#MageTitansMCR
Embrace mistakes..and share them
@Tonegolf71 @Space48ers
#MageTitansMCR
THANKS!!
@Tonegolf71 @Space48ers
#MageTitansMCR
THANKS!!
Any questions?