Основы архитектуры приложений Azure
Приложение, предназначенное для облачных рабочих нагрузок, отвечает бизнес-требованиям решения и включает собственные компоненты и функциональные возможности облака. Хорошо разработанное облачное приложение решает вопросы надежности, безопасности, затрат, операций и производительности. Эти соображения соответствуют бизнес-требованиям и конкретным характеристикам и предоставляемым функциональным возможностям облачной платформы хостинга.
Разработка приложений для облачных рабочих нагрузок не требует определенного стиля приложения, например микрослужб. Однако облачное размещение делает множество шаблонов проектирования приложений более доступными, чем хостинговые решения, которые изначально не предлагают разнообразный выбор вариантов платформы приложений & платформы данных, возможности масштабирования, элементы управления безопасностью и параметры обмена сообщениями. Для этого облачные рабочие нагрузки получают преимущества от приложений, которые разложены на небольшие, децентрализованные службы путем проектирования. Эти службы взаимодействуют через API или с помощью асинхронного обмена сообщениями или событий. Приложения масштабируются горизонтально, добавляя новые экземпляры по мере необходимости.
Приложения, использующие преимущества платформ размещения облачных приложений, возможностей обмена сообщениями и разложенных служб, подвержены проблемам, общим для распределенной системы. Состояние приложения распределяется. Операции выполняются параллельно и асинхронно. Приложения должны быть устойчивыми при возникновении сбоев. Вредоносные субъекты постоянно нацелены на приложения. Развертывания должны быть автоматизированы и предсказуемы. Мониторинг и телеметрия критически важны для получения аналитических сведений о системе.
Типичный проект на месте
- Монолитные и совмещенные функции и данные
- Предназначен для прогнозируемого масштабирования или избыточного ресурсирования
- Реляционная база данных
- Синхронизированная обработка
- Проектирование, чтобы избежать сбоев (MTBF)
- Ресурсы, подготовленные с помощью ИТ-функций
- Snowflake и домашние серверы
Типичный облачный дизайн
- Разложенные и распределенные функциональные возможности и данные
- Предназначен для эластичного масштабирования
- Многоязычная стойкость (сочетание технологий хранения)
- Асинхронная обработка
- Проектирование для защиты от сбоев (MTBF) и проектирование для сбоя (MTTR)
- Ресурсы, подготовленные через инфраструктуру в качестве кода по мере необходимости
- Неизменяемая и заменяемая инфраструктура
Проектирование приложений для Azure
Приложения должны быть разработаны облачными архитекторами, чтобы специально воспользоваться преимуществами облачного размещения и принимать стратегические решения о компромиссах. Azure предлагает ресурсы, специально предназначенные для помощи архитекторам в достижении хороших проектных решений и оказании поддержки командам разработчиков в их реализации. Для достижения рабочей нагрузки и проектирования приложений архитекторы должны:
- Соответствие стандартам внедрения облачных решений организации
- проектирование в соответствии с Well-Architected Framework Azure
- Общие сведения о стандартных стилях архитектуры , рабочих нагрузоки рекомендации
- использовать шаблоны проектирования для решения распространенных проблем и внедрения стратегических компромиссов
- Сделать хорошо информированный выбор технологий
- Оценка эталонных архитектур
- Просмотрите руководства по конкретным службам
Azure можно использовать для размещения и повторного размещения приложений, которые не были специально разработаны для облака. Хотя приложения рабочей нагрузки могут быть скорректированы для использования облачных функций, повторное размещение приложения, предназначенное для фиксированных ресурсов и масштабирования, не считается облачным развертыванием.
Соответствие стандартам внедрения облачных решений организации
Ваше приложение является частью рабочей нагрузки, которая, скорее всего, соответствует стандартам организации и управлению. Организации любого размера и зрелости облака могут использовать Cloud Adoption Framework для Azure для официальной реализации стратегии внедрения, готовности, инноваций, управления & управления и безопасности. Часть этого подхода является стандартизацией единообразного подхода для рабочих нагрузок, таких как использование целевых зон Azure. Целевые зоны Azure обеспечивают баланс между управлением на уровне всей организации и демократизированным доступом к ресурсам для команд, занимающихся рабочими нагрузками, и архитекторов для достижения локальных бизнес-целей. В качестве архитектора разработки приложений важно понимать макросреду и ожидания, в условиях которых будет функционировать рабочая нагрузка, таких как локальные зоны приложений.
Стратегия внедрения Azure в вашей организации не должна влиять на ваш выбор стиля архитектуры, но может привести к ограничениям на выбор технологий или границ безопасности.
Проектирование в соответствии с платформой Azure Well-Architected Framework
Все рабочие нагрузки можно оценить в их проектировании и реализации с помощью различных объективов. Azure предоставляет Azure Well-Architected Framework, чтобы помочь архитектору рабочих нагрузок оценить и соотнести свои решения с принципами проектирования в рамках пяти ключевых архитектурных столпов.
- Надежность
- Безопасность
- оптимизация стоимости
- эффективности работы
- Эффективность производительности
Как правило, следуя этим принципам и оценивая компромиссы между этими архитектурными столпами, создается проектирование, которое соответствует бизнес-требованиям и достаточно устойчиво, легко обслуживается, защищено и оптимизировано по стоимости для работы в Azure. Эти решения должны повлиять на выбор стиля архитектуры и поставить ограничения на выбор технологии или границы безопасности, так как они связаны с потребностями конкретной рабочей нагрузки.
У вашей команды или организации могут быть другие принципы проектирования, относительно которых можно оценивать рабочую нагрузку, например, устойчивости и этики.
Общие сведения о стандартных стилях архитектуры
Когда вы поймете среду организации, в которой будет работать ваше приложение, и получите общие основы хорошей архитектуры из Azure Well-Architected Framework, обычно первым вопросом становится — какой тип архитектуры вы создаете? Это может быть архитектура микрослужб, более традиционное N-уровневое приложение или решение для больших данных. Это различные архитектурные стили, подходящие для различных результатов. При оценке стилей архитектуры вы также выбираете модели хранилища данных для решения управления состоянием. Существуют преимущества и проблемы с этими решениями.
Оцените различные стили архитектуры
Рабочие нагрузки в Azure Well-Architected Framework
Платформа Well-Architected Framework содержит раздел, посвященный различным классификациям рабочих нагрузок или их типам, которые называются рабочими нагрузками Azure Well-Architected Framework. В этом разделе вы найдете статьи, посвященные критически важным, искусственному интеллекту и обучению машин, или программному обеспечению как услуга (SaaS) рабочим нагрузкам. Эти статьи, относящиеся к рабочей нагрузке, принимают пять основных компонентов платформы Well-Architected Framework и применяют их к конкретному домену. Если приложение является частью рабочей нагрузки, которая соответствует одному из этих документированных шаблонов, ознакомьтесь с соответствующим руководством, чтобы помочь вам приблизиться к проектированию, следуя набору принципов и рекомендаций для конкретных рабочих нагрузок, таких как платформа приложений, платформа данных, сеть и многое другое. Некоторые типы рабочих нагрузок могут воспользоваться выбором определенного архитектурного стиля или модели хранилища данных.
Наилучшие практики
Ознакомьтесь с передовыми практиками в статьях об облачных приложениях, чтобы узнать о различных аспектах проектирования, включая проектирование API, автомасштабирование, секционирование данных, кэширование и т. д. Ознакомьтесь с этими принципами и примените лучшие из них для вашей программы.
Использование шаблонов проектирования для решения распространенных проблем и внедрения стратегических компромиссов
Приложение имеет уникальные бизнес-требования, цели и меры успеха. Архитектор разложит эти функциональные и нефункциональные требования в дискретные действия, которые работают вместе для достижения решения, с которыми вы и ваши пользователи довольны. Эти действия часто являются достаточно распространенными, что они создали шаблоны, используемые в отрасли программного обеспечения. Эти шаблоны проектирования программного обеспечения — это названные и повторяемые подходы, которые применяются для обработки данных или их хранения и доказано решают конкретные проблемы с известными компромиссами.
каталог шаблонов проектирования облака Azure решает конкретные проблемы в распределенных системах.
Делайте хорошо обдуманный выбор технологий
После определения типа создаваемой архитектуры и шаблонов проектирования, которые вы ожидаете использовать, можно начать выбирать основные технологические части архитектуры. Следующие варианты технологий являются критически важными:
вычисления относятся к модели размещения вычислительных ресурсов (платформы для приложений), на которой выполняются ваши приложения. Дополнительные сведения см. в разделе Выбор службы вычислений.
- Azure также предлагает специализированное руководство для некоторых платформ приложений, таких как Выберите службу контейнеров Azure и гибридные варианты Azure.
хранилища данных включают базы данных, а также хранилище для файлов, кэшей, журналов и других компонентов, которые приложение может сохранить в хранилище. Дополнительные сведения см. в статье Выбор хранилища данных в Azure и просмотр параметров хранения.
Технологии обмена сообщениями позволяют обмениваться асинхронными сообщениями между компонентами системы. Дополнительные сведения см. в разделе Выбор службы обмена сообщениями.
технологии искусственного интеллекта (ИИ) решают проблемы, которые были бы сложно реализовать в коде традиционного приложения. Чтобы помочь с выбором, см. Выбор технологии службы искусственного интеллекта Azure.
Вы, вероятно, сделаете выбор других технологий в процессе, но эти четыре элемента (вычисления, данные, обмен сообщениями и ИИ) являются ключевыми для большинства облачных приложений и определяют множество аспектов вашего проектирования.
Оценка эталонных архитектур
Центр архитектуры Azure содержит идеи решений, примеры рабочих нагрузок и эталонные архитектуры. Эти статьи обычно включают список распространенных компонентов и рекомендаций, согласованных с Azure Well-Architected Framework. Некоторые из этих статей включают развертываемое решение, размещенное на сайте GitHub. Хотя вряд ли какой-либо из этих сценариев — то, что вы точно создаете, они могут стать хорошей отправной точкой для адаптации рекомендаций под ваши конкретные нужды.
Здесь ознакомьтесь с каталогом архитектур в Центре архитектуры Azure.
Ознакомьтесь со руководствами для конкретной службы
После выбора основных технологий и получения справочных архитектур важно получить доступ к документации и рекомендациям, которые относятся к службам в вашей архитектуре. Используйте следующие ресурсы для инструкций, относящихся к службе.
руководства по службе Azure Well-Architected Framework. Платформа Well-Architected содержит статьи, охватывающие многие службы, предлагаемые в Azure, где пять основных компонентов архитектуры применяются конкретно для этой службы.
Найдите и прочитайте руководство по обслуживанию для всех ресурсов, которые рассматриваются как часть проекта приложения.
руководства по надежности Azure: Центр надежности Azure содержит подробные статьи, которые специально рассматривают характеристики надежности многих служб Azure. В этих статьях описаны некоторые из наиболее критически важных тем надежности, таких как поддержка зоны доступности и ожидаемое поведение во время различных типов сбоев.
Найдите и прочитайте руководство по надежности для всех ресурсов, которые рассматриваются как часть дизайна вашего приложения.
Переходите с другой облачной платформы?
Если вы знакомы с проектированием приложений у другого поставщика облачных услуг, многие из тех же основных принципов применимы. Например, стили архитектуры и шаблоны облачного проектирования концептуально не зависят от облака. Ознакомьтесь с соответствующими статьями по сопоставлению служб и архитектуре.