SlideShare a Scribd company logo
Построение высоконагруженных web-приложений на базе Windows AzureФещенко Александрfeschenko.alex@gmail.comhttp://feschenkoalex.blogspot.comTwitter: FeschenkoAlex
Высоконагруженные web-приложенияЧто я имею ввиду:Глобальная аудитория, низкое время ответа
Возможность масштабирования для обработки большого количества одновременных запросов
Высокие требования к пропускной способностиComputeПлан:Асинхронная модель программирования
Управление доступом к данным
Настройка производительности приложенияАсинхронная модель программирования
Синхронные приложенияОдин запрос обрабатывается одним потокомБлокируется на время выполнения «работы», после чего возвращают ответ и снова становится доступнымSQL AzureВеб приложение“Работа” #1Входящий запрос #1Средний уровеньБлокировкаПотокОтвет #1WA StorageThreadОтвет #1ComputeОжидание…Входящий запрос #2Время идет…Стеки потоков – структуры для обработки входящих запросовБольшинство потоков простаивают впустуюУвеличение количества потоков для повышения производительности – тяжеловесный подходАсинхронная модель программированияВеб приложениеSQL Azure“Работа” #1Клиент #1Средний уровеньОтвет #1WA StorageОтвет #1ПотокПотокКлиент #2“Работа” #2КонтекстОтвет #2Ответ #2Клиентские запросы явно отслеживаются во внутренних структурах приложенияОперации над контекстом должны быть идемпотентны или транзакционныПотоки блокируются ненадолго, поэтому большее количество потоков гарантирует большую пропускную способность
Асинхронная модель в облакеАсинхронная модель применительна как к локальным так и к облачным приложениям Для асинхронного взаимодействия между ролями вашего приложения очень удобна технология Windows Azure Storage QueuesВстроенная балансировка нагрузки
Изящная обработка падений отдельных экземпляров ролиWindows Azure Storage и SQL Azure поддерживают асинхронные вызовыADO.NET Entity Framework
WCF Data Services
LINQ to SQL
Plain Old ADO.NETУправление доступом к данным
Управление доступом к даннымКак эффективно передать данные клиенту и от него ?Существует много типов данных и каждый из них имеет свои особенностиBlobStorageПриложениеПриложениеКак можно больше снижайте эффект своего присутствияОтправляйте клиентов напрямую к Blob Storage за статическим контентом
Медиа (изображения, видео и др.)
Бинарные данные (XAP, MSI, ZIP и др.)
Текстовые форматы (XML)Shared Access SignaturesПредназначены для прямого доступа к защищенным ресурсамСрок действия SAS заканчивается по истечению определенного промежутка времени либо по требованию2. Сервис формирует подпись на основе секретного ключа1. Я Боб, хочу получить доступ к XПриложениеКлюч3. Сервис возвращает SAS подписанный HTTPS URLBlob Storage4. Боб использует SAS для доступа к Xнапрямую из Blob StorageЗащищенный блоб (или платный)X
Глобальный доступ к блобамПолучайте доступ к открытым блобам посредством Windows AzureCDNCDNBlob StorageБлижайшая точка присутствияОткрытый контейнерXXDNS имя определяет ближайшую  точку присутствияСнижает время ожидания и нагрузку на центральное хранилище
Content Delivery Network~100 глобально распределенных дата-центраQuincy, WAChicago, ILSan Antonio, TXDublin, IrelandGeneration 4 DCs
Windows Azure CDN – с чего начатьРазрешить CDN доступ с вашего аккаунта Windows AzureВыполняется на dev-портале Windows Azure
Это сформирует новый формат доступа к открытым блобам посредством CDN
Одинаковый контент, 2 точки доступа
CDN URL: http://azXXXX.vo.msecnd.net/images/myimage.png
WA Storage URL: http://myacct.blob.core.windows.net/images/myimage.pngCNAME маппинг применительно к CDN URL’sАдаптивный стриминг также можно настроить на работу с CDNhttp://blog.smarx.com/posts/smooth-streaming-with-windows-azure-blobs-and-cdnКеширование в памятиКешируйте «горячие» данные в памяти для предотвращения медленного обращения к базе данныхНапример, товары в каталогеКеширование в памятиSQL AzureSQL AzureПриложениеTable StorageTable StorageКеширующий слой поможет Вам снизить время ожидания и стоимостьНизкое время ожидания и высокая пропускная способность (особенно под нагрузкой)Архитектура распределенного кешированияНесколько экземпляров web-роли могут быть клиентами кэша be cache clientsКлиенты видят кэш в виде единого унифицированного представленияКеширующий слойКеширующий слой распределяет данные между несколькими хостами

