Руководство по архитектуре приложений AzureAzure Application Architecture Guide

В этом руководстве представлен структурированный подход к разработке масштабируемых, отказоустойчивых и высокодоступных приложений в Azure.This guide presents a structured approach for designing applications on Azure that are scalable, resilient, and highly available. Он основан на проверенных методах, о которых мы узнали благодаря клиентам.It is based on proven practices that we have learned from customer engagements.

ВведениеIntroduction

Облако меняет способ разработки приложений.The cloud is changing the way applications are designed. Вместо монолитных структур приложения разбиваются на меньшие децентрализованные службы.Instead of monoliths, applications are decomposed into smaller, decentralized services. Эти службы взаимодействуют через API-интерфейсы либо с помощью асинхронного обмена сообщениями или событиями.These services communicate through APIs or by using asynchronous messaging or eventing. Приложения выполняют горизонтальное масштабирование, добавляя новые экземпляры в соответствии с требованиями.Applications scale horizontally, adding new instances as demand requires.

Эти тенденции могут перевести к новым сложностям.These trends bring new challenges. Состояние приложения является распределенным.Application state is distributed. Операции выполняются параллельно и в асинхронном режиме.Operations are done in parallel and asynchronously. Система в целом должна быть отказоустойчивой.The system as a whole must be resilient when failures occur. Развертывания должны выполняться автоматически и предсказуемо.Deployments must be automated and predictable. Мониторинг и данные телеметрии важны для получения аналитических сведений о системе.Monitoring and telemetry are critical for gaining insight into the system. В руководстве по архитектуре приложений Azure показано, как управлять этими изменениями.The Azure Application Architecture Guide is designed to help you navigate these changes.

Стандартные локальныеTraditional on-premisesСовременные облачныеModern cloud
Монолитные, централизованныеMonolithic, centralized
Разработка для прогнозируемой масштабируемостиDesign for predictable scalability
Реляционная база данныхRelational database
Строгая согласованностьStrong consistency
Последовательная и синхронная обработкаSerial and synchronized processing
Разработка для предотвращения сбоев (MTBF)Design to avoid failures (MTBF)
Случайные крупные обновленияOccasional big updates
Ручной режим управленияManual management
Серверы типа "снежинка"Snowflake servers
Разделенные, децентрализованныеDecomposed, de-centralized
Разработка для гибкого масштабированияDesign for elastic scale
Polyglot Persistence (сочетание технологий хранения данных)Polyglot persistence (mix of storage technologies)
Итоговая согласованностьEventual consistency
Параллельная и асинхронная обработкаParallel and asynchronous processing
Разработка для восстановления после сбоя (MTTR)Design for failure (MTTR)
Частые небольшие обновленияFrequent small updates
Автоматическое самоуправлениеAutomated self-management
Неизменяемая инфраструктураImmutable infrastructure

Это руководство предназначено для архитекторов, разработчиков приложений и операционных команд.This guide is intended for application architects, developers, and operations teams. Это не практическое руководство по использованию отдельных служб Azure.It's not a how-to guide for using individual Azure services. Ознакомившись с ним, вы сможете понять архитектурные шаблоны и рекомендации для разработки приложения на облачной платформе Azure.After reading this guide, you will understand the architectural patterns and best practices to apply when building on the Azure cloud platform.

Структура руководстваHow this guide is structured

Руководство по архитектуре приложений Azure упорядочено в виде ряда шагов — от создания архитектуры и проектирования до реализации.The Azure Application Architecture Guide is organized as a series of steps, from the architecture and design to implementation. Каждый шаг содержит вспомогательные рекомендации, которые помогут вам разработать архитектуру приложения.For each step, there is supporting guidance that will help you with the design of your application architecture.

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

Первый этап принятия решений самый важный.The first decision point is the most fundamental. Какой вид архитектуры вы создаете?What kind of architecture are you building? Это может быть архитектура микрослужб, более традиционного n-уровневого приложения или решения для больших данных.It might be a microservices architecture, a more traditional N-tier application, or a big data solution. Мы определили несколько различных стилей архитектуры.We have identified several distinct architecture styles. Каждый из них имеет свои преимущества и недостатки.There are benefits and challenges to each.

Дополнительные сведенияLearn more:

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

На раннем этапе нужно выбрать две технологии, так как они влияют на всю архитектуру.Two technology choices should be decided early on, because they affect the entire architecture. Это служба вычислений и хранилище данных.These are the choice of compute service and data stores. Служба вычислений — это модель размещения для вычислительных ресурсов, на которых выполняется приложение.Compute refers to the hosting model for the computing resources that your applications runs on. К хранилищам данных относятся базы данных, а также очереди сообщений, кэши, журналы и любые другие хранилища, которые может использовать приложение.Data stores includes databases but also storage for message queues, caches, logs, and anything else that an application might persist to storage.

Дополнительные сведенияLearn more:

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

Мы определили десять общих принципов проектирования, чтобы сделать приложение более масштабируемым, отказоустойчивым и управляемым.We have identified ten high-level design principles that will make your application more scalable, resilient, and manageable. Эти принципы проектирования применяются ко всем стилям архитектуры.These design principles apply to any architecture styles. На протяжении всего процесса проектирования придерживайтесь десяти высокоуровневых принципов разработки.Throughout the design process, keep these ten high-level design principles in mind. Также примите во внимание набор рекомендаций по определенным аспектам архитектуры, таким как автоматическое масштабирование, кэширование, секционирование данных, проектирование API и другие.Then consider the set of best practices for specific aspects of the architecture, such as auto-scaling, caching, data partitioning, API design, and others.

Дополнительные сведенияLearn more:

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

В основе успешного облачного приложения лежат пять ключевых компонентов качества программного обеспечения: масштабируемость, доступность, устойчивость, управление и безопасность.A successful cloud application will focus on five pillars of software quality: Scalability, availability, resiliency, management, and security. С помощью наших контрольных списков проверьте соответствие архитектуры этим аспектам качества.Use our design review checklists to review your architecture according to these quality pillars.

Дополнительные учебные материалыMore learning

Пройдите модуль с инструкциями, посвященный распространенным службам облачных вычислений, преимуществам облачных вычислений и моделям развертывания облачных вычислений.For a guided introduction to common cloud computing services, benefits of cloud computing, and cloud deployment modules, review Cloud Concepts - Principles of Cloud Computing.

Получите более четкое техническое представление об облачных решениях и принципах создания надежной архитектуры Azure.For a more technical perspective on the key pillars of a cloud solution and principles for creating a solid architectural foundation, review Pillars of a great Azure Architecture.