Архитектурные сценарии облачных приложений

advertisement
Архитектурные сценарии
облачных приложений
Сценарии интеграции
Архитектурные сценарии
облачных приложений
Алексей Федоров
Дмитрий Мартынов
Определение облачных вычислений
Стиль вычислений, при котором удаленные
вычислительные ресурсы и приложения доступны
через сеть в виде сервисов
Особенность
Влияние на архитектуру
Сервисы
Сервисно-ориентированная
архитектура
Удаленность
Отказоустойчивость
Серверные приложения
Диагностика и отладка
Вычислительные ресурсы
Доступные прикладные сервисы
Атрибуты облака






Масштабируемость
Эластичность
Мульти-тенантность
Оплата за использование
Самообслуживание
Инфраструктура по запросу
Коцепция Windows Azure Platform





Платформа для создания приложений (PaaS)
Поощрение правильной архитектуры
Возможность постепенного перехода
Сохранение существующих навыков
Взаимодействие с другими платформами
Как использовать облако?



Размещение приложения в облаке
Потребление сервисов из облака
Создание собственного облака



Стать хостером и предоставлять сервисы другим
Частное облако для внутренних нужд
Создать платформу приложений поверх PaaS общего
назначения
Размещение приложений в облаке


Код приложения и/или данные в облаке
Варианты развертывания:
Приложение (PaaS)
 Виртуальная машина (IaaS)


Варианты реализации:


Веб-приложение или Веб-сервис
Фоновый процесс
Развертывание приложений (PaaS)




Веб-сервис или фоновый сервис
Облако управляет «жизнью» приложения
Нужно учитывать атрибуты облака
Ключевые требования к архитектуре
Масштабируемость
 Отказоустойчивость
Рекомендуется:
 Сервис-ориентированная архитектура
 >= 3-х уровневая архитектура
 Мульти-тенантность
 Управляемость (встроенная диагностика)
 Поддержка федеративной безопасности

Развертывание виртуальных машин





Облако управляет виртуальной машиной
Шире спектр приложений
Желательно следовать архитектурным требованиям
Административный доступ к виртуальной машине
Подходит для миграции приложений
Миграция приложений

Кандидаты для миграции:
3-х уровневые приложения
 Веб-приложения и сервисы
 Автономные алгоритмы


Дополнительно учесть:




Серверная платформа x64
Совместимость базы данных
Поддержка использованных технологий
Доступ к ОС
Потребление сервисов из облака



Плавная миграция в облако
Расширение приложений сервисами (СОА)
Стандартные Интернет-протоколы



HTTP(S), SOAP, ATOM
Кандидаты: распределенные приложения
Примеры: архив, финансовые расчеты
Плавный переход в облако - данные
Частичный перенос данных в облако
Важна стоимость хранения
Повсеместный доступ
Примеры:
• Архивы и резервные копии
• Справочники
• Большие цифровые объекты
Плавный переход в облако - код
Частичный перенос кода в облако
Данные трудно или невозможно перенести
Временный доступ к данным
Примеры:
• Финансовые расчеты
• Обработка анкет
• Обработка изображений
Плавный переход в облако - интеграция
Интеграция приложений
через облако
Примеры:
• Сбор данных с удаленных
площадок
• MMORPG
Полный переход в облако - SaaS
Максимальное использование
возможностей облака
Примеры:
• CRM
• Порталы
• Бизнес-приложения
Требования к архитектуре приложения в облаке



Масштабируемость
Отказоустойчивость
Рекомендуется:





Сервис-ориентированная архитектура
>= 3-х уровневая архитектура
Мульти-тенантность
Управляемость (встроенная диагностика)
Поддержка федеративной безопасности
Масштабируемость

Распределение нагрузки по компонентам
Балансировка сетевой нагрузки (NLB)
 Горизонтальные и вертикальные разделы БД
 Очереди и пакетные обработки
 Параллельная обработка




Не хранить состояние/сессию в памяти
Разделение на уровни
Асинхронность
Отказоустойчивость





