Шаблоны облачного проектирования, поддерживающие эффективность работы

При проектировании архитектур рабочих нагрузок следует использовать отраслевые шаблоны, которые решают распространенные проблемы. Шаблоны могут помочь вам сделать преднамеренный компромисс в рабочих нагрузках и оптимизировать для желаемого результата. Они также могут помочь снизить риски, связанные с конкретными проблемами, которые могут повлиять на надежность, безопасность, производительность и затраты. Так как операции выполняются во всех этих областях, риски в конечном итоге повлияют на операции рабочей нагрузки. Эти шаблоны поддерживаются реальными возможностями, предназначены для облачных и операционных моделей и по своей сути не зависят от поставщиков. Использование хорошо известных шаблонов для стандартизации структуры рабочей нагрузки само по себе является компонентом операционной эффективности.

Многие конструктивные шаблоны напрямую поддерживают один или несколько основных принципов архитектуры. Шаблоны разработки, поддерживающие принцип операционной эффективности, используют топологии, которые обеспечивают прочную основу для безопасного развертывания и упрощают эволюцию архитектуры с течением времени, сценарии миграции и наблюдаемость.

Конструктивные шаблоны для повышения эффективности операционных процессов

В следующей таблице перечислены шаблоны облачного проектирования, которые поддерживают цели повышения эффективности работы.

Модель Сводка
Уровень защиты от повреждений Защищает новые системные компоненты от поведения или реализации устаревших систем, добавляя уровень посредника для прокси-взаимодействия между устаревшими и новыми компонентами. Этот шаблон помогает гарантировать, что при интеграции с этими устаревшими системами новые компоненты не будут мешать устаревшим реализациям, которые могут иметь различные модели данных или бизнес-правила. Этот шаблон особенно полезен при постепенных миграциях системы. Это сокращает технический долг в новых компонентах и по-прежнему поддерживает существующие компоненты.
Хореография Координирует поведение автономных распределенных компонентов в рабочей нагрузке с помощью децентрализованной управляемой событиями связи. Этот шаблон может быть полезен, если предполагается часто обновлять или заменять службы в течение жизненного цикла рабочей нагрузки. Так как распределенные компоненты являются автономными, можно изменить рабочую нагрузку с меньшими общими изменениями в системе.
Консолидация вычислительных ресурсов Оптимизирует и консолидирует вычислительные ресурсы за счет увеличения плотности. Этот шаблон объединяет несколько приложений или компонентов рабочей нагрузки в общей инфраструктуре. Консолидация приводит к более однородной вычислительной платформе, которая может упростить управление и наблюдаемость, уменьшить разрозненные подходы к операционным задачам и уменьшить объем необходимых инструментов.
Метки развертывания Предоставляет подход к выпуску определенной версии приложения и его инфраструктуры в качестве управляемой единицы развертывания на основе предположения, что одни и те же или разные версии будут развертываться одновременно. Этот шаблон согласуется с неизменяемыми целями инфраструктуры, поддерживает расширенные модели развертывания и может способствовать безопасному развертыванию.
Внешнее хранилище конфигурации Извлекает конфигурацию в службу, которая является внешней для приложения для поддержки динамических обновлений значений конфигурации без необходимости изменения кода или повторного развертывания приложения. Это разделение конфигурации приложения от кода приложения поддерживает конфигурацию для конкретной среды и применяет управление версиями к значениям конфигурации. Внешние хранилища конфигураций также являются общим местом для управления флагами функций, чтобы обеспечить безопасное развертывание.
Агрегирование на шлюзе Упрощает взаимодействие клиента с рабочей нагрузкой, агрегируя вызовы нескольких внутренних служб в одном запросе. Эта топология позволяет логике серверной части развиваться независимо от клиентов, позволяя изменять реализации цепочек служб или даже источники данных, не изменяя точки взаимодействия с клиентом.
Перенесение в шлюз Разгружает обработку запросов на устройство шлюза до и после перенаправления запроса на внутренний узел. Добавление шлюза разгрузки в процесс запроса позволяет управлять конфигурацией и поддержкой разгруженных функций с одной точки, а не с нескольких узлов.
Маршрутизация шлюза Направляет входящие сетевые запросы в различные серверные системы на основе намерений запросов, бизнес-логики и доступности серверной части. Маршрутизация шлюза позволяет отделять запросы от серверных, что, в свою очередь, позволяет серверным службам поддерживать расширенные модели развертывания, переходы платформы и единую точку управления для разрешения доменных имен и шифрования при передаче.
Мониторинг конечных точек работоспособности Предоставляет способ мониторинга работоспособности или состояния системы, предоставляя конечную точку, специально разработанную для этой цели. Стандартизация доступных конечных точек работоспособности и уровень анализа в результатах для рабочей нагрузки может помочь в рассмотрении проблем.
Мост обмена сообщениями Предоставляет посредника для обеспечения обмена данными между системами обмена сообщениями, которые в противном случае несовместимы из-за протокола или формата. Такое разделение обеспечивает гибкость при переносе технологии обмена сообщениями и событий в рабочей нагрузке или при наличии разнородных требований от внешних зависимостей.
Издатель/Подписчик Отделяет компоненты архитектуры, заменяя прямой обмен данными между клиентом и службами на обмен данными через посредник сообщений или шину событий. Этот уровень косвенного обращения позволяет безопасно изменять реализацию на стороне издателя или подписчика без необходимости координировать изменения в обоих компонентах.
Карантин Обеспечивает соответствие внешних ресурсов согласованному командой уровню качества, прежде чем получать разрешение на их использование в рабочей нагрузке. Автоматизация и согласованность этих проверок являются частью жизненного цикла разработки программного обеспечения и методик безопасного развертывания (SDP) рабочей нагрузки.
Расширение Расширяет функциональные возможности приложения, инкапсулируя нестандартные или сквозные задачи в сопутствующий процесс, который существует вместе с приложением main. Этот шаблон обеспечивает подход к реализации гибкости в интеграции инструментов, который может повысить наблюдаемость приложения, не требуя от приложения принимать прямые зависимости реализации. Это позволяет функциональность расширения развиваться независимо и поддерживаться независимо от жизненного цикла приложения.
Подавление Предоставляет подход к систематической замене компонентов работающей системы новыми компонентами, часто во время миграции или модернизации системы. Этот шаблон обеспечивает непрерывный подход к улучшению, при котором добавочная замена с небольшими изменениями с течением времени предпочтительнее, чем большие системные изменения, которые являются более рискованными для реализации.

Дальнейшие действия

Ознакомьтесь с шаблонами проектирования облака, которые поддерживают другие основные аспекты Azure Well-Architected Framework: