Çok kiracılı çekirdek
Çok kiracılı bir çekirdek, garantili izolasyon, yönetilen sınırlar ve güvenli özelleştirme ile paylaşılan kaynaklar üzerinde birçok bağımsız müşteriye (kiracı) hizmet veren bir platformun/ürünün temel katmanıdır. İyi tasarlanmış bir çekirdek, TCO'yu azaltır, devreye almayı hızlandırır, sürümleri basitleştirir ve her kiracı için öngörülebilir kalite sunar.
1) Kiracı modeli ve izolasyon sınırları
Tanımlar
Kiracı/Org/Hesap - kendi kullanıcıları, verileri, politikaları ve sınırları olan mantıklı bir organizasyon.
İzolasyon: Bir kiracının diğerinin verilerini, performansını ve güvenliğini etkilemesini önleme yeteneği.
Yalıtım seviyeleri
1. Veri: bireysel veritabanları/şemalar/tablolar, "kiracı anahtarı'ile şifreleme," tenant _ id "filtreleri.
2. Hesaplamalar: CPU/RAM/IO kotaları, kiracı işçi havuzu veya ağırlıklı kuyruklar.
3. Ağ: segmentasyon, özel uç noktalar/VPN, kiracıya göre izin listeleri.
4. İşlemler: geçişler, yedeklemeler, DR ve "kiracı başına" etki sınırları olan olaylar.
Çoklu kiracılık desenleri
Silo (sert izolasyon): Kiracı başına ayrı kümeler/veritabanları. Maksimum güvenlik, yüksek fiyat.
Havuz: mantıksal izolasyon ile paylaşılan altyapı; Daha iyi verimlilik, daha yüksek "gürültülü komşu" riski.
Bridge/Hybrid: Hibrit - ortak kontrol düzlemi + VIP/düzenlenmiş müşteriler için seçici olarak "silo".
2) Kiracı taleplerinin tanımlanması ve yönlendirilmesi
Kiracı çözünürlüğü
Etki alanına göre: 'https ://{ tenant} .example 'comm'
Yol boyunca: '/t/{ kiracı }/... '
Başlığa göre: 'X-Tenant-Id', 'X-Org' (imza doğrulaması)
Belirteçle: 'tenant _ id', 'org _ id', 'plan', 'scopes' damgaları
Yönlendirme
L7 ağ geçidi (API gateway/Ingress) 'tenant _ id' ayıklar, bağlamı zenginleştirir ('plan', sınırlar, bölge), yollar/günlüklere yazar.
İşlev hizmetleri salt okunur bir bağlamı kabul eder; Rotadaki kararlar ve sınırlar ağ geçidi/politika motoru tarafından yapılır.
3) Veri ve şemalar: stratejiler
Depolama seçenekleri
Shared-schema, row-level: bir tablo kümesi, 'tenant _ id' alanı, katı RLS (Row-Level Security).
Paylaşılan-DB, şema başına: bir DBMS, kiracı başına ayrı bir şema; Kontrol edilebilirlik ve izolasyon arasındaki denge.
DB/cluster başına: kiracı başına ayrı veritabanı/cluster; Egemen iddialar için daha pahalı, daha kolay.
Temel Uygulamalar
Her yerde açıkça 'tenant _ id' iletilir ve bileşik anahtarlara/indekslere dahil edilir.
RLS/DBMS düzeyinde erişim ilkeleri + çift kilitli servis doğrulama.
Şifreleme: anahtar hiyerarşisi (kök KMS, kiracı başına anahtar-zarf, nesne başına DEK).
Arşiv/saklama ve "unutulma hakkı", kiracı düzeyinde politikalarla yönetilir.
4) Ayarlar, özellikler ve sürümler
Kiracı yapılandırmaları
Tablo/depolama 'tenant _ config' (plan, kotalar, özellik bayrakları, yerelleştirme, SLA).
Yapılandırmaların öncelikleri: öntanımlı, plan, kiracı, ortam, kullanıcı.
Kısa TTL ile yapılandırma önbellekleme ve olaya göre sakatlık.
Özellik bayrakları ve uyumluluk
Fonksiyonlar noktası etkinleştirme (kiracı/kohort başına), kanarya haddeleme.
API sürüm oluşturma: sınırda kararlı sözleşme + adaptörler (geri/ileri uyumlu formatlar).
5) Limitler, kotalar ve faturalandırma
Tüketim politikaları
Hız sınırlaması: Kiracı/rota başına 'istekler/saniyeler', plan öncelikleri ile "token-bucket".
Kotalar: depolama kapasitesi, nesne sayısı, mesajlar/dakika, işler/saat.
Adalet: Kuyrukların "ağırlıklı programı" + VIP için çalışanların izolasyonu.
Faturalandırma
'Tenant _ id' (kullanım metrikleri) ile sayaçlar - fatura toplayıcıları.
Sınırdaki kullanım anlık görüntüleri (idempotency ve olay kaybı koruması).
Modeller: sabit plan + tüketim, ödeme sonrası/ön ödeme, indirimler "katmanlı".
6) Güvenlik ve erişim
Kimlik Doğrulama/Yetkilendirme
'Tenant _ id', 'roles', 'scopes' işaretli OIDC/SAML.
RBAC/ABAC - Kiracı seviyesi rolleri (Sahip/Yönetici/Okuyucu), proje/departman nitelikleri
mTLS ve kısıtlı belirteçlerle servisten servise.
Güven sınırları
Kabul politikaları isteyin: başlık imzası doğrulama, nonce/zaman damgası, kaynak bağlama.
Sırlar ve anahtarlar: Kiracı başına rotasyon, bireysel KMS bağlamları, anahtar işlemlerin denetimi.
Çok bölgeli ve veri ikametgahı: Kiracıyı bir bölgeye sabitleme, bölgeler arası akışları kontrol etme.
7) "Kiracılar tarafından" gözlemlenebilirlik
Trace ve Metrikler
Gerekli etiketler 'tenant _ id', 'plan', 'bölge', 'uç nokta', 'durum'dur.
Kiracı başına SLI/SLO: 'kullanılabilirlik', 'p95 gecikme süresi', 'hata bütçesi'.
Panolar ve segmentlere göre uyarılar (VIP/düzenlenmiş/yeni).
Günlükler ve Denetimler
Kiracı politikasına göre değiştirilemez depolama ve saklama ile etkinlik günlükleri (kim/ne/ne zaman/nerede).
Ucuz depolama için olayların önceden toplanması, detayların "tıklama ile" restorasyonu.
8) Performans ve "gürültülü komşu"
Anti-gürültü önlemleri
Kuyruklar/işçiler, CPU paylaşımları ve kiracı başına IO oranındaki sınırlar.
Önbellek ayrımı: anahtar önekleri 'tenant: {id}:... ', planlara göre TTL, "önbellek izdihamı'na karşı koruma.
'Tenant _ id' seçiciliğine dayalı dizinler ve sorgu planları.
Soğuk başlangıçlar ve "sıcak" havuzlar
VIP/tepe pencereleri için ön ısınma.
Metrik sinyallere dayalı elastik işçi havuzları (geri basınç/otomatik ölçeklendirme).
9) Kesinti olmadan yükseltmeler ve geçişler
Strateji
Geriye uyumlu geçişler (genişlet - göç et - kontrat).
"Kiracılar tarafından" geçişler: belirli bir "tenant _ id" için ilerleme kontrolü, "pause/rollback'ile gruplar.
Kiracıların bir alt kümesinde örnekleme ve "kanarya" göçleri.
DR ve Olaylar
Kiracı başına RTO/RPO ile DR planı; Genel kesinti olmadan kısmi "salt okunur mod".
Olayın izolasyonu: 'tenant _ id'ile kaynaşma,' sıcak 'kiracının söndürülmesi gerisini etkilemez.
10) API'ler ve protokoller
Zorunlu kiracı bağlamında REST/gRPC (damgalarda/başlıklarda).
Olaylar (olay odaklı): 'kiracı. {id} .event' adını veren konular, abonelikler için filtreler ve ACL'ler.
Genel giriş noktaları: L7 ağ geçidi bağlamı doğrular, sınırlar uygular, kiracının politikasına göre PII'yi şifreler.
11) Kiracı yaşam döngüsü
1. Sağlama: Bir kiracı kaydı oluşturma, anahtarlar/yapılandırmalar oluşturma, bir bölgeyi bağlama.
2. Aktivasyon: OIDC/SAML istemcisinin serbest bırakılması, rollerin/politikaların oluşturulması, birincil kotalar.
3. Operasyon: izleme, faturalandırma, bayrak/plan güncellemeleri.
4. Askıya alma/kısma: veri saklama/dışa aktarma ile dondurma.
5. Silme/dışa aktarma: saklama, güveli yedeklemeler, kripto parçalama.
12) Mini referans mimarisi (sözel şema)
Kenar (API ağ geçidi): TLS/mTLS, ayıklama 'tenant _ id', sınırları, denetim.
Kontrol Düzlemi: kiracı kataloğu, yapılandırmalar, özellik bayrakları, faturalandırma, politika.
Veri Düzlemi (hizmetler): durumsuz hizmetler, kuyruklar, kota işçileri; Redis/kv kiracı tarafından önceden eklenmiştir.
Depolama: RLS-DB/bireysel şemalar/DB; Kiracı başına anahtarlı KMS; Zarf şifrelemeli nesne depolama.
Gözlemlenebilirlik: 'tenant _ id' etiketli izleme/metrikler/günlükler, plan başına uyarılar.
Yönetici: Kiracıların bir alt kümesindeki izole işlemler (geçişler/yedeklemeler).
13) Satış öncesi kontrol listesi
- Sınırda ve hizmetlerde tenant _ id'i tanımlamanın tek bir yolu.
- RLS/ACL politikaları testler ve "negatif komut dosyaları'ile test edilir.
- Kotalar/limitler/faturalandırma gerçek yüklerde doğrulanır; "Fatura düşmelerine" karşı koruma vardır.
- Kiracı başına gözlemlenebilirlik ve SLO; VIP/regulated için uyarılar.
- Geçişler uyumludur, kısmi bir geri alma ve ödünç verme partileri vardır.
- Kiracı başına RTO/RPO ve düzenli egzersizler ile DR senaryoları.
- Kiracı anahtar şifreleme, anahtar döndürme ve anahtar denetimi.
- API sözleşmelerinin/olaylarının ve sürüm politikalarının belgelenmesi.
14) Tipik hatalar
Küresel göçler'bir çırpıda düştü "sorunlu bir kiracıda durma yeteneği olmadan.
'Tenant _ id'in önbelleğine/kuyruklarına gizli bağımlılık - veri sızıntısı/kuyruk geçişi.
Bağlam karıştırma ('tenant _ id' olmadan yanlışlıkla yönetici işlemleri).
"Çift kilit" yokluğu: Veritabanında RLS olmadan sadece servis kontrolü.
Tüm küme için tek bir sınırlayıcı - "gürültülü komşu've SLO ihlali.
Idempotency ve denetim izi olmadan şeffaf olmayan faturalandırma.
15) Hızlı strateji seçimi
Sıkı izolasyon/düzenleme: Silo (ayrı veritabanları/kümeler), bölge kilidi.
Dengeli verimlilik: Şema + RLS başına paylaşılan DB, kiracı başına anahtarlar.
Yüksek gerçek zamanlı trafik: "Ağırlıklı" kotalara sahip ortak kuyruklar ve VIP için özel çalışanlar.
Birçok özelleştirme: özellik bayrakları + API adaptörleri, yapılandırmaları önceliğe göre depolar.
Sonuç
Çok kiracılı çekirdek, mühendislik sınırlarının disiplinidir: 'tenant _ id'in açık tanımı, tüm katmanlarda sıkı izolasyon, yönetilen kotalar ve şeffaf faturalama, artı gözlemlenebilirlik ve sürüm uyumluluğu. Açıklanan kalıpları takip etmek, her kiracı için güvenlik, kalite ve değişim hızından ödün vermeden ürünü ölçeklendirmenizi sağlar.