Çok Kiracılı Mimari
Tanım
Çok kiracılı mimari, birçok müşteriyi (kiracıyı) tek bir paylaşılan yazılım kurulumunda çalıştırırken her kiracının verisini ve ayarlarını ayrı tutar. SaaS platformlarının her biri için ayrı yazılım kurmadan binlerce mağazayı barındırma biçimi budur. Temel tasarım kararı, kiracıların ne kadar katı biçimde yalıtıldığıdır: kiracı sütunu olan paylaşılan bir veri tabanı mı, yoksa kiracı başına ayrı bir veri tabanı mı.
Mağazanız için neden önemli
Barındırılan bir platformun herkes için aynı anda güncellenebilmesinin, güvenliğinin sağlanabilmesinin ve yedeklenebilmesinin nedeni çok kiracılılıktır. Verinizin yandaki mağazanınkinden nasıl ayrıldığını sormanız gerekmesinin nedeni de aynıdır. Yaygın tasarımda her mağazanın satırları aynı tablolarda durur ve bir mağaza tanımlayıcısıyla ayrılır. Kodda gözden kaçan tek bir filtre bir sızıntıdır. Yedekler ve silmeler doğası gereği kısmidir, çünkü verileriniz herkesinkiyle iç içedir.
Mağaza başına ayrı veri tabanı daha katı bir tasarımdır. Aynı kodlama hatası bir sızıntı değil bir hata üretir. Yedekler mağaza başına alınıp geri yüklenebilir. Bir mağazayı silmek, veri tabanını düşürmek demektir; bu da eksiksiz ve ispatlanabilirdir. Bedeli, platform için daha fazla operasyonel iştir; platformların çoğunun bunu yapmamasının nedeni de budur.
Kambloo bunu nasıl ele alıyor
Her Kambloo mağazasının kendi MySQL veri tabanı vardır. Bir mağazanın veri tabanı kullanıcısına yalnızca o veri tabanına erişim verilir; böylece mağazalar arası bir sorgu yalnızca kodla engellenmiş olmakla kalmaz, fiziksel olarak imkânsız hâle gelir. Önbellek anahtarları, dosya depolama yolları ve arka plan işleri mağaza bağlamını taşır ve bu bağlama karşı denetlenir. Her mağaza kendi alan adında çalışır; böylece tarayıcı çerezleri ve oturumları da yalıtılır.
Yedekler mağaza başına alınır ve mağaza başına geri yüklenebilir. Bir mağazayı silmek; 30 günlük bekleme süresinin ardından veri tabanını düşürür, dosyalarını ve arama dizinini temizler ve alan adı yapılandırmasını kaldırır.
Tüm mağazalar tek bir kod tabanını paylaşır. Sürümler mağaza panelinde duyurulur ve sahibin onayıyla uygulanır, aşamalı olarak yayılır ve hata durumunda otomatik geri alınır. Güvenlik düzeltmeleri beklemeden uygulanabilir.
Çok Kiracılı Mimari hakkında sorular
Mağazamın verisi diğer mağazaların verisiyle karışıyor mu?
Kambloo'da karışmaz. Her mağazanın kendi MySQL veri tabanı vardır. Ürünleriniz, müşterileriniz ve siparişleriniz hiçbir zaman başka bir mağazanınkiyle aynı tabloda bulunmaz ve mağazanızın veri tabanı kullanıcısı yalnızca kendi veri tabanınıza erişebilir.
Çok kiracılılık güncellemeler açısından ne anlama geliyor?
Tüm mağazalar aynı kodu çalıştırır; böylece bir güvenlik düzeltmesi ya da yeni bir özellik her mağazaya hızla ulaşabilir. Kambloo'da güncellemeler panelde duyurulur ve mağaza sahibinin onayıyla uygulanır; bir şey ters giderse otomatik olarak geri alınır.