More Related Content

What's hot (20)

PPTX
Drupal в облаке - Владимир Юнев
DrupalCamp MSK
 
PDF
Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...
Ontico
 
PDF
Сергей Орлов
CodeFest
 
PPTX
Опыт построения СХД на базе Windows Server для использования в публичном обла...
Ontico
 
PPTX
Нагрузочное тестирование в облаке Windows Azure
Natalia Efimtseva
 
PDF
2015-11-07 01 Виталий Кравцов. Webpack: человеческий подход к разработке веб ...
Омские ИТ-субботники
 
PDF
RootConf 2015: Как Vagrant и Chef ускорили разработку в несколько раз
Timur Batyrshin
 
PPTX
Ускорение показа превью изображений в Яндекс.Диске / Сергей Нечаев (Яндекс)
Ontico
 
PDF
Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...
Ontico
 
PDF
OpenStack: от enterprise к сервис-провайдеру / Сергей Пимков (Селектел)
Ontico
 
PDF
Как не положить тысячи серверов с помощью системы централизованного управлени...
Ontico
 
PDF
Платформа для поставки счастья в команду QA
Slava Kuznetsov
 
PDF
Максим Пугачев
CodeFest
 
PDF
#6 "Изоморфный фреймворк Catberry.js" Денис Речкунов
JSib
 
PPTX
Jelastic PaaS for DevOps: Hybrid Cloud based on Microsoft Azure
Dmitry Lazarenko
 
PPTX
Публичный IaaS на базе ПО с открытым кодом
Cloud IaaS Provider Tucha
 
PDF
Александр Ломов-«Как перестать беспокоиться и начать использовать Cloud Foundry»
Tanya Denisyuk
 
PPTX
Redux и изоморфные приложения
John Wezel
 
PDF
«Continuous Integration — A to Z или Непрерывная интеграция — кто всё сломал?»
FDConf
 
PPTX
CloudStack 2.2.9 by ActiveCloud
ActiveCloud
 
Drupal в облаке - Владимир Юнев
DrupalCamp MSK
 
Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...
Ontico
 
Сергей Орлов
CodeFest
 
Опыт построения СХД на базе Windows Server для использования в публичном обла...
Ontico
 
Нагрузочное тестирование в облаке Windows Azure
Natalia Efimtseva
 
2015-11-07 01 Виталий Кравцов. Webpack: человеческий подход к разработке веб ...
Омские ИТ-субботники
 
RootConf 2015: Как Vagrant и Chef ускорили разработку в несколько раз
Timur Batyrshin
 
Ускорение показа превью изображений в Яндекс.Диске / Сергей Нечаев (Яндекс)
Ontico
 
Высокопроизводительная и отказоустойчивая архитектура фронтальных систем / Ма...
Ontico
 
OpenStack: от enterprise к сервис-провайдеру / Сергей Пимков (Селектел)
Ontico
 
Как не положить тысячи серверов с помощью системы централизованного управлени...
Ontico
 
Платформа для поставки счастья в команду QA
Slava Kuznetsov
 
Максим Пугачев
CodeFest
 
#6 "Изоморфный фреймворк Catberry.js" Денис Речкунов
JSib
 
Jelastic PaaS for DevOps: Hybrid Cloud based on Microsoft Azure
Dmitry Lazarenko
 
Публичный IaaS на базе ПО с открытым кодом
Cloud IaaS Provider Tucha
 
Александр Ломов-«Как перестать беспокоиться и начать использовать Cloud Foundry»
Tanya Denisyuk
 
Redux и изоморфные приложения
John Wezel
 
«Continuous Integration — A to Z или Непрерывная интеграция — кто всё сломал?»
FDConf
 
CloudStack 2.2.9 by ActiveCloud
ActiveCloud
 

Viewers also liked (8)

PPTX
Windows Azure. Scaling, Caching and Performance
Alexander Feschenko
 
PPTX
Windows Azure Overview and Application Lifecycle
Alexander Feschenko
 
