Czym dokładnie jest aplikacja dla wielu dzierżawców?

16

Zgodnie z definicją dostępną w Internecie jest „ Wielodostępność to architektura, w której pojedyncze wystąpienie aplikacji obsługuje wielu klientów ”. To znaczy, że mam witrynę restauracji lub szkoły i zapewniam dostęp do innej restauracji lub szkoły, aby móc korzystać z mojej aplikacji z własnymi danymi, korzystając z danych uwierzytelniających, które podam po zakupie mojego produktu do zarządzania szkołą. Podobnie jak moja strona internetowa jest jak schoolmanagement.com i udostępniam różne subdomeny różnym klientom szkół, takim jak school1.schoolmanagement.com i school2.schoolmanagement.com, ale kod jest taki sam dla obu tych subdomen. Obie szkoły mają różne funkcje lub motywy zależą od ich oddzielnej bazy danych. Więc muszę to zapewnićschoolmanagement.com w celu zalogowania i po zalogowaniu mojego klienta na podstawie danych logowania przekierowuję na odpowiedni adres URL, np . school1.schoolmanagement.com .

Takie jest moje rozumienie aplikacji dla wielu najemców. Czy moje zrozumienie jest słuszne? Czy jest dostępna aplikacja online dla wielu najemców?

Nomi Ali
źródło
1
Co rozumiesz przez „Czy jest jakaś aplikacja online dla wielu najemców, przez którą mogę przejść”? Czy chcesz zdobyć źródło, wypróbować jako najemca lub uruchomić jako host? Jak zauważasz, hosting domen jest częstym przykładem wielu dzierżawców, zarówno dużych, jak i małych firm hostingowych. Google Apps dla Firm (lub jakakolwiek jest obecna marka) jest również dość rozpowszechnioną aplikacją dla wielu najemców.
Kristian H
1
Jak dotąd jesteś na dobrej drodze. Wielodostępność dotyczy własności danych. Dane są segmentowane według najemców (właścicieli). Zastosowanie aplikacji jest takie samo z prostego powodu: ekonomii skali. Przechowywanie danych może być również takie samo lub może być różne dla każdego najemcy. Dane nie są udostępniane dla najemców (lub zwykle nie są, o ile wiem).
Laiv
@KristianH dziękuję za przykład hostingu domeny, mam go.
Nomi Ali
@Laiv Czy możemy mieć inną bazę danych dla każdego klienta z osobną konfiguracją?
Nomi Ali
2
Tak. To (IMO) preferowany sposób. Ale to także droga. Kiedy mówię, że różne bazy danych mogą to być: a) Różne schematy lub instancje db w ramach tego samego RDBMS lub b) całkowicie różne RDBMS.
Laiv

Odpowiedzi:

10

Tak, to jest to. Ale definicja wikipedii nie jest wystarczająco ogólna. Nie dotyczy architektur wielowarstwowych ani nowszych form architektury, takich jak SOA lub mikrousługi.

Wielodostępność dotyczy systemów oprogramowania i izolacji danych . Kilka przykładów:

  • system wielopoziomowy z unikalną bazą danych może być wielodostępny. Przykład: system SAP składa się z zaplecza bazy danych i kilku serwerów aplikacji WWW, które udostępniają w skalowalny sposób usługi sieciowe. Jest wielodostępny: możesz dodać nowego klienta bez zmiany bieżącej instalacji oprogramowania, a kilku klientów może korzystać z systemu, nie wiedząc o sobie. Dane są całkowicie izolowane (zastrzeżona technologia).
  • Twój system składa się z jednego lub kilku procesów z usługami internetowymi, które są udostępniane różnym klientom za pośrednictwem różnych nazw domen (ale nadal są to te same procesy, które uruchamiają go na serwerze). Izolację danych uzyskuje się za pomocą oddzielnych baz danych. To zdecydowanie wielu najemców.
  • system mikrousług mógłby w podobny sposób obsługiwać kilka luźno powiązanych zestawów usług sieciowych, z których każdy korzysta z własnej mikro-bazy danych. W razie potrzeby w celu zwiększenia skali można uruchomić nowe klony tych samych mikrousług, a one za pomocą niektórych funkcji rejestracji znajdą swoich partnerów i automatycznie się z nimi połączą, oferując użytkownikowi zachowanie pojedynczej aplikacji. Następnie możliwe są dwa scenariusze:
    • jeśli chcesz obsłużyć nowego klienta, musisz uruchomić nowy oddzielny zestaw mikrousług i zorganizować, że mikrousług dla jednego klienta łączą się tylko z mikrousługami dotyczącymi tego samego klienta, to jest to jeden najemca.
    • ale jeśli możesz obsługiwać nowych klientów za pomocą działających instancji (a nowe mikrousługi byłyby potrzebne tylko do wydajności), to jest to dzierżawa dla wielu dzierżawców
