Piotr Rzeźnik | Rozwój oprogramowania | 22.02.2023
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.
Spis treści:
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?
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:
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.
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.
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ć:
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:
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.
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.
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.
Multi-tenant wiąże się z kilkoma korzyściami, najważniejsze z nich to:
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.
Spis treści:
Dodaj komentarz: