'

Битрикс HighLoad Опыт разработки, мониторинга и эксплуатации высоконагруженных проектов на 1С-Битрикс

Понравилась презентация – покажи это...





Слайд 0

Александр Сербул Руководитель направления контроля качества интеграции и внедрений Александр Демидов Руководитель направления арендных решений Битрикс HighLoad Опыт разработки, мониторинга и эксплуатации высоконагруженных проектов на 1С-Битрикс


Слайд 1

На платформе «1С-Битрикс» можно и нужно разрабатывать крупные проекты


Слайд 2

Удобная масштабируемая платформа разработки Компетенция и опыт разработки проектов и консультации: специализированные семинары и вебинары публикации (dev.1c-bitrix.ru, habrahabr.ru и т.п.) личные консультации партнеров услуга «Экспертиза» «1С-Битрикс» - это…


Слайд 3

Даже если вы никогда не делали крупных проектов, не бойтесь слова «HighLoad». Определите вместе с заказчиком, что именно ему нужно.


Слайд 4

Ваш проект – Highload? Определяют требования заказчика Что такое Highload? Количество хитов в сутки Скорость загрузки главной страницы при указанном количестве хитов Среднее время загрузки всех страниц в сутки Процент страниц с временем загрузки более n сек. Допустимый процент ошибок Допустимое время простоя ... Повышенные требования к производительности и отказоустойчивости.


Слайд 5

На старте проекта заказчик и разработчик могут не знать, каким он станет, будет ли нагруженным…


Слайд 6

HighLoad – это… Немного больше … системности Немного больше … ответственности Кластерные редакции «1С-Битрикс: Управление сайтом» Анализ и управление рисками!


Слайд 7

Структура рисков HighLoad проекта Сбора и анализа требований Проектирования Разработки Тестирования Эксплуатации Риски…


Слайд 8

Проектирование Делаем краткое ТЗ на «стандарт» Делаем подробное ТЗ на «нестандарт» Прототипы интерфейсов в Axure Сценарии использования: UserStories, UseCases Риск: «Огромное ТЗ» Делаем UML Class, State, Activity Diagrams Делаем Глоссарий Риск: «Запутаться в структуре данных»


Слайд 9

Проектирование Храним описания в wiki Храним артефакты в SVN Риск: «Большие сроки – от 6 до 18 мес.» Проектируем инфоблоки, компоненты, страницы Риск: «Запутаться в Битрикс» ООП Система контроля версий Риск: «Запутаться в коде»


Слайд 10

Как видим, ничего сложного ? Стандартный компонент Тщательно проработанное кэширование, оптимизированный код Кастомный модуль Кастомные обработчики событий Компоненты Стандартный компонент Стандартный компонент Стандартный компонент Кастомный компонент Кастомный компонент Кастомный компонент Кастомный компонент Кастомный компонент Модули Стандартный модуль Стандартный модуль Стандартный модуль Стандартный модуль Кастомный модуль Кастомный модуль Свои таблицы в СУБД Админка Стандартная страница/раздел Стандартная страница/раздел Стандартная страница/раздел Кастомная страница/раздел Кастомная страница/раздел Кастомная форма инфоблока Кастомная форма элемента инфоблока Кастомные типы свойств Кастомный инфоблок Кастомный инфоблок Многочисленные настройки и объекты проекта Страница /раздел проекта Публичная часть Страница /раздел проекта Контроллеры ajax Веб-сервисы


Слайд 11

Разработка Сертифицируем программистов по курсам Битрикс Используем единый CodeStyle Используем ветки контроля версий Тщательно кэшируем компоненты Риск: «Неоптимальный код»


Слайд 12

Процесс разработки Ветка 1 Разработчик 1 Разработчик 2 Разработчик 3 Ветка 2 Ветка 3 Ветка DEV Изменения в ветки DEV/TESTING переносит опытный разработчик Вед. разработчик Серверы разработки Ветка TESTING Ветка PRODUCTION Серверы тестирования Вед. разработчик Тестировщик 1 Тестировщик 2 Серверы в production Сисадмин На «бой» протестированные изменения выкладывает сисадмин.


