Для любого интернет-магазина и торговой площадки важнейшим показателем является его нагрузочная способность и обеспечиваемая скорость доступа посетителей к страницам этого магазина. И тут, кроме собственно производительности используемого оборудования, важным фактором является общая программная архитектура используемого решения. А в этой архитектуре не последнее значение имеют специальные решения для кэширования (промежуточного хранения) данных.
Существуют разные средства и технологии кэширования, которые могут применяться практически во всех звеньях любого мало-мальски сложного решения. Некоторые из этих технологий являются по сути встроенными в базовую инфраструктуру (ОС, СУБД, web-сервер), а некоторые – могут подключаться дополнительно. Учитывая степень влияния дополнительного кэша на общую производительность всей e-commerce платформы, его можно считать одним из важнейших компонентов для любой высоко- и средне-нагруженной системы. Поэтому сами программные инструменты и продукты, обеспечивающие кэширование, своими характеристиками и возможностями в значительной степени определяют и многие общие характеристики и возможности платформы в целом.
Все рассматриваемые e-commerce платформы позволяют использовать либо относительно стандартные промышленные решения для кэширования (Memcache, REDIS, Oracle Coherence, EHCache), либо какие-то фирменные продукты, заточенные конкретно под определенную платформу или семейство продуктов одного вендора.
Поддерживаемые (на уровне сервера приложений) средства кэширования
для разных e-commerce платформ
Платформа | Технология кэширования |
---|---|
IBM WebSphere Commerce | DynaCache1, WebSphere eXtreme Scale2 |
Oracle Commerce | Oracle Coherence3, JBoss Cache |
SAP hybris4 | EHCache4, Oracle Coherence |
1С-Битрикс: Управление сайтом6 | Memcache, eAccelerator5, APC, XCache, Windows Cache Extension for PHP |
Magento6 | REDIS, Memcache, Varnish Cache (при использовании Nexcess.net Turpentine Extension for Magento Turpentine Extension for Magento) |
VirtueMart6 | Memcache |
1 DynaCache представляет собой технологию динамического кэширования Java-объектов (с поддержкой кластеризации и распределенного кэширования), встроенную в архитектуру IBM WebSphere Application Server.
2 WebSphere eXtreme Scale (WXS) расширяет возможности IBM WebSphere Application Server, работая поверх DynaCache API, и обеспечивает более масштабируемое и более адаптированное для использования в кластерной архитектуре решение для кэширования.
3 Oracle Commerce поддерживает Coherence для любых используемых серверов приложений (WebLogic, WAS, JBoss), но для WebLogic возможности кэширования через Coherence немного шире (например, Coherence с модулем Coherence*Web можно также использовать для кэширования http-сессий).
4 SAP hybris включает возможность расширения встроенной подсистемы кэширования (hybris Regional Cache) подключением EHCache. Дополнительные плагины и модули позволяют использовать такие решения, как Coherence.
5 До версии 15.5. В более поздних версия поддержка eAccelerator отсутствует.
6 В силу особенностей PHP, для всех php-продуктов могут использоваться любые технологии кэширования php-кода (APC, OPCache, ... ). Но сами рассматриваемые платформы содержат расширенные средства кэширования и мониторинга, которые, кроме кэширования кода, позволяют осуществлять кэширование определенных данных и/или страниц, а также позволяют через административные интерфейсы управлять и наблюдать за работой механизма кэширования. Соответственно, в таблице представлены именно такие, поддерживаемые внутри платформы, инструменты кэширования.
Если рассматривать архитектуру кэширования в более широком плане, то следует отметить, что кэширование на уровне сервера приложений должно дополняться кэшированием результатов запросов к данным (query caching или ORM-caching) и кэшированием сессий и страниц на фронте (sessions cache или http-caching). И тут стоит задуматься о том, чтобы не множить сущности и использовать, там где это возможно, одну технологию. Например, при работе с платформой Oracle Commerce возможно реализовать все виды кэшей на базе Coherence – это позволит не развертывать отдельную инфраструктуру для кэширования, например, http-сессий.
Особенные сложности могут возникнуть при построении кластерных конфигураций. Для них требования к инструментам кэширования значительно усложняются, появляются дополнительные условия на случай сбоев и остановок отдельных серверов в кластере и т.п. Именно для таких ситуаций, например, предназначена технология IBM WebSphere eXtreme Scale. Соответствующий функционал имеется и в составе Oracle Coherence. Гораздо меньше (и это следует учитывать при выборе платформы) к кластерным конфигурациям адаптируются решения на PHP. Здесь для организации распределенного механизма кэширования можно использовать REDIS или Couchbase (взамен Memcache).