Artykuły | 22 luty, 2023

Aplikacje multi-tenant vs single-tenant

W 2022 roku ilość danych firmowych przechowywanych w chmurze (w porównaniu z tymi przechowywanymi na serwerach on-premise) sięgnęła 60%. Wzrost zainteresowania przeniesieniem usług i aplikacji do chmury sprawia, że coraz więcej menedżerów IT przed podjęciem decyzji poszukuje informacji o najbardziej przystępnych modelach rozwoju aplikacji. Dwa najchętniej wykorzystywane podejścia SaaS to single-tenant i multi-tenant, które różnią się m.in. w zakresie implementacji, dystrybucji oprogramowania i możliwości dostosowania w zależności od potrzeb. W artykule wyjaśniam, czym są oraz jakie są zalety rozwiązań single-tenant i multi-tenant.

Aplikacje multi-tenant vs single-tenant

Multi-tenant vs single-tenant

Podejścia multi-tenant i single-tenant często bywają porównane do współwynajmu mieszkania (multi-tenant) bądź wynajmowania go na wyłączność (single-tenant). Każde z tych rozwiązań ma pewne wady i zalety. Wynajmując mieszkanie z innymi, dzielimy się opłatami z pozostałymi lokatorami, ale nie mamy wpływu na to, w jaki sposób gospodarują przestrzenią, ile zużywają wody, prądu itp. Wynajmując mieszkanie na wyłączność, łatwiej kontrolujemy rachunki i mamy większą swobodę, możemy też wprowadzać więcej zmian w swoim otoczeniu, ale musimy liczyć się z większymi kosztami. A jak to wygląda w praktyce w przypadku naszej aplikacji?

Multi tenant

Czym jest rozwiązanie single-tenant?

Rozwiązanie single-tenant to architektura, w której pojedyncza instancja aplikacji wraz z infrastrukturą służy tylko jednemu klientowi. Rozwiązania single-tenant (w dosłownym tłumaczeniu: pojedyncza dzierżawa) są powszechnie wdrażane w modelach dostarczania oprogramowania jako usługi (czyli w modelu SaaS) lub w usługach w chmurze dostarczanych do klientów docelowych (serwisy typu Netflix, Slack, Shopify itp.).

W architekturze single-tenant klient, nazywany tenantem (lub dzierżawcą, najemcą), będzie miał dedykowaną mu pojedynczą instancję aplikacji SaaS. Dostawca będzie pomagać w zarządzaniu instancją oprogramowania i dedykowaną infrastrukturą, jednocześnie zapewniając prawie pełną kontrolę temu właśnie najemcy w zakresie dostosowywania oprogramowania i infrastruktury.

Cechą charakterystyczną rozwiązań single-tenant jest to, że zwykle pozwalają użytkownikom zachować kontrolę i w wysokim stopniu zaangażować się w dostosowanie rozwiązania, a także cechuje je niezawodność, bezpieczeństwo i możliwość tworzenia kopii zapasowych. Ponieważ dzierżawcy znajdują się w oddzielnym środowisku, nie są związani w taki sam sposób, w jaki byliby, korzystając ze wspólnej infrastruktury w modelu multi-tenant (o którym poniżej).

Przeczytaj także:

Czym jest rozwiązanie multi-tenant?

Multi-tenant to architektura, w której pojedyncza instancja aplikacji obsługuje wielu klientów. Dzierżawcy mogą mieć uprawnienia do dostosowywania niektórych części aplikacji, takich jak kolor interfejsu użytkownika lub reguły biznesowe, ale nie mogą modyfikować kodu aplikacji.

W architekturze wielodostępnej wiele instancji aplikacji działa w środowisku współdzielonym. Takie rozwiązanie jest możliwe, ponieważ każdy najemca jest zintegrowany fizycznie, ale oddzielony na poziomie logiki biznesowej.

Oznacza to, że pojedyncza instancja oprogramowania będzie działać na jednym serwerze, a następnie obsługiwać wielu najemców. Aplikacje dostarczane przez dostawcę często są podobne. Mogą mieć elementy wspólne, jak na przykład widoki czy logikę do zarządzania użytkownikami. Te obszary będą współdzielić konfigurację, która będzie identyczna dla określonej liczby najemców.

