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 genellikle çoğu B2B SaaS ürünü için paylaşılan veritabanı, ayrı şema yaklaşımını tavsiye eder, çünkü maliyet verimliliğini veri izolasyonuyla dengeler; ancak sıkı veri ayrımının zorunlu olduğu sağlık veya finans gibi düzenlenmiş sektörlerdeki müşterilerimiz için database-per-tenant modelini uygularız. Mimarlarımız, doğru kiralama modelini önermeden önce uyumluluk ihtiyaçlarınızı, beklenen kiracı sayınızı ve sorgu kalıplarınızı değerlendirir.
MicrocosmWorks, gürültülü komşu sorunlarını önlemek için kiracıya duyarlı hız sınırlaması, kiracı başına kotalarla bağlantı havuzlama ve işlem katmanında kaynak izolasyonu uygular. Ağırlıklı adil sıralama ve kiracıya özel önbellekleme katmanları gibi teknikler kullanırız, böylece bir müşteriden gelen ani bir yük artışı diğerleri için gecikmeye neden olmaz. Kurumsal seviye kiracılar için, paylaşılan kontrol düzlemini bozulmadan tutarken özel işlem bölümleri sağlayabiliriz.
MicrocosmWorks, gereken karmaşıklığa ve ekip kıdemine bağlı olarak, mimari tasarım ve uygulama hizmetlerini saatlik $15-$45 arasında değişen danışmanlık ücretleriyle sunmaktadır. Veritabanı tasarımı, kiracı izolasyonu, kimlik doğrulama ve dağıtım hatlarını kapsayan tipik bir çok kiracılı SaaS mimarisi projesi, çapraz fonksiyonlu bir ekiple 8-16 hafta sürer. Her projenin kapsamını sabit fiyatlı bir keşif aşamasıyla belirliyoruz, böylece inşa sürecine başlamadan önce tam maliyet görünürlüğüne sahip olursunuz.
MicrocosmWorks, yeni bir kayıttan dakikalar içinde şema oluşturma, DNS yapılandırması, özellik bayrağı (feature flag) başlatma ve başlangıç verisi (seed data) dağıtımını yöneten otomatik kiracı tedarik (provisioning) hatları kurar. Her yeni kiracının manuel müdahale olmaksızın tam olarak yapılandırılmış bir ortam elde etmesi için Terraform veya Pulumi gibi altyapı-kod olarak (infrastructure-as-code) araçları, olay tabanlı (event-driven) iş akışlarıyla birleştirerek kullanıyoruz. Bu yaklaşım, müşterilerimizin kayıt sürecini (onboarding process) değiştirmeden 10 kiracıdan 10.000 kiracıya ölçeklenmesini sağlar.
MicrocosmWorks, kod dallanması olmadan kiracı bazında davranışa olanak tanıyan; feature flags, kiracıya özgü metadata ve bir plugin architecture kullanarak yapılandırma odaklı bir özelleştirme katmanı uygular. Kiracıların benzersiz marka kimliğine, iş kurallarına ve üçüncü taraf bağlantılarına sahip olabilmesi için UI theming, workflow engine ve entegrasyon katmanlarında genişletilebilirlik noktaları tasarlıyoruz; bunların tümü yapılandırma aracılığıyla yönetilir. Bu sayede mühendislik ekibiniz, çeşitli müşteri gereksinimlerini desteklerken tek bir codebase sürdürmeye devam eder.