PPTX
Как мы построили масштабируемый и высоконагруженный сайт Игр Сочи 2014 на Mic...
Ontico
 
PPTX
Automating Azure VMs with PowerShell
Alexander Feschenko
 
PPTX
Windows Azure Storage
Alexander Feschenko
 
PPTX
Windows Azure Security and Diagnostics
Alexander Feschenko
 
PPTX
Azure Powershell. Azure Automation
Alexander Feschenko
 
PPTX
Microsoft Azure. Troubleshooting and monitoring.
Alexander Feschenko
 
Windows Azure. Scaling, Caching and Performance
Alexander Feschenko
 
Windows Azure Overview and Application Lifecycle
Alexander Feschenko
 
Как мы построили масштабируемый и высоконагруженный сайт Игр Сочи 2014 на Mic...
Ontico
 
Automating Azure VMs with PowerShell
Alexander Feschenko
 
Windows Azure Storage
Alexander Feschenko
 
Windows Azure Security and Diagnostics
Alexander Feschenko
 
Azure Powershell. Azure Automation
Alexander Feschenko
 
Microsoft Azure. Troubleshooting and monitoring.
Alexander Feschenko
 
Ad

Similar to Построение высоконагруженных приложений на базе Windows Azure (20)

PPTX
Roman Zdebskiy - Windows Azure
Andrew Mayorov
 
PPTX
Технический обзор платформы Windows Azure. Демонстрация, Azure University
Департамент Стратегических Технологий
 
PPTX
ASP.NET MVC+ Windows Azure: step by step guide
Mykhail Galushko
 
PPTX
Azure - обзор
Alexander Babich
 
PPTX
Платформа в облаках. Windows Azure
Департамент Стратегических Технологий
 
PPTX
Alexey bokov windowsazure_security_mssd
Alexey Bokov
 
PPTX
Developer Days 2011, Kharkov
Alexander Feschenko
 
PPTX
IOP202 DevCon 2012 Apache Lucene in Windows Azure
Vadim Novitskiy
 
PPTX
Windows azure общий обзор
Microsoft
 
PPTX
Industrial Programming Java - Lection Pack 02 - Distributed applications - La...
Fedor Lavrentyev
 
PPTX
Azure - хранение данных в облаке
Alexander Babich
 
PPT
опыт Clickberry.com стартап на drupal в облаке павел загор
drupalconf
 
PPTX
Как легко и быстро поднять стартап на облаке
Tatiana Smetanina
 
PPTX
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Ontico
 
PPTX
Высокопроизводительные приложения на базе Windows Azure. Пример реального про...
UNETA
 
PPTX
Высокопроизводительные приложения на базе Windows Azure
Alexander Feschenko
 
PPT
Api Microsoft Loghechkin
Alex Ilyin
 
PPT
Ms it cup win-team - мевв
Changellenge >> Capital
 
PPTX
Windows Azure для стартапов
Alexey Bokov
 
PDF
The Old New ASP.NET
Vitaly Baum
 
Roman Zdebskiy - Windows Azure
Andrew Mayorov
 
Технический обзор платформы Windows Azure. Демонстрация, Azure University
Департамент Стратегических Технологий
 
ASP.NET MVC+ Windows Azure: step by step guide
Mykhail Galushko
 
Azure - обзор
Alexander Babich
 
Платформа в облаках. Windows Azure
Департамент Стратегических Технологий
 
Alexey bokov windowsazure_security_mssd
Alexey Bokov
 
Developer Days 2011, Kharkov
Alexander Feschenko
 
IOP202 DevCon 2012 Apache Lucene in Windows Azure
Vadim Novitskiy
 
Windows azure общий обзор
Microsoft
 
Industrial Programming Java - Lection Pack 02 - Distributed applications - La...
Fedor Lavrentyev
 
Azure - хранение данных в облаке
Alexander Babich
 
опыт Clickberry.com стартап на drupal в облаке павел загор
drupalconf
 
Как легко и быстро поднять стартап на облаке
Tatiana Smetanina
 
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Ontico
 
Высокопроизводительные приложения на базе Windows Azure. Пример реального про...
UNETA
 
Высокопроизводительные приложения на базе Windows Azure
Alexander Feschenko
 
Api Microsoft Loghechkin
Alex Ilyin
 
Ms it cup win-team - мевв
Changellenge >> Capital
 
