Çok kiracılı başvuru tam olarak nedir?


16

Çevrimiçi kullanılabilir tanıma göre " Çoklu kiracılık, bir yazılım uygulamasının tek bir örneğinin birden fazla müşteriye hizmet verdiği bir mimaridir ". Bu, bir Restoran veya Okul web sitem olduğu ve okul yönetim ürünümü satın aldıktan sonra sağladığım kimlik bilgilerini kullanarak başvurumu kendi verileriyle kullanmak için farklı restoran veya okullara erişim sağladığım anlamına geliyordu. Web sitem gibi schoolmanagement.com gibi ve ben school1.schoolmanagement.com & school2.schoolmanagement.com gibi farklı okul istemcilerine farklı alt alan adları sağlıyorum, ancak kod her iki alt alanın arkasında aynı. Her iki okulun da ayrı veritabanlarına bağlı olarak farklı işlevleri veya temaları vardır. Bu yüzden sağlamam gerekgiriş için schoolmanagement.com ve müşteri girişimden sonra giriş bilgilerini temel alarak kendi url'lerine yönlendiriyorum, örneğin school1.schoolmanagement.com .

Bu benim çok kiracılı uygulama anlayışım. Anlayışım doğru mu? Geçebileceğim herhangi bir çevrimiçi çok kiracılı uygulama var mı?


1
"Geçebileceğim herhangi bir çevrimiçi çok kiracılı uygulama var mı?" Kaynağı almak, kiracı olarak denemek veya ev sahibi olarak çalıştırmak ister misiniz? Belirttiğiniz gibi, alan adı barındırma, hem büyük hem de küçük ev sahibi şirketlerle ortak çok kiracılı bir örnektir. Google Apps for Business (veya mevcut marka ne olursa olsun) aynı zamanda oldukça yaygın bir çok kiracılı uygulamadır.
Kristian H

1
Şimdiye kadar doğru yoldasınız. Çok kiracılık veri sahipliği ile ilgilidir. Veriler tenans (sahipler) tarafından bölümlere ayrılmıştır. Ölçek ekonomisi: Uygulama basit bir nedenle aynı olmak için kullanın. Veri depolama da aynı olabilir veya her bir kiracı için farklı olabilir. Veriler, tenans arasında paylaşılabilir değil (veya şimdiye kadar biliyorum, şimdiye kadar biliyorum).
Laiv

@KristianH alan adı barındırma örneği için teşekkürler, anladım.
Nomi Ali

@Laiv Yani her istemci için kendi ayrı yapılandırmasına sahip farklı veritabanlarımız olabilir mi?
Nomi Ali

2
Evet. Bu (IMO) tercih edilen yoldur. Ama aynı zamanda pahalı olanı. Farklı veritabanları dediğimde bunlar olabilir: a) Aynı RDBMS içindeki farklı şemalar veya db örnekleri veya b) tamamen farklı RDBMS.
Laiv

Yanıtlar:


10

Evet, bu o. Ancak wikipedia'nın tanımı yeterince genel değildir. Çok katmanlı mimarilere veya SOA veya mikro hizmet gibi daha yeni mimari biçimlere değinmez.

Çok kiracılık hakkındadır yazılım sistemleri ve veri izolasyonu . Bazı örnekler:

  • benzersiz bir veritabanına sahip çok katmanlı bir sistem çok kiracılı olabilir. Örnek: Bir SAP sistemi, bir veritabanı arka ucundan ve ölçeklenebilir bir şekilde web hizmetlerine maruz kalan birkaç web uygulama sunucusundan oluşur. Çok kiracılı: çalışan yazılım kurulumunu değiştirmeden yeni bir müşteri ekleyebilirsiniz ve birkaç müşteri birbirini bilmeden sistemi kullanabilir. Veriler tamamen izole edilmiştir (tescilli teknoloji).
  • sisteminiz, farklı alan adları aracılığıyla farklı müşterilere maruz kalan web hizmetlerini çalıştıran bir veya birkaç işlemden oluşur (ancak yine de sunucuda çalıştırılan işlemlerin aynısıdır). Veri izolasyonu ayrı veri tabanları ile sağlanır. Kesinlikle çok kiracılı.
  • bir mikro hizmet sistemi benzer şekilde, her biri kendi mikro-veritabanını kullanan birkaç gevşek bağlanmış web-servis seti çalıştırabilir. Ölçeklendirmek için gerekirse, aynı mikro hizmetlerin yeni klonlarını başlatabilirsiniz ve bazı kayıt özellikleri yoluyla eşlerini bulur ve otomatik olarak bunlara bağlanır ve kullanıcıya tek bir uygulamanın davranışını sunar. Sonra iki senaryo mümkün:
    • yeni bir müşteriye hizmet vermek istediğinizde, yeni bir ayrı mikro hizmet kümesi başlatmanız ve bir müşteri için mikro hizmetlerin yalnızca aynı müşteriyle ilgili mikro hizmetlere bağlanacağını organize etmeniz gerekiyorsa, bu tek kiracıdır.
    • ancak çalışan örnekleri kullanarak yeni müşterilere hizmet verebilirseniz (ve yeni mikro hizmetlere yalnızca performans için ihtiyaç duyulursa), çok kiracılı

