Кластеризация может применяться в разных звеньях e-commerce систем для обеспечения высокой доступности (High Availabilty – HA) и устойчивости к сбоям (Fault tolerance), а также как средство распределения нагрузки (Network Load Balancing – NLB). Возможности кластеризации в каждом звене определяются используемой e-commerce платформой и выбранными архитектурными решениями при ее развертывании. Таким образом, средства кластеризации необходимо проектировать еще на ранней стадии выбора e-commerce платформы. Кроме того, следует обращать внимание и на характеристики базового программного обеспечения (операционная система, драйвера сетевого оборудования и систем хранения), под которым развертываются элементы платформы.

В целом, для всех платформ enterprise-класса (IBM WebSphere Commerce, Oracle Commerce, SAP hybris) существуют возможности организации кластеров разного типа во всех звеньях системы (СУБД, Сервер приложений, Web-сервер). Это могут быть как решения типа High Availability, так и разнообразные Fault tolerance системы с явным разделением на Master/Slave сервера (группы серверов). Например, для платформы Oracle Commerce можно использовать Oracle Real Application Cluster (RAC) для СУБД Oracle, кластер WebLogic-серверов на уровне сервера приложений и Oracle Coherence с модулем Coherence*Web для кластеризации на фронте (совместно с серверами Oracle HTTP Server или непосредственно с WebLogic).

Но прежде, чем приступать к проектированию каких-либо кластерных решений при внедрении любой e-commerce платформы следует все-таки определиться с тем, для чего – для решения или предотвращения каких проблем – это вам понадобилось. Во всех случаях полноценная кластеризация является не дешевым удовольствием и дело тут не только в стоимости лицензий на кластерные решения, но и в значительном усложнении процедур конфигурирования и администрирования системы. Существуют следующие сценарии:

  • Увеличение производительности. Нагрузка на интернет-магазины и различные торговые системы часто носит очень неравномерный характер. Это значит, что она может многократно увеличиваться в «часы пик» или предпраздничные дни. В такой ситуации (при внезапном росте нагрузки на порядок и более) неподготовленные системы просто «коллапсируют», прекращая обслуживать поступающие запросы, что не может не сказываться на репутации бренда. Кластерные решения позволяют подключать дополнительные вычислительные ресурсы по мере роста нагрузки и таким образом обеспечивать работоспособность системы практически при любых обстоятельствах (разумеется, при наличии доступных вычислительных ресурсов как таковых). Следует только помнить, что многие виды кластерных конфигураций предполагают наличие высокоскоростных и низколатентных каналов коммуникации между серверами кластера. Это особенно важно для кластеров СУБД и кэш-кластеров.
  • Работа 24х7. Кластерные решения позволяют организовать резервирование и автоматическое (полуавтоматическое или ручное) переключение на резервные мощности во всех звеньях e‑commerce платформы. Это значит, что в случае аварии оборудования или каналов коммуникации, система может переключаться на «запасные» сервера и продолжать обслуживание. Для бизнеса, который в существенной степени зависит от работоспособности своей информационной инфраструктуры, простои могут обходиться столь дорого, что любые вложения в кластеризацию и резервирование не оказываются излишними.
  • Обновления без остановки. Даже в тех случаях, когда работа в режиме 24х7 не является приоритетной, редкие простои системы из-за сбоев и поломок дополняются принудительными остановками для обслуживания (установки дополнений и обновлений программного обеспечения, изменения конфигураций, синхронизации данных). Такие остановки приходится предварительно планировать, ограничивая их частоту и длительность, а также время выполнения. Кластеризация позволяет проводить упомянутые обновления поочередно, последовательно останавливая и вновь запуская разные ноды кластера. При этом система все это время остается функциональной и продолжает обслуживание запросов.
  • Эффективная утилизация ресурсов. Программная технология выбранной e-commerce платформы не всегда позволяет в полной мере использовать все доступные ресурсы (процессоры, память) серверов, на которых запускаются приложения платформы. Для более полной утилизации доступных ресурсов иногда бывает полезной так называемая «вертикальная кластеризация» (vertical clustering). В этом случае на одном физическом сервере запускается несколько экземпляров сервисов или виртуальных машин, объединяемых в кластер. В таких конфигурациях удается более эффективно загружать все доступные ресурсы серверов.

