ПРАКТИЧЕСКИЙ ОПЫТ РАЗВЁРТЫВАНИЯ.NET FORGE CMS В WINDOWS AZURE. ОБЛАЧНАЯ ПРОИЗВОДИТЕЛЬНОСТЬ. НАГРУЗОЧНЫЕ ТЕСТЫ руководитель направления контроля качества.

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



Advertisements
Похожие презентации
Новые возможности.NET Forge CMS Григорий Заводов ведущий разработчик «1С-Битрикс»
Advertisements

Полная стратегия есть только у Microsoft, Apple и Google. Основная конкуренция здесь. PCPhoneTabletТВCloud AppleMaciPhoneiPadAppleTViCloud MicrosoftWindows7WindowsPhone7Windows8.
Аспекты увеличения быстродействия «1С-Битрикс: Управление сайтом» на виртуальном хостинге Артём Рябинков 1С-Битрикс.
«1С-Битрикс: Сайт 1С:Франчайзи» Готовое решение, нюансы внедрения в компании.
Новый продукт 1С-Битрикс:.NET Forge Конференция 1C-Битрикс 30 июня 2011 Антон Герасимюк 01.
Bitrix.NET Forge CMS Кроличья нора в WEB разработке Золотой Сертифицированный парнёр 1С-Битрикс Задойный А.В.
Принципиальные изменения в версии 6.0. Оптимизация. Производительность продукта Сергей Рыжиков Генеральный директор ООО «1С-Битрикс»
Компоненты 2.0 1C-Битрикс: управление сайтом Артем Рябинков к.т.н, руководитель отдела партнерских и корпоративных продаж Компания «Битрикс»
АИБС Автоматизированная интегрированная библиотечная система (АИБС) «МегаПро»: система нового поколения для библиотек.
Платформа разработки высоконагруженного веб-сервиса: инструменты отладки и возможности масштабирования Александр Демидов руководитель направления арендных.
Веб-кластер, планы по развитию, распределенный веб-кластер Максим Смирнов ведущий разработчик.
BitrixMobile Юрий Тушинский Технический директор Битрикс.
Артем Рябинков Руководитель отдела развития бизнеса 1С-Битрикс, к.т.н. Обновленные решения для создания сайтов 1С-Франчайзи.
Презентация «облачной» услуги для библиотек на базе АИБС «МегаПро»: «Библиохостинг – автоматизация без забот» Москва, 2013 год.
1С-Битрикс: Управление сайтом 10.0 Веб-кластер.
Программный продукт «1С-Битрикс: Управление сайтом» Францев Вадим Ведущий консультант «1С-Битрикс»
Артем Рябинков Руководитель отдела развития бизнеса 1С-Битрикс, к.т.н. «Сайт 1С:Франчайзи» и «Интернет-магазин 1С-Франчайзи» Готовые решения 1С-Битрикс.
Богданов Марат Робертович Современные веб-технологии. Подробный курс Программное создание web-фрагментов, ускорителей и средств визуального поиска.
Астрахань Введение 2 Недостатки Электронного Вуза Управление и расширение Статическое содержание узлов Система управления пользователями Документооборот.
Сервисы Google в образовании. Почему Google? 10 аргументов «за» 1. Бесплатность. 2 доступны все базовые возможности; отсутствие ограничений на период.
Транксрипт:

ПРАКТИЧЕСКИЙ ОПЫТ РАЗВЁРТЫВАНИЯ.NET FORGE CMS В WINDOWS AZURE. ОБЛАЧНАЯ ПРОИЗВОДИТЕЛЬНОСТЬ. НАГРУЗОЧНЫЕ ТЕСТЫ руководитель направления контроля качества интеграции и внедрений «1С-Битрикс» Александр Сербул

Цели Необходимо развернуть.NET Forge CMS в Windows Azure и поделиться опытом решения возникших задач Провести нагрузочные испытания веб- кластера в облаке и добиться высокой производительности и доступности

Кратко о «.NET Forge CMS «Веб- кластер».NET Forge CMS «Веб- кластер» мощная система управления сайтом на базе платформы ASP.NET, предоставляющая разработчикам инструменты для создания любых веб- проектов. Написана на C#.

Кратко о «.NET Forge CMS «Веб- кластер» Медиа- галерея Пользователи, группы, права Форум ы Рейтинги, голосования Интернет- магазин Реклама Блоги Интерфейс «Эрмитаж» Торговый каталог Морфологический поиск Проактивная защита Визуальный редактор Подписка, рассылки Публикация новостей, статей, каталогов

Кратко о «.NET Forge CMS «Веб- кластер» Поддержка кластеризации (Azure или Web Farm) Интеграция с платформой Windows Azure Интеграция с Microsoft Visual Studio

Системные требования Windows XP Professional, Windows Server 2003; Windows Vista, Windows Server 2008 c установленным IIS SQL Server 2005 Express, SQL Server 2005, SQL Server 2008 Express, SQL Server 2008, SQL Server 2008 R2.NET Forge CMS поддерживает все распространенные браузеры: Internet Explorer 7 и выше, FireFox, Chrome, Opera, Safari.

