Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

An extended explanation of caching

66 views

Published on

Caching can be like regex. If you've got a problem and not a clear understanding of what you're trying to solve, you're going to end up with two problems. Understanding the mechanisms and types of caching possible from end user browsers down to in-memory databases can help clarify just what problem each layer of caching is designed to solve. Learn about what to cache, how to cache, and when to introduce caching into the mix of what you're building out. We'll talk about how to use CDN's, in memory, on disk, and cloud solutions when having to scale your applications with a caching solution.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

An extended explanation of caching

  1. 1. An Extended Explanation of Caching
  2. 2. Who Are You? › Tom Cudd › 2004 University of Nebraska-Lincoln graduate, B.S. in Computer Engineering › Work at VML in Kansas City, MO
  3. 3. Clients I’ve worked on › Colgate › Hershey’s › Premier League › Korean Air › Kellogg’s › US Soccer › Wendy’s › BridgeStone › Sprint › Ford
  4. 4. Technology Stacks › Java › AEM › Tomcat › WebSphere › Etc. › .NET › Sitecore › Umbraco › Etc. › PHP › Wordpress › Drupal › Etc. › Whatever else the client decides to throw at us and someone has said “yeah, we know that” (but we really don’t) › Joomla › Oracle › DotNetNuke › Etc.
  5. 5. Platforms › Adobe http://www.adobe.com/in/ › Acquia https://www.acquia.com/ › Oracle https://www.oracle.com/index.html › Open Text http://www.opentext.com/ › Squarespace https://www.squarespace.com/ › IBM https://www.ibm.com/in-en/ › epi http://www.episerver.com/ › Joomla https://www.joomla.org/ › Sitecore http://www.sitecore.net/ › Telerik http://www.telerik.com/ › Microsoft https://www.microsoft.com/en-in/ › Pantheon https://pantheon.io/ › Wix http://www.wix.com/ › OpenCms http://www.opencms.org/en/ › WordPress https://wordpress.com/ › Symphony http://www.getsymphony.com/ › Drupal https://www.drupal.org/ › Umbraco https://umbraco.com/ › DotCMS http://dotcms.com/ › Tumblr https://www.tumblr.com/ › Blogger https://www.blogger.com/home › Magnolia https://www.magnolia-cms.com/
  6. 6. Merry Christmas Database Application Application WebWeb Web Varnish Varnish Varnish Varnish Load Balancer CDN CDNCDN Browser
  7. 7. Why caching is important › Users leave websites that take too long to load › 3 seconds post-click, half your users have left › Investing in performances leads to positive user results (retaining customers)
  8. 8. How to not suck at caching › Don’t slap it on top of existing hardware/servers › Caching doesn’t solve all your problems, your brain does › Know your data, files, and headers really well › Don’t overengineer your solution › Continuously Improve (one change at a time)
  9. 9. Caching doesn’t help › Oversaturation › Network hardware › Thread death › Thundering herd › Lack of information › Bad decisions
  10. 10. End Users Browser
  11. 11. Browser Caching › Setting Request Headers › Requires a hit to originating system setting headers for each item to be cached
  12. 12. External/Edge Services CDN CDNCDN
  13. 13. Content Delivery Network (CDN) › What › Images, Videos, Static Content › Downloads › Why › Improve page load times › High availability › Origin offloading
  14. 14. CDN features › Setting TTLs, other configs based on extension, etc. › Region, language routing › Mobile detection › WAF/Security
  15. 15. CDN providers › Cloudflare › Incapsula › Cloud providers › Akamai › Fastly › Etc.
  16. 16. Your Systems Database Application Application WebWeb Web Varnish Varnish Varnish Varnish
  17. 17. Things to think about › Many options to choose from within your own systems › In memory › On disk › Web, Application, Database caching › Don’t overengineer solutions (worth repeating)
  18. 18. Varnish › Separate servers › Both in memory and disk paging
  19. 19. Web/App Layer › Baked versus fried › Building on demand versus preloading cache › Disk versus memory
  20. 20. Product Specific › Adobe Experience Manager Dispatcher › Sitecore › Prefetch, data, item, html caches › Etc.
  21. 21. Output Caching › IIS
  22. 22. App/Data Layer › Reducing database calls › Reducing API calls
  23. 23. Ehcache › Java based applications › In memory or disk › Identify the class of data › Synchronizing the data (or not)
  24. 24. Memcached › In memory, key value store › Reduce database load › Not synchronized › Scalable separately
  25. 25. Let’s not fight › Memcached versus Redis versus Mongo versus Whatever IN A STEEL CAGE DEATH MATCH
  26. 26. Database › Redis › Shared, predefined, structured, often retrieved data › Stored procedures › More of an data call “offload”
  27. 27. Procedural Tasks › Populating Data › As requests come in › Pre-loading › Updating new data › Clearing all data (carefully)
  28. 28. Cache Clearing › Staggered approaches › Clearing individual items › Using APIs and automation
  29. 29. Thanks! › Twitter: @tomcudd › Website: https://tomcudd.com/ › Carrier Pigeon: Bob.

×