Основные данныеПлатформаТариф Scale (реестр арендаторов)

Бэкенды многопользовательских SaaS

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

арендаторов на сервер
256
шаблоны ключей для изоляции
ACL
записи пользователей и квот
На арендатора
Шаг 1 из 5
Регистрируем арендатора

Идентификатор, отображаемое имя и значения квот, записанные вместе с арендатором.

Пример сеансаplaying
# Регистрируем арендатора
hotkv> TENANT.CREATE acme "Acme Corp" MAX_MEMORY 1073741824 MAX_KEYS 1000000
OK

Анимированная демонстрация с настоящими командами HotKV и примерами ответов. Нажмите на любой шаг, чтобы перейти к нему. Команды и ответы остаются на английском, ровно так, как вы вводите и видите их в HotKV.

Проблема

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

Как с этим справляется HotKV

Пользователи ACL с шаблонами ключей ограничивают приложение каждого арендатора его собственным префиксом ключей. Реестр арендаторов хранит, какие пользователи принадлежат какому арендатору, вместе со значениями квот. Реестр одинаков на каждом узле кластера.

Шаг за шагом

Что происходит, команда за командой

  1. 01

    Регистрируем арендатора

    Идентификатор, отображаемое имя и значения квот, записанные вместе с арендатором.

    TENANT.CREATE acme "Acme Corp" MAX_MEMORY 1073741824 MAX_KEYS 1000000
  2. 02

    Ограничиваем его пользователей

    Пользователь ACL может обращаться только к ключам под acme: и не может выполнять опасные команды.

    ACL SETUSER acme-app on >s3cret ~acme:* +@all -@dangerous
  3. 03

    Привязываем пользователя к арендатору

    Реестр записывает, какие пользователи принадлежат какому арендатору.

    TENANT.BIND acme acme-app
  4. 04

    Изоляция в действии

    Приложение acme читает собственные ключи. Чтение ключа globex отклоняется ACL.

    GET globex:billing:plan
  5. 05

    Читаем запись арендатора

    Значения квот, записанные для арендатора. В этом релизе счётчики использования не заполняются клиентским трафиком, поэтому они равны 0.

    TENANT.STATS acme
Где это уместно

Реальные сценарии

B2B SaaS

Кеш и данные сеансов каждого клиента хранятся под его префиксом в общем кластере, изолированные через ACL.

Агентства и реселлеры

Проекты клиентов - это арендаторы со своими пользователями, поэтому доступ можно выдавать и отзывать по каждому клиенту.

Встроено

Что вы получаете

Изоляция по шаблонам ключей

Пользователи ACL, ограниченные префиксом ключей и набором команд.

ACL SETUSER

Реестр арендаторов

Арендаторы с именами, состояниями, значениями квот и привязанными пользователями, одинаковый на каждом узле.

TENANT.CREATETENANT.BIND

Записи арендаторов

Имя, состояние, значения квот и привязанные пользователи каждого арендатора.

TENANT.INFOTENANT.STATS

Блокируем арендатора

Отключите пользователей ACL арендатора.

ACL SETUSER off

Частые вопросы

Применяются ли значения квот принудительно?

Нет. Они записываются и показываются в TENANT.STATS, но HotKV не применяет их к командам, а счётчики использования в этом релизе не заполняются клиентским трафиком. Изоляцию обеспечивают правила ACL.

Блокирует ли приостановка арендатора доступ?

TENANT.SUSPEND записывает состояние для ваших инструментов. Чтобы заблокировать пользователей арендатора, отключите их командой ACL SETUSER.

Какие тарифы это включают?

ACL работают на любом тарифе. Реестр арендаторов входит в тариф Scale.

Связанные сценарии

Попробуйте на своей нагрузке

HotKV понимает протокол Redis, поэтому вы можете подключить к нему существующий клиент и выполнить те же команды.