AR 301 Архитектура решений в «облаке» - видение Microsoft Дмитрий Мартынов dmitrim@microsoft.com Microsoft Microsoft Платформа 2010 http://msplatforma.ru Microsoft Платформа 2010 http://msplatforma.ru http://images.fanpop.com/images/image_uploads/Old-School-TV-television-296019_1544_1500.jpg Microsoft Платформа 2010 http://msplatforma.ru Microsoft Платформа 2010 http://msplatforma.ru http://www.footage.sg/Movie%20folder/747px-Full_hd_logo_svg.png Готовность приложений к облаку Microsoft Платформа 2010 http://msplatforma.ru Cloud Ready Готовность приложений к облаку Работа локально и в облаке с минимальными изменениями Выбор архитектуры Выбор технологий Выбор методологии и модели Развертывания, управления, разработки, сервисов, приложения, ... Microsoft Платформа 2010 http://msplatforma.ru Вычисления в облаке Основные черты Абстракция инфраструктуры Виртуализированные ресурсы Мощность по требованию Эластичность, пиковые нагрузки Автоматическое управление Оплата за использование Microsoft Платформа 2010 http://msplatforma.ru Архитектура облака Разработка, инструменты Сервисы управления Сервисы безопасности Приложения Прикладные платформенные сервисы Общие сервисы Инфраструктурные сервисы Вычислительные Хранилище Сетевые Платформа хостинга Microsoft Платформа 2010 http://msplatforma.ru Частное облако Динамический ЦОД на платформе Microsoft Прикладные платформенные сервисы SQL Server SharePoint .NET, … Visual Studio, … System Center Forefront, Active Directory Windows, Office, Mobile, Браузер Инфраструктура виртуальных десктопов / VDI Сервисы Windows Server Вычислительные Хранилище Сетевые Виртуализация / Hyper-V Microsoft Платформа 2010 http://msplatforma.ru Windows Azure Platform Облако в ЦОДах Microsoft Прикладные платформенные сервисы SQL Azure .NET Services .NET, PHP, Java, Ruby Visual Studio, … Fabric Controller Сервисы безопасности Веб-приложения и сервисы Инфраструктурные сервисы Windows Azure Платформа хостинга Microsoft Платформа 2010 http://msplatforma.ru Стратегия ПО+Сервисы Software+Services Будущее: гибридная модель Локальное ПО + сервисы через Интернет Выбор размещения Локально, хостинг у партнеров, Microsoft Миграция в облако и обратно Интеграция локального ПО и сервисов Готовность технологий для работы в смешанном режиме Microsoft Платформа 2010 http://msplatforma.ru ПРАКТИКИ ПРОЕКТИРОВАНИЯ И ВЫБОР ТЕХНОЛОГИЙ Microsoft Платформа 2010 http://msplatforma.ru Философия Azure Масштабирование Как увеличение так и уменьшение мощности Поощеряет правильную архитектуру Модульность Слабое связывание Сервисная ориентированность Постепенное использование облака Сохранение навыков Интероперабельность Microsoft Платформа 2010 http://msplatforma.ru Некоторые аспекты решений Для облака и локально Процесс и средства разработки Архитектура Интеграция ЦОД-Облако Технологии Операционные атрибуты Масштабирование Безопасность Отказоустойчивость Microsoft Платформа 2010 http://msplatforma.ru Процесс и средства разработки Разработка и отладка приложений Эмуляция Windows Azure локально Поддержка Visual Studio Включая бесплатные Express Интеграция со средствами ALM Такими как Team Foundation Server Поддержка других языков, фреймворков, средств разработки Microsoft Платформа 2010 http://msplatforma.ru Архитектура Интеграция ЦОД - Облако Разделение на уровни Хранение состояния Клиент Бизнес-логика Сервисы Доступ к данным Хранилище Уровень представления Уровень бизнес-логики Уровень доступа к данным Данные Microsoft Платформа 2010 Сервисы http://msplatforma.ru Интеграция ЦОД - Облако .NET Service Bus BizTalk “Dublin” Сервер приложений в Windows Server Сервисно-ориентированная архитектура Microsoft Платформа 2010 http://msplatforma.ru Разделение на уровни Отсутствие сложных зависимостей Возможность замены модулей Расширяемость Модель плагинов MEF – Microsoft Extensibility Framework Слабое связывание KISS – Keep It Simple Stupid Microsoft Платформа 2010 http://msplatforma.ru Хранение состояния Не хранить в бизнес-логике! Stateless модель Провайдер сессии ASP.NET Session State Provider для Azure Tables Замена в конфигурации web.config Microsoft Платформа 2010 http://msplatforma.ru Кэширование Толстый клиент – готовый кэш Кэширование на клиенте и сервере Встроенный кэш ASP.NET AJAX – кэш данных на клиенте Распределенный кэш Velocity Content Delivery Network (CDN) Azure BLOB (сейчас 18 узлов) Библиотеки AJAX Microsoft Платформа 2010 http://msplatforma.ru Клиент Связь может быть ненадежна! Повтор передачи Принцип idempotency Повтор операции не меняет результат Multi-tenant ASP.NET MVC Rewrite Module Microsoft Платформа 2010 http://msplatforma.ru Multi-tenancy Персонализация интерфейса Интерфейс Персонализация интерфейса Изоляция бизнес-логики Бизнес-логика Изоляция бизнес-логики Изоляция данных Данные Изоляция данных Microsoft Платформа 2010 http://msplatforma.ru Бизнес-логика .NET или unmanaged WF 4.0 Появится в Azure с выходом .NET 4.0 Web-роль - IIS Worker-роль – Windows Service Microsoft Платформа 2010 http://msplatforma.ru Доступ к данным Компоненты DAL Упрощают замену провайдера ADO.NET Data Services Протокольная совместимость с Azure Tables Silverlight RIA Services Entity Framework LINQ Microsoft Платформа 2010 http://msplatforma.ru Хранилище Реляционная БД SQL Server SQL Azure Нереляционная БД Azure Storage Совместима с ADO.NET Data Services Интеграция данных SQL Server Integration Services Multi-tenancy Кастомизация схемы Расширение схемы Вертикальные таблицы (key, value1, value2, …) Microsoft Платформа 2010 http://msplatforma.ru Безопасность На основе удостоверений (claims) Федеративная безопасность Федерация с AD в частном облаке ADFS v2 Windows Identity Framework HTTPS Хранилище сертификатов Microsoft Платформа 2010 http://msplatforma.ru Развертывание IIS Web Deployment для ЦОД Виртуализация ОС, представления, приложений Azure Замена test<->production Обновление на месте Hyper-V Live Migration Microsoft Платформа 2010 http://msplatforma.ru ПАТТЕРНЫ ПРИЛОЖЕНИЙ Microsoft Платформа 2010 http://msplatforma.ru Паттерн #1 – Scale-out UI BL Microsoft Платформа 2010 Data http://msplatforma.ru Паттерн #1 – Scale-out UI BL UI BL UI NLB NLB • Уровни • Stateless • Сессии BL UI BL UI BL Microsoft Платформа 2010 Data http://msplatforma.ru Паттерн #2 – Compute UI BL Microsoft Платформа 2010 Data http://msplatforma.ru Паттерн #2 – Compute • Слабое связывание • Асинхронные обработки • Паралелльные вычисления Table BL UI BL Data BL Queue Microsoft Платформа 2010 http://msplatforma.ru Паттерн #3 – Storage UI BL Microsoft Платформа 2010 Data http://msplatforma.ru Паттерн #3 – Storage • «Код близко» • Кэширование UI BL Microsoft Платформа 2010 Data http://msplatforma.ru Паттерн #3 – Storage • «Код далеко» • Пакетные операции UI BL Microsoft Платформа 2010 Data http://msplatforma.ru Паттерн #4 – Communications App App Microsoft Платформа 2010 http://msplatforma.ru Паттерн #4 – Communications Service Bus App App App App App • Интеграция ЦОД - Облако • СОА Microsoft Платформа 2010 http://msplatforma.ru Сравнение технологий Windows Azure Platform и частное облако Windows Azure Platform Частное облако Web роль Windows Server 2008 R2, IIS Worker роль Windows Service Service Bus BizTalk Server, WCF, WF, “Dublin” Access Control ADFS v2, Windows Identity Framework (Geneva) Azure Tables ADO.NET Data Services Azure Queue MSMQ, SQL Server Service Broker Azure Blobs SharePoint Services, WCF REST SQL Azure SQL Server 2008 Fabric Controller System Center Virtual Machine Manager Microsoft Платформа 2010 http://msplatforma.ru Dynamic Datacenter Toolkit Частное облако для организаций Microsoft Платформа 2010 http://msplatforma.ru Резюме Наша стратегия: ПО+Сервисы Готовьте приложения к облаку Собственному, партнерскому, общему Пробуйте Windows Azure! Microsoft Платформа 2010 http://msplatforma.ru Ресурсы www.azure.com www.microsoft.com/privatecloud Dynamic Datacenter Toolkit (2010 год) Professional Developers Conference ‘09 www.microsoftpdc.com 17-18 Ноября пленарные доклады Live Microsoft Платформа 2010 http://msplatforma.ru ВОПРОСЫ Microsoft Платформа 2010 http://msplatforma.ru Microsoft Платформа 2010 http://msplatforma.ru