SlideShare a Scribd company logo
Varnish Cache 
and its usage in the real world 
Ivan Chepurnyi 
CTO 
Interactiv4
About me 
Ivan Chepurnyi 
Meet Magento 
• Technical Consultant, Owner at EcomDev B.V. 
• Started as one of the first five developers in original Magento 
core team 
• Magento Developer Coach in Europe 
• Main areas of my expertise: 
– System Architecture 
– Performance Optimization 
– Test Driven Development 
– Complex Customizations
Varnish 
is not a cache backend 
Ivan Chepurnyi Meet Magento
Varnish 
is a frontend caching proxy 
Ivan Chepurnyi Meet Magento
Simple Workflow 
Ivan Chepurnyi 
Meet Magento 
First call to a page
Simple Workflow 
Ivan Chepurnyi 
Meet Magento 
Subsequent requests
How Varnish Works 
hash pipe 
fetch 
Ivan Chepurnyi 
Meet Magento 
recv 
hit miss pass 
deliver 
• recv – request is received from client 
• pipe – direct output of backend data 
(streaming) 
• hash – request is cacheable, lookup 
cache entry 
• pass – request is not cacheable 
• hit – cache entry is found 
• miss – cache entry not found 
• fetch – retrieval of data from 
backend 
• deliver – return data to client
What can we do with it? 
• Cache static pages (Homepage, CMS, Contacts, etc) 
Ivan Chepurnyi 
Meet Magento 
• Cache catalog pages: 
– Category listings 
– Product search results 
– Product view pages 
• Cache page parts: 
– CMS Blocks 
– Header 
– Footer
Is it possible to clear Varnish 
cache based on product, category, 
store, etc? 
YES!!! 
Ivan Chepurnyi Meet Magento
The Secret is in 
Cache Object structure 
Ivan Chepurnyi Meet Magento
Cached Object in Varnish 
Ivan Chepurnyi 
Meet Magento 
Cached Object 
Response Headers 
Response Body 
Cache Metadata 
Cache Content
We just going to supply object ID with 
its type in response headers, so it later 
on can be used to flush pages 
containing our object. 
Ivan Chepurnyi Meet Magento
But is it possible to make cache lifetime 
dynamic per product, category, etc? 
YES!!! 
Ivan Chepurnyi Meet Magento
You can supply a response header, 
that contains a TTL of the page. 
Ivan Chepurnyi Meet Magento
So what should be done to implement 
Varnish in Magento with all the 
benefits? 
Ivan Chepurnyi Meet Magento
Varnish in Magento 
• Collect current page objects, that are shown on the page. 
Ivan Chepurnyi 
Meet Magento 
Also add them into response headers. 
• Create a connector to a Varnish admin protocol, that will be 
used for flushing of the page by object ids. 
• Implement auto-updated AJAX blocks for: 
– Shopping cart 
– Wishlist 
– Customer Account links
But I have good news: 
I alredy developed a module that gives you 
a solid foundation for using Varnish in your 
project! 
Ivan Chepurnyi Meet Magento
EcomDev_Varnish 
Ivan Chepurnyi 
Meet Magento 
Download URL: http://bit.ly/ecomdev_varnish 
Requires: 
• Varnish 3.0 
• Minimal changes to your theme 
Supports: 
• Flush of cache on update of product, category, cms page, 
csm block, price rules 
• Client side cacheable AJAX placeholders (Cart, Wishlist, etc) 
• Possibility to make a cache based on customer segment 
• Cache for logged in users
Before you start using it… 
Ivan Chepurnyi 
Meet Magento 
• Make a list of dynamic blocks in your project: 
– Shopping Cart 
– Login blocks 
– Special Promo for Customer 
• Validate possible visitor segments of your project: 
– Customer group 
– Language / Country 
• Make a list of themes you need to modify
Making an element dynamic on varnish 
cached page 
Ivan Chepurnyi Meet Magento
Code Sample Dynamic Block 
Layout File 
Ivan Chepurnyi 
Meet Magento 
<default_varnish> 
<reference name=”parentBlock”> 
<action method="unsetChild”> 
<block>dynamicBlockAlias</block> 
</action> 
<block 
as="dynamicBlockAlias” 
name=”dynamicBlockPlaceholder" 
template="ecomdev/varnish/wrapper/placeholder.phtml" 
type="core/template"> 
<action method="append"> 
<block>dynamicBlock</block> 
</action> 
<action method="setBlockName"> 
<block>dynamicBlock</block> 
</action> 
<action method="setCookie"> 
<cookie>dynamicCookie</cookie> 
</action> 
<action method="setWrapperId"> 
<htmlId>elementId</htmlId> 
</action> 
</block> 
</reference> 
</default_varnish> 
• parentBlock – name of the parent 
block 
• dynamicBlockAlias – alias of the 
dynamic block in parent block 
• dynamicBlockPlaceholder – unique 
name of your placeholder 
• dynamicBlock – name of the original 
dynamic block 
• dynamicCookie – name of the cookie 
for dynamic blocks 
• elementId – HTML ID for the 
placeholder div, that is going to be 
used as container
Available Dynamic Cookies 
• quote_checksum – checksum of the current quote contents 
• customer_checksum – checksum based on the customer 
Ivan Chepurnyi 
Meet Magento 
identification, if logged in customer gets changed 
• is_logged_in – boolean flag of the logged in state of the 
visitor 
• segment_checksum – checksum of the current customer 
segment: 
– customer group id 
– store view
How does it work? 
• Your original block gets wrapped by a custom div with some 
Ivan Chepurnyi 
Meet Magento 
JS code 
• When customer visits a page, JS checks for a cookie value 
and compares it with latest saved one in local/session 
storage 
• If it is different it requests /varnish/ajax/reload for retrieving 
dynamic content and saves it to local/session storage 
• If it is the same, it just updates block from local/session 
storage
Adding custom TTL for a page 
Ivan Chepurnyi Meet Magento
Code Sample Custom TTL 
Code Block 
Ivan Chepurnyi 
Meet Magento 
// Somewhere in your code you just simply call it 
// Varnish module will take the lowest value in array of TTL that were added 
Mage::helper(‘ecomdev_varnish’) 
->addTtl($timeInSeconds);
Making custom page cacheable 
Ivan Chepurnyi Meet Magento
Code Sample Custom Page 
config.xml 
Ivan Chepurnyi 
Meet Magento 
<config> 
<varnish> 
<pages> 
<layout_handle_name 
translate="label" 
module=”your_module"> 
<label>Your Page Name</label> 
</layout_handle_name> 
</pages> 
</varnish> 
<default> 
<varnish> 
<pages> 
<layout_handle_name_time>360</layout_handle_name_ 
time> 
</pages> 
</varnish> 
</default> 
</config> 
• layout_handle_name – full 
name of the layout handle that 
should be cacheable 
• your_module – name of the 
module used for translation of 
label 
• Your Page Name – name of 
your pages, that will be shown 
in System Configuration - 
Varnish Cache 
• 360 – default cache lifetime of 
the page
Varnish vs Full Page Cache 
Ivan Chepurnyi 
Meet Magento 
Varnish 
• Avg. time to first byte 30ms 
• Dedicated software 
• Tools to monitor cache usage 
• Scalable 
• Requires adaptation of themes for 
dynamic parts 
• Possibility to flush group of pages 
Magento FPC implementation 
• Avg. time to first byte 300-400ms 
• Magento code level 
• N/A 
• Only as another backend node 
• Most of the time it is not required 
• N/A
But why do I need to use 
EcomDev_Varnish? 
Ivan Chepurnyi Meet Magento
EcomDev_Varnish vs the others 
• Cache lifetime specified on Magento code level, without 
Ivan Chepurnyi 
Meet Magento 
changing VCL 
• By using collectors & processors, it can be easily extended 
to support additional entities 
• Client-side cacheable dynamic parts 
• Cache enabled for all kind of visitors 
• Saves your money on hardware
The choice is up to you! 
Ivan Chepurnyi Meet Magento
We are hiring!!! Join Us 
join@interactiv4.com 
Ivan Chepurnyi Meet Magento
Thank You! 
Ivan Chepurnyi Meet Magento
Questions? 
Email: ivan@ecomdev.org 
Website: http://www.ecomdev.org 
LinkedIn: http://nl.linkedin.com/in/ivanchepurnyi 
Twitter: https://twitter.com/IvanChepurnyi

