Создание облачных приложений по модели PaaS (Platform as Service) позволяет сосредоточиться на решении задач по созданию программного обеспечения, вместо того чтобы беспокоиться о базовой инфраструктуры. Но иногда построение комплексного решения или интеграция с существующими системами требуется больше контроля, чем предоставляет модель PaaS, требуется контроль над инфраструктурой, т.е. IaaS (Infrastructure as Service). В рамках доклада будут рассмотрены основные архитектурные особенности Windows Azure, которые необходимо учитывать при миграции приложения в PaaS модели, а так же новые инфраструктурные возможности Windows Azure, такие как виртуальные машины и виртуальные сети, которые позволяют использовать IaaS модель миграции.
12. Windows Azure: типовая архитектура решения PaaS
Место для запуска ваших приложений…
Web-роль - преконфигурированная виртуальная
машина с настроенным IIS
Worker-роль – код, не относящийся к веб, бэкенд
для приложений
Вы можете подключаться к вашими ролям, это
просто виртуальные машины
Вы просто размещаете свой код и файлы, а
Windows Azure запускает VM, устанавливает и
запускает код для вас. Балансировщик нагрузки
работает с несколькими экземплярами
13. Сохранение сессий в Windows Azure: stateless
На клиенте (куки) или на серверной стороне (SQL Database, Windows Azure Storage, Windows Azure Caching)
14. Работа с файлами и хранилищем
Windows Azure Table Storage, Windows Azure BLOB Storage
• Локальное хранилище экземпляра является временным
• Централизованное масштабируемое хранилище - Windows Azure Storage
• Надежность: локальная и гео-репликация
• CND (сеть кэширующих серверов)
• Ограничение доступа: SAS (Shared Access Signature)
• Универсальность: REST сервис
• Масштабируемость до петабайт
• Типичная загрузка файлов в ASP.NET - File Upload Control
15. SQL Database
Облачное реляционное хранилище с высокой доступностью (SLA 99,9%) и избыточностью (3 реплики)
Облачное реляционное хранилище
основанное на SQL Server
SQL Server - это cервер
SQL Database - это TDS Endpoint
Используйте те же инструменты, фреймворки для
доступа к данным, язык T-SQL
Дата-центры по всему миру
Высокая доступность & Избыточность
Чтение производится из primary БД
Записи реплицируются во вторичные реплики
16. Работа с реляционными данными (SQL Database)
• Прямая миграция
• T-SQL код в T-SQL
• Комбинированная миграция
• SQL Database
• Windows Azure Table Storage и Windows Azure BLOB Storage
• Шардирование (для БД > 150 Гб)
• SQL Database Federations
• SQL Data Sync Service
• Код – логика повторов (retry logic)
17. Инструменты миграции
SQL Эффекти
Инструмент Схема Database Данные вность Примечания
проверка передачи
BCP Нет - Да Эффективно • Efficient transfer of data to existing table
SSMS Generate Неэффектив • Эффективно for smaller databases
Да Some Да но • Has explicit option for SQL Azure script generation
Scripts wizard
• Simple UI on top of SSIS; also available in SSMS
SQL Server Import &
Нет - Да Эффективно
Export Data
• Most flexibility
SSIS Нет - Да Эффективно
• Great capabilities; e.g. evaluate trace files
SQL Azure Migration
Да Да Да Эффективно • Open source on CodePlex;
Wizard • Нетt supported by MSFT
• Entity containing all database objects including data
DAC (BACPAC) Да Да Да -
• Full SQL Azure support
• Export/import of DAC plus data with DAC framework
DAC Database • Preview available Нетw on SQL Azure Labs; final release
Да Да Да Эффективно
with SQL Server codenamed “Denali”
Import/Export
• Service for cloud-only support coming soon
• Create transactionally consistent copy of SQL Azure
SQL Database Copy Да - Да Эффективно database
• Currently within the same data center
18. Аутентификация и авторизация
• Аутентификация на основе веб-форм
• Перенести ASP.NET Membership Provider в Windows Azure
• Windows аутентификация
• Внести изменения в приложения для использования сервиса Windows Azure
Active Directory Access Control Services (ACS)
• Перенести AD в Windows Azure и настроить синхронизацию
• Идентификация на основе утверждений
• Windows Azure Active Directory Access Control Services (ACS)
19. Windows Azure Active Directory (Identity & Security)
Управления задачами идентификации и контроля доступа для облачных приложений
20. Привязка доменного имени
Адрес *.cloudapp.net
VIP меняется при удалении роли
myservicename.cloudapp.net (передеплои)
TTL 10 секунд
Вариант: использовать CNAME
для *.cloudapp.net
Требуется 2 DNS lookups
Кэширование ограничено из-за низкого
TTL
21. Windows Azure Media Services
Media Services – это работа с медиа-контентом и законченные процессы обработки медиа
Кодирование
22. А так же
Full IIS
RoleEntryPoint - WaIISHost.exe
Веб-сайт - w3wp.exe
Загрузка любого IIS модуля
Startup задачи
Запуск кода при инициализации экземпляра
роли
26. Techdays.ru: архитектура в Windows Azure
Blob
Storag
Browser Distributed cache e
Web Worker
Browser Role Role
N Table
Web Worker Storag
Browser L
Role Role e
B
Web Worker
Browser
Role Role
Browser SQL
Re Re Re Re Databa
q q q q
se
Queue
28. Подходы к миграции
• Создать виртуальную машину в Windows Azure
• Быстро (не требуется загружать vhd)
• Минимум зависимостей (драйвера, библиотеки и т.п.)
• Требуется загрузка и установка приложения и перенос данных и настроек
• Перенести в Windows Azure существующую виртуальную машину
• Приложение, конфигурация и настройки автоматически переносятся
• Могут выявится зависимости от драйверов или других компонентов,
отсутствующих в гипервизоре Windows Azure
• Требуется загрузка vhd в Windows Azure
29. А что если у нас несколько виртуальных машин (VM)?
• Используйте один Cloud Service
• Все VM, расположенные в одном Cloud Service Балансировщик
Имя: myapp1.cloudapp.net Публичный IP
Cloud Service, взаимодействуют
напрямую Virtual Machine
Virtual Machine
DIP
• Имена резолвятся VM имя: iisvm1 VM имя: iisvm2
10.1.5.6 10.1.5.7
автоматически с помощью
Windows Azure DNS Virtual Machine
VM имя: sqlvm1
10.1.5.8
30. Процесс миграции виртуальной машины
• Windows Azure поддерживает VHD формат
• Другие форматы должны быть конвертированы перед миграцией в VHD
• Используйте для загрузки CSUpload.exe
• Поддержка возобновления закачки
• Автоматически конвертирует диск из Dynamic в Fixed Disk
• Эффективная загрузка – нулевые байту пропускаются (не отправляются)
• Перед загрузкой не забудьте!
• Включить удаленный доступ (Remote Access)
31. Windows Azure Virtual Network
• Постоянный IP адрес
• VM, подключенная к виртуальной сети, имеет
бесконечный DHCP-лиз
• Гибридные приложения
• Требуется соединение между облаком и
локальной инфраструктурой
• Соединение между облачными сервисами
• Развернутая AD в облаке
• Интеграция между PaaS и IaaS частями
32. Domain Controller в Windows Azure
Разворачивайте DC в отдельном сервисе (Cloud Service )
ADVNET
Cloud Service for AD Domains Cloud Service for AD Clients
Имя: ad-cloudservice.cloudapp.net Имя: app-cloudservice.cloudapp.net
Группа привязки (Affinity Group): ADAG Группа привязки (Affinity Group): ADAG
Deployment Deployment
Virtual Network: ADVNET Virtual Network: ADVNET
DNS Ips: (On-Premise AD IP) DNS Ips: 192.168.1.4
Virtual Machine DIP Virtual Machine
Role Name: ad-dc Role Name: advm1
Subnet: ADSubnet Subnet: AppSubnet
IP Address: 192.168.1.4 IP Address: 192.168.2.4
33. AD локально
Contoso.com Active Directory
Contoso.com Active Directory
Site-to-Site VPN канал
Аутентификация в AD
+
Доступ к локальным ресурсам
Балансировщик
Public IP
34. AD локально и в облаке
Contoso.com Active Directory
Contoso.com Active Directory
Site-to-Site VPN канал
Репликация AD
+
Доступ к локальным ресурсам AD Auth
Балансировщик
Public IP
35. AD только в облаке
Contoso.com Active Directory
Внешняя Active Directory
Site-to-Site VPN канал
Локальные ресурсы
AD Auth
Балансировщик
Public IP
36. Диски и данные
• Каждый диск – это отдельные I/O
• Контроллер дискашпиндели
• Несколько дисков – повышение производительности (за счет распараллеливания I/O)
• Режимы кэширования (Host Caching)
• None, ReadOnly и ReadWrite режимы
• Для диска данных (DataDisk) по умолчанию None
• Планируйте объемы хранения
• Максимальный размера диск данных - 1TB
39. Интеграция через VIPs
Простой способ взаимодействия через публичный адрес
• Плюсы
• Просто
• Автономно
• VIP Swap (облачный сервис)
• Простое развертывание
• Минусы
• Сетевая задержка выше
• Менее безопасно
40. Прямое соединение через виртуальную сеть (VNET)
Для сложных сценариев, например, Active Directory или DCOM
• Плюсы
• VM не «публикуется» в Интернет
• Низкая сетевая задержка
• VIP Swap
• Минусы
• Более сложная настройка (VNET)
• Нет Windows Azure DNS - потребуется
собственный DNS или общение по IP адресам
43. Бесплатный Windows Azure триал
1 http://windowsazure.com
Если у Вас нет
2 кредитной карты –
создайте виртуальную
карту
3 По умолчанию для
триала установлен
лимит (0 руб) на
списание средств с
карты