Руководство по архитектуре приложений Azure

В этом руководстве описан структурированный подход к разработке безопасных масштабируемых отказоустойчивых и высокодоступных приложений в Azure. Это руководство основано на проверенных методах, о которых мы узнали благодаря клиентам.

Введение

Облако меняет способ разработки и защиты приложений. Вместо монолитных структур приложения разбиваются на меньшие децентрализованные службы. Эти службы взаимодействуют через API-интерфейсы либо с помощью асинхронного обмена сообщениями или событиями. Приложения выполняют горизонтальное масштабирование, добавляя новые экземпляры в соответствии с требованиями.

Эти тенденции могут перевести к новым сложностям. Состояния приложений распределены. Операции выполняются параллельно и в асинхронном режиме. При возникновении сбоев приложения должны быть устойчивыми. Приложения — это целевые объекты для вредоносных субъектов. Развертывания должны выполняться автоматически и предсказуемо. Мониторинг и данные телеметрии важны для получения аналитических сведений о системе. Это руководство поможет вам реализовать необходимые изменения.

Стандартные локальныеСовременные облачные
Монолитные
Предназначенные для прогнозируемой масштабируемости
Реляционная база данных
Синхронизированная обработка
Разработка для предотвращения сбоев (MTBF)
Нерегулярные крупные обновления
Ручной режим управления
Серверы типа "снежинка"
Разделенные
Предназначенные для эластичного масштабирования
Polyglot Persistence (сочетание технологий хранения данных)
Асинхронная обработка
Разработка для восстановления после сбоя (MTTR)
Частые небольшие обновления
Автоматическое самоуправление
Неизменяемая инфраструктура

Структура руководства

Руководство по архитектуре приложений Azure упорядочено в виде ряда шагов — от создания архитектуры и проектирования до реализации. Каждый шаг содержит вспомогательные рекомендации, которые помогут вам разработать архитектуру приложения.

Схема структуры этого руководство, разделы которого представлены в виде блок-схем

Стили архитектуры

Первый этап принятия решений самый важный. Какой вид архитектуры вы создаете? Это может быть архитектура микрослужб, более традиционного n-уровневого приложения или решения для больших данных. Мы определили несколько различных стилей архитектуры. Каждый из них имеет свои преимущества и недостатки.

Дополнительные сведения: Стили архитектуры

Выбор технологий

Зная тип создаваемой архитектуры, вы можете выбирать основные технологические компоненты. Важно выбрать следующие технологии:

  • Служба вычислений — это модель размещения для вычислительных ресурсов, на которых выполняется приложение. См. сведения о выборе службы вычислений.

  • К хранилищам данных относятся базы данных, а также очереди сообщений, кэши, журналы и любые другие хранилища, которые может использовать приложение. См. сведения о выборе хранилища данных.

  • Технологии обмена сообщениями обеспечивают асинхронную передачу сообщений между компонентами системы. См. сведения о выборе службы обмена сообщениями.

Вам, возможно, потребуется использовать дополнительные технологии. Но эти три элемента (вычисления, данные и обмен сообщениями) являются для большинства облачных приложений ключевыми и определяют множество аспектов разработки.

Разработка архитектуры

Выбрав стиль архитектуры и основные технологические компоненты, вы можете приступать к работе со структурой приложения. Ниже указаны универсальные ресурсы, которые помогут при разработке архитектуры для самых разных приложений.

Эталонные архитектуры

В зависимости от сценария вы можете использовать в качестве отправной точки одну из наших эталонных архитектур. Каждая эталонная архитектура включает предлагаемые методики, а также рекомендации по обеспечению масштабируемости, доступности, безопасности и надежности, а также по работе с другими аспектами разработки. В большинство из них также включены развертываемое решение или эталонная реализация.

Принципы проектирования

Мы определили десять общих принципов проектирования, чтобы вы могли сделать приложение более масштабируемым, отказоустойчивым и управляемым. Эти принципы проектирования применяются ко всем стилям архитектуры. Придерживайтесь этих десяти базовых принципов на всех этапах проектирования. См. сведения о принципах проектирования.

Шаблоны проектирования

Повторяемые конструктивные шаблоны разработки программного обеспечения позволяют выполнять необходимые действия при возникновении определенных проблем. Наш каталог конструктивных шаблонов облачных решений предназначен для решения конкретных задач в распределенных системах. Они касаются таких аспектов, как доступность, высокий уровень доступности, эффективность операционных процессов, устойчивость, производительность и безопасность. Каталог конструктивных шаблонов можно найти здесь.

Рекомендации

Наши статьи с рекомендациями охватывают разные вопросы, связанные с проектированием, включая проектирование API, автоматическое масштабирование, секционирование данных, кэширование и т. д. Ознакомьтесь с этими рекомендациями и примените те, которые подходят для вашего приложения.

Рекомендации по безопасности

Рекомендации по обеспечению безопасности помогают защитить приложения от действий злоумышленников, направленных на компрометацию конфиденциальности, целостности и доступности.

Основные аспекты качества

В основе успешного облачного приложения лежат пять ключевых компонентов качества программного обеспечения: оптимизация затрат, эффективность операционных процессов, уровень производительности, надежность и безопасность.

Воспользуйтесь сведениями, приведенными в статье Платформа Microsoft Azure с продуманной архитектурой, чтобы оценить свою архитектуру по пяти базовым аспектам.

Дальнейшие действия