More Related Content

What's hot

Magento powerpoint sample
Magento powerpoint sampleMagento powerpoint sample
Magento powerpoint sample
smtech002
 
www.cheapnamehosting.com
www.cheapnamehosting.comwww.cheapnamehosting.com
www.cheapnamehosting.com
Mishu Kutubi
 
OpenXcell - Magento Optimization Webinar 2013
OpenXcell - Magento Optimization Webinar 2013OpenXcell - Magento Optimization Webinar 2013
OpenXcell - Magento Optimization Webinar 2013
Jayneel Patel
 
Openxcell conducts a successful webinar on Magento Optimization
Openxcell conducts a successful webinar on Magento OptimizationOpenxcell conducts a successful webinar on Magento Optimization
Openxcell conducts a successful webinar on Magento Optimization
OpenXcell Technolabs
 
AEM Meetup Personalization with ContextHub
AEM Meetup Personalization with ContextHubAEM Meetup Personalization with ContextHub
AEM Meetup Personalization with ContextHub
Abhishek Dwevedi
 
An Introduction To Magento
An Introduction To MagentoAn Introduction To Magento
An Introduction To Magento
Emipro Technologies Pvt. Ltd.
 
E commerce Ooi Trainings
E commerce Ooi TrainingsE commerce Ooi Trainings
E commerce Ooi Trainings
Ooi Trainings
 
Microservice Websites – Micro CPH
Microservice Websites – Micro CPHMicroservice Websites – Micro CPH
Microservice Websites – Micro CPH
Gustaf Nilsson Kotte
 
Introduction to Magento - KNOWARTH
Introduction to Magento - KNOWARTHIntroduction to Magento - KNOWARTH
Introduction to Magento - KNOWARTH
KNOWARTH Technologies
 
How to migrate Yahoo Store to Shopify with Litextension
How to migrate Yahoo Store to Shopify with LitextensionHow to migrate Yahoo Store to Shopify with Litextension
How to migrate Yahoo Store to Shopify with Litextension
LitExtension
 
Installing wordpress
Installing wordpressInstalling wordpress
Installing wordpress
Dave Wallace
 
Ooorza Magento Extension FAQs
Ooorza Magento Extension FAQsOoorza Magento Extension FAQs
Ooorza Magento Extension FAQs
Ooorza .com
 
Microservice Websites (microXchg 2017)
Microservice Websites (microXchg 2017)Microservice Websites (microXchg 2017)
Microservice Websites (microXchg 2017)
Gustaf Nilsson Kotte
 
Optimizing WordPress Performance
Optimizing WordPress PerformanceOptimizing WordPress Performance
Optimizing WordPress Performance
Douglas Yuen
 
Content Management Systems (CMS) & Wordpress theme development
Content Management Systems (CMS) & Wordpress theme developmentContent Management Systems (CMS) & Wordpress theme development
Content Management Systems (CMS) & Wordpress theme developmentDave Wallace
 
