Wielodostępność - Multitenancy

Multitenancy oprogramowanie jest architektura oprogramowania , w których pojedynczy przypadek z oprogramowania działa na serwerze i służy wielu lokatorów. Systemy zaprojektowane w ten sposób są „wspólne” (a nie „dedykowane” lub „izolowane”). Dzierżawa to grupa użytkowników, którzy mają wspólny dostęp z określonymi uprawnieniami do wystąpienia oprogramowania. W architekturze wielodostępnej aplikacja została zaprojektowana tak, aby zapewnić każdemu najemcy dedykowaną część instancji — w tym jej dane, konfigurację, zarządzanie użytkownikami, indywidualną funkcjonalność najemcy i właściwości niefunkcjonalne . Wielodostępność kontrastuje z architekturą wieloinstancyjną, w której oddzielne instancje oprogramowania działają w imieniu różnych dzierżawców.

Niektórzy komentatorzy uważają wielodostępność za ważną cechę przetwarzania w chmurze .

Przyjęcie

Historia aplikacji wielodostępnych

Aplikacje wielodostępne wyewoluowały z trzech typów usług i łączą w sobie pewne cechy:

  1. Podział czasu : od lat 60. firmy wynajmowały przestrzeń i moc obliczeniową na komputerach typu mainframe ( podział czasu ), aby zmniejszyć koszty obliczeniowe. Często również ponownie wykorzystywali istniejące aplikacje, z osobnym polem wprowadzania na ekranie logowania, aby określić identyfikator konta klienta. Na podstawie tego identyfikatora księgowi komputerów mainframe mogą obciążać poszczególnych klientów za faktycznie poniesione zużycie procesora, pamięci i dysków/taśm.
  2. Aplikacje hostowane : od lat 90. tradycyjni dostawcy usług aplikacji (ASP) hostowali (wtedy istniejące) aplikacje w imieniu swoich klientów. W zależności od ograniczeń aplikacji bazowej ASP były zmuszone hostować aplikacje na osobnych komputerach (jeśli wiele instancji aplikacji nie mogło być uruchomionych na tej samej maszynie fizycznej) lub jako oddzielne procesy . Aplikacje wielodostępne reprezentują bardziej dojrzałą architekturę, która umożliwia podobną usługę przy niższych kosztach operacyjnych.
  3. Aplikacje internetowe : popularne aplikacje internetowe zorientowane na klienta (takie jak Hotmail ) opracowane przy użyciu pojedynczej instancji aplikacji obsługującej wszystkich klientów. Aplikacje wielodostępne stanowią naturalną ewolucję tego modelu, oferując dodatkowe dostosowanie do grup użytkowników w (powiedzmy) tej samej organizacji klienta.

Odróżnienie od wirtualizacji

W środowisku wielodostępnym wielu klientów korzysta z tej samej aplikacji, działającej w tym samym systemie operacyjnym, na tym samym sprzęcie, z tym samym mechanizmem przechowywania danych. Rozróżnienie między klientami jest osiągane podczas projektowania aplikacji, dzięki czemu klienci nie dzielą się ani nie widzą swoich danych. Porównaj to z wirtualizacją, w której komponenty są przekształcane, dzięki czemu każda aplikacja klienta wydaje się działać na oddzielnej maszynie wirtualnej.

Zróżnicowanie konkurencyjne

Niektóre firmy aktywnie promują zasadę wielodostępności i wykorzystują ją jako źródło zróżnicowania konkurencyjnego. Korzystanie z wielodostępności rośnie z dnia na dzień.

Ekonomia wielodostępności

Oszczędność kosztów

Wielodostępność pozwala na oszczędności wykraczające poza podstawowe korzyści skali, które można osiągnąć dzięki konsolidacji zasobów IT w ramach jednej operacji. Wystąpienie aplikacji zwykle wiąże się z pewną ilością pamięci i obciążeniem przetwarzania, które mogą być znaczne po pomnożeniu przez wielu klientów, zwłaszcza jeśli klienci są mali. Wielodostępność zmniejsza ten koszt, rozkładając go na wielu klientów. Dalsze oszczędności mogą pochodzić z kosztów licencji oprogramowania bazowego (takiego jak systemy operacyjne i systemy zarządzania bazami danych). Krótko mówiąc, jeśli możesz uruchomić wszystko na jednym wystąpieniu oprogramowania, musisz kupić tylko jedną licencję na oprogramowanie . Oszczędność kosztów może przyćmić trudność skalowania pojedynczej instancji wraz ze wzrostem zapotrzebowania – zwiększenie wydajności instancji na pojedynczym serwerze można osiągnąć tylko poprzez zakup szybszego sprzętu, takiego jak szybkie procesory, więcej pamięci i szybsze systemy dyskowe, i zazwyczaj koszty te rosną szybciej, niż gdyby obciążenie zostało podzielone między wiele serwerów o mniej więcej tej samej łącznej pojemności. Ponadto rozwój systemów wielodostępnych jest bardziej złożony, a testy bezpieczeństwa bardziej rygorystyczne ze względu na przemieszanie danych wielu klientów.

