Modele najmu dla aplikacji wielozadaniowej
Zagłębienie się w pojęcie "wielozadaniowości" i podzielenie się naszymi spostrzeżeniami na temat tego, jak ją postrzegamy.
Często słyszymy o znaczeniu tworzenia aplikacji wielozadaniowej, zwłaszcza w kontekście rozwijania aplikacji typu Software as a Service (SaaS).
Istnieje pewne zamieszanie wokół pojęcia “aplikacji wielozadaniowej” i różnych modeli stosowanych do jej opracowywania. W tym artykule przyjrzeliśmy się bliżej tym terminom w bardziej praktyczny sposób.
Zrozum różne modele najmu z punktu widzenia technicznego
Architektura jednokrotnego najmu
Architektura jednokrotnego najmu to model oprogramowania lub przetwarzania w chmurze, w którym każdy klient lub najemca ma dedykowaną instancję aplikacji lub usługi. Jeśli spojrzymy na początek modelu biznesowego B2B, zaczyna się on od sytuacji, w której każda instancja oprogramowania obsługuje tylko jednego klienta lub organizację.
Cechy
- Izolacja: Każdy klient lub najemca działa w izolowanym środowisku z dedykowanymi zasobami, bazami danych i konfiguracjami.
- Dostosowanie: Architektury jednokrotnego najmu często pozwalają na większe dostosowanie i elastyczność, aby sprostać specyficznym potrzebom klienta.
- Bezpieczeństwo: Zwiększone bezpieczeństwo i prywatność danych, ponieważ dane klientów nie są mieszane z danymi innych najemców.
- Skalowalność: Skalowanie zasobów i pojemności może być łatwiejsze, ponieważ instancja każdego najemcy może być niezależnie dostosowywana.
- Konserwacja: Niezależna konserwacja i aktualizacje, ponieważ zmiany w środowisku jednego najemcy nie wpływają na innych.
- Koszt: Zwykle wyższe koszty infrastruktury i operacyjne ze względu na konieczność utrzymania oddzielnych instancji dla każdego najemcy.
Przykłady
- Hosting dedykowany: Tradycyjni dostawcy hostingu internetowego oferują architektury jednokrotnego najmu, w których każdy klient otrzymuje własne zasoby, bazy danych lub konfiguracje.
- Oprogramowanie lokalne: Niektóre aplikacje na poziomie przedsiębiorstwa, takie jak systemy zarządzania relacjami z klientami (CRM) czy systemy zarządzania zasobami ludzkimi (HRMS), oferują opcje wdrażania jednokrotnego najmu dla organizacji z rygorystycznymi wymaganiami dotyczącymi bezpieczeństwa danych i dostosowania.
- SaaS z poziomami premium: W niektórych ofertach Software as a Service (SaaS), poziomy premium lub korporacyjne zapewniają opcje jednokrotnego najmu dla klientów wymagających zwiększonego bezpieczeństwa, zgodności lub dostosowania.
Architektura jednokrotnego najmu jest powszechnie stosowana w scenariuszach, w których zgodność z przepisami jest najważniejsza lub istnieją specjalne wymagania dotyczące bezpieczeństwa. Na przykład branże takie jak finanse, opieka zdrowotna i administracja, które mają rygorystyczne wymagania regulacyjne, często preferują rozwiązania jednokrotnego najmu, aby zapewnić zgodność.
Jednak warto zauważyć, że architektury jednokrotnego najmu mogą być bardziej zasobochłonne i trudniejsze do zarządzania w porównaniu do architektur wielozadaniowych, ponieważ instancja każdego klienta wymaga własnej infrastruktury i konserwacji. W związku z tym mogą być bardziej odpowiednie dla aplikacji z mniejszą liczbą, ale większymi klientami lub tam, gdzie dostosowanie i izolacja są kluczowe.
Architektura wielozadaniowa
Wielozadaniowość oprogramowania to architektura oprogramowania, w której jedna instancja oprogramowania działa na serwerze i obsługuje wielu najemców. Systemy zaprojektowane w ten sposób są "współdzielone" (zamiast "dedykowanych" lub "izolowanych"). Najemca to grupa użytkowników, którzy dzielą wspólny dostęp z określonymi uprawnieniami do instancji oprogramowania. W przypadku architektury wielozadaniowej, aplikacja oprogramowania jest zaprojektowana tak, aby każdemu najemcy zapewnić dedykowany udział w instancji - w tym jego dane, konfigurację, zarządzanie użytkownikami, indywidualną funkcjonalność najemcy oraz właściwości niefunkcjonalne. -- Wikipedia
Cechy
- Współdzielone zasoby: Wielu najemców dzieli te same zasoby infrastrukturalne, w tym serwery, bazy danych i zasoby sieciowe, aby zoptymalizować wykorzystanie zasobów.
- Izolacja: Dane i konfiguracje najemców są logicznie oddzielone, zapewniając prywatność i bezpieczeństwo danych.
- Korzyści z skali: Wielozadaniowość może być opłacalna, ponieważ koszty ogólne są rozłożone na wielu użytkowników, co redukuje koszty operacyjne i infrastrukturalne.
- Skalowalność: Architektura może skalować się poziomo lub pionowo, aby pomieścić rosnącą liczbę najemców i użytkowników.
- Konserwacja: Aktualizacje i konserwacja są usprawnione, ponieważ zmiany są stosowane jednolicie do wszystkich najemców, upraszczając zarządzanie.
- Dostosowanie: Choć pewne dostosowania są możliwe, są zazwyczaj bardziej ograniczone w porównaniu do architektur jednokrotnego najmu, aby utrzymać spójność w całym systemie.
Przykłady
- Chmura SaaS: Większość aplikacji typu Software as a Service (SaaS), takich jak Google Workspace i Salesforce, stosuje wielozadaniowość, aby obsługiwać wiele organizacji lub użytkowników na wspólnej platformie.
- Hosting współdzielony: W hostingu internetowym, usługi hostingu współdzielonego hostują wiele witryn na tym samym serwerze, z których każda należy do innego klienta lub organizacji.
- Usługi publicznej chmury: Publiczni dostawcy chmur, tacy jak AWS i Azure, używają wielozadaniowości do obsługi różnych klientów z izolowanymi, wirtualizowanymi zasobami w ramach współdzielonych centrów danych.
- Rozwiązania infrastrukturalne dla całego przedsiębiorstwa: Takie jak współdzielony klaster Kubernetes, używany przez wiele jednostek biznesowych w ramach organizacji.
Redefinicja aplikacji wielozadaniowych w prawdziwym świecie
Podaliśmy definicje z perspektywy architekturalnej, co ułatwia rozróżnienie między projektami wielozadaniowymi a jednokrotnego najmu. Jednak to bardziej polega na definicji technicznej. Jeśli zastosujemy te definicje w naszym rzeczywistym środowisku deweloperskim podczas projektowania modeli najmu, takie podejście zakłada, że aplikacja wielozadaniowa musi mieć czysto współdzieloną infrastrukturę wielozadaniową.
Jednak biznes i produkty są zróżnicowane i mają wiele wymagań zależnych od przypadku, więc nie ma jednego rozwiązania pasującego do wszystkich.
Wyobraź sobie sytuację, w której najemca korzysta z zasobów współdzielonej infrastruktury, ale z powodu specyficznych potrzeb biznesowych wymaga jednej lub dwóch części systemu, które będą wyłącznie dedykowane dla nich. Te dedykowane części mogą obejmować bazę danych, instancje lub kombinację innych komponentów, jednocześnie dzieląc ogólną infrastrukturę. Tutaj pojawia się architektura mieszana.
W praktycznym rozwoju produktów SaaS, często występuje sytuacja, w której produkt jest głównie zaprojektowany według ogólnego modelu wielozadaniowego. Jednak pewne aspekty architektury lub zasobów mogą skłaniać się ku podejściu "jednokrotnego najmu".
AWS użył następującego przypadku, aby przekazać tę koncepcję: wielozadaniowość to szerokie pojęcie, i na podstawie przypadku jest to kombinowanie i wybieranie odpowiedniej strategii definiującej, co chciałbyś osiągnąć za pomocą współdzielonych zasobów i izolacji danych.
Innymi słowy, czasami ludzie nadal nazywają ten model “Wielozadaniowością”, więc w szerszej definicji wielozadaniowości, nie oznacza to, że każdy komponent w rozwiązaniu jest współdzielony. Oznacza to raczej, że przynajmniej niektóre komponenty rozwiązania są używane ponownie przez wielu najemców.
Szerokie zrozumienie tego pojęcia może lepiej pomóc ci wczuć się w potrzeby klienta i zrozumieć, skąd pochodzą.
Zamiast skupiać się na jednym modelu architektonicznym, wielozadaniowość odzwierciedla praktyczność architektury produktu SaaS w rzeczywistym świecie. Kiedy mówimy o aplikacji wielozadaniowej, niekoniecznie oznacza to, że aplikacja przestrzega jednego modelu architektonicznego; może wykorzystywać różne strategie najmu, wskazując, że przynajmniej niektóre jej komponenty są współdzielone.
Kluczowe zagadnienia do określenia strategii modelu najmu
Pojawia się pytanie, jak zaproponować strategię najmu dla mojego produktu? Oto kilka ważnych pytań do przemyślenia:
- Jakie są twoje cele biznesowe?
- Czy rozwiązanie jednokrotnego najmu może wspierać twoje przyszłe plany rozwoju?
- Jak duży jest twój zespół operacyjny i ile z zarządzania infrastrukturą można zautomatyzować? Czy zależy ci na zwinności i efektywności kosztowej?
- Czy twoi klienci są zadowoleni z różnych opcji wielozadaniowości?
- Jak każda opcja wpływa na zgodność, zarówno twoją, jak i twoich klientów?
- Czy oczekuje się od ciebie spełnienia umów dotyczących poziomu usług (SLA) lub osiągnięcia określonych celów poziomu usług (SLO)?
- Czy wziąłeś pod uwagę bezpieczeństwo, koszt, wydajność, niezawodność i reaktywność na potrzeby indywidualnych najemców jako całość?
Pamiętaj, że w twoim produkcie nie ma sztywnego podziału, gdzie musisz zdecydować się albo na czysto wielozadaniowy, albo wyłącznie jednokrotnego najmu model. Twoja decyzja powinna być oparta na tym, jak dzielisz komponenty architektoniczne twojego produktu i na specyficznych poziomach izolacji, których potrzebują twoi klienci lub biznes. Następnie możesz zastosować odpowiednie podejścia.
Następny krok
Mówiliśmy o “nowej” definicji aplikacji wielozadaniowej, ale co z izolacją najemców, tożsamościami i tym, jak określić, czy twoje tożsamości powinny być izolowane, czy nie? Co oznacza dla tożsamości, aby były "izolowane"?
Często pojawia się zamieszanie w sytuacjach, w których jeden użytkownik rzeczywistego świata ma dwie różne tożsamości. Czy odpowiednim jest nazywanie tej sytuacji - “tożsamości izolowane”?
Odpowiemy na te pytania w naszej nadchodzącej serii artykułów. Zostańcie z nami!