Aplikacje multi-tenant mogą być używane przez tych samych użytkowników, ekrany, reguły i schematy baz danych. Użytkownicy mogą dostosowywać reguły biznesowe i schematy baz danych.

multi-tenant

Implementacja – jak działa rozwiązanie single-tenant?

W architekturze single-tenant każdy najemca będzie miał własną bazę danych i instancję oprogramowania (aplikacji), która izoluje dane każdego z najemców. Ponadto ta architektura dopuszcza tylko jedną instancję per serwer SaaS. Każda część oprogramowania może być albo specjalnie zaimplementowana dla danego najemcy, albo najemca może dostosować interfejs użytkownika po instalacji. Po wdrożeniu oprogramowania najemcy mogą zazwyczaj dostosować oprogramowanie do potrzeb konkretnego środowiska, ale nie mają dostępu do kodu źródłowego.

Dane każdego najemcy powinny również mieć kopię zapasową, dzięki czemu w przypadku utraty danych będą oni mieć możliwość łatwego i szybkiego ich przywrócenia. Ponadto dzierżawcy mogą samodzielnie zdecydować, kiedy będą instalowane dostępne aktualizacje, zamiast czekać, aż zrobi to dostawca.

W ostatnim czasie powszechne jest chmurowe wdrażanie rozwiązań single-tenant. W większości przypadków, jeśli ktoś korzysta z usług chmury prywatnej lub oferty chmury innej firmy, najprawdopodobniej jest to właśnie system z tzw. jednym dzierżawcą. Dzieje się tak, ponieważ najemca byłby jedynym klientem posiadającym dostęp do tej instancji, z opcjami bezpieczeństwa i zarządzania, a także indywidualnymi kontrolami.

Zalety i wady modelu single-tenant

Zalety

Single-tenant niesie ze sobą pewne zauważalne zalety, które są kluczowe przy podejmowaniu decyzji o wyborze rozwiązań architektonicznych. Do korzyści można zaliczyć:

  • Przenośność – instancje single-tenant można przenosić za pośrednictwem usług chmurowych lub SaaS.
  • Bezpieczeństwo danych – nawet jeśli dojdzie do wycieku/naruszenia danych jednego najemcy u tego samego dostawcy usług (service providera), to inny najemca będzie bezpieczny, ponieważ jego dane są przechowywane w osobnej instancji.
  • Dostosowanie aplikacji – wszystkie dane klienta są oddzielne, dzięki temu ten model daje duże możliwości w zakresie dostosowania oprogramowania.
  • Niezawodność – rozwiązania single-tenant są uważane za niezawodne, ponieważ ich wydajność jest oparta tylko na jednej instancji, a więc niezależna od działania wielu innych instancji pozostałych najemców.
  • Przywracanie i odzyskiwanie po awarii – odizolowane kopie zapasowe umożliwiają użytkownikom szybkie odzyskiwanie usług w przypadku awarii i utraty danych.

Wady

Biorąc pod uwagę wszystkie potencjalne zalety single-tenant, jest to nadal rzadziej używana opcja spośród konkurencyjnych architektur, co może wynikać z niektórych jej wad. Główne wady podejścia single-tenant to:

  • Wysokie koszty – hosting jednej instancji SaaS per klient może nieść ze sobą znaczne koszty, ponieważ taka sama liczba zasobów potrzebna w środowisku jest opłacana przez tylko jednego najemcę.
  • Złożone zarządzanie – skomplikowane procesy, które mogą pojawić się, gdy po raz pierwszy zaczniesz wdrażać i dostosowywać SaaS dla jednego najemcy.
  • Niewykorzystane zasoby – w słabiej zoptymalizowanych systemach nie wszystkie zasoby mogą być wykorzystane, co spowoduje, że system będzie mniej wydajny.

Znaczenie modelu multi-tenant  w rozwoju oprogramowania