Слайд 13

Тестирование Не нужно все покрывать Unit-тестами Не нужно для всего писать Mock-объекты Ручное тестирование – необходимо и полезно Риск: «Перетестировать» Unit-тесты создаем для сложного функционала Части публички и админки – отдать Selenium Пишем и актуализируем TestCases Риск: «Недотестировать»


Слайд 14

Нагрузочное тестирование Нагрузочное тестирование - обязательный этап сдачи проекта. Нагрузочное тестирование является важнейшей процедурой подготовки крупного проекта к открытию. Нагрузочное тестирование позволяет определить предел работоспособности созданного проекта именно на выбранном оборудовании. Зачастую, простые корректировки конфигурации могут ускорить проект в 5-10 раз и сделать его устойчивым к стрессовым нагрузкам.


Слайд 15

Нагрузочное тестирование Проводите нагрузочное тестирование на реальных данных с «боевых серверов» Используйте монитор производительности Эмулируйте действия Пользователей на проекте Эмулируйте импорты/экспорты/веб-сервисы Риск: «Нагрузка далека от реальности» Jmeter WAPT httperf ab


Слайд 16

Управление проектом Попробуйте Agile/Scrum/XP/Канбан Повесьте доски, уберите стены, посадите людей вместе Социальные инструменты для работы Риск: «Усложнить управление» Проходите все тесты «Монитора качества» Создавайте и используйте свои чеклисты Риск: «Упустить контроль»


Слайд 17

Выбираем удобный инструментарий! MediaWiki Excel Redmine Track Confluence Раб. группа: Битрикс24/Корппортал Управление требованиями Redmine Confluence Раб. группа: Битрикс24/Корппортал Track TrackStudio Управление временем, задачами, рисками, документами, проектом Mantis SVN Mercurial Git Bazaar Управление версиями кода


Слайд 18

Эксплуатация: выбор инфраструктуры Риски: Взять слишком много и переплатить (не можем заранее спрогнозировать потребление ресурсов) Взять слишком мало и «просесть» по производительности Безопасность (если в штате нет толкового системного администратора) Надежность (как резервировать доступность на уровне датацентра?) Сетевая доступность


Слайд 19

Инфраструктура: «Железо» vs. «Облако» Затраты (время) на обучение сотрудников специфике конкретного сервиса Ограничения инфраструктуры (аппаратная часть, специфичное ПО) Сложность расчетов «по потреблению» Экономия за счет возможности планирования ресурсов Экономия и отсутствие рисков, связанные с вложениями в инфраструктуру Моментальное вертикальное и горизонтальное масштабирование Удобство администрирования Экономия времени Дополнительные сервисы


Слайд 20

«1С-Битрикс: Виртуальная машина» – это «1С-Битрикс: Веб-окружение Linux» с использованием разных способов виртуализации. Виртуальная машина эмулирует работу реального компьютера и включает в себя: сконфигурированную операционную систему; веб-сервер; базу данных; firewall; почтовый сервер; мастер создания кластера, мастер добавления slave-сервера, мастер переключения slave-сервера в режим master; а также большое число настроек, от которых зависит надежность, производительность и безопасность веб-проекта. 1С-Битрикс: Виртуальная машина


Слайд 21

Масштабирование Разделение на два сервера: веб-сервер + база данных. Увеличение мощности оборудования (чем мощнее – тем дороже; рост стоимости не пропорционален). Выделение кеша на один внешний сервер через memcached. Переход на коммерческие СУБД. Для большинства клиентов производительности достаточно, но не решены проблемы отказоустойчивости, резервирования, сетевой доступности.


Слайд 22

Сколько стоит 1 час? Крупный интернет-магазин с годовым оборотом 1.5 млрд. руб. 210 рабочих дней в году по 10 рабочих часов. Час простоя крупного интернет-проекта может обойтись владельцам в 0,3 - 1 миллион рублей упущенной выручки.


Слайд 23

