Przejdź do treści

Multi-tenancy (wielodostępność)

Multi-tenancy (wielodostępność) to architektura oprogramowania, w której jedno wdrożenie obsługuje wielu klientów – nazywanych tenantami – na wspólnej infrastrukturze, a dane każdego tenanta pozostają logicznie odizolowane. Jedna instancja aplikacji, jedna baza danych i jeden kod obsługują jednocześnie wiele organizacji, a identyfikator tenanta oddziela rekordy jednego klienta od rekordów kolejnego.

Zaktualizowano 2 min czytaniaAutor: fromHello

Najważniejsze wnioski

  1. Multi-tenancy oznacza, że jedno wdrożenie obsługuje wielu odizolowanych tenantów na wspólnej infrastrukturze, a granicę egzekwują zarówno aplikacja, jak i baza danych.

  2. Izolacja ma wiele stopni: wspólna baza danych z kluczem tenanta, schemat na tenanta albo osobna baza danych na tenanta – silniejsza izolacja kosztuje więcej w utrzymaniu.

  3. Self-hosting platformy wielodostępnej daje Ci własną granicę tenanta: jedna instalacja może obsługiwać kilka marek lub przestrzeni roboczych klientów bez osobnej subskrypcji dla każdej marki.

Jak działa multi-tenancy?

Aplikacja wielodostępna dołącza identyfikator tenanta do każdego żądania i każdego rekordu. Gdy użytkownik się loguje, aplikacja ustala, do którego tenanta należy, a potem zawęża do tego tenanta każde zapytanie, każde zadanie w tle i każdą wiadomość. Wszyscy tenanci działają na tych samych serwerach i zwykle na tej samej bazie danych, co utrzymuje niski koszt operacyjny na tenanta – ale izolacja jest tylko tak silna, jak kod i ograniczenia bazy danych, które ją egzekwują.

Jakie są główne modele izolacji?

Model izolacjiJak działaKompromis
Wspólna baza danych, klucz tenantaKażdy wiersz ma identyfikator tenanta; każde zapytanie po nim filtrujeNajtańszy w utrzymaniu; jeden pominięty filtr może ujawnić dane innemu tenantowi
Schemat na tenantaKażdy tenant dostaje własny schemat we wspólnej bazie danychSilniejsza separacja; migracje mnożą się wraz z liczbą tenantów
Baza danych na tenantaKażdy tenant dostaje dedykowaną bazę danych lub instancjęNajsilniejsza izolacja; najwyższy koszt i narzut operacyjny
Multi-tenancy na tle pokrewnych terminów.

Dlaczego multi-tenancy ma znaczenie dla małego zespołu?

Jeśli prowadzisz jeden produkt pod jedną marką, o tenantach możesz nigdy nie pomyśleć. Ma to znaczenie w chwili, gdy z jednej instalacji obsługujesz kilka marek, przestrzeni roboczych klientów lub środowisk – typowy przypadek agencji i małych platform. Narzędzia do customer engagement open source, takie jak Dittofeed, modelują tenantów jako przestrzenie robocze, a samodzielnie hostowane narzędzie do customer engagement sprawia, że cała instalacja staje się Twoją własną granicą tenanta: dane Twoich klientów nie dzielą infrastruktury z nikim spoza Twojej firmy.

Co multi-tenancy zmienia w kwestii zgodności z przepisami?

We współdzielonym SaaS jesteś jednym tenantem spośród tysięcy i polegasz na izolacji, wyborach dotyczących rezydencji danych i umowach dostawcy. Self-hosting to odwraca: stajesz się operatorem, więc izolacja poszczególnych tenantów, retencja danych i dziennik audytu są po Twojej stronie – to Ty je konfigurujesz i to Ty musisz wykazać, że działają. Żaden model nie jest zgodny z przepisami z natury; obowiązki z RODO podążają za danymi, a nie za architekturą.

FAQ

Najczęstsze pytania

  • Czym różni się multi-tenant od single-tenant?

    Wdrożenie multi-tenant obsługuje wielu klientów na wspólnej infrastrukturze z logiczną izolacją między nimi. Wdrożenie single-tenant rezerwuje cały stos – aplikację i bazę danych – dla jednego klienta. Single-tenant daje twardszą izolację i ułatwia wykazanie zgodności z przepisami, ale przy wyższym koszcie na klienta; multi-tenant oddaje część izolacji w zamian za wydajność.

  • Czy multi-tenancy to to samo co obsługa wielu użytkowników?

    Nie. Użytkownicy to osoby w obrębie jednego tenanta; tenanci to odrębne organizacje klientów. Dwuosobowy startup z 10 000 użytkowników może nadal działać w modelu single-tenant, a agencja obsługująca trzech klientów w jednej instalacji działa w modelu multi-tenant.

  • Czy jeden tenant może zobaczyć dane innego tenanta?

    Nie, jeśli izolacja jest poprawnie zaimplementowana. Ryzyko jest jednak realne: w projektach ze wspólną bazą danych jedno niefiltrowane zapytanie może przekroczyć granicę. Dlatego kontrole izolacji tenantów należą do warstwy danych – w postaci zabezpieczeń na poziomie wierszy (row-level security) lub separacji schematów – a nie tylko do kodu aplikacji.

  • Czy startup potrzebuje multi-tenancy?

    Tylko jeśli z jednego wdrożenia obsługujesz wiele organizacji – klientów, marki lub przestrzenie robocze. Jeśli hostujesz samodzielnie narzędzie dla jednej firmy, model single-tenant jest prostszy. Multi-tenancy zaczyna być warte swojej złożoności, gdy liczba tenantów rośnie szybciej niż Twoja zdolność do utrzymywania osobnych instalacji.

fromHello to oprogramowanie open source do automatyzacji marketingu: wiadomości uruchamiane przez to, co robią ludzie.

fromHello Cloud udostępniamy w ramach wczesnego dostępu, przez listę oczekujących.

Wczesny dostęp

fromHello Cloud

Nikt nie zakłada firmy, żeby była mała.

Wczesny dostęp do fromHello Cloud otwieramy etapami. Onboarding prowadzimy razem z Tobą: pomagamy wszystko skonfigurować i przenieść Twoje kontakty.

Napiszemy do Ciebie, gdy otworzymy Ci dostęp. Bez spamu.

Jeszcze nie teraz? Zobacz na GitHubie