Подход Well-Architected Framework для Azure Service Fabric
Azure Service Fabric — это платформа распределенных систем, которая упрощает упаковку, развертывание и управление масштабируемыми и надежными микрослужбами и контейнерами. Эти ресурсы развертываются в подключенном к сети наборе виртуальных или физических машин, который называется кластером.
В этой статье предполагается, что в качестве архитектора вы рассмотрели дерево решений вычислений и выбрали Service Fabric в качестве вычислительной платформы для рабочей нагрузки. В этой статье приведены рекомендации по архитектуре, сопоставленные с принципами Well-Architected платформы.
Важный
Как использовать это руководство
Каждый раздел содержит контрольный список проектирования, в которых представлены архитектурные области, вызывающие озабоченность, и стратегии проектирования, адаптированные к области технологий.
Также включены рекомендации по возможностям технологий, которые помогут материализовать эти стратегии. Рекомендации не представляют исчерпывающий список всех конфигураций, доступных для Azure Service Fabric и его зависимостей. Вместо этого они перечисляют ключевые рекомендации, сопоставленные с перспективами проектирования. Используйте рекомендации для создания подтверждения концепции или оптимизации существующих сред.
Базовая архитектура, демонстрирующая основные рекомендации: архитектура микрослужб в Azure Service Fabric.
область технологий
В этом обзоре рассматриваются взаимосвязанные решения для следующих ресурсов Azure:
- Service Fabric
Заметка
Это руководство по обслуживанию основывается на рекомендациях, приведенных в руководстве по службе виртуальных машин и масштабируемых групп. Узлы Service Fabric поддерживаются масштабируемыми наборами виртуальных машин, поэтому рекомендации по работе серверной части вычислений для узлов Service Fabric см. в этом руководстве.
При обсуждении архитектурных рекомендаций и рекомендаций по настройке в Azure Service Fabric важно различать кластера и рабочей нагрузки. Конфигурация кластера — это общая ответственность между администратором кластера Service Fabric и их поставщиком ресурсов, а конфигурация рабочей нагрузки — это домен разработчика. Azure Service Fabric имеет соображения и рекомендации для обеих этих ролей.
В приведённом ниже контрольном списке проектирования и списке рекомендаций указано, применим ли каждый выбор к архитектуре кластера, архитектуре рабочей нагрузки или к обеим.
Надёжность
Цель компонента надежности заключается в обеспечении непрерывной функциональности путем создания достаточной устойчивости и возможности быстрого восстановления после сбоев.
принципы проектирования надежности обеспечивают высокоуровневую стратегию проектирования, применяемую для отдельных компонентов, системных потоков и системы в целом.
Контрольный список проектирования
Запустите стратегию проектирования, опираясь на проверочный контрольный список для проектирования надежности. Определите его релевантность вашим бизнес-требованиям, учитывая [аспекты, относящиеся к предложению]. Расширьте стратегию, чтобы включить дополнительные подходы по мере необходимости.
- (Кластер) Определите соответствующий уровень надежности для кластера на основе общей целевой метрики надежности для рабочей нагрузки. Уровень надежности кластера, который вы определяете, будет диктовать минимальное количество узлов для развертывания для типа основного узла. Обратитесь к документации по планированию емкостей, чтобы узнать, как принимать такие решения.
- (Кластер) Для критически важных рабочих нагрузок рекомендуется использовать зон доступности для кластеров Service Fabric.
- (Кластер) В рабочих сценариях используйте номер SKU управляемого кластера уровня уровня устойчивости Silver (5 виртуальных машин) или более поздней версии. Этот номер SKU обеспечивает более высокий уровень надежности, чем номер SKU "Базовый", который следует использовать для сценариев непроизводства.
- (Кластер) Создайте дополнительные вторичные типы узлов для рабочих нагрузок, чтобы изолировать различные типы рабочих нагрузок. Это позволяет отделять внешние службы от внутренних служб, позволяя управлять и масштабировать эти службы независимо друг от друга. Каждый тип узла поддерживается собственным масштабируемым набором.
Рекомендации
Рекомендация | Выгода |
---|---|
(Кластер) Управление API (APIM) может интегрировать с Service Fabric напрямую. Подумайте о возможности использовать его для предоставления и разгрузки аспектно-ориентированных функций для API, размещенных в кластере. | APIM — это шлюз приложений с расширенными возможностями, который помогает безопасно публиковать, управлять и отслеживать API, развернутые в кластере Service Fabric. |
(Рабочая нагрузка) Для сценариев рабочей нагрузки с отслеживанием состояния следует учитывать использование надёжных служб . | Модель Reliable Services позволяет вашим службам продолжать функционировать при сбоях в системе или сетевых проблемах, а также в случае, если сами службы сталкиваются с неисправностями. Для служб с отслеживанием состояния состояние сохраняется при возникновении сбоев. |
Безопасность
Цель компонента "Безопасность" — обеспечить конфиденциальности, целостности и доступности гарантии рабочей нагрузки.
Принципы проектирования безопасности обеспечивают высокоуровневую стратегию проектирования для достижения этих целей, применяя подходы к техническому проектированию Service Fabric.
Контрольный список по проектированию
Основывайте стратегию проектирования на контрольном списке для проверки безопасности.
- (Кластер и рабочая нагрузка) Ознакомьтесь с рекомендациями по безопасности продуктов Service Fabric. См. рекомендации по обеспечению безопасности, сценариях безопасности кластераи приложений и служб Service Fabric.
- (Кластер) Примените сегментацию сети и элементы управления, настроив группы безопасности сети (NSG) для ограничения потока трафика между подсетями и типами узлов.
- (Кластер) Безопасное управление секретами приложений и сертификатами клиента с помощью собственных средств. Секреты приложений должны управляться с помощью хранилища секретов Service Fabric, а сертификаты следует управлять с помощью Key Vault.
- (Кластер) Рассмотрите возможность использования собственногобалансировщика нагрузки, что позволяет использовать внутренний балансировщик нагрузки и определять различные балансировщики нагрузки и группы безопасности сети для каждого типа узла.
- (Кластер) Безопасное управление доступом к кластеру путем включения интеграции Microsoft Entra, позволяя пользователям проходить проверку подлинности с помощью учетных данных Entra. Кроме того, можно использовать сертификаты клиента кластера и администратора. Не распределяйте сертификаты клиента кластера среди пользователей Service Fabric Explorer.
- (Кластер и рабочая нагрузка) Создайте процесс мониторинга даты окончания срока действия сертификатов клиента.
- (Кластер и рабочая нагрузка) Обслуживание отдельных кластеров для разработки, промежуточной и рабочей среды. Рабочие среды обычно требуют более строгих мер безопасности, чем непроизводственные среды, и изоляция сред друг от друга добавляет слой безопасности, если одна среда скомпрометирована.
Рекомендации
Рекомендация | Выгода |
---|---|
(Кластер) Убедитесь, что правильные порты открыты для развертывания приложений и рабочих нагрузок. | Эта конфигурация гарантирует безопасность взаимодействия между ресурсами Service Fabric и остальной частью рабочей нагрузки. |
(Кластер) При использовании хранилища секретов Service Fabric для распространения секретов используйте отдельный сертификат шифрования данных для шифрования значений. | Использование отдельного сертификата шифрования обеспечивает изоляцию между сертификатами, уменьшая риск сбоя одной точки и обеспечивая более детализированный контроль доступа. |
(Кластер) Примените список управления доступом (ACL) к сертификату клиента для кластера Service Fabric. | Использование ACL обеспечивает дополнительный уровень проверки подлинности, обеспечивая более детальный контроль над доступом к сертификатам. |
(Кластер) Используйте запросы ресурсов и ограничения для управления использованием ресурсов на узлах в кластере. | Применение ограничений ресурсов помогает убедиться, что одна служба не потребляет слишком много ресурсов и сокращает другие службы. |
(Рабочая нагрузка) Включите сертификаты клиента в приложения Service Fabric. | Наличие в приложениях сертификатов клиента для проверки подлинности обеспечивает возможность безопасности как на уровне кластера, так и на уровне рабочей нагрузки. |
Рабочая нагрузка: проверка подлинности приложений Service Fabric к ресурсам Azure с помощью управляемого удостоверения . | Использование управляемого удостоверения позволяет безопасно управлять учетными данными в коде для проверки подлинности в различных службах, не сохраняя их локально на рабочей станции разработчика или в системе управления версиями. |
(Кластер и рабочая нагрузка) При размещении ненадежных приложений используйте наиболее надежную технологию песочницы, удалите доступ к среде выполнения Service Fabric и следуйте другим рекомендациям Service Fabric . | Следуя приведенным рекомендациям, можно убедиться, что только доверенные и проверенные приложения могут взаимодействовать с критически важными компонентами, что ограничивает влияние ненадежных приложений с уязвимостями или вредоносным кодом в обычной работе кластера. |
Оптимизация затрат
Оптимизация затрат фокусируется на выявлении тенденций расходов, приоритетном вложении инвестиций в критически важные области и оптимизации затрат в других сферах путем соблюдения бюджета организации при выполнении бизнес-требований.
Принципы проектирования оптимизации затрат обеспечивают высокоуровневую стратегию проектирования для достижения этих целей и обеспечения компромиссов в техническом проектировании, связанном с Service Fabric и ее средой.
Список для проверки проектирования
Начните стратегию проектирования на основе контрольного списка оценки для оптимизации затрат при инвестициях. Настройте структуру, чтобы рабочая нагрузка соответствовала бюджету, выделенному для рабочей нагрузки. Проект должен использовать правильные возможности Azure, отслеживать инвестиции и находить возможности для оптимизации с течением времени.
- (Рабочая нагрузка и кластер) Оцените начальную стоимость с помощью калькулятора цен Azure . Плата взимается только за вычислительные экземпляры, хранилище, сетевые ресурсы и IP-адреса, которые вы выбираете при создании кластера Service Fabric. Плата за услугу, предлагаемую самой Service Fabric, не взимается. Чтобы приступить к работе с моделированием затрат, см. пример процесса вычисления затрат для планирования приложений.
- (Кластер) Выберите соответствующие номера SKU виртуальных машин. Выберите виртуальные машины на основе характеристик рабочей нагрузки. Является ли нагрузка ресурсоемкой по ЦП или она выполняет прерываемые процессы?
- (Кластер) Выберите соответствующие номера SKU кластера. Используйте Стандарт для рабочих сред и Базовая для непроизводственных сред, если нет убедительных причин поступать иначе. Используйте соответствующие типы узлов и размеры в каждой среде.
- (Кластер и рабочая нагрузка) Выберите соответствующие уровни и размеры управляемых дисков. Ознакомьтесь с руководством по обслуживанию WAF для хранилища дисков. Избегайте использования SKU виртуальных машин с предоставлением временных дисков, чтобы избежать оплаты ненужных ресурсов.
Рекомендации
Рекомендация | Выгода |
---|---|
(Кластер) Если у вас нет требований к сохранению состояния, подумайте о выборе SKU виртуальной машины с поддержкой временного диска . | Используйте ресурсы, за которые вы платите, по максимуму. Использование временного диска вместо управляемого диска может снизить затраты на рабочие нагрузки без отслеживания состояния. |
(Кластер и рабочая нагрузка) Согласуйте выбор SKU виртуальной машины с требованиями к рабочей нагрузке. Убедитесь, что вы определили правильные типы узлов , которые находятся в масштабируемых наборах, чтобы соответствовать вашим требованиям. | Сопоставление выбора с требованиями рабочей нагрузки помогает избежать оплаты дорогостоящих типов SKU виртуальных машин, которые вам не нужны. |
(Кластер и рабочая нагрузка) Выравнивание выбора типа диска с требованиями к рабочей нагрузке. | Выбор правильного типа управляемого диска помогает избежать оплаты за дорогостоящие типы, которые могут не потребоваться. |
Операционное превосходство
Операционное совершенство в основном сосредоточено на процедурах практики разработки, управления выпусками и наблюдаемости.
Принципы проектирования операционного превосходства обеспечивают высокоуровневую стратегию проектирования для достижения целей, связанных с операционными требованиями рабочей нагрузки.
Контрольный список проектирования
Начните формировать стратегию проектирования на основе контрольного списка проверки разработки в рамках программы Операционного Превосходства для определения процессов наблюдения, тестирования и развертывания, связанных с Service Fabric.
- (Кластер и рабочая нагрузка) Интегрируйте компоненты Service Fabric, включая кластеры, связанную инфраструктуру и сам приложение, в платформу мониторинга и оповещения. Подробные рекомендации см. в статье о лучших практиках мониторинга.
- (Кластер и рабочая нагрузка) Используйте модель работоспособности Service Fabric для непрерывного мониторинга работоспособности решения. Это средство должно дополнить общую модель работоспособности рабочей нагрузки
- (Кластер и рабочая нагрузка) Создайте процесс мониторинга даты окончания срока действия сертификатов клиента. Например, Key Vault предлагает функцию, которая отправляет сообщение электронной почты при истечении срока действия сертификата
x%
. - (Кластер и рабочая нагрузка) Используйте методы непрерывной интеграции и непрерывного развертывания для управления развертываниями кластера. Используйте специально созданный инструмент, такой как Azure Pipelines или Github Actions, для управления конвейерами CI/CD. Это позволяет централизованно управлять всеми развертываниями рабочих нагрузок во всех средах с соответствующими стратегиями контроля версий.
Рекомендации
Рекомендация | Выгода |
---|---|
(Рабочая нагрузка) Используйте Application Insights для мониторинга рабочих нагрузок. | Application Insights обеспечивает комплексный мониторинг производительности приложений (APM) для динамических веб-приложений, что позволяет собирать и анализировать данные телеметрии приложений, повышая работоспособность приложения и мониторинг производительности. |
(Кластер и рабочая нагрузка) Используйте Azure Monitor для мониторинга событий кластера и инфраструктуры контейнеров. | Azure Monitor предоставляет комплексные возможности мониторинга и диагностики, позволяя собирать и анализировать журналы и метрики из приложений и инфраструктуры Azure. Azure Monitor хорошо интегрируется с платформой Azure, включая Service Fabric. |
(Кластер) Внедрите соответствующие политики здоровья кластера в рамках моделирования здоровья. | Политики позволяют настроить интерпретацию сбоев с точки зрения работоспособности кластера. Например, можно задать максимальный допустимый процент узлов, которые могут быть неработоспособными до того, как кластер будет считаться аварийным. |
(Кластер) Реализуйте соответствующие политики работоспособности приложений и типов служб в рамках моделирования работоспособности. | Политика работоспособности приложений описывает, как выполняется оценка событий и агрегирования дочерних состояний для приложений и их дочерних объектов. Service Fabric предполагает, что сущность является неработоспособной, если у нее есть отчет о состоянии здоровья или дочерний объект находится в состоянии предупреждения или ошибки. |
(Кластер и рабочая нагрузка) Используйте Azure Chaos Studio для внедрения сбоев в решение в рамках стратегии тестирования. | Намеренное внедрение сбоев в решение поможет вам определить потенциальные точки сбоя и использовать меры реагирования на инциденты. |
(Кластер и рабочая нагрузка) Используйте Azure Pipelines для решения непрерывной интеграции и развертывания (CI/CD). | Использование решения CI/CD, например Azure Pipelines, помогает эффективно управлять развертываниями, согласованно и безопасно. В Azure Pipelines поддерживается встроенная поддержка развертываний для Service Fabric. |
Эффективность производительности
Эффективность производительности заключается в поддержании пользовательского опыта даже при увеличении нагрузки путем управления мощностями. Стратегия включает масштабирование ресурсов, выявление и оптимизацию потенциальных узких мест, а также оптимизацию для пиковой производительности.
Принципы проектирования производительности и эффективности обеспечивают стратегию высокого уровня для достижения целей по производительности в условиях ожидаемого использования.
Контрольный список для дизайна
Начните стратегию проектирования на основе контрольного списка проектирования для эффективности производительности. Определите базовые показатели, основанные на ключевых показателях производительности Service Fabric.
- (Кластер) Воспользуйтесь преимуществами оптимизации производительности и улучшения функций, необходимых рабочей нагрузке. См. руководство по службе виртуальной машины для получения рекомендаций, связанных с базовой вычислительной платформой.
- (Кластер) Разверните размеры виртуальных машин и дисков, которые соответствуют вашим требованиям к производительности, не вызывая ненужных расходов на неиспользуемую емкость. Убедитесь, что вы сможете легко добавить емкость для удовлетворения будущих планов роста.
- (Рабочая нагрузка) Ознакомьтесь с моделями программирования, поддерживаемыми Service Fabric, и выберите оптимальную модель для требований рабочей нагрузки. Каждая модель программирования имеет уникальные преимущества и недостатки, а определенные требования к рабочей нагрузке могут соответствовать одной модели лучше, чем другие.
- (Рабочая нагрузка) Используйте установленные шаблоны облачной архитектуры для разработки рабочей нагрузки. микрослужбы, управляемые событиями, и архитектурные шаблоны фоновой обработки являются хорошими кандидатами для проектирования приложений Service Fabric.
Рекомендация
Рекомендация | Выгода |
---|---|
(Кластер) исключить процессы Service Fabric, выполняемые на виртуальных машинах Windows из Защитника Windows, если политики безопасности позволяют исключить процессы и пути для программного обеспечения с открытым кодом. | Исключение процессов Service Fabric снижает влияние на производительность и затраты на потребление ресурсов, вызванные Защитником Windows |
(Кластер) Рассмотрите возможность использования автомасштабирования для кластера, чтобы включить добавление или сокращение узлов по запросу на дополнительный тип узла. | Автоматическое масштабирование снижает затраты на управление и потенциальное влияние на бизнес, отслеживая и оптимизируя объем узлов, обслуживающих рабочую нагрузку. |
(Кластер) Рассмотрите возможность использования ускоренной сетевой работы. | Ускорение сети обеспечивает высокопроизводительный путь, который обходит хост на пути передачи данных, что снижает задержку, дребезг и использование ЦП для наиболее требовательных сетевых рабочих нагрузок. |
(Кластер) Рекомендуется использовать шифрование на узле вместо шифрования дисков Azure (ADE). | Шифрование на узле улучшает ADE, поддерживая все типы и образы ОС, включая пользовательские образы для виртуальных машин, шифруя данные в службе хранилища Azure. |
(Рабочая нагрузка) Реализуйте модели программирования Service Fabric, наилучшим образом подходящие для вашей рабочей нагрузки. | Выбор соответствующей модели программирования позволяет воспользоваться встроенными функциями, поддерживающими такие требования рабочей нагрузки, как управление состоянием, параллелизм и повторное использование существующей базы кода. Вы также можете убедиться, что стандарты развертывания поддерживаются, выбрав модель программирования, которая соответствует этим стандартам. |
(Кластер и рабочая нагрузка) Реализуйте масштабирование в соответствии с бизнес-требованиями. Найти правильный механизм масштабирования рабочей нагрузки.. | Масштабирование можно использовать для обеспечения максимального использования ресурсов в вашем решении. |
Политики Azure
Azure предоставляет широкий набор встроенных политик, связанных с Service Fabric и его зависимостями. Некоторые из предыдущих рекомендаций можно проверять с помощью политики Azure. Например, можно проверить, можно ли:
- Кластеры Service Fabric настроены как зонально-избыточные.
- Кластеры Service Fabric имеют свойство ClusterProtectionLevel, установленное на
EncryptAndSign
. - Кластеры Service Fabric настроены только для использования Azure Active Directory для проверки подлинности клиента.
Для комплексного управления ознакомьтесь со встроенными определениями политики Azure для service Fabric и другими политиками, которые могут повлиять на безопасность [облачной инфраструктуры].
Рекомендации помощника по Azure
Помощник по Azure — это персонализированный облачный консультант, который поможет вам следовать рекомендациям по оптимизации развертываний Azure. Ниже приведены некоторые рекомендации, которые помогут повысить надежность, безопасность, эффективность затрат, производительность и эффективность работы Service Fabric.
Связанное содержимое
Ознакомьтесь со статьей «Параметры конфигурации управляемого кластера Azure Service Fabric», где представлен список всех параметров, которые у вас доступны при создании и обслуживании кластера.
Ознакомьтесь с основами архитектуры приложений Azure , чтобы узнать, как разрабатывать рабочие нагрузки. Хотя Service Fabric можно использовать исключительно как платформу для размещения контейнеров, использование хорошо спроектированных рабочих нагрузок позволяет задействовать все функциональные возможности Service Fabric.
Используйте эти рекомендации при создании управляемого кластера Service Fabric с помощью шаблона ARM или на портале Azure:
- Быстрый старт: Развертывание управляемого кластера Service Fabric с помощью шаблона Azure Resource Manager
- Быстрый старт: Развертывание управляемого кластера Service Fabric с помощью портала Azure