Веб-кластер 1С-Битрикс – примеры работающих проектов Александр Сербул Руководитель направления контроля качества интеграции и внедрений ООО «1С-Битрикс» Сколько стоит 1 час? Пример: Крупный интернет-магазин с годовым оборотом 1.5 млрд. руб. 210 рабочих дней в году по 10 рабочих часов. Час простоя крупного интернет-проекта может обойтись владельцам в 0,3 1 миллион рублей упущенной выручки. 1С-Битрикс: Веб-кластер Основные задачи, которые необходимо решить: 1. Обеспечение высокой доступности сервиса (так называемые HA - High Availability или Failover кластеры) 2. Масштабирование веб-проекта в условиях возрастающей нагрузки (HP - High Performance кластеры) 3. Удобное резервное копирование 1С-Битрикс: Веб-кластер «1С-Битрикс: Веб-кластер» - это комбинация технологий: • • • • • Вертикальный шардинг (вынесение модулей на отдельные серверы MySQL) Репликация MySQL (Oracle и MS SQL в дальнейшем) и балансирование нагрузки между серверами Распределенный кеш данных (memcached) Непрерывность сессий между веб-серверами (хранение сессий в базе данных) Кластеризация веб-сервера: – Синхронизация файлов – Балансирование нагрузки между серверами Действующий веб-кластер: «kupibonus.ru» Внедрение веб-кластера провел сертифицированный партнер (ID #215097) «Linemedia», г. Москва. Редакция платформы – «Бизнес веб-кластер». Ключевые особенности проекта Сегодня сайт ежедневно посещают несколько сотен тысяч пользователей, также дополнительную нагрузку генерируют партнёры проекта, имеющие доступ к проекту через API Kupibonus. Активная двухсторонняя интеграция с бэк-офисом «1С:Предприятие», интенсивные каналы взаимодействия с внешними сервисами. Обеспечена высокая производительность и отказоустойчивость не только публично части, но и внутренних бизнес-процессов и API. Внедрение прошло в короткие сроки – две недели. Архитектура: «kupibonus.ru» Ubuntu Linux 10.04 LTS, софт.рейды, база на SSD-дисках, php-fpm (FastCGI), xcache, nagios/munin DNS балансировка Балансировщик 1 Балансировщик 2 Proxy server (nginx) Proxy server (nginx) Стат. файлы Стат. файлы Сервер-приложений 1 «1С-Битрикс: Бизнес вебкластер» SQL-балансировщик 1С-Битрикс База данных MySQL MASTER 4 ядра, 16 ГБ 4 ядра, 8 ГБ Сервер-приложений 2 csync2 «1С-Битрикс: Бизнес вебкластер» SQL-балансировщик 1С-Битрикс База данных MySQL SLAVE 1 Сервер бэкапов Действующий веб-кластер: «www.komos.ru» Внедрение веб-кластера провел золотой сертифицированный партнер (ID #53157) «Профессиональные Интернет-решения», г. Ижевск. Редакция платформы – «Вебкластер». Ключевые особенности проекта Высоконагруженная площадка для проведения электронных торгов группой компаний - «КОМОС ГРУПП». В состав группы входит 13 крупнейших предприятий, производящих продукты питания в Удмуртии и Пермском крае. Полученная в результате торгов стоимость предложений составила почти 5 млрд. рублей менее чем за год. Обеспечена высокая производительность и отказоустойчивость, легкая масштабируемость электронной торговой площадки. Архитектура: «www.komos.ru» Выделенный сервер 1 Выделенный сервер 2 Балансировщик (nginx, upstream/ip_hash) База данных MySQL MASTER Csync2 SQL-балансировщик 1С-Битрикс Memcached Memcached SQL-балансировщик 1С-Битрикс База данных MySQL SLAVE «1С-Битрикс: Веб-окружение 2.0»: PHP5, ZendOptimizer+ «1С-Битрикс: Веб-кластер» «1С-Битрикс: Веб-кластер» Intel® Core™ i7-920 Quad-Core, 2 x 750 GB HDD SATA2 (software RAID1), 8 GB DDR3 Proxy (nginx) Proxy (nginx) Планируемое развитие архитектуры: «www.komos.ru» Балансировщик, отдача и кэширование статики Сервер 1 Сервер 2 Вертикальный шардинг модуля «Веб-аналитика» Подсмотрено у Партнеров … А еще у одного нашего Партнера в работе интересный веб-кластер, который разворачивается в отечественном облаке «Оверсан-Скалакси» (www.scalaxy.ru). Система представляет из себя 2 сервера c тарифным планом «Сервер Битрикс» с установленным пакетом «Веб-окружение». Архитектура – легко масштабируется в случае возрастания нагрузки. «Сервер Битрикс» «Сервер Битрикс» «Сервер Битрикс» «1С-Битрикс: Веб-кластер» «1С-Битрикс: Веб-кластер» «1С-Битрикс: Веб-кластер» … Действующий веб-кластер: «www.1c-bitrix.ru» Внедрили собственными силами . Ключевые особенности проекта Веб-кластер размещен в облаке Amazon. Достаточно большой объем контента. Высокая нагрузка как на публичную часть, так и на интеграционное API (marketplace), а также систему обновлений. Обеспечена высокая производительность и устойчивость, быстрое масштабирование в случае необходимости. Архитектура: «www.1с-bitrix.ru» Балансировщик (nginx, кэширование статики, SSL-termination) Выделенный сервер 1 Выделенный сервер 2 Proxy (nginx) Proxy (nginx) «1С-Битрикс: Бизнес веб-кластер» «1С-Битрикс: Бизнес веб-кластер» База данных MySQL MASTER Csync2/inotify SQL-балансировщик 1С-Битрикс Memcached SQL-балансировщик 1С-Битрикс Memcached «1С-Битрикс: Веб-окружение 2.0»: PHP5, ZendOptimizer+ , 8 ядер, 7 ГБ, software RAID10, xfs, s3fs. В проекте ~200ГБ статики База данных MySQL SLAVE Сервер мониторинга (nagios/munin) CDN/s3 – видео, демо -дистрибутивы На что еще хочется обратить внимание - - - - Простое дублирование связки ОС+apache/php на другой машине за балансировщиком – значительно повышает стабильность проекта. Машины можно отключать от балансировщика для проведения регламентных работ: обновления и настройки ПО (патчи безопасности, обновление платформы 1С-Битрикс), обслуживания оборудования. Раздача «тяжелого» контента через CDN значительно снижает нагрузку на проект и повышает удовлетворенность клиента – видео не «тормозит», файлы быстро качаются из любой точки света, канал к проекту не забивается. На mysql-slave машине у вас всегда свежие данные и готовый к использованию сервер БД, подключить который можно скриптом в течении минут. Восстановление последних данных из лог. бэкапа – более долгая процедура (часы, иногда сутки). Спасибо за внимание! Вопросы? Александр Сербул Руководитель направления контроля качества интеграции и внедрений ООО «1С-Битрикс» Моб.: +7 (926) 366-51-88 Тел.: +7 (495) 229-14-41 E-mail: serbul@1c-bitrix.ru Twitter: @AlexSerbul