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