Шаблоны облачной разработки, поддерживающие оптимизацию затрат

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

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

Шаблоны проектирования для оптимизации затрат

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

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

Следующие шаги

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