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

Содержание

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

Слайд 1
Александр Сербул
Руководитель направления контроля качества интеграции и внедрений

Александр Демидов
Руководитель направления арендных

решений

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


Слайд 2На платформе «1С-Битрикс» можно

и нужно разрабатывать крупные проекты

Слайд 3
Удобная масштабируемая платформа разработки
Компетенция и опыт разработки проектов и консультации:
специализированные семинары

и вебинары
публикации (dev.1c-bitrix.ru, habrahabr.ru и т.п.)
личные консультации партнеров
услуга «Экспертиза»

«1С-Битрикс» - это…


Слайд 4
Даже если вы никогда не делали крупных проектов, не бойтесь слова

«HighLoad». Определите вместе с заказчиком, что именно ему нужно.

Слайд 5Ваш проект – Highload?
Определяют требования заказчика
Что такое Highload?
Количество хитов в сутки
Скорость

загрузки главной страницы при указанном количестве хитов
Среднее время загрузки всех страниц в сутки
Процент страниц с временем загрузки более n сек.
Допустимый процент ошибок
Допустимое время простоя
...

Повышенные требования к производительности и отказоустойчивости.


Слайд 6
На старте проекта заказчик и разработчик могут не знать, каким он

станет, будет ли нагруженным…

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

Управление сайтом»
Анализ и управление рисками!


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

Риски…


Слайд 9Проектирование
Делаем краткое ТЗ на «стандарт»
Делаем подробное ТЗ на «нестандарт»
Прототипы интерфейсов в

Axure
Сценарии использования: UserStories, UseCases

Риск: «Огромное ТЗ»

Делаем UML Class, State, Activity Diagrams
Делаем Глоссарий

Риск: «Запутаться в структуре данных»


Слайд 10Проектирование
Храним описания в wiki
Храним артефакты в SVN
Риск: «Большие сроки – от

6 до 18 мес.»

Проектируем инфоблоки, компоненты, страницы

Риск: «Запутаться в Битрикс»

ООП
Система контроля версий

Риск: «Запутаться в коде»


Слайд 11Как видим, ничего сложного ☺
Стандартный компонент


Тщательно проработанное кэширование, оптимизированный код
Кастомный модуль
Кастомные

обработчики событий

Компоненты

Стандартный компонент

Стандартный компонент

Стандартный компонент

Кастомный компонент

Кастомный компонент

Кастомный компонент

Кастомный компонент

Кастомный компонент


Модули

Стандартный модуль

Стандартный модуль

Стандартный модуль

Стандартный модуль

Кастомный модуль

Кастомный модуль

Свои таблицы в СУБД



Админка

Стандартная страница/раздел

Стандартная страница/раздел

Стандартная страница/раздел

Кастомная страница/раздел

Кастомная страница/раздел

Кастомная форма инфоблока

Кастомная форма элемента инфоблока

Кастомные типы свойств

Кастомный инфоблок

Кастомный инфоблок

Многочисленные настройки и объекты проекта


Страница /раздел проекта

Публичная часть

Страница /раздел проекта

Контроллеры ajax

Веб-сервисы


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

компоненты

Риск: «Неоптимальный код»


Слайд 13Процесс разработки
Ветка 1
Разработчик 1

Разработчик 2
Разработчик 3
Ветка 2
Ветка 3


Ветка DEV



Изменения в ветки

DEV/TESTING переносит опытный разработчик

Вед. разработчик


Серверы разработки

Ветка TESTING

Ветка PRODUCTION




Серверы тестирования

Вед. разработчик

Тестировщик 1

Тестировщик 2


Серверы в production


Сисадмин

На «бой» протестированные изменения выкладывает сисадмин.





Слайд 14Тестирование
Не нужно все покрывать Unit-тестами
Не нужно для всего писать Mock-объекты
Ручное тестирование

– необходимо и полезно

Риск: «Перетестировать»

Unit-тесты создаем для сложного функционала
Части публички и админки – отдать Selenium
Пишем и актуализируем TestCases

Риск: «Недотестировать»


Слайд 15Нагрузочное тестирование
Нагрузочное тестирование - обязательный этап сдачи проекта.
Нагрузочное тестирование является важнейшей

процедурой подготовки крупного проекта к открытию.
Нагрузочное тестирование позволяет определить предел работоспособности созданного проекта именно на выбранном оборудовании.

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


Слайд 16Нагрузочное тестирование
Проводите нагрузочное тестирование на реальных данных с «боевых серверов»
Используйте монитор

производительности
Эмулируйте действия Пользователей на проекте
Эмулируйте импорты/экспорты/веб-сервисы

Риск: «Нагрузка далека от реальности»

Jmeter

WAPT

httperf

ab


Слайд 17Управление проектом
Попробуйте Agile/Scrum/XP/Канбан
Повесьте доски, уберите стены, посадите людей вместе
Социальные инструменты для

работы

Риск: «Усложнить управление»

Проходите все тесты «Монитора качества»
Создавайте и используйте свои чеклисты

Риск: «Упустить контроль»


Слайд 18Выбираем удобный инструментарий!
MediaWiki
Excel
Redmine
Track
Confluence
Раб. группа: Битрикс24/Корппортал

