Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Для создания надежных, масштабируемых и безопасных облачных приложений требуются преднамеренные архитектурные решения. Рекомендации в этой статье содержат рекомендации по общим проблемам, возникающим в распределенных системах, таких как кэширование, секционирование данных, проектирование API и временная обработка ошибок. Каждая практика решает одну или несколько основных компонентов платформы Azure Well-Architected Framework, которая определяет следующие пять атрибутов качества для проектирования рабочей нагрузки:
- Надёжность
- Безопасность
- Оптимизация затрат
- Операционное превосходство
- Эффективность производительности
Эти методики дополняют другие базовые рекомендации в Центре архитектуры Azure. Принципы проектирования для приложений Azure предоставляют высокоуровневые стратегии, такие как проектирование для самовосстановления и масштабирования. Шаблоны проектирования облака предлагают многократно используемые решения для повторяющихся архитектурных проблем. Антипаттерны производительности описывают распространенные дефекты, которые вызывают проблемы масштабируемости при загрузке. Эти ресурсы помогут вам сделать обоснованный выбор архитектуры.
Каталог методик
Каждая практика в этой таблице соответствует одному или нескольким столпам Well-Architected Framework. Используйте эти сопоставления, чтобы определить, какие методики наиболее важны для атрибутов качества, приоритетных в рабочей нагрузке.
| Практика | Сводка | Связанные принципы |
|---|---|---|
| Проектирование API | Разработка веб-API для поддержки независимости платформы с помощью стандартных протоколов и согласованных форматов данных. Повышение уровня развития служб, чтобы клиенты могли обнаруживать функциональные возможности, не требуя изменения. Повышение времени отклика путем поддержки частичных ответов и предоставления способов фильтрации и разбивки данных на страницы. | Эффективность работы, эффективность производительности |
| Реализация API | Реализуйте веб-API, чтобы быть эффективными, адаптивными, масштабируемыми и доступными. Сделайте действия идемпотентными, поддерживайте согласование содержимого и следуйте спецификации HTTP. Обработка исключений и поддержка обнаружения ресурсов. Предоставление способов обработки больших запросов и минимизации сетевого трафика. | Эффективность работы, эффективность производительности |
| Автомасштабирование | Разработка приложений для динамического выделения и освобождения ресурсов для удовлетворения требований к производительности и минимизации затрат. Воспользуйтесь функцией автомасштабирования в Azure Monitor и встроенным автомасштабированием, которое поддерживается многими компонентами Azure. | Оптимизация затрат, эффективность производительности |
| Фоновые задания | Реализуйте пакетные задания, задачи обработки и рабочие процессы в качестве фоновых заданий. Используйте службы платформы Azure для размещения этих задач. Используйте события или расписания, чтобы запускать задачи и возвращать результаты вызывающим задачам. | Надежность, эффективность работы |
| Кэширование | Повышение производительности путем копирования данных в быстрое хранилище, близкое к приложениям. Кэшируйте данные, которые часто читаются, но редко изменяются. Управление истечением срока действия и параллелизмом данных. Узнайте, как заполнить кэши и использовать службу Azure Managed Redis . | Эффективность производительности |
| Сеть доставки содержимого | Используйте сети доставки содержимого (CDN), чтобы эффективно доставлять веб-содержимое пользователям и уменьшать нагрузку на веб-приложения. Преодолеть проблемы развертывания, управления версиями, безопасности и устойчивости. | Надежность, эффективность производительности |
| Секционирование данных | Разделяйте данные на секции, чтобы повысить масштабируемость, доступность и производительность, а также снизить конкуренцию за ресурсы и затраты на хранение данных. Эффективно используйте горизонтальное, вертикальное и функциональное секционирование. | Оптимизация затрат, эффективность производительности |
| Стратегии секционирования данных (по службе) | Применение стратегий секционирования между службами Azure, включая База данных SQL Azure, Azure Cosmos DB, Хранилище BLOB-объектов Azure, Azure Managed Redis и Служебная шина Azure. Распределение нагрузки, уменьшение задержки и поддержка горизонтального масштабирования. | Оптимизация затрат, эффективность производительности |
| Сохранение имени узла | Узнайте, почему важно сохранить исходное имя узла HTTP между обратным прокси-сервером и серверным веб-приложением и как реализовать эту рекомендацию для наиболее распространенных служб Azure. | Надежность, безопасность |
| вопросы кодирования сообщений | Выберите структуру полезных данных, формат кодирования и библиотеку сериализации для асинхронных сообщений, обмениваемых между системными компонентами. Рассмотрим компромиссы, такие как взаимодействие, размер, удобочитаемость человека и эволюция схемы. | Безопасность |
| Мониторинг и диагностика | Отслеживание работоспособности системы, использования и производительности с помощью конвейера мониторинга и диагностики. Превратите данные мониторинга в оповещения, отчеты и триггеры, которые помогают выполнять действия в различных ситуациях. Примеры включают обнаружение и исправление проблем, выявление потенциальных проблем, соблюдение гарантий производительности и выполнение требований аудита. | Операционное превосходство |
| Обработка временных сбоев | Обработка временных сбоев, вызванных недоступными сетями или ресурсами. Преодолеть трудности при разработке соответствующих стратегий повторных попыток. Избегайте дублирования слоев кода для повторных попыток и других антипаттернов. | Надёжность |
Принципы проектирования
Прежде чем решать конкретные технические проблемы, создайте сильную архитектурную основу. Принципы проектирования для приложений Azure предоставляют высокоуровневые стратегии, которые применяются в рабочих нагрузках, таких как проектирование для самостоятельного восстановления, масштабирования и минимизации координации. Эти принципы формируют решения, которые помогут реализовать рекомендации, перечисленные в предыдущей таблице.
Шаблоны проектирования облачных систем
После установления принципов проектирования шаблоны облачного проектирования предоставляют повторно используемые решения для повторяющихся проблем в распределенных системах. Многие из рекомендаций в этой статье основаны на одном или нескольких из этих шаблонов. Например, руководство по обработке временных ошибок основывается на шаблоне повторных попыток и шаблоне разбиения цепи. Руководство по кэшированию относится к шаблонуCache-Aside. В руководстве по фоновым заданиям используются такие шаблоны, как Соперничающие потребители и выравнивание нагрузки на основе очереди. Просмотрите полный каталог, чтобы определить шаблоны, которые помогут решить архитектурные задачи в вашей рабочей нагрузке.
Антишаблоны производительности
Дефекты могут возникать при рабочей нагрузке даже при применении звуковых принципов, хороших шаблонов и рекомендаций. Антипаттерны производительности для облачных приложений описывают распространенные проекты, которые не масштабируются или сочетания клавиш, которые вызывают проблемы при добавлении функций. Чтобы поймать проблемы, прежде чем они достигают рабочей среды, используйте эти антипаттерны в качестве контрольного списка во время проверок дизайна и проверок кода.
Следующий шаг
- Принципы разработки приложений Azure: Начните с основополагающих принципов, которые лежат в основе этих рекомендаций.
Связанный контент
Проверка Azure Well-Architected: Оцените свою рабочую нагрузку по основным принципам Well-Architected Framework.
Шаблоны облачного проектирования: изучение повторно используемых решений для распространенных архитектурных проблем.