Для чего разворачивать.NET Forge CMS в Windows Azure? Гибкость: используем ровно столько ресурсов, сколько нужно Высокая отказоустойчивость: данные и серверы надежно зарезервированы в нескольких дата-центрах Быстрое масштабирование: при росте нагрузки автоматически добавляются ресурсы В базу данных SQL Azure можно заливать столько данных, сколько нужно проекту – за производительность «голова болит» у облака

Архитектура типичной CMS Контент-редакторы правят сайт, страницы и шаблоны. Динамический контент: новости, каталоги – находится в БД. Кэширование используется для улучшения производительности. Веб-приложение Редактирование страниц, шаблонов База данных Кеширование компонентов

Интеграция с Windows Azure Наша цель

Специфика Windows Azure Облако накладывает на веб-приложение следующие ограничения: 1.Будучи опубликованным, приложение не может изменяться, т.к. оно распределено между несколькими узлами. Узлы могут запускаться при увеличении нагрузки. 2.Доступная база данных только SQL Azure, которая отличается от SQL Server. 3.Невозможность пользоваться стандартными провайдерами сессий пользователей. 4.Нужно решить вопрос синхронизации изменяемых файлов, т.к. локально внесенные изменения не будут доступны на других узлах, а после остановки узла они будут и вовсе утрачены. 5.Нужно организовать кластерный кэш, т.к. узлы кластера веб- приложения активно применяют кеширование. Важно научиться его синхронизировать.

Проблема 1. Изменение файлов Решение проблемы: Можно отказаться от изменения страниц сайта (хранить контент в БД) или использовать технологию X-Drive. Можно синхронизировать данные между нодами самим приложением (по событиям). Это сработает не только в Azure, но и на Web Farm. Мы разместили образ CMS на «облачном диске», который монтируется по технологии X-Drive при инициализации узла. Изменения данных отслеживаются приложением – ноды обмениваются файлами по защищенному протоколу. Технология синхронизации также успешно применяется и на веб-кластере IIS+Web Farm.

Изменение файлов – пример решения на кластере Web Farm

Добавляем столько узлов, сколько нужно

Изменение файлов – пример решения на кластере Web Farm

Изменение файлов – пример решения на кластере Windows Azure

Проблема 2. Отличия SQL Azure от SQL Server SQL Azure не поддерживает SQL Server Agent/Jobs, все таблицы обязаны иметь без кластерный индекс (первичный ключ) и многое другое. Это должно учитываться при миграции данных из SQL Server в SQL Azure. Мы переделали наше MSSQL приложение, чтобы иметь совместимость с SQL Azure. Специальная утилита конвертирует БД приложения в формат SQL Azure.

Проблема 3. Невозможно пользоваться стандартными провайдерами сессий пользователей Провайдер сессий InProc бесполезен в Windows Azure - сессии будут доступны только одному узлу. Провайдер сессий SQL Server недоступен из-за ограничений SQL Azure (отсутствие SQL Server Jobs) и др. Решение - применили собственный провайдер сессий, хранящий данные в Table Storage, или использование провайдера для Azure AppFabric Cache (тип провайдера определяется конфигурационным файлом).

Сессии веб-кластера.NET Forge CMS AppFabric Cache Общие сервисы: В сессиях хранятся временные данные Посетителей веб- кластера. Важно сохранить единую сессию Посетителя при переходе между нодами веб- кластера за балансировщиком Table Storage

Проблема 4. «Общие» большие файлы, много контента Некоторые файлы, в т.ч. объемные (или когда контента очень много), целесообразно хранить централизованно, не занимаясь их синхронизацией между нодами веб-кластера. Решение - используем Azure Blob Storage (Web Storage). Каждый файл сразу загружается ядром продукта в облако, доступен по прямому url и встраивается непосредственно в страницу. Место хранения файлов продукта – настраивается (по маске и т.п.). Еще один плюс – браузер теперь качает ресурсы страницы быстрее - параллельно с нескольких доменов.

Массивный контент полезно перенести в облако Проблема 4. «Общие» большие файлы, много контента

Проблема 5 Кеширование данных Требуется согласованная актуализация кэша между нодами веб-кластера, централизованное кэширование (для экономии ресурсов). Решение – вместо хранения кеша в файлах можно подключить Azure AppFabric Cache, однако также можно эффективно хранить кэш в памяти и сбрасывать его согласованно.

Кэш веб-кластера.NET Forge CMS Azure Local Storage AppFabric Cache Общие сервисы: Авто-валидация кэша (события) Память Azure Local Storage Память Обычно в компонентах кэшируются «тяжелые», частые запросы к БД и ресурсоемкие участки кода

Типы кластеризации.NET Forge CMS На базе IIS+Web Farm На базе Windows Azure Возможны комбинации - все зависит от бизнес-требований

Типы веб-кластера на.NET Forge CMS IIS + Web Farm Local Disk Load Balancer … SQL Server Azure Blob Storage Общие сервисы: Авто- синхронизация файлов сайта Local Disk