Anatomy of a Wordpress theme
Anatomy of a Wordpress themeAnatomy of a Wordpress theme
Anatomy of a Wordpress theme
Dave Wallace
 
Web analytics 101: Measuring Web Traffic
Web analytics 101: Measuring Web TrafficWeb analytics 101: Measuring Web Traffic
Web analytics 101: Measuring Web Traffic
Society_Consulting
 
Best cdn for e commerce
Best cdn for e commerceBest cdn for e commerce
Best cdn for e commerce
ericlevis012
 
Why you choose Magento as your ecommerce platform?
Why you choose Magento as your ecommerce platform? Why you choose Magento as your ecommerce platform?
Why you choose Magento as your ecommerce platform?
Inception System
 
Django Shop
Django ShopDjango Shop
Django Shop
rkmohammadi
 

What's hot (20)

Magento powerpoint sample
Magento powerpoint sampleMagento powerpoint sample
Magento powerpoint sample
 
www.cheapnamehosting.com
www.cheapnamehosting.comwww.cheapnamehosting.com
www.cheapnamehosting.com
 
OpenXcell - Magento Optimization Webinar 2013
OpenXcell - Magento Optimization Webinar 2013OpenXcell - Magento Optimization Webinar 2013
OpenXcell - Magento Optimization Webinar 2013
 
Openxcell conducts a successful webinar on Magento Optimization
Openxcell conducts a successful webinar on Magento OptimizationOpenxcell conducts a successful webinar on Magento Optimization
Openxcell conducts a successful webinar on Magento Optimization
 
AEM Meetup Personalization with ContextHub
AEM Meetup Personalization with ContextHubAEM Meetup Personalization with ContextHub
AEM Meetup Personalization with ContextHub
 
An Introduction To Magento
An Introduction To MagentoAn Introduction To Magento
An Introduction To Magento
 
E commerce Ooi Trainings
E commerce Ooi TrainingsE commerce Ooi Trainings
E commerce Ooi Trainings
 
Microservice Websites – Micro CPH
Microservice Websites – Micro CPHMicroservice Websites – Micro CPH
Microservice Websites – Micro CPH
 
Introduction to Magento - KNOWARTH
Introduction to Magento - KNOWARTHIntroduction to Magento - KNOWARTH
Introduction to Magento - KNOWARTH
 
How to migrate Yahoo Store to Shopify with Litextension
How to migrate Yahoo Store to Shopify with LitextensionHow to migrate Yahoo Store to Shopify with Litextension
How to migrate Yahoo Store to Shopify with Litextension
 
Installing wordpress
Installing wordpressInstalling wordpress
Installing wordpress
 
Ooorza Magento Extension FAQs
Ooorza Magento Extension FAQsOoorza Magento Extension FAQs
Ooorza Magento Extension FAQs
 
Microservice Websites (microXchg 2017)
Microservice Websites (microXchg 2017)Microservice Websites (microXchg 2017)
Microservice Websites (microXchg 2017)
 
Optimizing WordPress Performance
Optimizing WordPress PerformanceOptimizing WordPress Performance
Optimizing WordPress Performance
 
Content Management Systems (CMS) & Wordpress theme development
Content Management Systems (CMS) & Wordpress theme developmentContent Management Systems (CMS) & Wordpress theme development
Content Management Systems (CMS) & Wordpress theme development
 
Anatomy of a Wordpress theme
Anatomy of a Wordpress themeAnatomy of a Wordpress theme
Anatomy of a Wordpress theme
 
Web analytics 101: Measuring Web Traffic
Web analytics 101: Measuring Web TrafficWeb analytics 101: Measuring Web Traffic
Web analytics 101: Measuring Web Traffic
 
Best cdn for e commerce
Best cdn for e commerceBest cdn for e commerce
Best cdn for e commerce
 
Why you choose Magento as your ecommerce platform?
Why you choose Magento as your ecommerce platform? Why you choose Magento as your ecommerce platform?
Why you choose Magento as your ecommerce platform?
 
Django Shop
Django ShopDjango Shop
Django Shop
 

Similar to Иван Чепурный - Meet Magento Ukraine - Varnish Cache and its usage in the real world

Varnish Cache and its usage in the real world!
Varnish Cache and its usage in the real world!Varnish Cache and its usage in the real world!
Varnish Cache and its usage in the real world!
Ivan Chepurnyi
 
Improving Performance on Magento 1*
Improving Performance on Magento 1*Improving Performance on Magento 1*
Improving Performance on Magento 1*
David Z. Lerner
 
AEM 6 - Client Context Personalization
AEM 6 - Client Context Personalization AEM 6 - Client Context Personalization
AEM 6 - Client Context Personalization Prabhdeep Singh
 
Varnish & Magento TechTalk @Lyracons
Varnish & Magento TechTalk @LyraconsVarnish & Magento TechTalk @Lyracons
Varnish & Magento TechTalk @Lyracons
Ezequiel Kupelian
 
Improve WordPress performance with caching and deferred execution of code
Improve WordPress performance with caching and deferred execution of codeImprove WordPress performance with caching and deferred execution of code
Improve WordPress performance with caching and deferred execution of code
Danilo Ercoli
 
Accelerating Rails with edge caching
Accelerating Rails with edge cachingAccelerating Rails with edge caching
Accelerating Rails with edge caching
Michael May
 
4 useful things web designers can do with meta tags
4 useful things web designers can do with meta tags4 useful things web designers can do with meta tags
4 useful things web designers can do with meta tags
Innomedia Technologies
 
Best practices para publicar un WebSite con SharePoint Server 2010
Best practices para publicar un WebSite con SharePoint Server 2010Best practices para publicar un WebSite con SharePoint Server 2010
Best practices para publicar un WebSite con SharePoint Server 2010
Juan Andrés Valenzuela
 