Multi-tenant on-premise to z reguły stare rozwiązania, a ich korzenie sięgają klasycznych architektur mainframe, w których wiele aplikacji i użytkowników współdzieliło jedną platformę sprzętową. Wraz z wprowadzeniem i przyjęciem nowoczesnej wirtualizacji sprzętowej pojawiły się możliwości współdzielenia sprzętu między wieloma instancjami oprogramowania, takimi jak maszyny wirtualne i zainstalowane na nich aplikacje. Rozwiązanie to zyskało popularność zwłaszcza w centrach danych. Wszystko to umożliwia wielu użytkownikom współdzielenie jednej infrastruktury sprzętowej.

Multi-tenant w chmurze

Wraz z eksplozją zainteresowania migracją do chmury podejście multi-tenant odnotowało najbardziej spektakularne zastosowanie w usługach chmurowych. Architektury multi-tenant można znaleźć zarówno w środowiskach chmury publicznej, jak i prywatnej. Umożliwiają oddzielenie danych każdego najemcy od pozostałych. Na przykład w chmurze publicznej z wieloma najemcami te same serwery będą używane w hostowanym środowisku do udostępniania zasobów wielu użytkownikom. W ramach tych serwerów każdy użytkownik otrzymuje oddzielną i zabezpieczoną przestrzeń logiczną do uruchamiania aplikacji i przechowywania danych.

Rodzaje architektury multi-tenant 

Istnieją trzy główne typy modeli wielodostępnych, wszystkie o różnym poziomie złożoności i wiążące się z różnymi kosztami. Każdy model jest tradycyjnie omawiany w kategoriach aplikacji i bazy danych.

Typy architektury Multi-Tenant
  • Pojedyncza aplikacja, jedna baza danych – pojedyncza, współużytkowana baza danych to model wielodostępny z wielodostępną bazą danych. Jest to najprostsza forma spośród trzech typów modeli i ze względu na wykorzystanie współdzielonych zasobów charakteryzuje ją stosunkowo niski koszt dla najemców. To rozwiązane używa pojedynczego wystąpienia aplikacji i bazy danych do obsługi wielu jednoczesnych najemców i przechowywania danych. Korzystanie z jednej, współdzielonej bazy danych umożliwia łatwiejsze skalowanie, jednak koszty operacyjne mogą być wyższe.
  • Pojedyncza aplikacja, wiele baz danych – rozwiązanie obejmuje korzystanie z jednej bazy danych z wieloma schematami. Ten system dzierżawy używa pojedynczej instancji aplikacji z indywidualnymi bazami danych dla każdego najemcy. Ponadto ta architektura jest trudniejsza do skalowania i wiąże się z wyższymi kosztami oraz większym obciążeniem dla każdej bazy danych. Jest to warta zastosowania architektura, gdy dane pochodzące od różnych najemców są rozproszone. Wówczas każda aplikacja to mikroserwis, który posiada własną bazę danych i jest niezależny od innych.
  • Wiele aplikacji, wiele baz danych – ten typ architektury multi-tenant obsługuje dane w wielu bazach danych. Model ten jest dość złożony pod względem kosztów, zarządzania i utrzymania, ale podejście jest bezpieczne. Najemców można rozdzielić według wybranego kryterium.

Zalety i wady multi-tenant 

Multi-tenant wiąże się z kilkoma korzyściami, najważniejsze z nich to:

Zalety: 

  • Korzystna cena – ten model jest tańszy w porównaniu z innymi architekturami hostingu dzierżawy.
  • Różne modele rozliczeniowe – oferuje modele cenowe typu Pay for what you use i Pay as you go.
  • Zapewnione aktualizacje – najemcy korzystający z oprogramowania dostawcy nie muszą martwić się o aktualizacje, ponieważ są one dostarczane przez dostawcę.
  • Przyjazny hosting – najemcy nie muszą martwić się o sprzęt, na którym są hostowane ich dane.
  • Łatwiejsza administracja – dostawcy mają do monitorowania i administrowania tylko jeden system.
  • Skalowalność – architektura multi-tenant jest łatwo skalowalna.

Wady: 

  • Mniejsza elastyczność – aplikacje dostarczane przez dostawcę są zwykle mniej elastyczne niż aplikacje w innych architekturach dzierżawców (tenant architecture), takich jak single-tenant.
  • Złożoność – jest to na ogół bardziej złożone niż single-tenant ze względu na dodatkową wirtualizację i zarządzanie potrzebne do odizolowania i zabezpieczenia każdego najemcy.
  • Rygorystyczne zabezpieczenia – aplikacje wymagają bardziej rygorystycznego uwierzytelniania i kontroli dostępu ze względów bezpieczeństwa.
  • Ryzyko niedostępności – w zależności od dostawcy, przestoje również mogą stanowić problem. Skutki uboczne, takie jak pojedynczy problem z serwerem dotykający wielu użytkowników, również mogą stanowić niepożądane ryzyko.

