İçeriğe geç
parazade

Multi-Tenant Nedir?

İngilizce: Multi-Tenancy

Yayın: · Son güncelleme:

Multi-Tenant Nedir? Kısaca

Multi-tenant (çok kiracılı) mimari, tek bir yazılım kurulumunun ve altyapının birden fazla müşteriye (kiracıya) aynı anda hizmet verdiği, her müşterinin verisinin ise birbirinden ayrı tutulduğu yapıdır. Çoğu SaaS ürünü bu modelle çalışır.

Multi-Tenant nedir?
İçindekiler
  1. Multi-tenant nedir?
  2. Veriler nasıl ayrılır?
  3. Avantajları ve riskleri

Multi-tenant nedir?

Multi-tenant, bir apartman gibi düşünülebilir. Bina, su tesisatı ve asansör ortaktır; her daire ise kilitlidir ve yalnız sahibine açılır. Yazılımda da sunucular, veritabanı ve kod ortaktır, her müşteri şirketin verisi ise diğerlerinden yalıtılmıştır.

Burada "kiracı" (tenant), genellikle yazılımı kullanan bir şirket ya da ekiptir. Bir proje yönetim aracını kullanan bin farklı şirket, aynı uygulamanın bin kiracısıdır.

Veriler nasıl ayrılır?

Üç yaygın yaklaşım vardır:

Yöntem Açıklama Yalıtım düzeyi
Ortak tablo Her satırda kiracı kimliği (tenant_id) tutulur Düşük
Ayrı şema Aynı veritabanında her kiracıya ayrı şema Orta
Ayrı veritabanı Her kiracıya kendi veritabanı Yüksek

Ortak tablo en ucuz ve en kolay ölçeklenen yöntemdir. Ayrı veritabanı ise en güçlü yalıtımı sağlar ama yüzlerce müşteride bakım yükü büyür. Birçok şirket küçük müşterileri ortak yapıda, büyük kurumsal müşterileri ayrı veritabanında tutan karma bir model kullanır.

Avantajları ve riskleri

Asıl avantaj maliyettir. Tek bir güncelleme tüm müşterilere aynı anda ulaşır, altyapı paylaşıldığı için müşteri başına maliyet düşer. Yeni bir müşteri eklemek dakikalar sürer.

En büyük risk, bir kiracının verisinin başka bir kiracıya görünmesidir. Ortak tablo kullanan bir sistemde tek bir sorguda tenant_id filtresinin unutulması bu sızıntıya yol açabilir. Bu nedenle filtrelemeyi her geliştiricinin hatırlamasına bırakmak yerine veritabanı ya da çatı seviyesinde zorunlu kılmak gerekir. Bir müşterinin aşırı yükünün diğerlerini yavaşlatması da ayrıca planlanması gereken bir konudur.

Sıkça Sorulan Sorular

Single-tenant ile multi-tenant arasındaki fark nedir?

Single-tenant yapıda her müşteri için ayrı bir uygulama kurulumu ve altyapı bulunur. Multi-tenant yapıda ise tüm müşteriler aynı kurulumu paylaşır. İlki daha fazla yalıtım, ikincisi daha düşük maliyet sunar.

Multi-tenant yapı güvenli midir?

Doğru tasarlandığında güvenlidir ve büyük SaaS ürünlerinin çoğu bu modeli kullanır. Güvenlik, veri ayrıştırmasının ne kadar sıkı uygulandığına ve düzenli olarak test edilmesine bağlıdır.

İlgili terimler

SaaSSaaS (Software as a Service, hizmet olarak yazılım), kurulum gerektirmeden internet tarayıcısı ya da uygulama üzerinden, genellikle abonelikle kullanılan yazılım modelidir. Sunucular, güncellemeler ve bakım sağlayıcı tarafından yönetilir.Yazılım Mimarisi(Software Architecture)Yazılım mimarisi, bir yazılım sisteminin ana bileşenlerini, bu bileşenlerin birbiriyle nasıl iletişim kurduğunu ve sistemin hangi ilkelere göre büyüyeceğini belirleyen üst düzey yapı ve kararlar bütünüdür.Veritabanı Şeması(Database Schema)Veritabanı şeması (schema), bir veritabanındaki tabloların, sütunların, veri türlerinin, anahtarların ve tablolar arasındaki ilişkilerin yapısını tanımlayan plandır. Verinin kendisini değil, iskeletini anlatır.Kullanıcı Yönetimi(User Management)Kullanıcı yönetimi, bir yazılımda kullanıcı hesaplarının oluşturulması, kimlik doğrulaması, rol ve yetkilerinin belirlenmesi, güncellenmesi ve kapatılması süreçlerinin bütünüdür. Kimin neyi görebileceğini ve değiştirebileceğini düzenler.Veritabanı(Database)Veritabanı, verilerin düzenli, aranabilir ve güncellenebilir biçimde saklandığı elektronik kayıt sistemidir. Müşteri listeleri, siparişler ve ürün bilgileri gibi veriler veritabanlarında tutulur.Kiracı(Tenant)Kiracı, kira sözleşmesiyle bir evi, işyerini ya da eşyayı belirli bir bedel karşılığında kullanma hakkı elde eden kişidir. Mülkün sahibi değildir; kullanım hakkı karşılığında kira öder ve özenle kullanmakla yükümlüdür.