Архитектурные сценарии облачных приложений
Сценарии интеграции Архитектурные сценарии облачных приложений Алексей Федоров Дмитрий Мартынов
Определение облачных вычислений Стиль вычислений, при котором удаленные вычислительные ресурсы и приложения доступны через сеть в виде сервисов
Атрибуты облака Масштабируемость Эластичность Мульти-тенантность Оплата за использование Самообслуживание Инфраструктура по запросу
Коцепция 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) Ключевой показатель: Низкая стоимость владения
Архитектура приложений Типовая архитектура все еще актуальна Строительные блоки облака отображаются на логические уровни приложения Совокупность компонентов определяет тип (архетип) приложения
Примеры решений Веб-приложение Тонкий (Веб) клиент + ORM + реляционная БД Толстый клиент Толстый клиент + Веб-сервис + Фоновые процессы + Хранилище BLOB Интеграция с локальными системами Интеграционный сервер + Сервисная Шина + Веб- сервис + Виртуальная машина RIA Silverlight + Сервис Контроля Доступа + Веб-сервис + Нереляционное хранилище + CDN
Сравнение технологий
Заключение Облако – это будущее! Готовьте приложения к облаку Применяйте правильную архитектуру Подумайте о сценариях использования Возьмите за основу примеры решений
Вопросы и обсуждение