«1С-Битрикс: Веб-кластер» - это комбинация технологий: Вертикальный шардинг (вынесение модулей на отдельные серверы MySQL) Репликация MySQL и балансирование нагрузки между серверами Распределенный кеш данных (memcached) Непрерывность сессий между веб-серверами (хранение сессий в базе данных) Кластеризация веб-сервера: Синхронизация файлов Балансирование нагрузки между серверами


Слайд 24


Слайд 25

«Веб-кластер», ДЦ в России БД Веб-нода «Веб-кластер», ДЦ в Германии «Веб-кластер», ДЦ в США Кэш БД Веб-нода Кэш БД Веб-нода Кэш БД Веб-нода Кэш БД Веб-нода Кэш БД Веб-нода Кэш БД Веб-нода Кэш БД Веб-нода Кэш БД Веб-нода Кэш Асинхронная master-master репликация для обеспечения работы географически распределенных веб-кластеров. Потеря связи между ДЦ может составлять часы. Географический веб-кластер


Слайд 26

Elastic Load Balancing MySQL master Web 1 HTTP/HTTPS *.ru Elastic Load Balancing HTTP/HTTPS *.com Web 2 Web N … CloudWatch + AutoScaling CloudWatch MySQL master Web 1 Web 2 Web N … CloudWatch + AutoScaling CloudWatch master-master репликация Отказоустойчивость S3 HTTP/HTTPS *.com *.ru management, monitoring, MySQL backup cache cache


Слайд 27

CDN init.php AddEventHandler("main", "OnEndBufferContent", "ReplaceStatic"); Nginx http_sub_module nginx_substitutions_filter location / { subs_filter '<link href="/([^ ]+).css' '<link href="http://cdn.domain.ru/$1.css' gir; }


Слайд 28

Эксплуатация Используем средства проактивного мониторинга Анализируем показатели серверов Тестируем все что можно Риск: «Реагировать позже Клиента» Документируем все настройки Используем стабильные дистрибутивы Unix Риск: «Не обновлять систему»


Слайд 29

Эксплуатация. Чем и как. Сервер 1 SMS, E-mail Серверы в production Сисадмин Сервер 2 Сервер 3 Аналитика Munin Cacti Мониторинг 24/7 Nagios Zabbix Анализ трендов XDebug XHProf Отладка, поиск узких мест производительности Pinba Монитор производительности Битрикс


Слайд 30

Итог? Невозможно все охватить в получасовом докладе. :) Мы бы хотели детально рассказать… Организация процесса резервного копирования крупного проекта Организация среды разработки на БУС + инструментарий Архитектура крупного проекта с интеграцией БУС с внешними системами Как проектировать большой проект на БУС Поиск "узких" мест - где и что тормозит? xdebug, xhprof, pinba Организация раздачи статики + CDN Выбор систем мониторинга и аналитики High Performance MySQL "Облачная" инфраструктура - когда нужно Настройка серверов + организация кластеров …


Слайд 31

Специализированные семинары «Битрикс Highload» Детальный разбор тем Приглашенные спикеры с опытом разработки и эксплуатации крупных проектов Публикация материалов Презентации и видео с последнего семинара: http://www.1c-bitrix.ru/about/life/seminars/436130/ http://habrahabr.ru/company/bitrix/blog/144808/


Слайд 32

HighLoad – это не страшно! Крупный высоконагруженный проект не требует ничего сверхъестественного. Только чуть больше системности, аккуратности, внимательности. Даже если проект начинался «обычным», он может «вырасти» позже. «1С-Битрикс» помогает вам: переход на «Веб-кластер» привлечение нас к проектам использование материалов (статьи, презентации, видео, документация) услуга «Экспертиза» - снижение рисков


Слайд 33

Спасибо за внимание! Вопросы? Александр Демидов demidov@1c-bitrix.ru @demidov Александр Сербул serbul@1c-bitrix.ru @AlexSerbul Подходите к нам во время конференции – будем рады «живому» общению, проконсультируем по теме Highload Задавайте вопросы в твиттере с хэштегами #bitrixconf и #bitrix


×

HTML:





Ссылка: