Post on 07-Feb-2016
description
Алексей БоковЭксперт по технологиям Windows Azure
Технологические преимущества Windows Azure
Вопросы в twitter: хэштег #azurecamp
Содержание:
• Инфраструктура Windows Azure
• Облачные сервисы – эффективность vs контроль
• Архитектура приложений в Windows Azure
• Надежность и отказоустойчивость
• Принципы работы сервисов в Azure
• Технологические преимущества
Инфраструктура Windows Azure
24 узла в CDN
6 датацентров
Датацентры Windows Azure
Облачные сервисы: эффективность vs контроль
= предоставляетсяОблачным сервисом
Своисервер
ы
IaaS PaaS SaaS
Приложение
Системные библиотеки
База Данных
Операционная система
Управление виртуализацией
Сервер ( железо )
Файловое хранилище
Сеть
Windows Azure
ЭффективностьКонтроль
Базовая парадигма сервисов в Windows Azure : надежность и масштабируемость• Масштабирование по нагрузке
• Масштабирования по объему данных
• Асинхронное взаимодействие компонент
• Параллельная обработка запросов
• Хранение данных приложений в облачных
хранилищах
• Взаимодействие компонент-cервисов через REST
Архитектура приложения Windows Azure
Front-EndFront-
End
HTTP/HTTPSWindows
AzureStorage,
SQL Azure
AzureLoad
Balancer
Back-end
worker
Типичное облачное приложение состоит из нескольких
компонент :
• Front-end – веб-портал находящий за балансировщиком
нагрузки
• Back-end worker – реализация логики приложения :
обработка пользовательских данных, например
транскодирование видео
• Хранилище данных – в базе данных ( реляционная, NoSQL )
или файлы
• Все компоненты системы существуют в нескольких
экземплярах для увеличения надежности систему и
поддержки высокой доступности сервиса для пользователей
Модель облачных сервисов Windows Azure
• Запущенный в Windows Azure сервис состоит из:
• Определения сервиса ( в т.ч. код приложения )
• Конфигурации сервиса
• Как минимум одной запущенной роли
• Роль в Windows Azure это фактически код
приложения имеющий входную точку и запущенный
в своей виртуальной среде
• Высокий SLA для запущенных сервисов достигается:
• Если запущено не менее 2 инстансов каждого
типа – SLA 99.95% на доступность при обращении
• Использованием технологии fault domains и
update domains
Update domains как средство повышения доступности
• Цель – высокий уровень доступности
приложения при обновлениях сервиса и
системных апдейтах Windows Azure OS
• Windows Azure использует информацию о
доменах при обновлении сервиса:
• При обновлениях недоступно не более 1/кол-
во update domains
• SLA Windows Azure предполагает наличии не
менее 2 update domain и не менее 2 инстансов
каждой роли в каждом домене
Fault domains повышают отказоустойчивость
• Цель – избавиться от single point of
failure:
• Концепция как у update domains
• Но Вы не контролируете
обновления
• Ресурсы в Failure domains
объединяются в соответствии с
топологией датацентра
• Windows Azure использует информацию
о fault domians при размещении ролей
сервиса
• Один сервис располагается как
минимум на 2 fault domain
• Windows Azure максимально
распределяет сервисы по fault
domains
Front-End-1
Fault Domain 1
Fault Domain
2
Front-End-2
Middle Tier-2
Middle Tier-1
Сервисы и роли в Windows Azure
• Определение роли :
• Имя роли и ее тип ( web, worker, vm )
• Типа виртуальной машины ( от small до extra large )
• Входные точки в сервис
• Код сервиса:
• Приложение ( web/worker роль )
• Образ VHD ( vm роль )
• Конфигурация :
• Количество запущенных инстансов
• Количество update domains и failure domains
Типы ролей в Windows Azure
• Web роль – IIS7 и ASP.NET приложения
запущенные в Windows Azure OS
• Worker роль – приложение выполняемое в
Windows Azure OS
• VM роль – приложение выполняемое в среде с
образа
VHD ( образ созданный при помощи HyperV )
• Все роли – stateless
• VM роль рекомендуется для:
• Сервисов которые требуют долгой или
ручной инсталляции и конфигурации
Как работает загрузка и запуск сервиса
• Определение сервиса – ServiceDefinition.csdef
• Конфигурация сервиса – ServiceConfiguration.cscfg
• service package file – zip архив с кодом приложения,
скриптами настройки и файлом определения сервиса
• Загрузка сервиса в Windows Azure :
• Через веб-портал service package file загружается
в Windows Azure ( в Red-Dog Front End – RDFE )
• RDFE выполняет преобразования service package
file и загружает его в Fabric Controller нужного
региона
• Fabric Controller сохраняет образ сервиса в
репозитории, загружает сервис в виртуальную
машину и начинает выполнение сервиса
Технологии Windows Azure – хранение данных
Table Storage: sпростые структурированые данные, доступ через REST API
QUEUES: предназначены для последовательной обработки данных или событий
Блобы: большие, неструктурированныеданные ( видно, аудио и тп ). Для доставки контента конечному пользователю можно использовать CDN
Azure Drive: облачное файловое хранилище ( на базе блобов ), доступно через NTFS API
Реляционная облачная база данных SQL Azure
• Реляционная SQL база данных – как сервис
• 95% баз данных MS SQL могут быть перенесы в SQL
Azure без значительных изменений
• Ограничения по размеру на одну федерацию
( партицию ) – 150 Гб
• Есть ограничения по функционалу – нет Analysis
Services, Reporting, SQL Agent, CLR
• Высокая отказоустойчивость – каждая база имеет 2
полные реплики которые синхронизуются с основной
бд в реальном времени
Сервисы в Windows Azure
…
Fabric
Compute Storage
Application
Fabric Controller
Web роль
Agent
Worker роль
Agent
Batch Job, Java, Tomcat, Apache, etc.
Load Balanc
er
HTTPIIS
ASP.NET, WCF, PHP,
etc.
VM роль
Agent
VHD based
Что еще - Service Bus и Access Control
Преимущества Windows Azure
• Поддержка широко распространённых технологий,
в том числе open-source
• Высокий SLA на предоставляемые сервисы
• Облачная реляционная БД SQL Azure
• Один из самых больших CDN
• Быстрая реакция на потребности в технологиях и
регулярное появление новых возможностей
Windows Azure
• Большое количество обучающих материалов и
тренингов
• Активное взаимодействие с сообществом
разработчиков
• Технологические консультации экспертов Microsoft
Что есть полезного для разработчиков
• Отличная интеграция и поддержка
инструментария Microsoft – Visual Studio
• Поддержка open-source – популярные средства
разработки
( Eclipse ), фреймворки ( drupal, joomla),
приложения ( wordpress ), технологии ( map/reduce
– hadoop ) и т.д.
• Множество open-source инструментов для
разработки – android toolkit, ios toolkit и тд.
• Поддержка – php, java, ruby ( всё что может быть
запущено на Windows )
• Локальный эмулятор сервисов Windows Azure –
DevFabric –для разработки и отладки сервисов
Azure на лэптопе
Боков Алексейemail: abokov@microsoft.com
Спасибо за внимание ;-)