Data intiPlatformPaket Scale (registri tenant)

Backend SaaS Multi-Tenant

Layani banyak pelanggan dari satu klaster, masing-masing dibatasi pada kuncinya sendiri dengan ACL, dengan registri tenant yang mencatat siapa milik siapa.

tenant per server
256
pola kunci untuk isolasi
ACL
catatan pengguna dan kuota
Per tenant
Langkah 1 dari 5
Daftarkan tenant

Sebuah id, nama tampilan, dan nilai kuota dicatat bersama tenant.

Sesi contohplaying
# Daftarkan tenant
hotkv> TENANT.CREATE acme "Acme Corp" MAX_MEMORY 1073741824 MAX_KEYS 1000000
OK

Panduan beranimasi dengan perintah HotKV yang sebenarnya dan balasan contoh. Klik langkah mana pun untuk melompat ke sana. Perintah dan balasan tetap dalam bahasa Inggris, persis seperti yang Anda ketik dan lihat di HotKV.

Masalahnya

Menjalankan satu cache atau data store per pelanggan mahal dan merepotkan dioperasikan, tetapi berbagi satu berarti Anda memerlukan isolasi yang kuat antarpelanggan dan catatan pengguna mana yang milik pelanggan mana.

Cara HotKV menanganinya

Pengguna ACL dengan pola kunci membatasi aplikasi setiap tenant pada prefiks kuncinya sendiri. Registri tenant mencatat pengguna mana yang milik tenant mana, beserta nilai kuota. Registri itu sama di setiap node klaster.

Langkah demi langkah

Apa yang terjadi, perintah demi perintah

  1. 01

    Daftarkan tenant

    Sebuah id, nama tampilan, dan nilai kuota dicatat bersama tenant.

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

    Batasi penggunanya

    Pengguna ACL hanya dapat menyentuh kunci di bawah acme: dan tidak dapat menjalankan perintah berbahaya.

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

    Ikat pengguna ke tenant

    Registri mencatat pengguna mana yang milik tenant mana.

    TENANT.BIND acme acme-app
  4. 04

    Isolasi beraksi

    Aplikasi acme membaca kuncinya sendiri. Pembacaan kunci globex ditolak oleh ACL.

    GET globex:billing:plan
  5. 05

    Baca catatan tenant

    Nilai kuota yang dicatat untuk tenant. Pada rilis ini penghitung penggunaan tidak diisi oleh trafik klien, jadi bernilai 0.

    TENANT.STATS acme
Di mana ini cocok

Skenario dunia nyata

SaaS B2B

Data cache dan sesi setiap pelanggan berada di bawah prefiksnya sendiri pada klaster bersama, diisolasi oleh ACL.

Agensi dan reseller

Proyek klien adalah tenant dengan penggunanya sendiri, sehingga akses dapat diberikan dan dicabut per klien.

Bawaan

Yang Anda dapatkan

Isolasi pola kunci

Pengguna ACL dibatasi pada satu prefiks kunci dan satu kumpulan perintah.

ACL SETUSER

Registri tenant

Tenant dengan nama, status, nilai kuota, dan pengguna terikat, sama di setiap node.

TENANT.CREATETENANT.BIND

Catatan tenant

Nama, status, nilai kuota, dan pengguna terikat dari setiap tenant.

TENANT.INFOTENANT.STATS

Kunci tenant dari luar

Matikan pengguna ACL milik tenant.

ACL SETUSER off

Pertanyaan umum

Apakah nilai kuota ditegakkan?

Tidak. Nilai itu dicatat dan ditampilkan di TENANT.STATS, tetapi HotKV tidak menegakkannya pada perintah, dan penghitung penggunaan tidak diisi oleh trafik klien pada rilis ini. Isolasi berasal dari aturan ACL.

Apakah menangguhkan tenant memblokirnya?

TENANT.SUSPEND mencatat status untuk alat Anda. Untuk mengunci pengguna tenant, matikan dengan ACL SETUSER.

Paket mana yang menyertakannya?

ACL bekerja di setiap paket. Registri tenant adalah bagian dari paket Scale.

Kasus penggunaan terkait

Coba pada beban kerja Anda sendiri

HotKV berbicara protokol Redis, jadi Anda dapat mengarahkan klien yang sudah ada ke HotKV dan menjalankan perintah yang sama.