Типы веб-кластера на.NET Forge CMS На базе Windows Azure X-Drive Load Balancer … X-Drive SQL Azure AppFabric CacheBlob Storage Общие сервисы: Авто- синхронизация файлов сайта Table Storage

Нагрузочное тестирование Тестирование проводилось компаниями: При поддержке компаний: Для создания нагрузки на веб-кластер использовался пакет WAPT. Эмулировалось движение пользователей по основным страницам интернет-магазина (80% неавторизованные, 20% авторизованные) Нагрузка выполнялась с локальной машины в сети Azure.

Нагрузочное тестирование Используемое оборудование и ПО Для тестовых установок.NET Forge CMS и генерации нагрузки использовались сервера, предоставленные компанией Infobox, и Azure инстансы: CPU Intel Xeon E (4 физических ядра, 8 с учётом HT), RAM 16Gb, Hardware RAID Adaptek 6405, HDD SATA 320Gb Azure Extra Large, 8 Core, RAM 14 GB, 0,96$ в час Azure Small, 1 Core, RAM 1,7 GB, 0,12$ в час На тестовые машины было установлено следующее программное обеспечение: MS Windows Server 2008 R2 IIS 7.5.NET 4.0 MS SQL 2008 R2

Нагрузочное тестирование Community-редакция 7.0.5: 163 страницы в секунду страниц в сутки Бизнес-редакция 7.0.5: 141 страница в секунду страниц в сутки Веб-кластер (Azure Extra Large): 140 страниц в секунду страниц в сутки Веб-кластер (Azure Extra Large х 5): 500 страниц в секунду страниц в сутки загрузка нод < 80% Веб-кластер (Azure Small): 20 страниц в секунду Результаты:

Облако трещит по швам… Windows Azure Caching – ограничен по объему + числу транзакций в час БД SQL Azure «ложится» при ~7-10к запросов в секунду (70% r / 30% w) – стала узким местом при масштабировании веб-кластера Похоже БД SQL Azure не расширяется автоматически за пределы «железки», и на этой «железке» могут жить чужие БД

Шаги для развертывания веб-кластера в Windows Azure Скачать и установить дистрибутив.NET Forge CMS «Веб-кластер»: Скачать и установить плагин для VS 2010: Провести интеграцию логики, дизайна и верстки веб-приложения. Сконвертировать и выгрузить сайт в облако:

Открываем сайт в Visual Studio …

Интегрируем дизайн и верстку…

Редактируем страницы с комфортом… Плагин для Visual Studio:

Переносим сайт в облако Для переноса веб- приложения в Windows Azure создан конвертер «Bitrix Azure Toolkit». Выберите веб-сайт и нажмите кнопку «Выполнить».

Переносим сайт в облако Пакет акселератора Каталог веб-сайта БД веб-сайта Bitrix Azure Toolkit Конвертация БД. Подготовка «образа» веб- сайта. Публикация акселератора.

Переносим сайт в облако

Настраиваем blob storage для хранения контента сайта в облаке

Переносим сайт в облако Настраиваем параметры «облачной» базы данных – SQL Azure

Переносим сайт в облако

Создание узла веб-кластера.NET Forge CMS Пакет акселератора Акселератор + веб- сайт Storage Service

Структура развернутого узла веб-кластера.NET Forge CMS Каталог веб-сайта Акселератор + веб- сайт Storage Service Compute SQL Azure БД веб-сайта

Структура веб-кластера.NET Forge CMS X-Drive Load Balancer … X-Drive SQL Azure AppFabric CacheBlob Storage Общие сервисы: Авто- синхронизация файлов сайта

Структура веб-кластера.NET Forge CMS в облаке Автоматически создана и запущена c выбранными настройками машина в Windows Azure

Структура веб-кластера.NET Forge CMS в облаке Автоматически создана и запущена c выбранными настройками база данных Azure SQL в Windows Azure

Структура веб-кластера.NET Forge CMS в облаке Можно настроить кэш в Windows Azure

Структура веб-кластера.NET Forge CMS в облаке Автоматически создано хранилище в Windows Azure

Структура веб-кластера.NET Forge CMS в облаке Подключен X-Drive диск и развернута файловая структура ноды веб-кластера в Windows Azure

Веб-кластер доступен в облаке!

Цели – достигнуты! Доработана платформа.NET Forge CMS и развернут типовой интернет-магазин на веб- кластере в Windows Azure Достигнута высокая производительность и доступность веб-проекта в Windows Azure Веб-кластер.NET Forge CMS комфортно себя чувствует в облаке Windows Azure и готов к любым нагрузкам

Новое в.NET Forge CMS 8 Переработан фреймворк компонентов – скорость, простота написания ASP.NET MVC Поддержка шаблонизатора Razor и многое другое

СПАСИБО ЗА ВНИМАНИЕ руководитель направления контроля качества интеграции и внедрений «1С-Битрикс» Тел.: +7 (495) Skype: alexanderse_sl Александр Сербул