Как стать автором
Обновить
73.93

Сайт и мобильные приложения мультимедийного проекта Condé Nast Traveller запущены на веб-кластере 1С-Битрикс в Amazon

Время на прочтение 4 мин
Количество просмотров 4.5K
Добрый день, коллеги!

Condé Nast Digital Russia запустил мультимедийный проект для путешественников Condé Nast Traveller, который объединяет печатное издание, его цифровую версию, интернет-сайт и мобильное приложение. Проект стартовал 21 сентября 2011 года. В качестве веб-основы был выбран продукт компании 1С-Битрикс на веб-кластерной платформе, в качестве хостинг площадки, на основании наших рекомендаций — облако Amazon.

Веб-сайт www.cntraveller.ru содержит статьи о путешествиях и, главное, дает возможность оперативно найти информацию об отелях, ресторанах, местах для развлечений в разных странах мира, добавить на сайт собственные объекты, фотографии и отзывы, составить путеводитель для будущего путешествия. Все данные об объектах используются и приложением для iPhone «Condé Nast Traveller – Мои адреса», с помощью которого можно не только составить маршрут путешествия, но и, определив свое местоположение на карте, увидеть ближайшие адреса, рекомендованные редакцией журнала и посетителями сайта.

В целом, проект уникальный, большой и интересный – всего не расскажешь в одном абзаце – посмотрите сами, если интересно. А наша цель – заглянуть «под капот» проекта.
Итак, критически оценим архитектуру и надежность решения. Взвесим плюсы и минусы облачного хостинга и использованных технологий кластеризации Битрикс.





Архитектура высоконагруженного решения «на коробке»



Статика вынесена в облако и раздается из CDN (CloudFront) с использованием функционала модуля «Облачные хранилища». Конечно, можно организовать работу с файлами с использованием FUSE-модуля, например, s3fs, однако внутренние «информационные деревья» проще выносить в облака используя встроенные инструменты платформы.

Используется типовая MySQL master-slave репликация, однако балансирование нагрузки выполняет ядро платформы Битрикс — благодаря чему не нужно вносить изменения в существующее приложение, которому все равно — одна база данных или мастер + 20 слейвов.

Видим кластеризованный кэш на базе memcached, встроенный в кластерную платформу Битрикс — который будет работать при выходе из строя любого своего узла, а также автоматически вытесняет «устаревшие» данные. Это особенно актуально для крупных, высоконагруженных проектов, в которых создается (иногда из-за ошибок) большой объем и число файлов кэша — если хранить такой кэш в файловой системе, то нужно постоянно мониторить его размер и периодически очищать устаревшие данные.

Поисковый индекс, интенсивно используемый посетителями и внешними приложениями проекта, обращающихся к системе с помощью веб-сервисов, методом «вертикального шардинга», через мастер в админке — вынесен на отдельный сервер. При возрастании интенсивности использования поисковых сервисов — можно в течении пары минут (через API Amazon) перегрузить машину на более «мощном» железе.

При возрастании нагрузки «Сервер 2» может подключиться автоматически и использоваться как сервер приложений.

Надежность



Бэкапы машин проекта делаются снепшотами EBS-дисков в S3. В случае попадания в датацентр (Availability Zone) самолета или баллистической ракеты — машины c дисками можно за считанные минуты поднять в другом датацентре (Availability Zone). Снепшоты хранятся в виде инкрементов с авто-консолидацией, поэтому их можно делать хоть раз в 10 минут. Для бэкапа БД путем снепшота EBS-диска она кратковременно лочится ("FLUSH TABLES WITH READ LOCK") и ее файловая система кратковременно замораживается (fsfreeze).

Для быстрого восстановления доступа к самым актуальным данным в БД (если, допустим, рассыпалась файловая система на мастере БД) — слейв БД легко переключается в режим мастера и используется проектом. При желании можно автоматизировать этот процесс. Еще лучше — делать репиликацию в другой датацентр Amazon (Availability Zone) и тогда при «ударе молнии» в текущий датацентр можно будет в считанные минуты: а) поднять машины из снепшотов в другом датацентре, б) поменять аппаратную конфигирурацию слейв-БД (через АПИ Amazon) и перегрузить его, в) переключить DNS на использование другого балансировщика либо, при использовании встроенного в Amazon балансировщика — перенаправление трафика в другой датацентр произойдет автоматически либо потребует минимальной конфигурации ELB (для полной автоматики нужно настроить группу автомасштабирования AWS AutoScaling).

Куда расти



При возрастании объема чтений на БД можно, не прерывая работу проекта, добавлять серверы-слевы БД. Для обработки возросшего объема записей на мастере — можно увеличить мощность «железа» (через вызов API Amazon) «Сервера 1», либо вынести master БД на отдельный сервер.

При увеличении нагрузки на сервер приложений PHP («Сервер 1») — можно добавить один или несколько серверов приложений (не переписывая код проекта), синхронизировав их файлы посредством, например, csync2 (в Amazon нельзя примонтировать один EBS-диск к нескольким серверам для организации кластерной ФС типа ocfs2). Разумеется, тогда серверы приложений должны быть «спрятаны» за балансировщиком нагрузки. В данном случае может идеально подойти встроенный отказоустойчивый и масштабируемый балансировщик Amazon ELB или маломощная машинка с nginx. Разумно вынести отработку SSL на балансировщик (Амазон это умеет делать) — чтобы не размазывать сертификаты по серверам приложений.

P.S.



Зная и эффективно эксплуатируя в свое удовольствие возможности облачных хостеров и использовав платформу, поддерживающую технологию кластеризации без переписывания для этого веб-проекта, можно быстро и уверенно развернуть практически «неубиваемую» веб-систему. При необходимости эту веб-систему совершенно несложно масштабировать — разными путями, как автоматически, так и вручную, в зависимости от предпочтений Клиентов высоконагруженного ресурса.

А чтобы читать следующие записи в своей ленте, нажмите «Мне нравится» в профиле компании, и проверьте свою настройку ленты.
Теги:
Хабы:
+44
Комментарии 8
Комментарии Комментарии 8

Публикации

Информация

Сайт
www.bitrix24.ru
Дата регистрации
Дата основания
2012
Численность
201–500 человек
Местоположение
Россия
Представитель