GH GambleHub

Izolacja najemcy i limity

Izolacja najemcy i granice są fundamentem architektury wielu najemców. Cel: Tak, że działania jednego najemcy nigdy nie wpływają na dane, bezpieczeństwo i SLO innego, a zasoby są rozprowadzane uczciwie i przewidywalnie. Poniżej znajduje się praktyczna mapa rozwiązań od poziomu danych do planowania obliczeń i zarządzania incydentami.

1) Model zagrożenia i cele

Zagrożenia

Wyciek danych między lokatorami (logiczny/cache/via logs).
„Hałaśliwy sąsiad”: degradacja wydajności ze względu na kolce u jednego klienta.
Eskalacja przywilejów (błąd w polityce dostępu).
Dryf rozliczeniowy (niedopasowanie użytkowania i opłat).
Kaskady bezpieczne scenariusze (incydent jednego prowadzi do przestojów wielu).

Cele

Ścisłe odizolowanie danych i tajemnic.
Marginalne limity/kwoty i sprawiedliwe planowanie.
Przejrzysty audyt, obserwowalność i rozliczenia.
Lokalizacja wypadków i szybkie odzyskiwanie na najemcę.

2) Poziomy izolacji (model końcowy)

1. Dane

'lokator _ id' in klucze i indeksy, Row-Level Security (RLS).
Szyfrowanie: hierarchia KMS → klucz najemcy (KEK) → klucze danych (DEK).
Oddzielne systemy/DB o wysokich wymaganiach (Silo), wspólny klaster z RLS dla wydajności (Pool).
Polityka retencji i „prawo do zapomnienia” na najemcę, klucze crypto-rozdrabniania.

2. Obliczenia

Kwoty CPU/RAM/IO, puli pracowników na najemcę, kolejki ważone.
Izolacja GC/hałdy (JVM/Kontenery/ustawienia runtime), ograniczenia paralelizmu.
Per-najemca autoskalowanie + backpressure.

3. Sieć

Segmentacja: prywatne punkty końcowe/VPC, ACL przez 'lokator _ id'.
Ograniczenie kursu i czapki połączeń na jednego najemcę na granicy.
Ochrona przed DDoS/botami, z uwzględnieniem planu/priorytetu.

4. Operacje i procesy

Wędrówki lokatorów, kopie zapasowe, DR, flagi funkcji.
Incydenty - „promień mikro-blast”: topienie przez 'lokator _ id'.

3) Kontrola dostępu i kontekst najemcy

AuthN: OIDC/SAML; tokeny przenoszą 'lokator _ id',' org _ id', 'plan', 'scopes'.
AuthZ: RBAC/ABAC (role + atrybuty projektu, departamentu, regionu).
Kontekst na granicy: brama API wyciąga i zatwierdza kontekst najemcy, uzupełnia limity/kwoty, pisze do szlaków.
Zasada „podwójnej blokady”: sprawdzanie w polityce + usługi RLS/bazy danych.

4) Dane: schematy, pamięć podręczna, kłody

Programy:
  • Wspólny schemat (poziom wiersza): wymagana jest maksymalna wydajność, ścisły RLS.
  • Per-schemat: odizolowanie/operacyjność tradeoff.
  • Per-DB/cluster (Silo): dla VIP/regulowanych.

Cache: lokator prefiksów kluczy: {id}:... ", TTL według planów, zabezpieczenie cache-stampede (zamek/wczesny odśwież).

Logi/metadane: pełne pseudonimizacja PII, filtry przez 'lokator _ id', zakaz „klejenia” kłód różnych najemców.

5) Ograniczenie ruchu i operacji

Podstawowa mechanika

Token Bucket: wygładzone wybuchy, parameteryzacja 'rate '/' burst'.
Leaky Bucket: Stabilizacja przepustowości.
Stałe okno/okno przesuwne: proste/dokładne kwoty w oknie czasowym.
Limity współistnienia: czapki dla jednoczesnych żądań/jabs.

Gdzie stosować

Na granicy (L7/API brama) - podstawowa ochrona i „szybka awaria”.
W rdzeniu (w usługach/kolejkach) - dla drugiego obiegu i „sprawiedliwego udziału”.

Zasady

Według najemcy/planu/punktu końcowego/rodzaju operacji (publicznych API, eksportu ciężkiego, działań administratora).
Świadomy priorytetu: VIP dostaje więcej „pęknięcia” i wagi w arbitrażu.
Idempotencja-klucze do bezpiecznych rekolekcji.

Profile próbki (koncepcje)

Rozrusznik: 50 req/s, wybuch 100, 2 równoległy eksport.
Biznes: 200 req/s, wybuch 400, 5 eksport.
Enterprise/VIP: 1000 req/s, burst 2000, dedykowani pracownicy.

6) Kwoty i sprawiedliwe planowanie (uczciwość)

Przydziały zasobów: przechowywanie, obiekty, wiadomości/min, zadania/godzina, rozmiar kolejki.
Ważone targi kolejkowania/rundy deficytu Robin: „Ważony” dostęp do wspólnych pracowników.
Baseny na najemcę: sztywna izolacja dla hałaśliwych/krytycznych klientów.
Kontrola wjazdu: awaria/degradacja przed wykonaniem, gdy kwoty są wyczerpane.
Backoff + jitter: wykładnicze opóźnienia, aby utrzymać wybuchy poza synchronizacją.

7) Obserwowalność i rozliczenie na najemcę

Wymagane znaczniki to 'lokator _ id',' plan ',' region ',' punkt końcowy ',' status '.
SLI/SLO na najemcę: p95/p99 opóźnienie, wskaźnik błędów, dostępność, wykorzystanie, nasycenie.
Metryka użytkowania: obsługa procesora/bajt/drugi licznik → agregator → faktury.
Billing idempotence: migawki na granicy, ochrona przed podwójnymi odpisami/utratą zdarzeń.
Deski rozdzielcze w segmentach: VIP/regulowane/nowi najemcy.