Christophe
źródło
1

Powiedziałbym tak, twoje zrozumienie jest w zasadzie poprawne. Aplikacja jest współużytkowana przez wielu klientów, a także dane każdego klienta przychodzą do bazy danych. Udostępnianie tego samego kodu bez umieszczania różnych danych klientów w tej samej bazie danych prawdopodobnie nie byłoby uważane za wielodostępne.

Andy
źródło
2
@NomiAli Nie, nie rozważałbym tego multitenanta. To wyróżnia osobne środowisko dla każdego klienta. jedną z zalet multitenanta jest to, że baza danych i oprogramowanie są aktualizowane jednocześnie dla wszystkich klientów. Jedno wdrożenie i wszyscy są w najnowszej wersji. Mówisz o tym, że każdy klient ma własną oddzielną instalację. Podejrzewam, że możesz mieć wspólną bazę kodów, ale różne bazy danych, ale byłoby to głupie, ponieważ musisz bardzo uważać na zmiany DB, co powoduje, że jest droższy, co nie pozwala na korzystanie z multitenantu.
Andy
1
@NomiAli Schemat na klienta miałby jeszcze więcej wad niż baza danych na klienta, tym trudniej jest nim zarządzać, ponieważ trzeba uruchamiać te same skrypty, zmieniając tylko nazwy schematów. Ponownie nie jest to niemożliwe, ale celem aplikacji obsługującej wiele podmiotów jest zmniejszenie kosztów dla dostawcy oprogramowania; rzeczy, o które pytasz, popchnij je z powrotem.
Andy
2
Więc jeśli moja samotna baza danych, która zawiera wszystkie najemców, ulegnie awarii lub zostanie naruszona ... Gdzie idzie redukcja kosztów? Co dzieje się, gdy każdy najemca ma inne potrzeby w zakresie zasobów i wydajności? Co jeśli chcą mieć dostęp do przechowywania danych? ... Tak. Różne magazyny danych na tenan i różne schematy to wielodostępność. Tutaj strategia biznesowa i usługi, które chcemy świadczyć na rzecz klienta, są ważniejsze niż szczegóły wdrożenia. Wielodostępność to cecha, wartość różnicowa. Im bliżej potrzeb klientów, tym lepiej.
Laiv
2
To może Cię zainteresować softwareengineering.stackexchange.com/q/340531/222996
Laiv
4
Troszkę zawyżasz aspekt wielu baz danych. Wiele baz danych to tylko decyzja projektowa; możesz mieć wiele baz danych współużytkujących ten sam schemat i użyć skryptu, aby zaktualizować je wszystkie jednocześnie. Wszystkie aplikacje dla wielu dzierżawców muszą oddzielać dane każdego klienta od innych klientów; mechanizm, za pomocą którego jest to wykonywane, jest szczegółem implementacji i zależy od takich czynników, jak pożądany stopień izolacji itp.
Robert Harvey
0

Wielodostępność to architektura, w której pojedyncze wystąpienie aplikacji obsługuje wielu klientów. Każdy klient jest nazywany najemcą. Dzierżawcy mogą mieć możliwość dostosowania niektórych części aplikacji, takich jak kolor interfejsu użytkownika (UI) lub reguł biznesowych, ale nie mogą dostosować kodu aplikacji.

W architekturze z wieloma dzierżawami wiele instancji aplikacji działa we wspólnym środowisku. Ta architektura jest w stanie działać, ponieważ każdy najemca jest zintegrowany fizycznie, ale logicznie oddzielony; co oznacza, że ​​jedno wystąpienie oprogramowania będzie działać na jednym serwerze, a następnie będzie obsługiwać wielu najemców. W ten sposób aplikacja w architekturze z wieloma dzierżawcami może współdzielić dedykowane wystąpienie konfiguracji, danych, zarządzania użytkownikami i innych właściwości.

Więcej informacji na stronie https://whatis.techtarget.com/definition/multi-tenancy .

Podobnie jak w twoim przypadku, każdy członek szkoły subskrybujący twoją witrynę będzie autoryzowany na podstawie ról i uprawnień najmu oraz uzyska dostęp do swoich baz danych za pośrednictwem tej samej aplikacji. Pojedyncza aplikacja połączona z wieloma bazami danych. Jeśli utworzysz poddomeny dla każdej szkoły, spowoduje to powrót do tego samego modelu Single Tenancy.

Mam nadzieję, że to odpowiada na twoje pytanie.

Suraj Gauraje
źródło
1
Witamy w inżynierii oprogramowania ! Proszę edytować swoją odpowiedź zawiera odniesienie do jego źródła ; w tej chwili jest to przypadek plagiatu .
Glorfindel