План резервного копирования и восстановления
Не полагаться на память виртуальной машины
Использовать надежное хранилище для хранения
состояний и промежуточных шагов процессов
Ожидать таймауты и сбои в каналах
Равнозначность сообщений (idempotancy)
Управляемость

Постоянный мониторинг состояния приложения
Логи
 Счетчики производительности
 Трасировка




Отладка после развертывание в облако
Выявление и устранение узких мест
Управление инфраструктурой на основе данных
диагностики

Автоматическое масштабирование
Федеративная безопасность

Аутентификация доверена внешнему сервису






Использование учетных записей внутренней сети
для доступа к облаку
Единый вход
Различные типы учетных записей
Унификация системы аутентификации
Стандарты SAML, WF-Trust, WF-Federation, OAuth,…
Кросс-платформенность

Поддержка Active Directory, Live ID, Open ID,
Facebook, Google ID,…
Мульти-тенантность
Тенант – виртуальная машина
Изоляция средствами облака
Выделенная БД
Простая миграция
Тенант – логическая организация
Изоляция средствами приложения
Нужна поддержка в приложении и
в схеме данных БД
Сценарии использования облака




Централизация вычислений и SaaS
Высокопроизводительные вычисления
Сервис-ориентированные системы
Репозитории данных
Централизация вычислений
Консолидация баз и
хранилищ данных


Упрощение аналитики
Устранение дублирования
информации
Консолидация сервисов


Движение к сервисноориентированной
архитектуре
Единая точка входа для
потребителей сервисов
Консолидация бизнеслогики


Упрощение интеграции
Стандартизация механизмов
безопасности
Консолидация клиента


Ускорение развертывания
Повсеместный доступ
Ключевой показатель: Снижение сложности инфраструктуры
Высокопроизводительные вычисления





Ограниченное время на работу
Большой объем вычислений
Экстремальная производительность и
масштабируемость
Выделение ресурсов на время обработки
Параллельная обработка
Ключевые показатели:
Экономия времени
 Экономия средств

Сервис-ориентированные системы




Сервисная шина

Единая среда обмена сообщениями

Подключение существующих систем к облаку

Оркестрация бизнес-процессов между локальными системами
и облаком
Интеграция частного и публичного облака
Бизнес-процессы
Публикация сервисов в облако

Доступ к существующим системам из облака
Ключевой показатель:

Эффективность бизнес-процессов
Репозитории данных





Все преимущества централизации данных
Повсеместный доступ
Повышенная надежность
Эффективное резервное копирование
Сеть доставки контента (CDN)
Ключевой показатель:

Низкая стоимость владения
Архитектура приложений



Типовая архитектура все еще актуальна
Строительные блоки облака отображаются на
логические уровни приложения
Совокупность компонентов определяет тип
(архетип) приложения
Примеры решений

Веб-приложение


Толстый клиент


Толстый клиент + Веб-сервис + Фоновые процессы +
Хранилище BLOB
Интеграция с локальными системами


Тонкий (Веб) клиент + ORM + реляционная БД
Интеграционный сервер + Сервисная Шина + Веб-сервис
+ Виртуальная машина
RIA

Silverlight + Сервис Контроля Доступа + Веб-сервис +
Нереляционное хранилище + CDN
Сравнение технологий
Windows Azure Platform
Серверная платформа
Web роль
Internet Information Server
Прикладная роль
Windows Service
VM роль
Hyper-V
Service Bus
BizTalk Server,
Windows Server AppFabric
Access Control
Active Directory Federation Services,
Windows Identity Federation
Azure Tables
WCF Data Services
Azure Queue
MSMQ, SQL Server Service Broker
Azure Blobs
IIS WebDav, SharePoint, WCF REST
SQL Azure
SQL Server 2008 R2
Fabric Controller
System Center Virtual Machine Manager
Заключение





Облако – это будущее!
Готовьте приложения к облаку
Применяйте правильную архитектуру
Подумайте о сценариях использования
Возьмите за основу примеры решений
Вопросы и обсуждение
Download