2. Платформа Windows Azure http://aka.ms/TryAzu
Клиент
Office Games On-premises On-premises
Add-in PC Tablet Phone Browser Console Service Database
интеграции
Слой
Traffic Virtual Access
CDN Manager Networks Connect EAI / EDI Service Bus Control Data Sync
приложени
Слой
я
Mobile Media
Services Services Compute Web Sites PaaS IaaS Hadoop
данных
Слой
SQL Stream
Storage Диски Блобы Таблицы Очереди Caching Databases Insight Reporting Database
3. Общий дом для нас всех
C++
Compute VM-роль Хранилище SQL Azure CDN Service Bus Сеть Кэш Контроль Медиа
доступа сервисы
https://github.com/WindowsAzure
8. Определение сервиса
Роль: веб-интерфейс Роль: обработчик
Определение Определение
Тип: Web Тип: Worker
Размер ВМ: Small Размер ВМ: Medium
Конфигурация Конфигурация
Экземпляров: 2 Экземпляров: 2
Доменов обн.: 2 Доменов обн.: 2
Доменов ошибок: 2 Доменов ошибок: 2
13. Web-роль
Web-роль – работающий под управлением IIS веб-сайт или сервис.
HTTP, HTTPS и сертификаты
Azure автоматически распределяет нагрузку
на Web-роли
Работает под управлением IIS7, 7.5
14. Worker-роль
.NET 3.5 sp1/4.0/Позже 4.5
«Фоновое» выполнение и
выполнение не-HTTP сервиса
По умолчанию не разрешены
входящие подключения
38. Что лучше?
Веб-приложения Многослойные приложения Сервисы уровня предприятия
отлично подходят для размещения веб-приложений, каждый слой которых необходимо масштабировать Например, SQL Server, Sharepoint Server. Приложения,
состоящих из клиентской разметки и какой-либо отдельно от других. Например, в момент большой которым необходимо сохранение состояния (stateful),
обработки на стороне сервера. Можно масштабировать нагрузки можно масштабировать только обработчик на организация ферм серверов, legacy-приложения.
весь сервис, но не часть его. стороне сервера, конвертирующий видеофайлы, но
оставить количество экземпляров для веб-интерфейса.
Низкая степень контроля – масштабирование Средняя степень контроля – администраторский доступ, Выбирайте Virtual Machines, если хотите иметь полный
сервиса, сервисы FTP, Team Foundation Services, Git. доступ по удаленному рабочему столу RDP к контроль над своими приложениями любой сложности,
Запуск веб-сайта (например, WordPress или Drupal) экземплярам ролей, запуск кода с повышенными в том числе теми, адаптировать которые под «облако»
можно осуществить в несколько кликов мышкой. правами, start-up задачи. Возможна автоматизация не представляется возможным
администрирования.
Windows Server/Linux
Развертывание множества свободнораспространяемых Продвинутые сетевые возможности, Windows Azure Connect,
фреймворков и CMS, таких как WordPress, Joomla!, Drupal, Windows Azure Virtual Network
DotNetNuke and Umbraco, в несколько кликов,
44. Windows Azure Storage
Каждая сущность в хранилище хранится в трѐх экземплярах.
Хранилище Windows Azure – всего лишь REST-сервис,
работающий в Windows Azure.
Опции избыточности*
45. • Высокая устойчивость • Высочайшая устойчивость
• 3 локальных реплики, синхронно • 3 локальных реплики + 3 удалённых реплики во
реплицирующихся втором датацентре
• Локальные реплицируются синхронно
• Для восстановления используются • Удалённые реплицируются асинхронно
локальные реплики
• Большие проблемы – связь с клиентом о • Для восстановления используются
возможной потере данных локальные реплики
• Цена – 23-34% от объема данных • Большие проблемы – используются
реплики из второго датацентра
• Некритичные данные
• Цена та же
• По умолчанию
55. Что такое очередь?
Очереди используются для хранения сообщения
Используют FIFO, однонаправленные
Имя очереди должно быть именем в нижнем регистре и URL-friendly
57. Очереди: сообщения
Очередь может содержать неограниченное
количество сообщений
Сообщения должны быть сериализуемы как XML
Размер ограничен 64Кб
Обычно используется паттерн work ticket
Сборщик мусора для очереди запускается раз в
неделю
59. Тайм-аут на «невидимость»
Периодическое обновление информации
Текущее время
О прогрессе обработки в сообщении
7:04 AM
7:09
7:07
7:00 «Забор» сообщения, установка тайм-аута
на «невидимость» на 5 минут Истекает @ 7:05AM
Web Worker Истекает @ 7:09AM
роль роль
Очередь Azure
7:05
7:14
7:09 Worker
Web
роль
роль
Получение прогресса из
Расширение тайм-аута на «невидимость»
очереди и продолжение
на 5 минут
работы
60.
61. Мотивирующие вопросы
• Как интегрировать внешние компоненты с корпоративной
сетью?
• Как предоставить ПО пользователям извне организации?
• Могут ли они использовать свои существующие данные
личности? Социальные личности?
• А что насчѐт более мелких, клиентов не из предприятий?
• Как сократить задержку и увеличить производительность?
• <и так далее…>
62.
63.
64. Проблемы безопасности
Поддержка
Защита данных
Управление
Забыл
пароль
Хранилище
учетных
данных LDAP
Аутентификация,
авторизация
Интеграция с Синхронизация
Facebook
AD
Auth API
Интеграция с
Facebook
67. Термины
• Токен безопасности
• Набор утверждений
• SAML-токен подписывается издателем
• Издатель (Security Token Service)
• Объект, имеющий право выдавать токены
• В отношениях доверия с приложением
• Relying Party
• Приложение
• В отношениях доверия с издателем (провайдером идентификации)
• Умеет работать с токенами безопасности
68. Relying Party Утверждение
Уважаемое приложение, моё имя – Александр, фамилия – Иванов, и это
подтверждается вот этой карточкой, которая была выпущена компанией
Trusted Certificate Issuer.
Провайдер
идентификации
69. Сценарий
Персонал
Ресепшн
Комната
DevCon
Персонал
докладчиков
Участник
2012
Докладчик
Докладчик
Участник
Доклады
Участник Персонал
Докладчик
Участник
Вечеринка
Александр Персонал
…
72. История Azure Active Directory
Exchange
• Active Directory – мультитенантный Online
сервис аутентификации, SharePoint Lync
разрабатывающийся вместе с Office Online Online
365
Azure
• Расширяет Windows Server Active AD
Directory в облако
• Можно использовать для
организаций, где нет Windows
Server AD AD
73. Directory Graph API
• RESTful-доступ к каталогу
• Объекты: пользователи, группы, роли, лицензии
• Отношения: member, memberOf, manager, directReport
• Запросы стандартными HTTP-методами
• POST, GET, PATCH, DELETE
• Ответ: XML или JSON; стандартные коды HTTP
• Совместимо с OData 3.0
• OAuth 2.0 для аутентификации
• Ролевая модель авторизации
82. Шина сообщений Windows Azure Service
Bus
Промышленные Phone, Точки продаж,
SaaS-решение
устройства Tablet, PC киоски
Queues Topics Relays
LOB- Агрегатор Портал
…
приложение событий Sharepoint
83. Функциональные части Windows Azure
Service Bus
Service Bus Relays
доступ к сервисам и данным предприятия
находящимся за NAT и Firewall
Service Bus Queues
клиенты с переменным доступом к сети
выравнивание и балансировка нагрузки
Service Bus Topics and Subscriptions
подписка множества клиентов
на рассылку сообщений
95. Media Services
“Build-On” Media Partners and Customers
Partner CDNs
Azure CDN
“Build-In”
Partner Media
Processors
Origin
Caching
96.
97. Что такое Windows Azure Mobile Services?
Логика сервера Уведомления Ведение журнала
Проверка
подлинности Данные Диагностика Масштабируемость
98. Обзор жизненного цикла push-уведомлений
Windows 8 1. Запрос URI канала
2. Регистрация
в облачной службе
(2) Mobile Services 3. Проверка подлинности
Приложение и push-уведомление
(3)
(1)
(3)
Уведомление
Клиентская Служба push-
платформа уведомлений
Windows
99. Всем спасибо! Ваши вопросы
http://WindowsAzure.com/ru-ru - официальный портал, информация, Trial на 90 дней
http://AzureHub.ru/ - посетите центр разработки для Windows Azure на русском языке
http://TechDays.ru/ - видео-доклады на русском языке для разработчиков
azurerus@microsoft.com – поддержка от экспертов российского Microsoft
Александр Белоцерковский
Windows Azure MVP
ahriman@ahriman.ru
@ahrimantsk
facebook.com/ahrimantpu
ahriman.ru
Hinweis der Redaktion
Slide ObjectiveUnderstand how a Web Role extends the standard worker roleSpeaker NotesA web role takes all the capabilities and semantics of a worker role and adds the IIS Hostable Web CoreWeb Roles run ASP.NET websites- they do this by using the IIS hostage web core. pretty much anything that will work in a standard IIS ASP.NET Web Site should work in Windows Azure. At MIX09, we additionally added support for IIS7’s FastCGI capability. As a note, any files that are part of a asp.net project on windows azure are READ ONLY! If you need to be able to change the contents of files:User Blob StorageIf its configuration, use the service model files – which can be changed at runtime.Inbound protocols are http(s) – outbound protocols are any TCP connection but NOT UDP.Noteshttp://msdn.microsoft.com/en-us/library/dd179341.aspxhttp://blogs.msdn.com/b/carlosag/archive/2008/04/14/hostyourownwebserverusingiis7.aspxhttp://blogs.iis.net/ksingla/archive/2007/12/20/ins-amp-outs-of-hostable-web-core.aspx
Slide ObjectiveUnderstand the 3 common patterns of worker rolesSpeaker NotesPattern 1 – Polling Worker role polls a Queue Pops message Performs work Polls queue againPattern 2 Worker listens for inbound TCP requestCan implement with Raw TcpListeners or use WCF or use Hosted Web CorePattern 3 Run a 3rd party processWhen the role starts up or runs use a Process.Start() call to run a standard windows executable E.g. Running a database serverNoteshttp://blog.smarx.com/posts/build-your-own-web-role-running-hosted-web-core-in-windows-azurehttp://blog.smarx.com/posts/making-songs-swing-with-windows-azure-python-and-the-echo-nest-api
Slide ObjectiveUnderstand the role programming model in overviewSpeaker NotesA role is similar to a windows service. It gets started once deployed, and will get stopped when required.It could get stopped because we are re-deploying you to a different serverYou actioned the stop from the web-portalIt’s up to you to keep running and NEVER return from Start() unless you have been told to stop. Note: you do not need to handle the stop – you can simply “fail”Noteshttp://msdn.microsoft.com/en-us/library/ee848065.aspxhttp://blogs.msdn.com/b/jnak/archive/2010/02/11/windows-azure-roleentrypoint-method-call-order.aspxes
Full Support for IaaS at spring launchWindows Azure PowerShell CmdletsCross Platform Scripting Built on node.jsCapabilitiesProvisioning, RemovalReboot, StartImport and Export VM settingsSupport for Windows and Linux VMsDomain Join at Provision for WindowsFully Customize VM with Data Disks and Endpoint ConfigurationAutomate Virtual Network Settings
Цель слайдаОбъяснить, что такое Shared Access SignaturesТренеру на заметкуShared Access Signatures предоставляют права доступа на контейнеры и блобы на более детализированном уровне, чем просто определением прав доступа на контейнерВыдача доступа пользователю на определенный блоб или все блобы внутри определенного контейнера на определенное количество времени.Определение того, какие операции пользователь может совершать над блобом, доступным по Shared Access Signature. Используйте HTTPS для защиты подписи (это что-то типа пароля, выданного на небольшое время)Два подходаAd-hocИспользуйте для сценариев, когда нужен очень небольшой период доступаОснованный на политикеИспользуйте для сценариев, когда нужен более долгий период доступа с возможностью отзыва разрешенийВсегда старайтесь использовать минимальные привилегииNoteshttp://msdn.microsoft.com/en-us/library/ee395415.aspx
Web-роли заполняют очередь сообщениями 7:00 Worker роль 1 забирает сообщение из очереди и устанавливает таймаут на невидимость на 5 минут – таким образом, сообщение становится видно для других воркеров в 7:05 7:04 Worker роль расширяет таймаут еще на 5 минут – до 7:09Worker роль обновляет сообщение, записывая данные о прогрессе выполнения работ или промежуточными результатами. 7:07 Worker роль 1 умерла7:09 Таймаут на невидимость истекает и роль 2 забирает это же сообщение из очереди с очередным 5минутным таймаутом на невидимость
SB, повторюсь,это компонента WAZ, которая позволяет связывать различные среды, различные компоненты, клиенты, связывать вендоров и поставщиков с помощью шины сообщений. Основа любой СШ – создание пула сообщений и передача их тем клиентам, которым они интересны. Соответственно, с помощью СШ вы можете реализовывать высокомасштабируемые сценарии по осуществлению коммуникаций, подключать сколько угодно клиентов к шине и так далее. На слайде представлены возможные клиенты СШ – SaaS решения, десктопные клиенты, порталы, железные устройства типа телефонов, промышленные, это даже клиенты с переменным доступом к сети, которым необходимо собрать данные и потом отправить их в главный офис. Сообщения накапливаются в кэше у клиента и, когда появляется подключение, сообщения отправляются в базу. Что касается компонентов, то, во-первых, это рилей – это маршрутизаторы, ктоорые позволяют вам пробить NAT/Firewall и вынести сервис наружу. Это типичный сценарий, если вы находитесь за фаерволлом, а нужно вынести наружу внутренний веб-сайт без того, чтобы нарушать различные правила безопасности. C помощью рилея вы можете безопасно подключить внешнего клиента к анным корпоративной сети. Очереди СБ – это механизм, позволяющий обеспечить работу с переменным доступом к сети, и в то же время позволяет создавать приложения с выравниванием нагрузки, при получении большого колва сообщений вы можете выделить несколько очередей и балансировать таким образом нагрузки. Последним компонентом являются темы и подписки. Это необходимо для распространения сообщений среи нескольких клиентов. Например, вы создаете подписку, на нее подписывается определенный набор клиентов, устройств, и они получают сообщения по подписке.Сообщения уничтожаются если у них истекает срок TTLМеханизм TTL помогает защититься от передачи и получения устаревшей информацииОчереди сообщений или рассылки с устаревшими даннымиДиагностика, аудит, ошибки, уведомления об обновлении, статистикаИспользование
Filter conditions operate on message properties and are expressed in SQL’92 syntax InvoiceTotal > 10000.00 OR ClientRating <3ShipDestCtry = ‘USA’ AND ShipDestState=‘WA’LastName LIKE ‘V%’Filters actions may modify/add/remove properties as message is selectedSET AuditRequired = 1
Первый сценарий это веб-сервис, в данном случае для ритейлера. То есть для любых людей, кто занимается коммерцией, этот сценарий знаком и подходит использование для этого сценария СБ. Итак, у нас есть точки продаж (сколько бы их ни было, могут быть сотни, в том числе это могут быть мобильные агенты). Для решения данной интеграционной задачи мы используем СБ очереди для управления очередями заказов. Каждый из агентов, точек продаж отправляет сообщение в очередь о формировании заказа, далее сообщение обрабатывается сервисом, и эти сервисы обрабатывая заказы могут обращаться за фаерволл к корпоративному приложению, которое управляет данными, которые нельзя выставлять на внешний мир. Для этого мы используем безопасные рилеи СБ, проникая в датацентр и получаем некоторые данные и обрабатываем заказы. Последняя часть – мы уведомляем неободимых клиентов, которые подписаны на созданные сервисом, о различных действиях системы – например, скидках и так далее. Это комплексное решение для магазинов ретейлера, и реализует такие функции как: отправка приложениемиз точек продажсообщений в очередь, обеспечение доступа к важным данным из on-premise инфраструктуры и уведомление о событиях между головным офисом и точками продаж.
Второй интересный сценарий - Специализированный сервис, провайдер вычислительных мощностей для обработки данных по запросу. Пользователи отправляют данные для задачи в облачное хранилище, таким образом формируя очередь задач и сообщение для контроллера, принимающего сообщение и решающего, что надо создать новую задачу для обработки данных. Используя сообщения с низкой латентностью внутри инфраструктуры Windows Azure, он обращается к системе и выделяет некоторые мощности. Для мониторинга состояния задач существуют подписки, и каждый экземпляр обработчика сообщает о статусе обработки задачи, клиенты же могут подписаться на эти подписки. На эти подписки подписан также контроллер, на основании данных откуда он может принимать решения. В целом решение работает так: пользователь отправляет задачи через клиентское приложение; задачи обрабатываются в HPC-стилена Windows Azure; пользователи могут следить за прогрессом и получать уведомления.
Третий сценарий, про который я уже немного говорил – это предоставление доступа к внутреннему корпоративному сервису внешним клиентам, вендорам, устройствам. Например, у вс есть данные о сотрудникам, и вам нужно передать их в госучреждение. Итак, мы создаем рилейный сервис, промежуточный сервис и который будет оперировать с внешним миром. Рилейный сервис обращаясь к рилею СБ, создает новый сервис, который находится по этому УРЛ, который будет использоваться внешними клиентами для обращения к данным за НАТом. Теперь клиенты могут обращаться к корпоративному сервису или данным по урлу, с помощью которого эти запросы будут безопасно транслироваться в корпоративную закрытую сеть.
WAMSНикаких сложностей, никаких развертываний, никаких волненийПакет SDK для клиента Windows 8Вскоре появится поддержка iPhone, Windows Phone и AndroidДанныеХранение структурированных данных в базе данных SQL Автоматическое генерирование API службы для хранилищаВозможности выполнения полнофункциональных запросовУведомленияИнтеграция со службами push-уведомлений WNS для подачи уведомлений Toast, Tile, Badge и RawЧеткая объектная модель для создания уведомленийЛогика сервераАвтоматическое генерирование API службы CRUD Возможность создания серверной логики, которая перехватывает конвейер операций CRUDПроверка подлинностиПроверка подлинности в Windows LiveПроверка подлинности на уровне таблиц без кода Более детальный контроль с помощью сценария на стороне сервераВозможности вертикального и горизонтального масштабирования
Служба push-уведомлений Windows (WNS) является бесплатной.