Tek bir kod tabanı, yüzlerce kiracı, sıfır veri sızıntısı — her ölçeklenebilir SaaS işinin temeli.

Tek bir dağıtımdan birden fazla müşteriye hizmet veren bir platform kuruyorsunuz. Her müşteri izole veri, markalı deneyimler ve kiracı başına faturalandırma bekler — ancak her biri için ayrı altyapı çalıştırmayı karşılayamazsınız. Paylaşılan altyapının ekonomik avantajlarına ve özel sistemlerin izolasyon garantilerine ihtiyacınız var. Bu, SaaS mimarisinin temel gerilimidir ve izolasyon modelini erken aşamada yanlış belirlemek, platform geliştirmedeki en maliyetli hatalardan biridir.
Explore more design patterns and system architectures
Mimarlarımız, bu deseni kullanarak belirli gereksinimleriniz için sistemler tasarlamanıza ve oluşturmanıza yardımcı olabilir.
İletişime GeçinÇok kiracılı SaaS mimarisi, temel işlem, depolama ve ağ kaynaklarını paylaşırken kiracılar arasında mantıksal veya fiziksel ayrım sağlar. Bu kalıp, kiracı sağlama, veri izolasyonu, özellik yönetimi, faturalandırma ölçümü ve white-label özelleştirmeyi kapsar. Temel tasarım kararı, izolasyon modelidir: satır düzeyinde güvenliğe sahip paylaşılan veritabanı, kiracı başına şema veya kiracı başına veritabanı. Her model, izolasyon gücünü operasyonel karmaşıklık ve maliyet verimliliğiyle dengeler.
Sistem üç katmana ayrılmıştır. Kiracıya duyarlı ağ geçidi, kimlik doğrulama, kiracı çözümlemesi (alt alan adı, JWT talebi veya API anahtarı aracılığıyla) ve istek yönlendirmeyi yönetir. Uygulama katmanı, tamamen kiracı bağlamında çalışır — her sorgu, her önbellek anahtarı, her kuyruk mesajı çözümlenen kiracıya özgüdür. Veri katmanı, satır düzeyinde güvenlik politikaları, kiracı başına bağlantı havuzlama ve bekleyen verilerin şifreli bölümlendirmesi yoluyla depolama düzeyinde izolasyonu uygular.
tenant_id'ye göre filtreleyen PostgreSQL politikaları. Kiracı başına şema için: bağlantı havuzu yönetimi ile dinamik bağlantı yönlendirme. Kiracı başına veritabanı için: Terraform/Pulumi ile sağlama otomasyonu.acme.yourapp.com), white-label ürünler için daha temizdir ve kiracı başına TLS sertifikalarına izin verir. Yol tabanlı (yourapp.com/acme/) uygulaması daha basittir ve wildcard DNS karmaşıklığını önler. MW, white-label gereksinimleri olan B2B SaaS için alt alan adı çözümlemesini, dahili çok kiracılı araçlar için ise yol tabanlı çözümlemeyi önerir.tenant_id'ye göre kapsamlandırılmalıdır. Bu açık görünse de, kiracılar arası önbellek anahtarı çakışmaları en yaygın çok kiracılı hatalardan biridir. Bunu, kiracı bağlamını otomatik olarak önekleyen bir önbellek anahtarı fabrikası aracılığıyla uygularız.| Katman | Teknolojiler |
|---|---|
| Hesaplama | Node.js (NestJS), Python (FastAPI), ECS Fargate veya Kubernetes üzerinde konteynerleştirilmiş |
| Veri | RLS'li PostgreSQL, Redis (kiracıya özel), S3 (kiracıya bölünmüş bucket'lar) |
| Kimlik | Clerk, Auth0 veya Okta (kiracıya özel organizasyonlarla) |
| Faturalandırma | Stripe Connect (pazar yeri modeli), Stripe Billing (ölçülü abonelikler) |
| Gözlemlenebilirlik | Kiracı boyutlu etiketlere sahip Datadog, her girişte tenant_id ile yapılandırılmış günlük kaydı |
| Şu Durumlarda Kullanın | Şu Durumlarda Kaçının |
|---|---|
| Paylaşılan altyapıdan 10'dan fazla müşteriye hizmet veren bir B2B platformu inşa ederken | Her müşterinin tamamen özel altyapı gerektirmesi durumunda (uyumluluk/sözleşmesel) |
| White-label markalama, özel alan adları ve kiracı başına özellik kontrolüne ihtiyacınız olduğunda | 3'ten az müşteriniz varsa — daha basit, müşteri başına dağıtım yeterli olabilir |
| Kullanıma dayalı veya kademeli fiyatlandırma, kiracı başına ölçüm gerektirdiğinde | Ürün, kuruluş düzeyinde kiracılar değil, kullanıcı düzeyinde hesaplara sahip bir tüketici uygulaması olduğunda |
| Tek bir dağıtım hattı, tek bir izleme yığını, tek bir çağrı üzerine rotasyon istediğinizde | Kiracıların temel olarak farklı şemaları veya iş mantıkları olduğunda (sadece yapılandırma değil) |
MW, çok kiracılığı bir özellik olarak değil, kesişen bir endişe olarak ele alır. Kiracı bağlamı yayılımını ara yazılım düzeyinde uyguluyoruz, böylece uygulama kodu asla manuel olarak kiracıya göre filtreleme yapmaz — bu, framework tarafından uygulanır. RLS uygulamalarımız, her CI çalıştırmasında kiracılar arası veri erişimini denemeyi amaçlayan otomatik test paketleri içerir. Paylaşılan altyapıda 500'den fazla kiracıya hizmet veren, sıfır veri sızıntısı olayına sahip çok kiracılı platformlar inşa ettik ve tek kiracılı monolitleri strangler fig pattern'ini kullanarak çok kiracılı mimarilere taşıdık.
Modeller kendi başlarına çalışmaz. Modellerinizi eğiten, doğrulayan, dağıtan ve izleyen iş akışı asıl üründür; model sadece bir eserdir.
En uygun seçim, kiracı izolasyon gereksinimlerinize ve ölçeğinize bağlıdır. MicrocosmWorks, çoğu B2B SaaS ürünü için genellikle paylaşımlı veritabanı, ayrı şema yaklaşımını önerir çünkü maliyet etkinliği ile veri izolasyonunu dengeler; ancak sağlık veya finans gibi sıkı veri ayrımının zorunlu olduğu düzenlemeye tabi sektörlerdeki müşterilerimiz için database-per-tenant uygularız. Mimarlarımız, doğru kiracılık modelini önermeden önce uyumluluk ihtiyaçlarınızı, beklenen kiracı sayınızı ve sorgu modellerinizi değerlendirir.
MicrocosmWorks, gürültülü komşu sorunlarını önlemek için kiracıya duyarlı rate limiting, kiracı başına kotalarla connection pooling ve compute katmanında resource isolation uygular. Bir müşteriden kaynaklanan ani bir yükselişin diğerleri için latency'ye yol açmasını önlemek amacıyla weighted fair queuing ve kiracıya özel caching tiers gibi teknikler kullanırız. Enterprise-tier kiracılar için, paylaşılan control plane'i sağlam tutarken dedicated compute partitions sağlayabiliriz.
MicrocosmWorks, gereken karmaşıklığa ve ekip kıdemine bağlı olarak saatlik 15 ila 45 dolar arasında değişen danışmanlık ücretleriyle mimari tasarım ve uygulama hizmetleri sunar. Veritabanı tasarımı, tenant isolation, authentication ve deployment pipelines'ı kapsayan tipik bir multi-tenant SaaS mimarisi projesi, çapraz fonksiyonel bir ekiple 8-16 hafta sürer. İnşaata başlamadan önce tam maliyet görünürlüğüne sahip olmanız için her projeyi sabit fiyatlı bir discovery phase ile kapsamlı bir şekilde belirleriz.
MicrocosmWorks, yeni bir kayıttan dakikalar içinde schema creation, DNS configuration, feature flag initialization ve seed data deployment'ı yöneten otomatikleştirilmiş kiracı provisioning pipelines oluşturur. Her yeni kiracının manuel müdahale olmadan tamamen yapılandırılmış bir ortam elde etmesini sağlamak için Terraform veya Pulumi gibi infrastructure-as-code araçlarını event-driven workflows ile birleştiririz. Bu yaklaşım, müşterilerimizin onboarding sürecini değiştirmeden 10 kiracıdan 10.000'e ölçeklenmesini sağlar.
MicrocosmWorks, code branching olmadan kiracı başına davranışa olanak tanıyan feature flags, kiracıya özel metadata ve bir plugin architecture kullanarak configuration-driven customization layer uygular. Kiracıların benzersiz branding, business rules ve third-party connections'a sahip olabilmesi için UI theming, workflow engine ve integration layers'da extensibility points tasarlarız; tüm bunlar configuration aracılığıyla yönetilir. Bu, engineering ekibinizin çeşitli müşteri gereksinimlerini desteklerken tek bir codebase'i sürdürmesini sağlar.