ASP.NET 4.0 Cache Extensibility
ASP.NET 4.0 Cache ExtensibilityASP.NET 4.0 Cache Extensibility
ASP.NET 4.0 Cache Extensibility
akrakovetsky
 
Case Study for Magento Store And Quick Book Web Based Accounting Platform
Case Study for Magento Store And Quick Book Web Based Accounting PlatformCase Study for Magento Store And Quick Book Web Based Accounting Platform
Case Study for Magento Store And Quick Book Web Based Accounting Platform
Mike Taylor
 
Best Practices for Building WordPress Applications
Best Practices for Building WordPress ApplicationsBest Practices for Building WordPress Applications
Best Practices for Building WordPress Applications
Taylor Lovett
 
Magento Imagine 2013: Fabrizio Branca - Learning To Fly: How Angry Birds Reac...
Magento Imagine 2013: Fabrizio Branca - Learning To Fly: How Angry Birds Reac...Magento Imagine 2013: Fabrizio Branca - Learning To Fly: How Angry Birds Reac...
Magento Imagine 2013: Fabrizio Branca - Learning To Fly: How Angry Birds Reac...
AOE
 
Learning to Fly: How Angry Birds Reached the Heights of Store Performance |…
Learning to Fly: How Angry Birds Reached the Heights of Store Performance |…Learning to Fly: How Angry Birds Reached the Heights of Store Performance |…
Learning to Fly: How Angry Birds Reached the Heights of Store Performance |…Atwix
 
Caching 101
Caching 101Caching 101
Caching 101
Andy Melichar
 
Introduction to ASP.NET MVC
Introduction to ASP.NET MVCIntroduction to ASP.NET MVC
Introduction to ASP.NET MVC
Mayank Srivastava
 
Best Practices for WordPress
Best Practices for WordPressBest Practices for WordPress
Best Practices for WordPress
Taylor Lovett
 
WordPress Resources Nov 2014
WordPress Resources Nov 2014WordPress Resources Nov 2014
WordPress Resources Nov 2014
Judy Wilson
 
腾讯大讲堂09 如何建设高性能网站
腾讯大讲堂09 如何建设高性能网站腾讯大讲堂09 如何建设高性能网站
腾讯大讲堂09 如何建设高性能网站George Ang
 
Magento 2 Seminar - Toon van Dooren - Varnish in Magento 2
Magento 2 Seminar - Toon van Dooren - Varnish in Magento 2Magento 2 Seminar - Toon van Dooren - Varnish in Magento 2
Magento 2 Seminar - Toon van Dooren - Varnish in Magento 2
Yireo
 

Similar to Иван Чепурный - Meet Magento Ukraine - Varnish Cache and its usage in the real world (20)

Varnish Cache and its usage in the real world!
Varnish Cache and its usage in the real world!Varnish Cache and its usage in the real world!
Varnish Cache and its usage in the real world!
 
Improving Performance on Magento 1*
Improving Performance on Magento 1*Improving Performance on Magento 1*
Improving Performance on Magento 1*
 
AEM 6 - Client Context Personalization
AEM 6 - Client Context Personalization AEM 6 - Client Context Personalization
AEM 6 - Client Context Personalization
 
Varnish & Magento TechTalk @Lyracons
Varnish & Magento TechTalk @LyraconsVarnish & Magento TechTalk @Lyracons
Varnish & Magento TechTalk @Lyracons
 
Improve WordPress performance with caching and deferred execution of code
Improve WordPress performance with caching and deferred execution of codeImprove WordPress performance with caching and deferred execution of code
Improve WordPress performance with caching and deferred execution of code
 
Accelerating Rails with edge caching
Accelerating Rails with edge cachingAccelerating Rails with edge caching
Accelerating Rails with edge caching
 
4 useful things web designers can do with meta tags
4 useful things web designers can do with meta tags4 useful things web designers can do with meta tags
4 useful things web designers can do with meta tags
 
Best practices para publicar un WebSite con SharePoint Server 2010
Best practices para publicar un WebSite con SharePoint Server 2010Best practices para publicar un WebSite con SharePoint Server 2010
Best practices para publicar un WebSite con SharePoint Server 2010
 
ASP.NET 4.0 Cache Extensibility
ASP.NET 4.0 Cache ExtensibilityASP.NET 4.0 Cache Extensibility
ASP.NET 4.0 Cache Extensibility
 
Case Study for Magento Store And Quick Book Web Based Accounting Platform
Case Study for Magento Store And Quick Book Web Based Accounting PlatformCase Study for Magento Store And Quick Book Web Based Accounting Platform
Case Study for Magento Store And Quick Book Web Based Accounting Platform
 
Client and server
Client and serverClient and server
Client and server
 
Best Practices for Building WordPress Applications
Best Practices for Building WordPress ApplicationsBest Practices for Building WordPress Applications
Best Practices for Building WordPress Applications
 
Magento Imagine 2013: Fabrizio Branca - Learning To Fly: How Angry Birds Reac...
Magento Imagine 2013: Fabrizio Branca - Learning To Fly: How Angry Birds Reac...Magento Imagine 2013: Fabrizio Branca - Learning To Fly: How Angry Birds Reac...
Magento Imagine 2013: Fabrizio Branca - Learning To Fly: How Angry Birds Reac...
 
Learning to Fly: How Angry Birds Reached the Heights of Store Performance |…
Learning to Fly: How Angry Birds Reached the Heights of Store Performance |…Learning to Fly: How Angry Birds Reached the Heights of Store Performance |…
Learning to Fly: How Angry Birds Reached the Heights of Store Performance |…
 
