Windows Azure, как универсальный масштабируемый бэкэнд для мобильных приложений
Стас ПавловMicrosoft
облака
Предпосылки появления
Рост нагрузки на частные дата-центры Увеличение количества пользователей Распространение мобильных решений Одновременная совместная работа Повышение ожиданий от приложений Непредсказуемые пики нагрузки
Высокие расходы на дата-центы Ресурсы: электричество, охлаждение, сети, персонал Проблемы масштабирования: большие первоначальные инвестиции,
необходимость платить «деньги вперед» за непредсказуемую нагрузку
Что могут дать разработчику?
Масштабирование системы по необходимости Высокая доступность и отказоустойчивость Эффективное управление расходами Возможность фокусироваться на создании и обслуживании
продукта, а не на инфраструктуры Быстрая публикация решений любого масштаба
Оптимальные нагрузочные сценарии
использование
Вы
чи
сл
. м
ощ
н
Время
Среднее
Период
неактивности
“Пакетная обработка “
Пакетная обработкаЛишняя мощность просто теряется Сложно быстро выйти на рынок
Время
“Пиковая нагрузка“
Среднее использование
Непредвиденный/незапланированный пикПадает производительностьНевозможно «запасти» производительность
Среднее использование
Время
“Быстрый рост“
Успешным сервисам надо расти Поддерживать рост – вызов для ИТ служб Сложное и долгое развертывание
Время
Среднее использование
“Предсказуемый всплеск“
Сезонные сервисыПериодическое увеличение запросовСложность ИТ и «лишняя» мощность
Вы
чи
сл
. м
ощ
н
Вы
чи
сл
. м
ощ
н
Вы
чи
сл
. м
ощ
н
Windows Azure
Платформа Windows Azure
Windows Azure SQL AzureWindows Azure
AppFabric
Средства разработки Средства управления
Azure Fabric/Fabric Controller
Windows Azure Windows Azure Platform – окружение, управляющее облаком и
набор сервисов (.NET, identity, storage). Набор виртуальных машин (web role, worker role)
SQL Azure – распределенная реляционная база данных Table Service – не-реляционное хранилище сущностей (1 Мб, (255 –
3) свойства у каждой сущности) Blob Service – хранилище двоичных данных, может быть
подключено как общий сетевой диск (1 Тб в page blob, 200 Гб в block blob)
Queues – квази-транзакционная очередь (8Кб сообщение)
Windows Azure AppFabric Service Bus - связь между распределенными приложениями на
основе сообщений Access Control – управление доступом Distributed Caching – распределенный кэш в памяти
Хранение состояния Кеширование данных Одинаковая модель программирования для приложений,
размещаемых в облаке и частном дата-центре
масштабирование
Масштабирование
Web TierMobile Client
RequestB/L Tier Databa
seResponse
Масштабирование
Web Tier B/L Tier Database
Mobile Client
Mobile Client
Mobile Client
Mobile ClientMobile Client
“Server Busy”
Масштабирование
Web Tier B/L Tier Database
Mobile Client
“Timeout”
Mobile Client
Mobile Client
Mobile ClientMobile Client
Масштабирование
Web Tier
B/L Tier Database
Mobile Client
Mobile Client
Mobile Client
Mobile ClientMobile Client
Web Tier
Web Tier
N L B
Масштабирование
Database
Mobile Client
Mobile Client
Mobile Client
Mobile ClientMobile Client
Web Tier B/L Tier
B/L Tier
B/L Tier
N L B
Масштабирование
Database
Mobile Client
Mobile Client
Mobile Client
Mobile ClientMobile Client
B/L Tier
B/L Tier
B/L Tier
N L B
Web Tier
Web Tier
Web Tier
N L B
Масштабирование
Mobile Client
Mobile Client
Mobile Client
Mobile ClientMobile Client
B/L Tier
B/L Tier
B/L Tier
N L B
Database
p1 p2 p3
Web Tier
Web Tier
Web Tier
N L B
Масштабирование
Mobile Client
Mobile Client
Mobile Client
Mobile ClientMobile Client
B/L Tier
B/L Tier
B/L Tier
N L B
Database
p1 p2 p3
Web Tier
Web Tier
Web Tier
N L B
Дорого и много работы по внедрению
Масштабирование
Mobile Client
B/L Tier
B/L Tier
B/L Tier
N L B
Database
p1 p2 p3
Web Tier
Web Tier
Web Tier
N L B
А сейчас не так хорошо …
А теперь всё простаивает …Дорого и много работы по
внедрению
Масштабирование
Использование
Январь
Апрель
Июль Октябрь
Пиковая загрузка
Простой
Как поможет облако?
Масштабирование
Web Tier B/L Tier Database
Mobile Client
Mobile Client
Mobile Client
Mobile ClientMobile Client
“Server Busy”
Обновляем конфигурацию …
Масштабирование
Web Role
Worker Role
AzureStorag
e
Mobile Client
Mobile Client
Mobile Client
Mobile ClientMobile Client
Web Role
Web Role
N L B
Прозрачно для
разработчика
Масштабирование
Web Role
Mobile Client
Mobile Client
Mobile Client
Mobile ClientMobile Client
Web Role
Web Role
N L B
N L B
AzureStorag
e
Worker Role
Worker Role
Worker Role
О чём ещё нужно знать?
Масштабирование
Web Role
Mobile Client
Mobile Client
Mobile Client
Mobile ClientMobile Client
Web Role
Web Role
N L B
N L B
AzureStorag
e
Worker Role
Worker Role
Worker Role
Тесное связывание рабочей и
веб-ролей – анти-паттерн
Масштабирование
Web RoleWorker
Role
Queue
Req
1. Поставить в очередь 3. Взять из очереди
4. Обработать
2. Ответить
Масштабирование
Web RoleWorker
Role
Queue
Req
4. Обработка
Table
5. Добавить результатв таблицу
6. Проверить таблицуна наличие данных
А сколько веб и рабочих ролей надо?
Масштабирование
Web Role
Worker Role
AzureStorag
e
Mobile Client
Mobile Client
Mobile ClientMobile Client
Web Role
Web Role
N L B
Worker Role
Log
WMI_Win32_PerfFormattedData_ASPNET_ASPNETApplications/RequestsPerSecond
Management APIили Email
Mobile Client
Масштабирование
Web Role
Queue
Req
Web Role
Web Role
Req
Req
Мониторинг длины очередиWeb Role
Web Role
Web Role
Worker Role
Масштабирование
Web Role
Queue
Req
Web Role
Web Role
Req
Req
Мониторинг длины очередиWeb Role
Web Role
Web Role
Worker Role
Worker Role
Worker Role
Worker Role
Worker Role
Worker Role
Масштабирование Быстрое масштабирование с использование конфигурации и/или
API Проработка сценариев взаимодействия веб и рабочих ролей Разработка стратегии масштабирования приложения
Демо
работа с порталом управления Windows Azure
Демо
простое приложение дляWindows Azure
Windows AzureDevices Toolkits
Windows Azure Toolkits for Devices
для Windows Phone для iOS для Android
Windows Azure Toolkit for Windows Phone
Сервисы и прокси
Доступ к SQL Azure
Push Notification
Аутентификация c Access Control Services
Аутентификация с ASP.NET
Windows Azure Toolkit for Android
Windows Azure Toolkit for Android
https://github.com/microsoft-dpe/wa-toolkit-android может использовать ту же самую серверную часть,
предоставляющую сервисы и прокси, либо доступ напрямую реализована работа с хранилищем и
аутентификация/авторизация примеры приложений Unit тесты
Windows Azure Toolkit for iOS
Windows Azure Toolkit for iOS
https://github.com/microsoft-dpe/wa-toolkit-ios может использовать ту же самую серверную часть,
предоставляющую сервисы и прокси, либо доступ напрямую реализована работа с хранилищем и
аутентификация/авторизация примеры приложений
расскажите о себе
51
вечерняя школа
Вечерняя школа Windows Phone Когда?
8, 15, 22 декабря – 2 раза в день в онлайне c 10:00 до 11:00 MSK с 17:00 до 18:00 MSK
27 декабря в 19:30 в офлайн в Москве Где?
вебкасты офлайн встреча в Москве
Как попасть? регистрируйтесь http://aka.ms/ruwpschool
Что нужно? ноутбук с установленными средствами разработки Windows Phone SDK 7.1 (и вашей
программой) скачать с сайта http://create.msdn.com
Что будет? короткая презентация с демонстрациями по одной из тем разработки обсуждение ваших технических вопросов, а также идей по созданию приложений и
процедуре публикации телефоны для тестирования приложений (офлайн занятие)
ресурсы
С чего начать
http://create.msdn.com http://go.microsoft.com/?linkid=9772716
http://msdn.microsoft.com/ru-ru/windowsphone/
http://www.techdays.ru/?Tag=Windows Phone 7 http://windowsteamblog.com/windows_phone/ http://aka.ms/ruwp7dev - презентация и примеры
спасибо
© 2011 Microsoft Corporation.
All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation.
MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.