Upload
microsoft
View
1.269
Download
6
Tags:
Embed Size (px)
DESCRIPTION
Презентация с декабрьского вебинара по основной функциональности Windows Azure.
Citation preview
«Облачные» вычисления и платформа Windows Azure
Белоцерковский Александр[email protected]
ahriman.ru
Stream Insight
Платформа Windows Azure http://aka.ms/TryAzureС
лой
д
ан
ны
хС
лой
п
ри
лож
ен
ия
Сл
ой
и
нтегр
ац
ии
Кл
иен
т
PCGamesConsolePhoneTablet Browser
Connect
CachingДиски
CDN
ОчередиТаблицы
Traffic Manager
Access ControlService Bus
Блобы
PaaS
SQL Databases Reporting
Data Sync
On-premises Service
On-premises Database
OfficeAdd-in
DatabaseStorage
IaaSWeb Sites Hadoop
Virtual Networks
Media Services
EAI / EDI
ComputeMobile Services
Общий дом для нас всех
https://github.com/WindowsAzure
C++
Compute ХранилищеVM-роль SQL Azure CDN Service Bus Сеть Кэш Контроль доступа
Медиасервисы
Ваша инфраструктура
Виртуализация
O/S
Оборудование
Сеть
Данные
Приложения
Брандмауэр
Web Sites
Приложения
Данные
Cloud Services
Приложения
Брандмауэр
Данные
Virtual Network
Virtual Machines
Virtual Network
Данные
Приложения
Брандмауэр
O/S
Windows Azure
Cloud Services
Типичное Web-приложение
База данныхКонтроллер (back-end)Представление
HTTP(s)
Cloud service
IIS
Web-роль Worker-роль
Load Balancer
HTTP/HTTPS, TCP
Очередь
IaaS
ВМ
Приложение
Cloud Service
Определение сервиса
Сервис = разворачиваемое приложение.
Роль: веб-интерфейс
ОпределениеТип: WebРазмер ВМ: SmallКонфигурацияЭкземпляров: 2Доменов обн.: 2Доменов ошибок: 2
Роль: обработчик
ОпределениеТип: WorkerРазмер ВМ: MediumКонфигурацияЭкземпляров: 2Доменов обн.: 2Доменов ошибок: 2
Две ячейки развертывания
Production Staging
VIP Swap
Сервис
VM
VM
VM
VM
Prod
StageСервис
Развертывание сервисаПриложение
Балансировщик нагрузки
Виртуальная машина
Виртуальная машина
Включение & конфигурация виртуального
сервера
Включение & конфигурация виртуального
сервера
http://myapp.cloudapp.net
Windows Azure Tools for Visual StudioШаблоны проектовРасширения интерфейсаStorage Explorer Server Explorer Интегрированное развертываниеIntelliTraceПрофайлинг
Web-рольWeb-роль – работающий под управлением IIS веб-сайт или сервис.
HTTP, HTTPS и сертификаты
Azure автоматически распределяет нагрузку
на Web-роли
Работает под управлением IIS7, 7.5
Worker-роль
.NET 3.5 sp1/4.0/Позже 4.5
«Фоновое» выполнение и выполнение не-HTTP сервиса
По умолчанию не разрешены входящие подключения
От RoleEntryPointOnStart() Run() OnStop()
Модель программирования роли
Startup-задачи
Тип задачиSimple – роль ожидает окончания задачиBackground – роль продолжает работать во время выполнения задачиForeground – аналогично Background, но роль не может быт остановлена пока все задачи не выполнятся
<WebRole name=“FabrikamShipping.App.Web"> <Startup> <Task commandline="relative\path\ToSetupExecutable" executionContext="limited|elevated" taskType=“simple|foreground|background"/> </Startup></WebRole>
Web Sites
Windows Azure Web Sites секунды на развертывание
всё простоБесплатно, масштабируетесь без проблем – оплачиваете по факту использования
работает вездеclassic asp, asp.net, php, node.js, Windows, OSX, Linux
всё быстроразвертывание – секунды, мониторинг, диагностика, отладка
Всё просто
10 бесплатных сайтов
Новые сайты = секунды
Простое управление
Автоматическая балансировка нагрузки
Разделяемое хранилище
Простое масштабирование
Работает везде
ASP.NET, ASP, PHP, Node.js
SQL Azure Databases, MySQL
Open-source приложения
VS, WebMatrix
Windows, OSX, Linux
Всё быстро
Быстрое развертывание
TFS, GIT
Мониторинг производительности и использования
Быстрый доступ к логам
1
shared reserved
РАЗДЕЛЯЕМЫЕ ЭКЗЕМПЛЯРЫ
:-)
shared
web sites
2РАЗДЕЛЯЕМЫЕ ЭКЗЕМПЛЯРЫ
:-)
:-)
shared reserved
shared
web sites
РАЗДЕЛЯЕМЫЕ ЭКЗЕМПЛЯРЫ
:-)
1shared reserved
ЗАРЕЗЕРВИРОВАННЫЕ ЭКЗЕМПЛЯРЫ
:-):-)
0reserved
web sites
2shared reserved
ЗАРЕЗЕРВИРОВАННЫЕ ЭКЗЕМПЛЯРЫ
:-)
ЗАРЕЗЕРВИРОВАННЫЕ ЭКЗЕМПЛЯРЫ
:-)
reserved
web sites
2shared reserved
РЕЗЕРВ
:-)
РЕЗЕРВ
:-):-)
:-) :-)
:-)
:-) :-)
reserved
web sites
Методы развертывания
Git TFSWeb DeployFTP
ПА
РТН
ЕР
Ы
Virtual Machines
Но зачем?!
Собственные приложения, CRM, CMS, ERP, BI
Файловые сервера, СУБД, инфраструктура, контроль версий
Быстрое развертывание
Гибридные инфраструктуры
Галерея образов
OpenSUSE 12.1
CentOS 6.2
Ubuntu 12.04
SUSE Linux Enterprise Server SP2
Сценарий: Active Directory – облако+локально
Corp. HQ
VPN-туннель
Сервера IIS
AD / DNSAD / DNS
Сценарий: Active Directory – локально
Сервера IIS
AD / DNS
Собственный VHD
Локальная инфраструктура
Виртуальный сервер
MyApp.vhd
Облако
Блоб
Развертывание VM из образа
или VHDsysprep
Fixed Disk
EndpointПубличный портЛокальный портПротокол (TCP/UDP)Название
Проброс портов
Cloud App/Hosted Service
Один публичный IP на Cloud Service
Балансировка нагрузки
Endpoint SetПубличный портЛокальный портПротокол (TCP/UDP)Название
Cloud App
Управление и автоматизация
Active Directory Group Policy
Windows Remote Management (WinRM)
SCOM 2012
REST API
Windows Azure PowerShell Cmdlets
Scripting (Linux, Mac Windows)
Развертывание множества свободнораспространяемых фреймворков и CMS, таких как WordPress, Joomla!, Drupal, DotNetNuke and Umbraco, в несколько кликов,
Низкая степень контроля – масштабирование сервиса, сервисы FTP, Team Foundation Services, Git. Запуск веб-сайта (например, WordPress или Drupal) можно осуществить в несколько кликов мышкой.
Веб-приложения
отлично подходят для размещения веб-приложений, состоящих из клиентской разметки и какой-либо обработки на стороне сервера. Можно масштабировать весь сервис, но не часть его.
Что лучше?Windows Azure Web Sites:
Средняя степень контроля – администраторский доступ, доступ по удаленному рабочему столу RDP к экземплярам ролей, запуск кода с повышенными правами, start-up задачи. Возможна автоматизация администрирования.
Windows Azure Cloud Services (Web-роль) :
Многослойные приложения
каждый слой которых необходимо масштабировать отдельно от других. Например, в момент большой нагрузки можно масштабировать только обработчик на стороне сервера, конвертирующий видеофайлы, но оставить количество экземпляров для веб-интерфейса.
Продвинутые сетевые возможности, Windows Azure Connect, Windows Azure Virtual Network
Выбирайте Virtual Machines, если хотите иметь полный контроль над своими приложениями любой сложности, в том числе теми, адаптировать которые под «облако» не представляется возможным
Сервисы уровня предприятия
Например, SQL Server, Sharepoint Server. Приложения, которым необходимо сохранение состояния (stateful), организация ферм серверов, legacy-приложения.
Windows Server/Linux
Windows Azure Virtual Machines :
WINDOWS AZURE CONNECT Windows Azure Virtual Network
Windows Azure
БЫСТРАЯ НАСТРОЙКА ПРОСТОЕ УПРАВЛЕНИЕБЫСТРОЕ РАЗВЕРТЫВАНИЕ
ПРОСТО И БЫСТРО
ПОЛНЫЙ КОНТРОЛЬМАСШТАБИРУЕМОСТЬСЛОЖНЫЕ СЦЕНАРИИ
ГОТОВНОСТЬ ДЛЯ ПРЕДПРИЯТИЯ
On-premise
Windows Azure
On-premise
Офис
The Corp. HQ
IIS Servers
AD / DNS
SQL Servers
Exchange
Сценарий: виртуальный офис
Virtual Networkв Windows AzureS2S VPN
Device
S2S VPN DeviceS2S VPN tunnel
BRK Gateway
S2S VPN tunnel
Различия
Локальная сеть
Полны контроль над L2 и выше
Поддержка MAC и VLAN
Поддержка статических и DHCP
Поддержка MCAST, BRCAST
Нужно настраивать маршрутизацию явным образом
Граница доверия = VLAN
Поддержка нескольких режимов VPN (SSL, IPSec, …)
Virtual Networks в Windows Azure
Контроль над некоторыми аспектами L3
Нет поддержки MAC, VLAN, статических адресов, MCAST, BRCAST
Поддержка DHCP
Автоматическая маршрутизация
Граница доверия = Vnet
Поддержка только IPSec IKEv1
Windows Azure Storage
Windows Azure Storage
Хранилище в «облаке»Масштабируемое, долговечное и доступноеДоступ из любого места в любой момент времениОплата только за то, что использует сервис
Доступно через RESTful веб-сервисыДоступно из сервисов Windows AzureДоступно из любого места интернета
Различные абстракции хранения данныхТаблицы, блобы, очереди, диски
Windows Azure Storage
Каждая сущность в хранилище хранится в трёх экземплярах.Таблицы и блобы записываются в еще один триплет в другом датацентре в этом же регионе
Хранилище Windows Azure – всего лишь REST-сервис, работающий в Windows Azure.
Опции избыточности*
• Высокая устойчивость• 3 локальных реплики, синхронно
реплицирующихся
• Для восстановления используются локальные реплики
• Большие проблемы – связь с клиентом о возможной потере данных
• Цена – 23-34% от объема данных
• Некритичные данные
Локально избыточное • Высочайшая устойчивость
• 3 локальных реплики + 3 удалённых реплики во втором датацентре
• Локальные реплицируются синхронно• Удалённые реплицируются асинхронно
• Для восстановления используются локальные реплики
• Большие проблемы – используются реплики из второго датацентра
• Цена та же
• По умолчанию
Гео-избыточное
Аккаунт хранилищаглобально уникальное имя аккаунта
North Central USNorthern Europe
Western Europe East Asia
South East Asia
US Europe Asia
Один из датацентров:
South Central US
West US East US
Эмулятор хранилища
Предоставляет локальный эмулятор «облачного» хранилища
Позволяет разрабатывать в оффлайн
Требует наличия SQL Express 2005/2008 и выше http
://msdn.microsoft.com/en-us/gg433135
Абстракции хранилища
Характеризуется:
Нереляционное структурированное хранилище
Windows Azure
ТаблицыХарактеризуется :
Большие файлыWindows
Azure Блобы
Характеризуется :
Асинхронная передача сообщений
Windows Azure
Очереди
Таблицы
Адресация
Blogs
сущностьтаблицаАККАУНТ
Videos
contoso
PartitionKey=‘uid1’RowKey=‘B:002’Rating=‘2’
PartitionKey=‘uid1’RowKey=‘C:002:003’Committed=‘1’
PartitionKey=‘uid2’RowKey=‘pic.wmv’Rating=‘1’
http://<account>.table.core.windows.net/
Блобы
Адресацияhttp://<account>.blob.core.windows.net/
images
блобконтейнерАККАУНТ
videos
contoso
PIC01.JPG
PIC02.JPG
VID1.AVI
Очереди
Адресация
orders
сообщениеочередьАККАУНТ
imageprocessing
contoso
CustomerId=41OrderId=O21
CustomerId=12OrderId=O1
BlobUrl=http://contoso.blob…
http://<account>.queue.core.windows.net/
Что такое очередь? Очереди используются для хранения сообщенияИспользуют FIFO, однонаправленные Имя очереди должно быть именем в нижнем регистре и URL-
friendly
Слабосвязанная система
Queue
Очередь
Web-роль
Web-роль
Web-роль
Worker-роль
Worker-роль
Worker-роль
Worker-роль
Очереди: сообщения
Очередь может содержать неограниченное количество сообщений
Сообщения должны быть сериализуемы как XML
Размер ограничен 64Кб Обычно используется паттерн work ticketСборщик мусора для очереди запускается раз в неделю
Shared Access Signatures
Гибкие права доступа к блобам и контейнерамПростейший путь выдачи доступа пользователю на загрузку файлов в блобовый аккаунтПодписка URL ключом хранилища, разрешение повышенных привилегийОтзывИспользуйте короткие периоды, после
которых производите повторную выдачуИспользуйте политику уровня контейнера,
которую можно удалить
Тайм-аут на «невидимость»
Очередь Azure
Web роль
Web роль
Worker роль
Worker роль
Истекает @ 7:05AM7:00 AM
7:04 AM
«Забор» сообщения, установка тайм-аутана «невидимость» на 5 минут
Расширение тайм-аута на «невидимость» на 5 минут
Истекает @ 7:09AM
7:07 AM7:09 AM
Получение прогресса из очереди и продолжение работы
Периодическое обновление информации О прогрессе обработки в сообщении
7:05
7:09
7:14
Текущее время
Windows AzureBuilding Blocks
Мотивирующие вопросы• Как интегрировать внешние компоненты с корпоративной сетью?• Как предоставить ПО пользователям извне организации? •Могут ли они использовать свои существующие данные личности? Социальные личности? • А что насчёт более мелких, клиентов не из предприятий?
• Как сократить задержку и увеличить производительность? • <и так далее…>
StorageBig data
Caching
CDNDatabase
IdentityMedia MessagingNetworking
Traffic
StorageBig data
Caching
CDNDatabase
IdentityMedia MessagingNetworking
Traffic
Проблемы безопасности
Приложение
Аутентификация, авторизация
Хранилище учетных данных
Управление
Забыл пароль
ПоддержкаЗащита данных
Интеграция с AD
LDAP
Синхронизация
Интеграция с Facebook
FacebookAuth API
Аутентификация на основе утверждений
Приложение
?“User is Joe”“Role is Administrator”
ACS (AD) +
WIF
Термины
• Утверждение• Набор информации о пользователе• Имя, E-mail, роль…
Термины
• Токен безопасности• Набор утверждений• SAML-токен подписывается издателем
• Издатель (Security Token Service)• Объект, имеющий право выдавать токены• В отношениях доверия с приложением
• Relying Party• Приложение• В отношениях доверия с издателем (провайдером идентификации)• Умеет работать с токенами безопасности
Уважаемое приложение, моё имя – Александр, фамилия – Иванов, и это подтверждается вот этой карточкой, которая была выпущена компанией Trusted Certificate Issuer.
Relying Party Утверждение
Провайдер идентификации
Ресепшн
Доклады
Вечеринка
Участник
Докладчик
Комната докладчиков
Александр …
DevCon 2012
Персонал
Персонал
Участник
УчастникДокладчик
Персонал
Участник
Докладчик
Персонал
Сценарий
12. Валидация токена
6. Login
8. HTTP 302 => ACS
1. Запрос
2. HTTP 302 => ACS
7. Аутентификация & Выдача токена
9. Токен => ACS10. Валидация токена, преобразование утверждений, выдача токена
11. HTTP 302 + токен ACS => Приложение
13. Токен ACS => Приложение
14. Ответ
3. Аутентификация
5. HTTP 302 => IdP
Жизненный цикл аутентификации
4. Home-realmDiscovery
Windows Azure Active Directory
Расширение AD в облако
Цель – облачные приложения
Личность как сервис – часть платформы как сервис
cloudapp
cloudapp
cloudapp
История Azure Active Directory
• Active Directory – мультитенантный сервис аутентификации, разрабатывающийся вместе с Office 365
• Расширяет Windows Server Active Directory в облако
• Можно использовать для организаций, где нет Windows Server AD
AzureAD
AD
ExchangeOnline
SharePointOnline
LyncOnline
Directory Graph API
• RESTful-доступ к каталогу• Объекты: пользователи, группы, роли, лицензии • Отношения: member, memberOf, manager, directReport
• Запросы стандартными HTTP-методами• POST, GET, PATCH, DELETE• Ответ: XML или JSON; стандартные коды HTTP• Совместимо с OData 3.0
• OAuth 2.0 для аутентификации• Ролевая модель авторизации
Пример вызова Graph• Request: https://directory.windows.net/contoso.com/Users('[email protected]')
• { “d”: {
• "Manager": { "uri": "https://directory.windows.net/contoso.com/Users('User...')/Manager" },
• "MemberOf": { "uri": "https://directory.windows.net/contoso.com/Users('User...')/MemberOf" },
• "ObjectId": "90ef7131-9d01-4177-b5c6-fa2eb873ef19",
• "ObjectReference": "User_90ef7131-9d01-4177-b5c6-fa2eb873ef19",
• "ObjectType": "User", "AccountEnabled": true,
• "DisplayName": "Ed Blanton",
• "GivenName": "Ed", "Surname": "Blanton",
• "UserPrincipalName": "[email protected]",
• "Mail": "[email protected]",
• "JobTitle": "Vice President", "Department": "Operations",
• "TelephoneNumber": "4258828080", "Mobile": "2069417891",
• "StreetAddress": "One Main Street", "PhysicalDeliveryOfficeName": "Building 2",
• "City": "Redmond", "State": "WA", "Country": "US", "PostalCode": "98007"
• } }
StorageBig data
Caching
CDNDatabase
IdentityMedia MessagingNetworking
Traffic
Тесная связанность
Фронтенд
Логистика
Сервис доставки
Трекинг
Тесная связанность
Фронтенд Сервис доставки
Логистика
Трекинг
Слабая связанность
Фронтенд
Логистика
Сервис доставки
Трекинг
Очередь
Слабая связанность
Фронтенд Очередь Сервис доставки
Логистика
Трекинг
Слабая связанность
Фронтенд Очередь Сервис доставки
Логистика
Трекинг
Слабая связанность
Фронтенд Очередь
Трекинг
Трекинг
Сервис доставки
Шина сообщений Windows Azure Service Bus
LOB-приложение
Агрегатор событий
Портал Sharepoint …
Промышленные устройства
Phone, Tablet, PC
Точки продаж, киоски SaaS-решение
Queues Topics Relays
Функциональные части Windows Azure Service Bus
Service Bus Relaysдоступ к сервисам и данным предприятия находящимся за NAT и Firewall
Service Bus Queuesклиенты с переменным доступом к сетивыравнивание и балансировка нагрузки
Service Bus Topics and Subscriptionsподписка множества клиентов на рассылку сообщений
Queues
Уровень нагрузкиОбъект получает и обрабатывает сообщения и не перегружается их количеством. Можно добавить получающие объекты с увеличением нагрузки или уменьшить их количество.
Оффлайн/пакетСценарии редко выходящего в сеть клиента с буферизацией запросов.
Queue
Queues
Балансировка нагрузкиМножество обработчиков опрашивают одну очередь или подписку.
Queue
Topics
TopicSubSubSub
Распространение сообщенийКаждый получатель имеет свою копию каждого сообщения (учитывая фильтры), при этом подписки независимы.
ПартиционированиеПолучатели получают части потока сообщений.
Точки продаж
Windows Azure
Веб-сервисы
Экз. сервиса 1
Дата-центр
LOB-сервис
Подписки на уведомления (Topics & Subscriptions)
Queue
Релей(Relay)
Экз. сервиса 1
Экз. сервиса 2
Экз. сервиса N
Экз. сервиса 2
Экз. сервиса 3
Изолированные веб-сервисыМультитенантные веб-сервисы
или
Service Bus
Firewall, NAT
Windows Azure
События мониторинга(Topics)
Очередь задач
SaaS с динамическим выделением мощностей
Сервис обработчика
Экз. обработчика 1
Экз. обработчика 2
Экз. обработчика N
Сервис контроллера
Экз. контроллера 1
Экз. контроллера 2
Данные длязадачи (Blob)
1 2
3
4
5
Сервисы за NAT
Firewall, NAT
Windows Azure
Предоставление доступа к сервису за NAT
Релейный сервис
Сервисы клиента
Внутренний сервис Сервис 1 Сервис 2 Сервис 3
sb://teched2012sb.servicebus.windows.net/CrmPublicService
Service BusRelay
StorageBig data
Caching
CDNDatabase
IdentityMedia MessagingNetworking
Traffic
Traffic Managerwww.contoso.com
CNAME
СервисСервис Сервис
Балансировка нагрузкиМониторинг точек входа
contoso.trafficmanager.net
Производительность – перенаправление трафика на ближайший сервис на основе задержки в сети
Round-robin – распределение трафика поровну между всеми сервисами
Failover – «резервный» сервис обслуживает трафик, если «первичный» сервис недоступен
Политики балансировки
Управление трафиком с DNS
Географически распределенные сервисы
Расширение на несколько датацентров
Windows Azure Traffic Manager
Перенаправление пользователей на экземпляр сервиса, ближайший к ним
Политики Мониторинг
foo.cloudapp.net
DNS Resp
1.2.3.4
StorageBig data
Caching
CDNDatabase
IdentityMedia MessagingNetworking
Traffic
Media Services
REST APIs
“Build-On” Media Partners and Customers
Azur
e CD
N
Media Services
Adaptive StreamingPorting Kits
Partn
er C
DNs
Origin
Caching
Secure Media Ingest
Media Job Scheduling
Encoding
ContentProtection
On-DemandOrigin
Live Origin
Analytics Identity Management
“Build-In”Partner Media Processors
Live Ingest
Live Encoding
Client Libraries
Silverlight
HTML 5Advertising
Flash
XBOX 360
WindowsPhone
iOS
StorageBig data
Caching
CDNDatabase
IdentityMedia MessagingNetworking
Traffic
Что такое Windows Azure Mobile Services?
Данные
Уведомления
Проверка подлинности
Логика сервера
Масштабируемость
Ведение журнала
Диагностика
Обзор жизненного цикла push-уведомлений
1. Запрос URI канала
2. Регистрация в облачной службе
3. Проверка подлинности и push-уведомление
Windows 8
УведомлениеКлиентская платформа
Приложение
Mobile Services
Служба push-уведомлений Windows
(1)
(2)
(3)
(3)
Всем спасибо! Ваши вопросыhttp://WindowsAzure.com/ru-ru - официальный портал, информация, Trial на 90 днейhttp://AzureHub.ru/ - посетите центр разработки для Windows Azure на русском языкеhttp://TechDays.ru/ - видео-доклады на русском языке для разработчиков[email protected] – поддержка от экспертов российского Microsoft
Александр БелоцерковскийWindows Azure [email protected]@ahrimantskfacebook.com/ahrimantpuahriman.ru