Caching 101
Caching 101Caching 101
Caching 101
 
Introduction to ASP.NET MVC
Introduction to ASP.NET MVCIntroduction to ASP.NET MVC
Introduction to ASP.NET MVC
 
Best Practices for WordPress
Best Practices for WordPressBest Practices for WordPress
Best Practices for WordPress
 
WordPress Resources Nov 2014
WordPress Resources Nov 2014WordPress Resources Nov 2014
WordPress Resources Nov 2014
 
腾讯大讲堂09 如何建设高性能网站
腾讯大讲堂09 如何建设高性能网站腾讯大讲堂09 如何建设高性能网站
腾讯大讲堂09 如何建设高性能网站
 
Magento 2 Seminar - Toon van Dooren - Varnish in Magento 2
Magento 2 Seminar - Toon van Dooren - Varnish in Magento 2Magento 2 Seminar - Toon van Dooren - Varnish in Magento 2
Magento 2 Seminar - Toon van Dooren - Varnish in Magento 2
 

More from Atwix

Igor Miniailo - Magento 2 API Design Best Practices
Igor Miniailo - Magento 2 API Design Best PracticesIgor Miniailo - Magento 2 API Design Best Practices
Igor Miniailo - Magento 2 API Design Best Practices
Atwix
 
Valeriy Nayda - Best Practices in Magento 2. Based on Multi Source Inventory ...
Valeriy Nayda - Best Practices in Magento 2. Based on Multi Source Inventory ...Valeriy Nayda - Best Practices in Magento 2. Based on Multi Source Inventory ...
Valeriy Nayda - Best Practices in Magento 2. Based on Multi Source Inventory ...
Atwix
 
Yaroslav Rogoza - Development Environment: Local or Remote?
Yaroslav Rogoza - Development Environment: Local or Remote?Yaroslav Rogoza - Development Environment: Local or Remote?
Yaroslav Rogoza - Development Environment: Local or Remote?
Atwix
 
Magento 2 performance comparison in different environments by Yaroslav Rogoza...
Magento 2 performance comparison in different environments by Yaroslav Rogoza...Magento 2 performance comparison in different environments by Yaroslav Rogoza...
Magento 2 performance comparison in different environments by Yaroslav Rogoza...
Atwix
 
Viacheslav Kravchuk. Working as a distributed company. Our journey. Meet Mage...
Viacheslav Kravchuk. Working as a distributed company. Our journey. Meet Mage...Viacheslav Kravchuk. Working as a distributed company. Our journey. Meet Mage...
Viacheslav Kravchuk. Working as a distributed company. Our journey. Meet Mage...
Atwix
 
Сергей Иващенко - Meet Magento Ukraine - Цены в Magento 2
Сергей Иващенко - Meet Magento Ukraine - Цены в Magento 2Сергей Иващенко - Meet Magento Ukraine - Цены в Magento 2
Сергей Иващенко - Meet Magento Ukraine - Цены в Magento 2
Atwix
 
Александр Смага, Юрий Муратов - Meet Magento Ukraine - Технический обзор OroCRM
Александр Смага, Юрий Муратов - Meet Magento Ukraine - Технический обзор OroCRM Александр Смага, Юрий Муратов - Meet Magento Ukraine - Технический обзор OroCRM
Александр Смага, Юрий Муратов - Meet Magento Ukraine - Технический обзор OroCRM
Atwix
 
Владимир Дубина - Meet Magento Ukraine - Data consistency
Владимир Дубина - Meet Magento Ukraine - Data consistencyВладимир Дубина - Meet Magento Ukraine - Data consistency
Владимир Дубина - Meet Magento Ukraine - Data consistency
Atwix
 
Андрей Самиляк - Meet Magento Ukraine - Как мы играли в DevOps и как получилс...
Андрей Самиляк - Meet Magento Ukraine - Как мы играли в DevOps и как получилс...Андрей Самиляк - Meet Magento Ukraine - Как мы играли в DevOps и как получилс...
Андрей Самиляк - Meet Magento Ukraine - Как мы играли в DevOps и как получилс...
Atwix
 
Сергей Кибиткин - Meet Magento Ukraine - Что вы никогда не сделаете в Magento
Сергей Кибиткин - Meet Magento Ukraine - Что вы никогда не сделаете в MagentoСергей Кибиткин - Meet Magento Ukraine - Что вы никогда не сделаете в Magento
Сергей Кибиткин - Meet Magento Ukraine - Что вы никогда не сделаете в Magento
Atwix
 
Макс Екатериненко - Meet Magento Ukraine - Magento 2 Overview
Макс Екатериненко - Meet Magento Ukraine - Magento 2 OverviewМакс Екатериненко - Meet Magento Ukraine - Magento 2 Overview
Макс Екатериненко - Meet Magento Ukraine - Magento 2 Overview
Atwix
 
Александр Каранда - Meet Magento Ukraine - Реальность нереальных вещей
Александр Каранда - Meet Magento Ukraine - Реальность нереальных вещейАлександр Каранда - Meet Magento Ukraine - Реальность нереальных вещей
Александр Каранда - Meet Magento Ukraine - Реальность нереальных вещей
Atwix
 
Антон Капля - Meet Magento Ukraine - Кодогенератор в Magento
Антон Капля - Meet Magento Ukraine - Кодогенератор в MagentoАнтон Капля - Meet Magento Ukraine - Кодогенератор в Magento
Антон Капля - Meet Magento Ukraine - Кодогенератор в Magento
Atwix
 
Анатолій Денис - Meet Magento Ukraine - Migration to Magento - mission possible
Анатолій Денис - Meet Magento Ukraine - Migration to Magento - mission possibleАнатолій Денис - Meet Magento Ukraine - Migration to Magento - mission possible
Анатолій Денис - Meet Magento Ukraine - Migration to Magento - mission possible
Atwix
 