Управление требованиями
Redmine
Confluence
Раб. группа: Битрикс24/Корппортал
Track
TrackStudio

Управление временем, задачами, рисками,

документами, проектом

Mantis

SVN

Mercurial

Git

Bazaar


Управление версиями кода


Слайд 19Эксплуатация: выбор инфраструктуры
Риски:
Взять слишком много и переплатить (не можем заранее спрогнозировать

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

Слайд 20Инфраструктура: «Железо» vs. «Облако»
Затраты (время) на обучение сотрудников специфике конкретного сервиса
Ограничения

инфраструктуры (аппаратная часть, специфичное ПО)
Сложность расчетов «по потреблению»

Экономия за счет возможности планирования ресурсов
Экономия и отсутствие рисков, связанные с вложениями в инфраструктуру
Моментальное вертикальное и горизонтальное масштабирование
Удобство администрирования
Экономия времени
Дополнительные сервисы


Слайд 21«1С-Битрикс: Виртуальная машина» – это «1С-Битрикс: Веб-окружение Linux» с использованием разных

способов виртуализации.

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

1С-Битрикс: Виртуальная машина


Слайд 22Масштабирование
Разделение на два сервера: веб-сервер + база данных.
Увеличение мощности оборудования (чем

мощнее – тем дороже; рост стоимости не пропорционален).
Выделение кеша на один внешний сервер через memcached.
Переход на коммерческие СУБД.

Для большинства клиентов производительности достаточно, но не решены проблемы отказоустойчивости, резервирования, сетевой доступности.

Слайд 23
Сколько стоит 1 час?

Крупный интернет-магазин с годовым оборотом 1.5 млрд. руб.

210

рабочих дней в году по 10 рабочих часов.

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

Слайд 24
«1С-Битрикс: Веб-кластер» - это комбинация технологий:

Вертикальный шардинг (вынесение модулей на отдельные

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

Слайд 26«Веб-кластер», ДЦ в России
БД
Веб-нода
«Веб-кластер», ДЦ в Германии
«Веб-кластер», ДЦ в США



Кэш


БД
Веб-нода
Кэш


БД
Веб-нода
Кэш


БД
Веб-нода
Кэш


БД
Веб-нода
Кэш


БД
Веб-нода
Кэш


БД
Веб-нода
Кэш


БД
Веб-нода
Кэш


БД
Веб-нода
Кэш


Асинхронная master-master

репликация для обеспечения работы географически распределенных веб-кластеров.

Потеря связи между ДЦ может составлять часы.

Географический веб-кластер


Слайд 27Elastic
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






Слайд 28CDN
init.php
AddEventHandler("main", "OnEndBufferContent", "ReplaceStatic");

Nginx http_sub_module
nginx_substitutions_filter


location / {
subs_filter '

'

Слайд 29Эксплуатация
Используем средства проактивного мониторинга
Анализируем показатели серверов
Тестируем все что можно
Риск: «Реагировать позже

Клиента»

Документируем все настройки
Используем стабильные дистрибутивы Unix

Риск: «Не обновлять систему»


Слайд 30Эксплуатация. Чем и как.
Сервер 1

SMS, E-mail



Серверы в production
Сисадмин
Сервер 2
Сервер 3
Аналитика
Munin
Cacti

Мониторинг 24/7
Nagios
Zabbix
Анализ

трендов


XDebug

XHProf

Отладка, поиск узких мест производительности

Pinba


Монитор производительности Битрикс


Слайд 31Итог?
Невозможно все охватить в получасовом докладе. :) Мы бы хотели детально

рассказать…

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


Слайд 32
Специализированные семинары «Битрикс Highload»
Детальный разбор тем
Приглашенные спикеры с опытом разработки и эксплуатации

крупных проектов
Публикация материалов

Презентации и видео с последнего семинара:

http://www.1c-bitrix.ru/about/life/seminars/436130/

http://habrahabr.ru/company/bitrix/blog/144808/


Слайд 33HighLoad – это не страшно!
Крупный высоконагруженный проект не требует ничего сверхъестественного.

Только чуть больше системности, аккуратности, внимательности.

Даже если проект начинался «обычным», он может «вырасти» позже. «1С-Битрикс» помогает вам:

переход на «Веб-кластер»
привлечение нас к проектам
использование материалов (статьи, презентации, видео, документация)
услуга «Экспертиза» - снижение рисков


Слайд 34Спасибо за внимание!
Вопросы?





Александр Демидов
demidov@1c-bitrix.ru
@demidov


Александр Сербул
serbul@1c-bitrix.ru


@AlexSerbul

Подходите к нам во время конференции – будем рады «живому» общению, проконсультируем по теме Highload
Задавайте вопросы в твиттере с хэштегами #bitrixconf и #bitrix


Обратная связь

Если не удалось найти и скачать презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое ThePresentation.ru?

Это сайт презентаций, докладов, проектов, шаблонов в формате PowerPoint. Мы помогаем школьникам, студентам, учителям, преподавателям хранить и обмениваться учебными материалами с другими пользователями.


Для правообладателей

Яндекс.Метрика