Implementacja multi-tentant vs single-tenant – podsumowanie: 

Architektura single-tenant jest podobna do podejścia „jeden serwer, jedna aplikacja”, które przypomina tradycyjne centra danych, jakie były dostępne przed upowszechnieniem wirtualizacji serwerów. W hostowanych architekturach z jednym najemcą będzie miał on pojedynczą instancję dedykowanej mu aplikacji SaaS, w przeciwieństwie do modelu multi-tenant, gdzie usługi są współdzielone. Ponieważ każdy najemca znajduje się w oddzielnym środowisku fizycznym lub infrastrukturze, nie są oni związani w taki sam sposób, jak użytkownicy współdzielonej infrastruktury. Oznacza to, że architektury z jednym najemcą są znacznie bardziej konfigurowalne.

Multi-tenant jest używany częściej, ponieważ większość lokalnych centrów danych, SaaS i innych usług w chmurze jest współdzielona. W porównaniu z pojedynczym dzierżawcą, multi-tenant jest tańszy, pozwala na bardziej efektywne wykorzystanie zasobów i ma niższe koszty utrzymania, a także niesie potencjał większej mocy obliczeniowej. Dzięki architekturze z wieloma dzierżawcami dostawca musi dokonywać aktualizacji tylko raz. W architekturze z jednym dzierżawcą dostawca musi z kolei zadbać o aktualizacje.

Mimo że rozwiązanie multi-tenant ma wiele zalet w porównaniu z single-tenant, możliwość wprowadzania znaczących zmian w oprogramowaniu jest utrudnione dla danego najemcy, ponieważ oprogramowanie jest współużytkowane przez innych najemców.

Przeczytaj również: Jak wygląda proces dostarczania oprogramowania oparty na CI/CD? 

Programista z krwi i kości, który lubi różne wyzwania związane z R&D i Proof of Concept, z zachowaniem podejścia DDD i SOLID. Zafascynowany architekturą mikroserwisów i dekompozycją. Prywatnie fan motoryzacji, wyścigów i Track Days.

Zapisz się do newslettera, ekskluzywna zawartość czeka

Bądź na bieżąco z najnowszymi artykułami i wydarzeniami IT

Informacje dotyczące przetwarzania danych osobowych

Zapisz się do newslettera, ekskluzywna zawartość czeka

Bądź na bieżąco z najnowszymi artykułami i wydarzeniami IT

Informacje dotyczące przetwarzania danych osobowych

Zapisz się do newslettera, aby pobrać plik

Bądź na bieżąco z najnowszymi artykułami i wydarzeniami IT

Informacje dotyczące przetwarzania danych osobowych

Dziękujemy za zapis na newsletter — został ostatni krok do aktywacji

Potwierdź poprawność adresu e-mail klikając link wiadomości, która została do Ciebie wysłana w tej chwili.

 

Jeśli w czasie do 5 minut w Twojej skrzynce odbiorczej nie będzie wiadomości to sprawdź również folder *spam*.

Twój adres e-mail znajduje się już na liście odbiorców newslettera

Wystąpił nieoczekiwany błąd

Spróbuj ponownie za chwilę.

    Get notified about new articles

    Be a part of something more than just newsletter

    I hereby agree that Inetum Polska Sp. z o.o. shall process my personal data (hereinafter ‘personal data’), such as: my full name, e-mail address, telephone number and Skype ID/name for commercial purposes.

    I hereby agree that Inetum Polska Sp. z o.o. shall process my personal data (hereinafter ‘personal data’), such as: my full name, e-mail address and telephone number for marketing purposes.

    Read more

    Just one click away!

    We've sent you an email containing a confirmation link. Please open your inbox and finalize your subscription there to receive your e-book copy.

    Note: If you don't see that email in your inbox shortly, check your spam folder.