Александр Сербул Руководитель направления контроля качества интеграции и внедрений Александр Демидов Руководитель направления арендных решений Битрикс.

Презентация:



Advertisements
Похожие презентации
Платформа разработки высоконагруженного веб-сервиса: инструменты отладки и возможности масштабирования Александр Демидов руководитель направления арендных.
Advertisements

1С-Битрикс: Управление сайтом 10.0 Веб-кластер.
Веб-кластер 1С-Битрикс – примеры работающих проектов Александр Сербул Руководитель направления контроля качества интеграции и внедрений ООО «1С-Битрикс»
Подводные камни разработки – чего делать нельзя Александр Сербул Руководитель направления контроля качества интеграции и
Интернет-магазины, высокие нагрузки, синхронизации бизнес- приложений с веб-системой Александр Сербул Руководитель направления контроля качества интеграции.
Александр Демидов «1 С-Битрикс» Производительность Виртуальная машина 3.0 Инструменты отладки Летняя партнерская конференция «1 С-Битрикс» 2011.
Организация инфраструктуры разработки - примеры из жизни Александр Сербул Руководитель направления контроля качества интеграции и внедрений 1С-Битрикс.
1С-Битрикс: Управление сайтом 10.0 Веб-кластер.
Аспекты увеличения быстродействия «1С-Битрикс: Управление сайтом» на виртуальном хостинге Артём Рябинков 1С-Битрикс.
Создание тест-плана jmeter – от расчета цепочек до нагрузочного кластера на 5-10 млн. хитов Сербул Александр Руководитель направления контроля качества.
Экономика отказоустойчивости и резервирование инфраструктуры Александр Демидов «1С-Битрикс»
Архитектура проекта «Битрикс24»: как сделать так, чтобы все летало и не падало Александр Демидов руководитель направления арендных решений «1С-Битрикс»
Построение системного ландшафта для высоко нагруженного проекта ООО «Ленвендо-Софт» Гаврилов Виталий Технический директор тел.: +7 (812)
Александр Демидов «1С-Битрикс» Производительность проектов на платформе «1С-Битрикс»
Александр Сербул Руководитель направления контроля качества интеграции и внедрений Проактивный мониторинг и анализ трендов #bitrix #bitrix24.
Сергей Рыжиков генеральный директор компании «1С-Битрикс» Архитектура и запуск SaaS решения в Amazon AWS. Как обеспечить реальные 24?
Веб-разработка и CMS глазами клиентов Сергей Рыжиков генеральный директор компании «1С-Битрикс»
Как улучшить производительность проекта за три шага Шаромов Денис руководитель отдела техподдержки.
Разработка Веб - проектов, от требований заказчика до запуска. Прозрачность разработки как средство формирования ожиданий заказчика.
Старт программы обучения разработчиков Алексей Сидоренко Директор по развитию компании «1С-Битрикс» Иван Малышин Менеджер учебных программ.
Транксрипт:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Elastic Load Balancing Elastic Load Balancing MySQL master Web 1 HTTP/HTTPS *.ru Elastic Load Balancing 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

CDN init.php AddEventHandler("main", "OnEndBufferContent", "ReplaceStatic"); Nginx http_sub_module nginx_substitutions_filter location / { subs_filter '

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

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

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

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

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

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