Артем Кузнецов - Meet Magento Ukraine - инструменты для отдела поддержки, опы...
Артем Кузнецов - Meet Magento Ukraine - инструменты для отдела поддержки, опы...Артем Кузнецов - Meet Magento Ukraine - инструменты для отдела поддержки, опы...
Артем Кузнецов - Meet Magento Ukraine - инструменты для отдела поддержки, опы...
Atwix
 
Александр Стельмах - Meet Magento Ukraine - Прибыльная e-mail рассылка за 5 ш...
Александр Стельмах - Meet Magento Ukraine - Прибыльная e-mail рассылка за 5 ш...Александр Стельмах - Meet Magento Ukraine - Прибыльная e-mail рассылка за 5 ш...
Александр Стельмах - Meet Magento Ukraine - Прибыльная e-mail рассылка за 5 ш...
Atwix
 
Владимир Галика - Meet Magento Ukraine - Чудесный Новый Мир – почему продвиже...
Владимир Галика - Meet Magento Ukraine - Чудесный Новый Мир – почему продвиже...Владимир Галика - Meet Magento Ukraine - Чудесный Новый Мир – почему продвиже...
Владимир Галика - Meet Magento Ukraine - Чудесный Новый Мир – почему продвиже...
Atwix
 
Александр Колб - Meet Magento Ukraine - психология потребления онлайн
Александр Колб - Meet Magento Ukraine - психология потребления онлайнАлександр Колб - Meet Magento Ukraine - психология потребления онлайн
Александр Колб - Meet Magento Ukraine - психология потребления онлайн
Atwix
 
Елена Леонова - Meet Magento Ukraine - Трасформация в e-commerce с Magento
Елена Леонова - Meet Magento Ukraine - Трасформация в e-commerce с MagentoЕлена Леонова - Meet Magento Ukraine - Трасформация в e-commerce с Magento
Елена Леонова - Meet Magento Ukraine - Трасформация в e-commerce с Magento
Atwix
 
Thomas Fleck - Meet Magento Ukraine - How Magento and open source change the ...
Thomas Fleck - Meet Magento Ukraine - How Magento and open source change the ...Thomas Fleck - Meet Magento Ukraine - How Magento and open source change the ...
Thomas Fleck - Meet Magento Ukraine - How Magento and open source change the ...
Atwix
 

More from Atwix (20)

Igor Miniailo - Magento 2 API Design Best Practices
Igor Miniailo - Magento 2 API Design Best PracticesIgor Miniailo - Magento 2 API Design Best Practices
Igor Miniailo - Magento 2 API Design Best Practices
 
Valeriy Nayda - Best Practices in Magento 2. Based on Multi Source Inventory ...
Valeriy Nayda - Best Practices in Magento 2. Based on Multi Source Inventory ...Valeriy Nayda - Best Practices in Magento 2. Based on Multi Source Inventory ...
Valeriy Nayda - Best Practices in Magento 2. Based on Multi Source Inventory ...
 
Yaroslav Rogoza - Development Environment: Local or Remote?
Yaroslav Rogoza - Development Environment: Local or Remote?Yaroslav Rogoza - Development Environment: Local or Remote?
Yaroslav Rogoza - Development Environment: Local or Remote?
 
Magento 2 performance comparison in different environments by Yaroslav Rogoza...
Magento 2 performance comparison in different environments by Yaroslav Rogoza...Magento 2 performance comparison in different environments by Yaroslav Rogoza...
Magento 2 performance comparison in different environments by Yaroslav Rogoza...
 
Viacheslav Kravchuk. Working as a distributed company. Our journey. Meet Mage...
Viacheslav Kravchuk. Working as a distributed company. Our journey. Meet Mage...Viacheslav Kravchuk. Working as a distributed company. Our journey. Meet Mage...
Viacheslav Kravchuk. Working as a distributed company. Our journey. Meet Mage...
 
Сергей Иващенко - Meet Magento Ukraine - Цены в Magento 2
Сергей Иващенко - Meet Magento Ukraine - Цены в Magento 2Сергей Иващенко - Meet Magento Ukraine - Цены в Magento 2
Сергей Иващенко - Meet Magento Ukraine - Цены в Magento 2
 
Александр Смага, Юрий Муратов - Meet Magento Ukraine - Технический обзор OroCRM
Александр Смага, Юрий Муратов - Meet Magento Ukraine - Технический обзор OroCRM Александр Смага, Юрий Муратов - Meet Magento Ukraine - Технический обзор OroCRM
Александр Смага, Юрий Муратов - Meet Magento Ukraine - Технический обзор OroCRM
 
Владимир Дубина - Meet Magento Ukraine - Data consistency
Владимир Дубина - Meet Magento Ukraine - Data consistencyВладимир Дубина - Meet Magento Ukraine - Data consistency
Владимир Дубина - Meet Magento Ukraine - Data consistency
 
Андрей Самиляк - Meet Magento Ukraine - Как мы играли в DevOps и как получилс...
Андрей Самиляк - Meet Magento Ukraine - Как мы играли в DevOps и как получилс...Андрей Самиляк - Meet Magento Ukraine - Как мы играли в DevOps и как получилс...
Андрей Самиляк - Meet Magento Ukraine - Как мы играли в DevOps и как получилс...
 
Сергей Кибиткин - Meet Magento Ukraine - Что вы никогда не сделаете в Magento
Сергей Кибиткин - Meet Magento Ukraine - Что вы никогда не сделаете в MagentoСергей Кибиткин - Meet Magento Ukraine - Что вы никогда не сделаете в Magento
Сергей Кибиткин - Meet Magento Ukraine - Что вы никогда не сделаете в Magento
 
