Как рассчитать затраты в мультитенантной архитектуре?
Я уверен, что я не первый, кто столкнулся с этой проблемой, но я не нашел ни одного полезного вопроса/ответа на StackOverflow.
Я начал работать в компании, которая предлагает решение SaaS, использующее службу приложений и базу данных SQL Azure . Архитектура
- Мультитенантность на уровне приложения
- Один клиент на уровне базы данных
немного так:
Естественно, у нас возникают проблемы с оценкой затрат в конце месяца.
Мое решение состояло бы в том, чтобы установить соединитель управления затратами Azure в Power BI , но даже это не поможет мне точно оценить затраты службы приложений на одного клиента.
Сама Microsoft предлагает распределять затраты с помощью тегов ресурсов , но даже этот способ для меня недостаточно точен:
С помощью этой стратегии тегов легко отфильтровать информацию о затратах до одного штампа. Также легко найти стоимость ресурсов, специфичных для арендатора, например общую стоимость базы данных для арендатора C. Общие компоненты не имеют тега tenant-id, но стоимость общих компонентов для штампа может быть делится между арендаторами, которым назначено использовать этот штамп или осколок.
Таким образом, Microsoft еще раз подчеркивает, что единственный способ точно рассчитать затраты — это полностью перейти на одного арендатора (в примере арендатор C).
Согласны ли вы с тем, что единственным выходом из ситуации является переход на единый клиент на уровне приложения и базы данных?
Не могли бы вы привести несколько примеров того, как вы решаете эту проблему в своей компании?
1 ответ
Существует относительно новая функция под названием « Распределение затрат» , которая в настоящее время находится в общедоступной предварительной версии. Это означает, что он может иметь ограниченные возможности, пока не будет полностью выпущен (см. раздел «Текущие ограничения» на странице связанной документации).
Если вы являетесь клиентом с Клиентским соглашением Майкрософт или Соглашением Enterprise (EA), вы можете попробовать включить эту функцию в разделе «Управление затратами» на портале Azure и проверить, соответствуют ли доступные правила распределения затрат вашим требованиям.
С помощью распределения затрат вы можете переназначать или распределять затраты на общие службы с подписок, групп ресурсов или тегов на другие подписки, группы ресурсов или теги в вашей организации. Вы можете создать несколько «источников» и «целей» и настроить процент распределения вручную или пропорционально в зависимости от стоимости вычислений, стоимости хранения или стоимости сети.
Обратите внимание, что распределение затрат не повлияет на ваш платежный счет, поскольку основная цель распределения затрат — помочь вам возместить расходы другим.