Windows Azure для стартапов
Alexey Bokov
 
The Old New ASP.NET
Vitaly Baum
 
Ad

More from Alexander Feschenko (6)

PPTX
Azure Container Service
Alexander Feschenko
 
PPTX
Microsoft Azure Automation
Alexander Feschenko
 
PPTX
Azure App Service Architecture. Web Apps.
Alexander Feschenko
 
PPTX
HTML5 WebSockets and WebWorkers
Alexander Feschenko
 
PDF
Windows Azure Internals
Alexander Feschenko
 
PPTX
Продвинутая web-отладка с Fiddler
Alexander Feschenko
 
Azure Container Service
Alexander Feschenko
 
Microsoft Azure Automation
Alexander Feschenko
 
Azure App Service Architecture. Web Apps.
Alexander Feschenko
 
HTML5 WebSockets and WebWorkers
Alexander Feschenko
 
Windows Azure Internals
Alexander Feschenko
 
Продвинутая web-отладка с Fiddler
Alexander Feschenko
 

Построение высоконагруженных приложений на базе Windows Azure

  • 1. Построение высоконагруженных web-приложений на базе Windows AzureФещенко Александр[email protected]://feschenkoalex.blogspot.comTwitter: FeschenkoAlex
  • 2. Высоконагруженные web-приложенияЧто я имею ввиду:Глобальная аудитория, низкое время ответа
  • 3. Возможность масштабирования для обработки большого количества одновременных запросов
  • 4. Высокие требования к пропускной способностиComputeПлан:Асинхронная модель программирования
  • 7. Синхронные приложенияОдин запрос обрабатывается одним потокомБлокируется на время выполнения «работы», после чего возвращают ответ и снова становится доступнымSQL AzureВеб приложение“Работа” #1Входящий запрос #1Средний уровеньБлокировкаПотокОтвет #1WA StorageThreadОтвет #1ComputeОжидание…Входящий запрос #2Время идет…Стеки потоков – структуры для обработки входящих запросовБольшинство потоков простаивают впустуюУвеличение количества потоков для повышения производительности – тяжеловесный подходАсинхронная модель программированияВеб приложениеSQL Azure“Работа” #1Клиент #1Средний уровеньОтвет #1WA StorageОтвет #1ПотокПотокКлиент #2“Работа” #2КонтекстОтвет #2Ответ #2Клиентские запросы явно отслеживаются во внутренних структурах приложенияОперации над контекстом должны быть идемпотентны или транзакционныПотоки блокируются ненадолго, поэтому большее количество потоков гарантирует большую пропускную способность
  • 8. Асинхронная модель в облакеАсинхронная модель применительна как к локальным так и к облачным приложениям Для асинхронного взаимодействия между ролями вашего приложения очень удобна технология Windows Azure Storage QueuesВстроенная балансировка нагрузки
  • 9. Изящная обработка падений отдельных экземпляров ролиWindows Azure Storage и SQL Azure поддерживают асинхронные вызовыADO.NET Entity Framework
  • 12. Plain Old ADO.NETУправление доступом к данным
  • 13. Управление доступом к даннымКак эффективно передать данные клиенту и от него ?Существует много типов данных и каждый из них имеет свои особенностиBlobStorageПриложениеПриложениеКак можно больше снижайте эффект своего присутствияОтправляйте клиентов напрямую к Blob Storage за статическим контентом
  • 16. Текстовые форматы (XML)Shared Access SignaturesПредназначены для прямого доступа к защищенным ресурсамСрок действия SAS заканчивается по истечению определенного промежутка времени либо по требованию2. Сервис формирует подпись на основе секретного ключа1. Я Боб, хочу получить доступ к XПриложениеКлюч3. Сервис возвращает SAS подписанный HTTPS URLBlob Storage4. Боб использует SAS для доступа к Xнапрямую из Blob StorageЗащищенный блоб (или платный)X
  • 17. Глобальный доступ к блобамПолучайте доступ к открытым блобам посредством Windows AzureCDNCDNBlob StorageБлижайшая точка присутствияОткрытый контейнерXXDNS имя определяет ближайшую точку присутствияСнижает время ожидания и нагрузку на центральное хранилище
  • 18. Content Delivery Network~100 глобально распределенных дата-центраQuincy, WAChicago, ILSan Antonio, TXDublin, IrelandGeneration 4 DCs
  • 19. Windows Azure CDN – с чего начатьРазрешить CDN доступ с вашего аккаунта Windows AzureВыполняется на dev-портале Windows Azure
  • 20. Это сформирует новый формат доступа к открытым блобам посредством CDN
  • 21. Одинаковый контент, 2 точки доступа
  • 23. WA Storage URL: http://myacct.blob.core.windows.net/images/myimage.pngCNAME маппинг применительно к CDN URL’sАдаптивный стриминг также можно настроить на работу с CDNhttp://blog.smarx.com/posts/smooth-streaming-with-windows-azure-blobs-and-cdnКеширование в памятиКешируйте «горячие» данные в памяти для предотвращения медленного обращения к базе данныхНапример, товары в каталогеКеширование в памятиSQL AzureSQL AzureПриложениеTable StorageTable StorageКеширующий слой поможет Вам снизить время ожидания и стоимостьНизкое время ожидания и высокая пропускная способность (особенно под нагрузкой)Архитектура распределенного кешированияНесколько экземпляров web-роли могут быть клиентами кэша be cache clientsКлиенты видят кэш в виде единого унифицированного представленияКеширующий слойКеширующий слой распределяет данные между несколькими хостами
  • 24. Windows Azure AppFabricСachingЧто это?Windows Server AppFabric Cache – распределенное кеширование для собственных серверов
  • 25. CTP релиз на PDC
  • 26. В ближайшем будущем полный паритет между облачной версией и стандартнойПрекрасная производительностьВысоко масштабируемый 64-х битный
  • 27. Высокая отказоустойчивость, низкое время ответаПреимущества AppFabric CachingПрост в администрированииС легкостью интегрируется в существующие приложенияASP.NET Session State и Output Cache провайдерыТакой же интерфейс управления как и у Windows Server AppFabric CacheСпособен кешировать любой сериализируемый объектНикаких ограничений на размер объекта
  • 28. Возможность использования локального кэша (снижая тем самым затраты на сериализацию)Windows Azure AppFabricСaching пример кода// Use cache configuration from app configDataCacheFactoryCacheFactory = new DataCacheFactory();// Get cache client for cacheDataCachemyCache = CacheFactory.GetDefaultCache();// Add an object to the cache.myCache.Put(“myKey", myObject);retrievedObject = myCache.Get("myKey");if (retrievedObject == null){ // Cache miss}
  • 29. SQL Azure и шардинг данныхРазделение (или шардинг) данных между несколькими базами данныхA-MA-ZПриложениеN-ZНагрузка «размазывается» между несколькими экземплярами базы данныхПозволит избежать ограничений на размер базы данных
  • 31. Улучшается производительность самих запросовСхема шардинга зависит от самих данных и варьируется в зависимости от ситуации
  • 33. Основы тюнинга производительностиНастраивайте Windows Azure приложение также как Вы это делаете с обычными приложениямиИзмерение
  • 34. Оптимизация, там где она имеет местоНаконец-то Windows Azure запущена в FULL IIS режимеТеперь можно инсталлировать любой модуль используя WebPI
  • 35. ДА И ВООБЩЕ, МОЖНО КАК УГОДНО СКОНФИГУРИРОВАТЬ IIS ИСПОЛЬЗУЯ AppCmdПростейшие основыДля продакшена режим компиляции Release
  • 36. Отключение в условиях продакшенаIntellTraceи Failed Request TracingНастройка количества экземпляров роли
  • 37. Продвинутая настройка производительностиРазрешите компрессию для дополнительного контента<add mimeType="application/json" enabled="true" /><add mimeType="application/json; charset=utf-8" enabled="true" />Настройка режима перезапуска пулов приложенийИзмените расписание по умолчанию, чтобы избежать перезапуска в период пиковой нагрузки
  • 38. Измерение и устранение утечек памятиИспользование нового модуля IIS 7.5 App WarmUphttp://www.iis.net/download/ApplicationWarmUpНастройка Windows Azure Diagnostics
  • 39. Итак, вот оно идеальное приложение с точки зрения производительностиBlob StorageCDNОткрытыйОткрытыйЗакрытыйАсинхронная модельСинхронная модельAppFabric CachingShared Access SignaturesTable StorageTable StorageКлючТюнингSQL AzureSQL AzureSQL AzureSharding