Макс Екатериненко - Meet Magento Ukraine - Magento 2 Overview
Макс Екатериненко - Meet Magento Ukraine - Magento 2 OverviewМакс Екатериненко - Meet Magento Ukraine - Magento 2 Overview
Макс Екатериненко - Meet Magento Ukraine - Magento 2 Overview
 
Александр Каранда - Meet Magento Ukraine - Реальность нереальных вещей
Александр Каранда - Meet Magento Ukraine - Реальность нереальных вещейАлександр Каранда - Meet Magento Ukraine - Реальность нереальных вещей
Александр Каранда - Meet Magento Ukraine - Реальность нереальных вещей
 
Антон Капля - Meet Magento Ukraine - Кодогенератор в Magento
Антон Капля - Meet Magento Ukraine - Кодогенератор в MagentoАнтон Капля - Meet Magento Ukraine - Кодогенератор в Magento
Антон Капля - Meet Magento Ukraine - Кодогенератор в Magento
 
Анатолій Денис - Meet Magento Ukraine - Migration to Magento - mission possible
Анатолій Денис - Meet Magento Ukraine - Migration to Magento - mission possibleАнатолій Денис - Meet Magento Ukraine - Migration to Magento - mission possible
Анатолій Денис - Meet Magento Ukraine - Migration to Magento - mission possible
 
Артем Кузнецов - Meet Magento Ukraine - инструменты для отдела поддержки, опы...
Артем Кузнецов - Meet Magento Ukraine - инструменты для отдела поддержки, опы...Артем Кузнецов - Meet Magento Ukraine - инструменты для отдела поддержки, опы...
Артем Кузнецов - Meet Magento Ukraine - инструменты для отдела поддержки, опы...
 
Александр Стельмах - Meet Magento Ukraine - Прибыльная e-mail рассылка за 5 ш...
Александр Стельмах - Meet Magento Ukraine - Прибыльная e-mail рассылка за 5 ш...Александр Стельмах - Meet Magento Ukraine - Прибыльная e-mail рассылка за 5 ш...
Александр Стельмах - Meet Magento Ukraine - Прибыльная e-mail рассылка за 5 ш...
 
Владимир Галика - Meet Magento Ukraine - Чудесный Новый Мир – почему продвиже...
Владимир Галика - Meet Magento Ukraine - Чудесный Новый Мир – почему продвиже...Владимир Галика - Meet Magento Ukraine - Чудесный Новый Мир – почему продвиже...
Владимир Галика - Meet Magento Ukraine - Чудесный Новый Мир – почему продвиже...
 
Александр Колб - Meet Magento Ukraine - психология потребления онлайн
Александр Колб - Meet Magento Ukraine - психология потребления онлайнАлександр Колб - Meet Magento Ukraine - психология потребления онлайн
Александр Колб - Meet Magento Ukraine - психология потребления онлайн
 
Елена Леонова - Meet Magento Ukraine - Трасформация в e-commerce с Magento
Елена Леонова - Meet Magento Ukraine - Трасформация в e-commerce с MagentoЕлена Леонова - Meet Magento Ukraine - Трасформация в e-commerce с Magento
Елена Леонова - Meet Magento Ukraine - Трасформация в e-commerce с Magento
 
Thomas Fleck - Meet Magento Ukraine - How Magento and open source change the ...
Thomas Fleck - Meet Magento Ukraine - How Magento and open source change the ...Thomas Fleck - Meet Magento Ukraine - How Magento and open source change the ...
Thomas Fleck - Meet Magento Ukraine - How Magento and open source change the ...
 

Recently uploaded

GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 

Recently uploaded (20)

GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 