8) Incydenty, degradacja i DR „przez najemcę”

Topienie przez 'najemcę _ id': awaryjne wyłączenie/przepustowość określonego najemcy bez wpływu na resztę.
Graceful Degradation: tryb tylko do odczytu, kolejki piaskownic, zadania odroczone.
RTO/RPO na najemcę: cele odzyskiwania i strat dla każdego planu.

Wiertło: Regularne „dni gry” z hałaśliwym najemcą odcięty i DR sprawdzone

9) Zgodność (rezydencja, prywatność)

Lokator szpilkowy do regionu; jasne zasady przepływu międzyregionalnego.
Audyt dostępu do kluczy/danych, rejestrowanie administratorów.
Zarządzanie zatrzymywaniem i eksportem danych na najemcę.

10) Mini odniesienie: jak go połączyć

Przepływ żądania

1. Krawędź (brama API): TLS → wyciąg 'najemca _ id' → walidacja tokenu → zastosuj stawkę/kwoty → umieść szlaki.
2. Silnik polityczny: kontekst „najemca _ id/plan/funkcje” → decyzja o trasie i limitach.
3. Usługa: sprawdzanie praw + etykiety 'lokator _ id' → praca z bazą danych w RLS → cache z prefiksem.
4. Użycie-kolekcja: liczniki operacji/bajty → agregator → rozliczenie.

Dane

Schemat/DB według strategii (poziom wiersza/per-schema/per-DB).
KMS: klucze najemcy, obrót, crypto-rozdrabnianie przy usuwaniu.

Informatyka

Kolejki z wagami, puli pracowników na najemcę, czapki przez równoczesność.
Autoskalowanie przez metryki dla jednego najemcy.

11) Pseudo-polityka (dla orientacji)

yaml limits:
starter:
req_per_sec: 50 burst: 100 concurrency: 20 exports_parallel: 2 business:
req_per_sec: 200 burst: 400 concurrency: 100 exports_parallel: 5 enterprise:
req_per_sec: 1000 burst: 2000 concurrency: 500 exports_parallel: 20

quotas:
objects_max: { starter: 1_000_000, business: 20_000_000, enterprise: 100_000_000 }
storage_gb: { starter: 100,   business: 1000,    enterprise: 10000 }

12) Lista kontrolna przedsprzedaży

  • Pojedyncze źródło prawdy "najemca _ id'; wszędzie są wyrzucane i rejestrowane.
  • Obsługa RLS/ACL włączona na poziomie DB + (podwójna blokada).
  • Klucze szyfrowania na lokatora, crypto-rozdrabnianie udokumentowane.
  • Limity/kwoty na granicy i wewnątrz; przetestowane wybuchy i „pęknięcie”.
  • Fair-queuing i/lub dedykowanych pracowników VIP; czapki на równoczesność.
  • SLO i wpisy dla jednego najemcy; deski rozdzielcze według segmentów.
  • Zbieranie użytkowania jest idempotentne; zweryfikowany rollup rozliczeniowy.
  • DR/incydenty są zlokalizowane dla najemcy; fusing przez 'tenant _ id' works.
  • Środki pieniężne/dzienniki są podzielone przez najemcę; PII zamaskowany.
  • Procedury migracji/tworzenia kopii zapasowych/wywozu są oparte na najemcy.

13) Typowe błędy

RLS wyłączony/ominięty przez użytkownika „usługi” - ryzyko wycieku.
Pojedynczy globalny ogranicznik → „hałaśliwy sąsiad” i naruszenie SLO.
Wspólne bufory/kolejki bez przedrostków → skrzyżowanie danych.
Rachunki liczą się według dzienników, które są tracone w szczytach.
Brak syntezy termojądrowej - upadki kaskadowe.
Migracje „w jednym padł swoop” bez możliwości zatrzymania problematycznego 'lokator _ id'.

14) Szybki wybór strategii

Regulowane/VIP: dane dotyczące silosu (w przeliczeniu na DB), pracowników dedykowanych, ścisłe kwoty i miejsce zamieszkania.
Masa SaaS: wspólny schemat + RLS, silne limity na granicy, uczciwe kolejki wewnątrz.
Ładowanie „hałaśliwe/pulsujące”: duże 'burst' + twarde czapki współzależności, ciśnienie wsteczne i priorytety zgodnie z planami.

Wnioski

Izolacja najemców i granice dotyczą granic i sprawiedliwości. Wyczyść "najemca _ id' poprzez stos, RLS i szyfrowanie danych, ograniczenie i kwoty na granicy i w rdzeniu, sprawiedliwy harmonogram, obserwowalność i lokalizacja incydentów - wszystko to daje bezpieczeństwo, przewidywalną jakość i przejrzyste rozliczenia dla każdego najemcy, nawet przy agresywnym wzroście platformy.

Contact

Skontaktuj się z nami

Napisz do nas w każdej sprawie — pytania, wsparcie, konsultacje.Zawsze jesteśmy gotowi pomóc!

Rozpocznij integrację

Email jest wymagany. Telegram lub WhatsApp są opcjonalne.

Twoje imię opcjonalne
Email opcjonalne
Temat opcjonalne
Wiadomość opcjonalne
Telegram opcjonalne
@
Jeśli podasz Telegram — odpowiemy także tam, oprócz emaila.
WhatsApp opcjonalne
Format: kod kraju i numer (np. +48XXXXXXXXX).

Klikając przycisk, wyrażasz zgodę na przetwarzanie swoich danych.