Поддерживаемые средства кластеризации для разных e-commerce платформ

ПлатформыСредства кластеризации
IBM WebSphere Commerce,
Oracle Commerce

Балансировщик: IBM WebSphere Edge components Load Balancer
Web-сервер: IBM HTTP Server cluster, Oracle iPlanet Web Server cluster
Сервер приложений: WebSphere Application Server cluster
СУБД: DB2 Enterprise Server Edition cluster, Oracle RAC Cluster
Поисковая машина: WebSphere Commerce Search cluster
Кэш: WebSphere eXtreme Scale1

Oracle Commerce

Балансировщик: Oracle Web Cache cluster
Web-сервер: Oracle HTTP Server cluster, Oracle iPlanet Web Server cluster
Сервер приложений: WebLogic Server Cluster, Jboss Application Server clustering
СУБД: Oracle RAC Cluster, MSSQL Server Failover Cluster
Поисковая машина: Oracle Endeca MDEX Engine cluster
Кэш: Oracle Coherence2, JBoss Cache distributed caching

SAP hybris
Платформа: hybris Cluster Module3
СУБД: Percona XtraDB Cluster, MSSQL Server Failover Cluster
Кэш: Terracotta Distributed Ehcache, Oracle Coherence
1С-Битрикс: Управление сайтом СУБД: Oracle RAC Cluster, MSSQL Server Failover Cluster, MariaDB Galera Cluster, MySQL Master/Slave Replication
Платформа: Модуль «Веб-кластер»
Поисковая машина: Sphinx-кластер
Кэш: Memcache/Couchbase cluster
Magento СУБД: Percona XtraDB Cluster, MariaDB Galera Cluster
Web-сервер: Linux/Windows-кластеры4
Поисковая машина: SolrCloud, Sphinx-кластер, ElasticSearch-кластер
Кэш: REDIS Cluster, Memcache/Couchbase cluster
VirtueMart
СУБД: MariaDB Galera Cluster
Web-сервер: Linux/Windows-кластеры4
Поисковая машина: SolrCloud, Sphinx-кластер
Кэш: Memcache/Couchbase cluster

WebSphere eXtreme Scale представляет собой надстройку над DynaCache (технология кэширования в составе IBM WebSphere) и реализует распределенную архитектуру кеширования, адаптированную под кластерную среду.

Oracle Coherence является универсальным решением для организации кеширования и синхронизации данных в распределенных кластерных средах. Может использоваться как на фронте для кэширования http-сессий, так и в качестве распределенного кэша Java-объектов для кластера серверов приложений (например, WebLogic-кластера). Как правило, Oracle Coherence можно рассматривать как альтернативу WebSphere eXtreme Scale, если речь идет о распределенном кэше Java-объектов в кластере.

SAP hybris не поддерживает какие-либо конкретные технологии кластеризации на уровне серверов приложений. SAP предлагает независимое от используемого сервера приложений решение в виде отдельного модуля (надстройки) hybris Cluster Module, который обеспечивает синхронизацию данных и распределение нагрузки по разным серверам.

Построение кластерных архитектур для php-платформ производится на основе базовой функциональности Windows или Linux-кластеров. Например, возможно развернуть Linux-кластер с помощью Heartbeat+Pacemaker, и уже в нем настроить требуемый http-сервер (apache или nginx) в виде кластерного ресурса. 

Пример конфигурации кластера для IBM WebSphere Commerce

Пример конфигурации кластера для Oracle Commerce

Пример конфигурации кластера для 1С-Битрикс: Управление сайтом