Иван Чепурный - Meet Magento Ukraine - Varnish Cache and its usage in the real world

  • 1. Varnish Cache and its usage in the real world Ivan Chepurnyi CTO Interactiv4
  • 2. About me Ivan Chepurnyi Meet Magento • Technical Consultant, Owner at EcomDev B.V. • Started as one of the first five developers in original Magento core team • Magento Developer Coach in Europe • Main areas of my expertise: – System Architecture – Performance Optimization – Test Driven Development – Complex Customizations
  • 3. Varnish is not a cache backend Ivan Chepurnyi Meet Magento
  • 4. Varnish is a frontend caching proxy Ivan Chepurnyi Meet Magento
  • 5. Simple Workflow Ivan Chepurnyi Meet Magento First call to a page
  • 6. Simple Workflow Ivan Chepurnyi Meet Magento Subsequent requests
  • 7. How Varnish Works hash pipe fetch Ivan Chepurnyi Meet Magento recv hit miss pass deliver • recv – request is received from client • pipe – direct output of backend data (streaming) • hash – request is cacheable, lookup cache entry • pass – request is not cacheable • hit – cache entry is found • miss – cache entry not found • fetch – retrieval of data from backend • deliver – return data to client
  • 8. What can we do with it? • Cache static pages (Homepage, CMS, Contacts, etc) Ivan Chepurnyi Meet Magento • Cache catalog pages: – Category listings – Product search results – Product view pages • Cache page parts: – CMS Blocks – Header – Footer
  • 9. Is it possible to clear Varnish cache based on product, category, store, etc? YES!!! Ivan Chepurnyi Meet Magento
  • 10. The Secret is in Cache Object structure Ivan Chepurnyi Meet Magento
  • 11. Cached Object in Varnish Ivan Chepurnyi Meet Magento Cached Object Response Headers Response Body Cache Metadata Cache Content
  • 12. We just going to supply object ID with its type in response headers, so it later on can be used to flush pages containing our object. Ivan Chepurnyi Meet Magento
  • 13. But is it possible to make cache lifetime dynamic per product, category, etc? YES!!! Ivan Chepurnyi Meet Magento
  • 14. You can supply a response header, that contains a TTL of the page. Ivan Chepurnyi Meet Magento
  • 15. So what should be done to implement Varnish in Magento with all the benefits? Ivan Chepurnyi Meet Magento
  • 16. Varnish in Magento • Collect current page objects, that are shown on the page. Ivan Chepurnyi Meet Magento Also add them into response headers. • Create a connector to a Varnish admin protocol, that will be used for flushing of the page by object ids. • Implement auto-updated AJAX blocks for: – Shopping cart – Wishlist – Customer Account links
  • 17. But I have good news: I alredy developed a module that gives you a solid foundation for using Varnish in your project! Ivan Chepurnyi Meet Magento
  • 18. EcomDev_Varnish Ivan Chepurnyi Meet Magento Download URL: http://bit.ly/ecomdev_varnish Requires: • Varnish 3.0 • Minimal changes to your theme Supports: • Flush of cache on update of product, category, cms page, csm block, price rules • Client side cacheable AJAX placeholders (Cart, Wishlist, etc) • Possibility to make a cache based on customer segment • Cache for logged in users
  • 19. Before you start using it… Ivan Chepurnyi Meet Magento • Make a list of dynamic blocks in your project: – Shopping Cart – Login blocks – Special Promo for Customer • Validate possible visitor segments of your project: – Customer group – Language / Country • Make a list of themes you need to modify
  • 20. Making an element dynamic on varnish cached page Ivan Chepurnyi Meet Magento
  • 21. Code Sample Dynamic Block Layout File Ivan Chepurnyi Meet Magento <default_varnish> <reference name=”parentBlock”> <action method="unsetChild”> <block>dynamicBlockAlias</block> </action> <block as="dynamicBlockAlias” name=”dynamicBlockPlaceholder" template="ecomdev/varnish/wrapper/placeholder.phtml" type="core/template"> <action method="append"> <block>dynamicBlock</block> </action> <action method="setBlockName"> <block>dynamicBlock</block> </action> <action method="setCookie"> <cookie>dynamicCookie</cookie> </action> <action method="setWrapperId"> <htmlId>elementId</htmlId> </action> </block> </reference> </default_varnish> • parentBlock – name of the parent block • dynamicBlockAlias – alias of the dynamic block in parent block • dynamicBlockPlaceholder – unique name of your placeholder • dynamicBlock – name of the original dynamic block • dynamicCookie – name of the cookie for dynamic blocks • elementId – HTML ID for the placeholder div, that is going to be used as container
  • 22. Available Dynamic Cookies • quote_checksum – checksum of the current quote contents • customer_checksum – checksum based on the customer Ivan Chepurnyi Meet Magento identification, if logged in customer gets changed • is_logged_in – boolean flag of the logged in state of the visitor • segment_checksum – checksum of the current customer segment: – customer group id – store view
  • 23. How does it work? • Your original block gets wrapped by a custom div with some Ivan Chepurnyi Meet Magento JS code • When customer visits a page, JS checks for a cookie value and compares it with latest saved one in local/session storage • If it is different it requests /varnish/ajax/reload for retrieving dynamic content and saves it to local/session storage • If it is the same, it just updates block from local/session storage
  • 24. Adding custom TTL for a page Ivan Chepurnyi Meet Magento
  • 25. Code Sample Custom TTL Code Block Ivan Chepurnyi Meet Magento // Somewhere in your code you just simply call it // Varnish module will take the lowest value in array of TTL that were added Mage::helper(‘ecomdev_varnish’) ->addTtl($timeInSeconds);
  • 26. Making custom page cacheable Ivan Chepurnyi Meet Magento
  • 27. Code Sample Custom Page config.xml Ivan Chepurnyi Meet Magento <config> <varnish> <pages> <layout_handle_name translate="label" module=”your_module"> <label>Your Page Name</label> </layout_handle_name> </pages> </varnish> <default> <varnish> <pages> <layout_handle_name_time>360</layout_handle_name_ time> </pages> </varnish> </default> </config> • layout_handle_name – full name of the layout handle that should be cacheable • your_module – name of the module used for translation of label • Your Page Name – name of your pages, that will be shown in System Configuration - Varnish Cache • 360 – default cache lifetime of the page
  • 28. Varnish vs Full Page Cache Ivan Chepurnyi Meet Magento Varnish • Avg. time to first byte 30ms • Dedicated software • Tools to monitor cache usage • Scalable • Requires adaptation of themes for dynamic parts • Possibility to flush group of pages Magento FPC implementation • Avg. time to first byte 300-400ms • Magento code level • N/A • Only as another backend node • Most of the time it is not required • N/A
  • 29. But why do I need to use EcomDev_Varnish? Ivan Chepurnyi Meet Magento
  • 30. EcomDev_Varnish vs the others • Cache lifetime specified on Magento code level, without Ivan Chepurnyi Meet Magento changing VCL • By using collectors & processors, it can be easily extended to support additional entities • Client-side cacheable dynamic parts • Cache enabled for all kind of visitors • Saves your money on hardware
  • 31. The choice is up to you! Ivan Chepurnyi Meet Magento
  • 32. We are hiring!!! Join Us join@interactiv4.com Ivan Chepurnyi Meet Magento
  • 33. Thank You! Ivan Chepurnyi Meet Magento
  • 34. Questions? Email: ivan@ecomdev.org Website: http://www.ecomdev.org LinkedIn: http://nl.linkedin.com/in/ivanchepurnyi Twitter: https://twitter.com/IvanChepurnyi