1

Evet diyebilirim, anlayışınız doğru. Uygulama birden fazla müşteri tarafından paylaşılır ve ayrıca her müşterinin verileri veritabanında gelir. Aynı veritabanında farklı müşteri verilerinin bulunmasına gerek kalmadan aynı kodu paylaşmak, muhtemelen çok kullanıcılı olarak değerlendirilmez.


2
@NomiAli Hayır, bu multitenant'ı düşünmezdim. Bu, her müşteri için ayrı bir ortam oluşturuyor. multitenant'ın avantajlarından biri, veritabanı ve yazılımın aynı anda tüm müşteriler için yükseltilmesidir. Bir dağıtım ve herkes en yeni sürümde. Bahsettiğiniz her müşteri kendi ayrı kurulumuna sahip. Paylaşılan bir kod tabanına sahip olabilirsiniz, ancak farklı veritabanlarına sahip olabilirsiniz, ancak DB değişiklikleriniz konusunda süper dikkatli olmanız gerektiğinden aptalca olur, daha pahalı hale getirir, bu da çok kullanıcılı amacını bozar.
Andy

1
@NomiAli Müşteri başına bir şema, müşteri başına bir veritabanından daha fazla dezavantaja sahip olacaktır, aynı şema adlarını değiştirerek aynı komut dosyalarını çalıştırmanız gerektiğinden yönetilmesi daha da zordur. Yine imkansız değil, ama çok kullanıcılı bir uygulamanın amacı yazılım satıcısı için maliyetleri azaltmaktır; sorduğunuz şeyler onları geri itiyor.
Andy

2
Yani tüm tenans tutan yalnız veritabanı çökerse veya tehlikeye atılır ... Maliyet azaltma nereye gidiyor? Ve her kiracının farklı kaynak ve performans ihtiyaçları olduğunda ne olur? Veri depolama alanına erişmek istiyorlarsa ne olur? ... Evet. Kiracı başına farklı veri depoları ve farklı şemalar çok yönlülüktür. Burada, üçüncü müşteriye sunmak istediğimiz iş stratejisi ve hizmetler, uygulama detaylarından daha önemlidir. Çoklu kiracılık bir özelliktir, diferansiyel bir değerdir. Müşterilerin ihtiyaçları ne kadar yakınsa o kadar iyidir.
Laiv


4
Çoklu veritabanı boyutunu biraz abarttınız. Birden çok veritabanı sadece bir tasarım kararıdır; birden çok veritabanının aynı şemayı paylaşmasını ve hepsini aynı anda güncellemek için bir komut dosyasını kullanmasını sağlayabilirsiniz. Tüm çok kiracılı uygulamalar, her müşterinin verilerini diğer müşterilerden ayırmalıdır; bunun gerçekleştirildiği mekanizma bir uygulama detayıdır ve istenen izolasyon derecesi vb. gibi faktörlere bağlıdır.
Robert Harvey

0

Çoklu kiracılık, bir yazılım uygulamasının tek bir örneğinin birden fazla müşteriye hizmet verdiği bir mimaridir . Her müşteriye kiracı denir. Kiracılara, uygulamanın kullanıcı arabiriminin (UI) rengi veya iş kuralları gibi bazı bölümlerini özelleştirme yeteneği verilebilir, ancak uygulamanın kodunu özelleştiremezler.

Çok kiracılı bir mimaride, uygulamanın birden çok örneği paylaşılan bir ortamda çalışır. Bu mimari çalışabilmektedir çünkü her kiracı fiziksel olarak entegre ancak mantıksal olarak ayrılmıştır; başka bir deyişle, yazılımın tek bir örneği tek bir sunucuda çalışacak ve daha sonra birden çok kiracı sunacaktır. Bu şekilde, çok kiracılı bir mimarideki bir yazılım uygulaması, özel yapılandırma, veri, kullanıcı yönetimi ve diğer özelliklerin bir örneğini paylaşabilir.

Daha fazla bilgi için lütfen https://whatis.techtarget.com/definition/multi-tenancy adresine bakın .

Sizin durumunuzda olduğu gibi, sitenize abone olan her okul üyesine kiracılık rolleri ve izinleri temelinde yetki verilecek ve aynı uygulama yoluyla ilgili veritabanlarına erişim sağlanacaktır. Çoklu veritabanlarına bağlı tek bir uygulama. Her okul için bir alt alan adı oluşturursanız, bu, aynı Tek Kiracılık modeline geri dönmesini sağlar.

Umarım bu soruya cevap verir.


1
Yazılım Mühendisliğine Hoş Geldiniz ! Lütfen kaynağınıza bir referans eklemek için yanıtınızı düzenleyin ; şu anda bir intihal vakası .
Glorfindel
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.