B2B SaaS
各顧客のキャッシュとセッションのデータは、共有クラスター上の独自のプレフィックスの下にあり、ACLで分離されます。
多数の顧客を1つのクラスターで扱い、ACLで各顧客を自分のキーに閉じ込め、誰がどこに属するかをテナントレジストリに記録します。
ID、表示名、クォータ値をテナントとともに記録します。
実際のHotKVコマンドと応答例を使ったアニメーションのウォークスルーです。任意のステップをクリックすると、そこに移動します。 コマンドと応答は、HotKVで実際に入力し表示されるとおり英語のままです。
顧客ごとにキャッシュやデータストアを1つずつ動かすのは高価で、運用も大変です。かといって共有すれば、顧客間の強固な分離と、どのユーザーがどの顧客に属するかの記録が必要になります。
キーパターンを持つACLユーザーが、各テナントのアプリケーションを自分のキープレフィックスに閉じ込めます。テナントレジストリは、どのユーザーがどのテナントに属するかをクォータ値とともに記録します。レジストリはクラスターのすべてのノードで同じです。
ID、表示名、クォータ値をテナントとともに記録します。
TENANT.CREATE acme "Acme Corp" MAX_MEMORY 1073741824 MAX_KEYS 1000000ACLユーザーはacme:の下のキーにしか触れられず、危険なコマンドも実行できません。
ACL SETUSER acme-app on >s3cret ~acme:* +@all -@dangerousレジストリが、どのユーザーがどのテナントに属するかを記録します。
TENANT.BIND acme acme-appacmeのアプリは自分のキーを読み取ります。globexのキーを読もうとすると、ACLによって拒否されます。
GET globex:billing:planテナントに記録されたクォータ値です。このリリースでは使用量カウンターはクライアントのトラフィックで更新されないため、0と表示されます。
TENANT.STATS acme各顧客のキャッシュとセッションのデータは、共有クラスター上の独自のプレフィックスの下にあり、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プロトコルに対応しているため、既存のクライアントを向けるだけで、これらと同じコマンドを実行できます。