Кластеризация может применяться в разных звеньях 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 |
Oracle Commerce |
Балансировщик: Oracle Web Cache cluster |
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 |
1 WebSphere eXtreme Scale представляет собой надстройку над DynaCache (технология кэширования в составе IBM WebSphere) и реализует распределенную архитектуру кеширования, адаптированную под кластерную среду.
2 Oracle Coherence является универсальным решением для организации кеширования и синхронизации данных в распределенных кластерных средах. Может использоваться как на фронте для кэширования http-сессий, так и в качестве распределенного кэша Java-объектов для кластера серверов приложений (например, WebLogic-кластера). Как правило, Oracle Coherence можно рассматривать как альтернативу WebSphere eXtreme Scale, если речь идет о распределенном кэше Java-объектов в кластере.
3 SAP hybris не поддерживает какие-либо конкретные технологии кластеризации на уровне серверов приложений. SAP предлагает независимое от используемого сервера приложений решение в виде отдельного модуля (надстройки) hybris Cluster Module, который обеспечивает синхронизацию данных и распределение нагрузки по разным серверам.
4 Построение кластерных архитектур для php-платформ производится на основе базовой функциональности Windows или Linux-кластеров. Например, возможно развернуть Linux-кластер с помощью Heartbeat+Pacemaker, и уже в нем настроить требуемый http-сервер (apache или nginx) в виде кластерного ресурса.