Как рассчитать затраты в мультитенантной архитектуре?

Я уверен, что я не первый, кто столкнулся с этой проблемой, но я не нашел ни одного полезного вопроса/ответа на StackOverflow.

Я начал работать в компании, которая предлагает решение SaaS, использующее службу приложений и базу данных SQL Azure . Архитектура

  • Мультитенантность на уровне приложения
  • Один клиент на уровне базы данных

немного так:

Естественно, у нас возникают проблемы с оценкой затрат в конце месяца.

Мое решение состояло бы в том, чтобы установить соединитель управления затратами Azure в Power BI , но даже это не поможет мне точно оценить затраты службы приложений на одного клиента.

Сама Microsoft предлагает распределять затраты с помощью тегов ресурсов , но даже этот способ для меня недостаточно точен:

С помощью этой стратегии тегов легко отфильтровать информацию о затратах до одного штампа. Также легко найти стоимость ресурсов, специфичных для арендатора, например общую стоимость базы данных для арендатора C. Общие компоненты не имеют тега tenant-id, но стоимость общих компонентов для штампа может быть делится между арендаторами, которым назначено использовать этот штамп или осколок.

Таким образом, Microsoft еще раз подчеркивает, что единственный способ точно рассчитать затраты — это полностью перейти на одного арендатора (в примере арендатор C).

Согласны ли вы с тем, что единственным выходом из ситуации является переход на единый клиент на уровне приложения и базы данных?

Не могли бы вы привести несколько примеров того, как вы решаете эту проблему в своей компании?

1 ответ

Существует относительно новая функция под названием « Распределение затрат» , которая в настоящее время находится в общедоступной предварительной версии. Это означает, что он может иметь ограниченные возможности, пока не будет полностью выпущен (см. раздел «Текущие ограничения» на странице связанной документации).

Если вы являетесь клиентом с Клиентским соглашением Майкрософт или Соглашением Enterprise (EA), вы можете попробовать включить эту функцию в разделе «Управление затратами» на портале Azure и проверить, соответствуют ли доступные правила распределения затрат вашим требованиям.

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

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