Разработка облачных решений — зачем и как? Роман Здебский Руководитель группы экспертов Microsoft Россия http://blogs.msdn.com/roman
Dec 14, 2014
Разработка облачных решений — зачем и как?
Роман Здебский
Руководитель группы экспертовMicrosoft Россия
http://blogs.msdn.com/roman
Цели доклада
Дать понимание применимости облачной разработки, отличия от других типовДать технический обзор платформы Windows AzureДать полезную информацию для принятия архитектурных решений и прототипирования
Содержание
Что такое облако, основные отличияСфера применимостиАрхитектура Windows AzureВычислительные возможностиВозможности хранения информацииВозможности интеграцииКросс-платформенные возможностиБудущее
Что такое «облако» (cloud)?Простое определение – веб-сервисы и/или веб-
приложения
Классическое определение – предоставление ИТ как стандартизованного сервиса
Браузер
Клиентское приложение
Серверное приложение или служба (сервис)
Веб-приложения
Веб-сервисы
Cloud
Вычислительные
мощности
Где может находиться облако?
ЦОД компанииЧастное облакоPrivate Cloud
ЦОД партнера или хостераПартнерское облакоPartner Cloud
ЦОД MicrosoftПубличное
облакоPublic Cloud
Веб-приложения
Веб-сервисы
Cloud
Вычислительные
мощности
Как выглядит публичное облако?
Глобальная сеть ЦОДов
АзияСеверная Америка Европа
Seattle, WA Newark, NJ
Miami, FL
Chicago, IL
San Antonio, TX
Bay Area, CALos Angeles, CA
São Paulo, BR
Ashburn, VA
Dublin, IELondon, GB
Amsterdam, NL
Sydney, AU
Hong Kong, HK
Paris, FRZurich, CH
Vienna, AT
Singapore, SG
Taipei, TWN
Seoul, KR
Stockholm, SE
Moscow, RU
Tokyo, JP
TV/HOMEPC MOBILE
Опыт Microsoft
25млн пользователей Xbox
Live
530млн активных Windows Live ID
368млн пользовате
лей Hotmail
Более 4млрд поисков
каждый месяц
Более 6млн
песен в каталоге
Более 459млн уникальных
пользователей
Более 303млн пользователе
й в месяц
Типы облачных решенийСобственная
инфраструктура
Системы хранения
Серверы
Сеть
ОС
Связующее ПО
Виртуализация
Данные
Приложения
Среда выполнения
Обсл
уж
ивается
вам
и
Инфраструктура (как сервис)
Системы хранения
Серверы
Сеть
ОС
Связующее ПО
Виртуализация
Данные
Приложения
Среда выполнения
Обсл
уж
ивается
вен
дор
ом
Обсл
уж
ивается
вам
и
Платформа
(как сервис)
Обсл
уж
ивается
вен
дор
ом
Обсл
уж
ивается
вам
и
Системы хранения
Серверы
Сеть
ОС
Связующее ПО
Виртуализация
Приложения
Среда выполнения
Данные
Приложение
(as a Service)
Обсл
уж
ивается
вен
дор
ом
Системы хранения
Серверы
Сеть
ОС
Связующее ПО
Виртуализация
Приложения
Среда выполнения
Данные
Типы облачных решенийПлатформ
а(как
сервис)
Обсл
уж
ивается
вен
дор
ом
Обсл
уж
ивается
вам
и
Системы хранения
Серверы
Сеть
ОС
Связующее ПО
Виртуализация
Приложения
Среда выполнения
Данные
Ваши приложения
Azure в России
Предлагается компанией SoftLineazure.softline.ruВ составе решения по биллингу и предоставлению сервиса
Оплата в рубляхБанковский перевод
или allsoft.ru
Зачем? – отличия от хостинга
Использование
Вы
чи
сл
ени
я
Время
Среднее
Период
Неактивности
“Включение и выключение“
Среднее Использование
Вы
чи
сл
ени
я
Время
“Быстрый рост“
Вы
чи
сл
ен
ия
Время
“Непредсказуемые пики“
Среднее Использование В
ычи
сл
ен
ия
Время
Среднее Использование
“Предсказуемые пики“
Хостинг как правило не обладает эластичностью - неограниченной адаптируемостью
• turbotax.com • taxcut.com
• hrblock.com • taxact.com
Source: Alexa
~4x нормальной нагрузки
(Holiday shopping)
~10x нормальной
нагрузки(налоговый
период)
• target.com • walmart.com
• toysrus.com • barnesandnoble.com
Jan 2009 Jan 2010 Jan 2009 Jan 2010
Source: Alexa
Экономия на масштабах с точки зрения нагрузкиПеременчивость индустрии
Архитектура Windows Azure
Operating System and Database:
Application Runtimes, Frameworks, and Tools
.NET Java PHP ………
Application Services
Compute
VMs WebWorke
r…
Storage
Blobs TablesQueu
es…
Network
Connect CDN GTM …
Database
Relational Databases
Caching
Distrib. Cache
Partitioning
Messaging
Pub/Sub Relay
Identity
ACLsFederatio
n
Data Synchronization
DB-to-DBClient Sync
Reporting
Reporting Analytics
Platform AppFabric
Платформа Windows Azure
Архитектура Windows Azure
Fabric ControllerFabric
Системы хранени
я
Вычисления
Fabric Controller автоматическое балансирование нагрузки по вычислениям и масштабирование ресурсов
Безопасность и контроль включает шифрование систем хранения, аутентификация, шифрование HTTPS. Индустриальная сертификация - часть подхода Windows AzureГеографически распределенные мощные ЦОДразмещение приложений и данных, доступных через интернет в соответствии с правами доступа
Вычисления обеспечивают масштабируемость приложений. Разработчики могут создавать комбинацию web и worker ролей. Эти роли могут быть реплицированы по требованию, чтобы масштабировать приложения и вычислительные мощности
Системы хранения позволяют клиентам масштабировать большие массивы данных в любом формате, в течение любого времени, с оплатой только того, что вы храните и используете.
Windows Azure вычисленияWeb и Worker роли
Сервис состоит из ‘n’ инстанций Web роли и ‘m’ инстанций Worker роли (n,m≥0)Сервис масштабируется с помощью управления количеством инстанций ролейКаждая роль состоит из кода, локальных данных, конфигурации и запускается в выделенной виртуальной машинеВсе Web роли и некоторые Worker роли обеспечивают внешние точки вызовов и балансируются по нагрузкеПростой шаблон – асинхронный Web|Worker в котором Web-Worker коммуникации между ними идет через очереди Windows Azure
Worker
roleLB
QWeb role
Вычисления Windows AzureРоль Virtual Machine (VM) Упрощение миграции конфигураций
на базе Windows Server на Windows Azure
Расширение спектра конфигураций на базе Windows Server, которые могут работать в Windows Azure
Worker role
Web role
VMrole
Web и Worker Роли
Демонстрация
Remote DesktopИнтегрировано с порталом управления Windows AzureRemote Desktop доступ к инстанциямИспользование стандартного клиента Remote Desktop
• Поддерживается для всех 3 типов ролей
• Динамическая конфигурация настроек
• Выключение и включение балансировщика нагрузки для отладки
Инфраструктура основана на виртуальных машинах
Гибкие возможности масштабирования и стоимости
От Extra Large до Extra SmallМожно использовать вместе инстанции разной мощностиМожно гибко на лету менять мощность массива
Instance Size CPU Memory Instance Storage I/O Performance Price
Extra Small 1.0 GHz 768 MB 20 GB Low $.05 per hour
Small 1.6 GHz 1.7 GB 225 GB Moderate $.12 per hour
Medium 2 x 1.6 GHz
3.5 GB 490 GB High $.24 per hour
Large 4 x 1.6 GHz
7 GB 1000 GB High $.48 per hour
Extra Large 8 x 1.6 GHz
14 GB 2040 GB High $.96 per hour
Системы хранения Windows AzureМасштабируемые и надежные
Blobs: Системы хранения для данных большого объема (файлы) и метаданных доступные в виде страниц и потоков (stream)Tables: Структурированная система хранения нереляционных данных (entities) Queues (очереди): В основном для асинхронных коммуникаций между Web и Worker ролямиDrives (диски): NTFS диски для приложений Windows Azure – хранение в виде blob.
SQL AzureРеляционные данные как сервис
Построен на движке SQL Server 2008 R2, легкость создания и разворачивания баз. Высокая доступность и отказоустойчивость, не требуется физического администрирования.Обеспечивает Transact-SQL (T-SQL) через Tabular Data Stream (TDS) поддерживает ODBC и ADO.NET, LINQ, WCF Data Services (ранее “ADO.NET Данные Services”) и ADO.NET Entity FrameworkПоддерживает базы до 50GBСуществующие инструменты работы с SQL Server для SQL AzureПоддерживает Data Sync Services, гео-данные, OData и Microsoft Office 2010
Масштабируемость, доступность, отказоустойчивость, репликация
VM 5SQL Server
SQL DBUserDB1
UserDB2
UserDB3
UserDB4
SQL Azure базы данных (Данные, учетные записи, роли, …, биллинг)
VM 6SQL Server
SQL DBUserDB1
UserDB2
UserDB3
UserDB4
VM 4SQL Server
SQL DBUserDB1
UserDB2
UserDB3
UserDB4
Отчеты в SQL AzureВозможности
Базируется на SQL Server Reporting ServicesИнтерактивные и табличные отчетыВизуализация: диаграммы, графики, карты, шкалыSQL Azure базы данных и источники данныхРазработка отчетов а BI Developer Studio
СценарииОперативные отчеты на основе данных SQL AzureВстроенные отчеты в приложения Windows Azure
Web Role Reporting
Что такое AppFabric?• Связующее сервисное ПО
• Возможности платформы как сервисы
• Композитные приложения
• Масштабируемая инфраструктура приложений
AppFabric Сервисы
.NET + AppFabric
Compositio
n модель и инструмен
ты
AppFabric Контейнер
SQL Azure
Windows Azure
AppFabric Управлени
е
AppFabric Services
Кеширова-ние
Сервисная шина
Контроль доступа
Интеграция
Композитные приложения (WF, WCF)
Connectivity ServicesSoftware Services
Data SynchronizationSQL Azure Data Sync
Application-layer Connectivity &
Messaging Windows Azure AppFabric Service
Bus
SecurityFederated Identity and Access Control
Secure Network Connectivity
Windows Azure Connect
Windows Azure Content Delivery NetworkПозволяет доставлять контент из узлов наиболее близких к пользователям
www.customer.com
Azure Storage
ECN NODE…
EDGE CACHING SERVERS
ECN NODE 2 - TOKYO
EDGE CACHING SERVERS
ECN NODE 1 - LONDON
EDGE CACHING SERVERS
Удобство пользователя,
скорость, лучшая монетизация
Windows AzureSelf-service portal
Enable CDN forAzure storage
Клиент
Access Control Service 2.0
Обеспечивает поддержку аутентификации от ряда провайдеров
Live ID, Facebook, Yahoo, & Google, и ADWS-Federation, WS-Trust, OpenID 2.0, OAuth 2.0
Привычная и целостная модель .NET программирования
Использует существующие Windows Identity Foundation SDK и Assemblies
REST-based Service Management APIИнтегрирование в ваши приложения и панели управления
Доступно сейчас Бесплатно в период продвижения до January 1, 2012Низкая стоимость после этого: $1.99 per 100,000 transactions
Windows Azure Traffic Manager
СкоростьНаправляет
пользователя к ближайшей/
лучшей инстанции
Отказоустойчивость
Перенаправление трафика на
основе доступности (нагрузки)
Round RobinПеренаправлени
е трафика на основе
коэффициента (алгоритма)
Load balancing нескольких сервисовИнтегрирован с порталом Windows Azure Platform3 сценария поддерживается в CTP
Windows Azure AppFabric CachingРаспределенный in-memory кэш для
Windows Azure приложенийIntegrate directly with the cache using a .NET client librarySession state provider для Windows Azure приложений
Кеш предоставляется как building block service
Конфигурируется AppFabric NamespaceВыбирается размер кешаПишется сервисный код
Знакомые.NET APIsТе же APIs как Windows Server AppFabric
CTP доступен сегодня http://portal.appfabriclabs.com
Портал управленияУниверсальный портал по управлению Windows Azure сервисамиПостроен на Windows Azure service management APIWindows Azure
Создание и удаление сервисов, Управление учетными записями
SQL AzureСоздание и удаление серверов и баз данныхУправление настройками брандмауэра.
AppFabricСоздание и удаление пространств имен AppFabric Service Bus и сервисов управления доступом
Ср
ед
а в
ыпол
нени
яs и
сер
ви
сы
http:// REST Web ServicesXMLoДанные AtomPub RSS
Ap
pFab
ric
SD
Ks
Удобство разработчикаИспользование
существующих навыков и инструментов. Windows Azure
Tools for Windows Azure Command-Line Tools for
Windows Azure Companion
Win
dow
s
Azu
re
SD
Ks
Платформа Windows Azure- открытая платформа
Windows Azure Tools for Eclipse for Java
Полноценное удобство разработки в Eclipse для Windows Azure
Интеграция с множеством Java App ServersПоддержка
Windows Azure Storage и SQL AzurePersistent Storage - Windows Azure DriveHTTPs
Интегрированная диагностика, мониторинг и ведение логовРазворачивание в облако за один кликПоддержка Windows Azure Platform SDKs & Drivers
Windows Azure AppFabric SDK for Java Microsoft SQL Server JDBC Driver
Java App Server на Windows Azure1. Специальная Windows Azure worker role
Позволяет включить JRE & Java App Server по вашему выборуЗапуск сервера во время старта роли - WorkerRole.run()
Установка информации окружения – порты, файлыУстановка хранения данных – Windows Azure StorageДиагностика установки
2. Tomcat Solutions Accelerator3. Административный доступ (Задачи на старте)
Выполнение коротких автоматических установок при старте роли. Например установка JRE, Web Server Package и Boot Strap Java Web Server
4. VM Role
Windows Azure SDK для PHPПозволяет PHP разработчикам создавать приложения, использующие инфраструктуру Windows Azure Storage & Service Management используя знакомую программную модель.
ВозможностиНабор PHP классов для Windows Azure Blobs, Tables & Queues ( CRUD операции) и Service ManagementHelper классы для HTTP транспорта, AuhN/AuthZ, REST & управления ошибкамиПоддержка управления, инструментирования и ведения логовРаспространяется через Zend Framework
Windows Azure SDK for PHP
Blobs, Tables, Queues
Manageability, Instrumentation,
logging
Helper for Http, Auth, REST,
Error
Ваше PHP приложение
Compute Storage Manage
REST
Архитектура Windows Azure
Operating System and Database:
Application Runtimes, Frameworks, and Tools
.NET Java PHP ………
Application Services
Compute
VMs WebWorke
r…
Storage
Blobs TablesQueu
es…
Network
Connect CDN GTM …
Database
Relational Databases
Caching
Distrib. Cache
Partitioning
Messaging
Pub/Sub Relay
Identity
ACLsFederatio
n
Data Synchronization
DB-to-DBClient Sync
Reporting
Reporting Analytics
Platform AppFabric
Дополнительная монетизация
Онлайн магазин для разработчиков и ит-
специалистов - строительные блоки, компоненты, услуги и законченные сервисы
и приложения.
Поиск приобретение и использование
структурированных и blob массивов данных.
Планируется интеграция с Office, SQL, Dynamics для мгновенного получения данных пользователями.
Windows Azure Platform appliance
Сервис-провайдерКлиент
Microsoft
Windows Azure PlatformAppliance
Windows Azure PlatformAppliance
Развитие платформы MicrosoftИнвестиции в развитие более $9 млрд.
Бизнес приложения
Совместная работа
Хранение ПлатформаУправлениеПродуктивность Коммуникации
Разработка для облачных решений Microsoft
• Exchange Web Services (EWS) • Разработка под SharePoint Online - “No-
Server-Code” – SharePoint Designer, “Farm” - Visual Studio 2010, решения в «песочнице»
Кто уже использует?
Ресурсы
Главный портал:http://www.azure.com/
Вебкасты на русском языке:http://www.techdays.ru/Search.aspx?Quick=Azure
Центр на российском MSDN:http://msdn.microsoft.com/ru-ru/ff380142.aspx
Дополнительные материалы
Elastic, scalable, secure, and highly available
automated service platform
Pay as you go and grow for only what you use when you use it
Highly available, scalable, and self managed
distributed database service
Compute
$0.12/hour+ Variable
Instance Sizes
Per service hour
Web EditionPer
database/month $9.99 to
$49.95/month(up to 5 GB DB/month)
Business Edition
$99.99 to $499.95/month
(up to 50 GB DB/month)
Per database/month
Storage Per GB stored
and transactions$0.15
GB/month$0.01/10k
transactions
Windows Azure Platform Consumption Prices
Windows Azure platform AppFabric Service Bus and Access ControlScalable, automated, highly available services for secure connectivity
Content Delivery Network$0.15 per GB for data
transfers from European & North American locations
$0.20 per GB for data transfers
from other locations
$0.01 per 10,000 transactions
Prices shown in USD only
Access Control$1.99/per 100,000
transactions
Per Message Operation
$3.99/per connection to $995 for 500 connections
Per Message Operation
Service Bus
International prices are available
Monthly Service Level Agreement
All running roles will be continuously monitoredIf role is not running, we will detect and initiate corrective state
>99.9%
Instance
monitoring and restart
Database is connected to the internet gateway All databases will be continuously monitored
>99.9%
Database
availability
>99.9%
Service bus and access control endpoints will have external connectivityMessage operation requests processed successfully
Service bus and access
control availability
Your service is connected and reachable via web. Internet facing roles will have external connectivity
>99.95%
Compute
connectivity
>99.9%
Storage service will be available/reachable (connectivity)Your storage requests will be processed successfullyContent Delivery Network (CDN) enhances end user performance and reliability
Storage
availability