Agregacja danych/eksploracja danych

Jednym z najbardziej przekonujących powodów, dla których dostawcy/ niezależni dostawcy oprogramowania wykorzystują wielodostępność, są nieodłączne korzyści z agregacji danych . Zamiast zbierać dane z wielu źródeł danych z potencjalnie różnymi schematami bazy danych , wszystkie dane wszystkich klientów są przechowywane w jednym schemacie bazy danych. Dzięki temu uruchamianie zapytań wśród klientów, eksploracja danych i wyszukiwanie trendów jest znacznie prostsze. Ten powód jest prawdopodobnie przereklamowany, ponieważ jednym z podstawowych wymagań dotyczących wielodostępności jest konieczność uniemożliwienia dostawcy usług dostępu do informacji o klientach (dzierżawcach). Co więcej, powszechne jest oddzielanie operacyjnej bazy danych od bazy górniczej (zwykle z powodu różnych charakterystyk obciążenia), co jeszcze bardziej osłabia argument.

Złożoność

Ze względu na dodatkową złożoność dostosowywania i konieczność utrzymywania metadanych dla poszczególnych dzierżawców aplikacje wielodostępne wymagają większego wysiłku programistycznego. Należy wziąć pod uwagę takie czynniki, jak sekwencjonowanie danych oparte na wektorach, szyfrowana infrastruktura algorytmów i zwirtualizowane interfejsy sterowania.

Zarządzanie wydaniami

Wielodostępność upraszcza proces zarządzania wydaniami. W tradycyjnym procesie zarządzania wydaniami pakiety zawierające zmiany w kodzie i bazie danych są dystrybuowane na komputery klienckie i/lub serwery; w przypadku pojedynczego wystąpienia byłby to jeden serwer na klienta. Te pakiety muszą być następnie zainstalowane na każdym indywidualnym komputerze. W przypadku modelu wielodostępnego pakiet zazwyczaj wystarczy zainstalować na jednym serwerze. To znacznie upraszcza proces zarządzania wydaniami, a skala nie jest już zależna od liczby klientów.

Jednocześnie wielodostępność zwiększa ryzyko i skutki związane z zastosowaniem nowej wersji wydania. Ponieważ istnieje jedno wystąpienie oprogramowania obsługujące wielu dzierżawców, aktualizacja tego wystąpienia może spowodować przestój wszystkich dzierżawców, nawet jeśli aktualizacja jest wymagana i przydatna tylko dla jednej dzierżawy. Ponadto niektóre błędy i problemy wynikające z zastosowania nowej wersji mogą objawiać się w spersonalizowanym widoku aplikacji innych dzierżawców. Ze względu na możliwy przestój moment zastosowania zwolnienia może być ograniczony w zależności od harmonogramu użytkowania więcej niż jednego najemcy.

Wymagania

Dostosowywanie

Aplikacje wielodostępne są zazwyczaj wymagane w celu zapewnienia wysokiego stopnia dostosowania do potrzeb każdej organizacji docelowej. Dostosowanie zazwyczaj obejmuje następujące aspekty:

  • Branding: umożliwienie każdej organizacji dostosowania wyglądu i sposobu działania aplikacji w celu dopasowania ich do marki korporacyjnej (często określanej jako odrębna „ skóra ”).
  • Workflow : uwzględnianie różnic w przepływie pracy, z którego może korzystać szeroka gama potencjalnych klientów.
  • Rozszerzenia modelu danych : obsługa rozszerzalnego modelu danych, aby dać klientom możliwość dostosowania elementów danych zarządzanych przez aplikację do ich specyficznych potrzeb.
  • Kontrola dostępu : umożliwienie każdej organizacji klienckiej niezależnego dostosowania praw i ograniczeń dostępu dla każdego użytkownika .

Jakość usługi

Oczekuje się, że aplikacje wielodostępne zapewnią odpowiednią izolację bezpieczeństwa , niezawodności i wydajności między wieloma dzierżawcami, co zapewniają warstwy poniżej aplikacji w przypadku aplikacji o wielu instancjach.

Wirtualizacja

Koszty przeprojektowania aplikacji do obsługi wielu dzierżawców mogą być znaczne, zwłaszcza w przypadku dostawców oprogramowania, którzy nadal oferują lokalną wersję swojego produktu z jedną dzierżawą. W końcu są zmuszeni do obsługi dwóch różnych produktów z wszystkimi wynikającymi z tego kosztami.

Coraz bardziej opłacalną alternatywną drogą do wielodostępności, która eliminuje potrzebę znaczących zmian w architekturze, jest wykorzystanie technologii wirtualizacji do hostowania wielu odizolowanych instancji aplikacji na jednym lub większej liczbie serwerów. Rzeczywiście, gdy aplikacje są przepakowywane jako urządzenia wirtualne, ten sam obraz urządzenia może zostać wdrożony w hostowanych przez ISV, lokalnych lub zaufanych lokalizacjach stron trzecich, a nawet z czasem migrowany z jednego miejsca wdrożenia do drugiego.

Zobacz też

Bibliografia