Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Aplikacja oprogramowania jako usługi (SaaS) musi działać na platformie obliczeniowej. Podobnie jak w przypadku innych składników architektury, musi spełniać wymagania biznesowe i być zaprojektowane zgodnie z modelem biznesowym. Wybór platformy obliczeniowej to znacząca decyzja projektowa. Decyzja ma wpływ na izolację klienta, wydajność i odporność, a platforma obliczeniowa wpływa na sposób skalowania i rozwoju całego rozwiązania SaaS.
W tym artykule opisano zagadnienia dotyczące wybierania modelu hostingu, aspektów operacyjnych tego modelu oraz sposobu optymalizacji opcji technologicznych, które ułatwiają spełnienie umów dotyczących poziomu usług (SLA) i celów poziomu usług (SLO).
Wybieranie platformy obliczeniowej
Wybór odpowiedniej platformy obliczeniowej dla obciążenia SaaS jest ważny, ale mnóstwo dostępnych opcji może sprawić, że wybór będzie przytłaczający. Najlepsza platforma zależy od takich czynników, jak architektura aplikacji, skala, wymagania dotyczące wydajności oraz model izolacji dzierżawców. To, co jest optymalne dla jednej aplikacji, może nie być dla innej.
Uwagi dotyczące projektowania
Model hostingu. Platforma Azure oferuje różne modele hostingu, przede wszystkim infrastrukturę jako usługę (IaaS) i platformę jako usługę (PaaS), z których każda ma własne korzyści i kompromisy. Oceń wymagania aplikacji i wybierz najbardziej odpowiedni model.
Usługa IaaS zapewnia maszyny wirtualne (VM) i obszerną kontrolę nad nimi, w tym sieci i przestrzeni dyskowej. Wymaga jednak zarządzania i wdrażania poprawek, co może być wymagające operacyjnie. Przykłady obejmują zestawy skalowania maszyn wirtualnych i klastry usługi Azure Kubernetes Service (AKS).
Usługa PaaS umożliwia wdrażanie aplikacji bez zarządzania podstawową infrastrukturą. Zawiera wbudowane funkcje skalowania automatycznego i równoważenia obciążenia. Przykładami są Azure App Service i Azure Container Apps.
Usługi PaaS oferują mniejszą kontrolę w porównaniu z usługą IaaS, co może być problematyczne, jeśli aplikacja wymaga określonej konfiguracji. Na przykład aplikacja może działać w systemie operacyjnym, który usługa PaaS nie obsługuje.
Typ obciążenia. Niektóre platformy są wyspecjalizowane dla konkretnych obciążeń, a inne są uniwersalne. Na przykład usługa App Service jest przeznaczona dla aplikacji internetowych, natomiast usługa AKS jest bardziej ogólnego przeznaczenia. Może hostować aplikacje internetowe, obciążenia sztucznej inteligencji i zadania obliczeniowe wsadowe.
Opracowywanie wiedzy zespołowej. Duże zmiany mogą być trudne, jeśli zespół nie ma doświadczenia z nową platformą. Oceń umiejętności zespołu i dopasuj je do wymagań platformy. Zacznij od prostej platformy i stopniowo rozwijaj swoją architekturę, zamiast od razu przechodzić do bardziej zaawansowanego rozwiązania.
Jeśli na przykład tworzysz konteneryzowaną aplikację, zacznij od usługi Container Apps, aby ułatwić zarządzanie. W miarę zwiększania się złożoności potrzeb możesz przejść do usługi AKS, gdy uzyskasz lepsze zrozumienie platformy w czasie.
Koszty związane z zarządzaniem. Platformy obliczeniowe równoważą obciążenie i kontrolę. Większa odpowiedzialność za zarządzanie została przesunięta od zespołu, co oznacza mniejszą kontrolę nad platformą.
Na przykład usługa IaaS zapewnia wysoką kontrolę nad maszynami wirtualnymi, ale zapewnia znaczne obciążenie. Jeśli aplikacja jest wdrażana w środowisku klienta, być może masz ograniczony dostęp do operacji zarządzania. Oceń, czy te kompromisy są akceptowalne i możliwe.
Wymagania dotyczące wydajności. Poznaj wymagania dotyczące wydajności aplikacji, modelując procesor CPU, pamięć, sieć, w tym przepustowość i opóźnienia, procesor GPU i wymagania dotyczące dostępności. Należy również rozważyć przyszły wzrost. Użyj tych informacji, aby wybrać odpowiednie zasoby obliczeniowe, takie jak seria i rozmiar maszyn wirtualnych. Może być również konieczne wybranie określonych regionów, które obsługują konkretną serię maszyn wirtualnych, aby spełnić wyspecjalizowane wymagania.
Wymagania dotyczące niezawodności. Rozważ funkcje niezawodności platformy obliczeniowej i upewnij się, że spełniają one cele dotyczące niezawodności. Może być konieczne użycie określonych warstw usług, aby mieć wiele wystąpień rozwiązania lub wdrożyć je w różnych strefach dostępności w celu zwiększenia niezawodności.
Zapoznaj się z zaleceniami RE:04 dotyczącymi definiowania celów niezawodności.
Zabezpieczenia i zgodność aplikacji. Oceń funkcje zabezpieczeń i certyfikaty zgodności każdej platformy obliczeniowej, aby upewnić się, że spełniają One Twoje potrzeby. Jeśli na przykład musisz monitorować i filtrować ruch wychodzący, może być konieczne wybranie określonych usług obliczeniowych lub warstw.
Zalecenia dotyczące projektowania
| Zalecenie | Korzyści |
|---|---|
| Oceń wymagania dotyczące wydajności obliczeń, szacując wymiary skalowania procesora CPU, pamięci, sieci i procesora GPU. Przeprowadź testy obciążeniowe, aby zebrać dokładniejsze dane na potrzeby modelowania. |
Te zadania ułatwiają wybranie odpowiedniego rozmiaru dla platformy obliczeniowej i odpowiednie skalowanie w przypadku wzrostu obciążenia systemu. |
| Oceń biegłość zespołu i zacznij od najmniej złożonej platformy, która spełnia Twoje potrzeby lub taką, którą zespół już zna. | Zapewnisz sprawniejsze operacje i unikaj nadmiernego przeciążenia zespołu, wybierając platformę obliczeniową, którą znają. |
| Bądź elastyczny w projekcie. Postaw na rozwiązanie, które można z czasem stopniowo rozwijać, aby dostosować je do ewoluujących wymagań biznesowych i technicznych. | Elastyczność pozwala łatwiej dostosować się do zmian i ulepszeń w czasie. Możesz skutecznie reagować na zmieniające się potrzeby biznesowe i techniczne. |
| Oceń całkowity koszt posiadania (TCO), w tym koszty działania rozwiązania. | Masz jasne zrozumienie kosztów, co ma kluczowe znaczenie w planowaniu modelu cenowego i zapewnianiu ekonomicznych operacji. |
| Oceń, czy należy używać określonych platform obliczeniowych ze względu na stos technologii. Niektóre platformy obliczeniowe są lepiej dostosowane do niektórych języków programowania, narzędzi i systemów operacyjnych. Staraj się używać platform, które natywnie obsługują wybrane technologie. | Uniknąć kosztów przeprojektowania architektury, która może obejmować migrację do nowej platformy. |
| Oceń funkcje niezawodności platformy i uwzględnij gwarancje dostawcy usług w chmurze do celów SLO. | Zmniejszasz ryzyko awarii zlokalizowanych centrów danych, planując funkcje niezawodności i używając stref dostępności, jeśli są dostępne. |
Model dzierżawy i izolacja
Model biznesowy SaaS określa, czy hostujesz zasoby dla klientów, czy zarządzasz nimi w środowisku klienta. Większość dostawców SaaS hostuje zasoby w imieniu swoich klientów, co pozwala na elastyczność projektowania platformy obliczeniowej. Efektywne izolowanie obciążeń klientów w celu optymalizacji wydajności kosztów bez naruszania jakości obsługi klienta lub wydajności.
Uwagi dotyczące projektowania
Zaplanuj model dzierżawy. Model dzierżawy określa udostępnianie zasobów między klientami i jest pod wpływem modeli biznesowych i cenowych. Modele jednodzierżawne mają wyższe koszty w przeliczeniu na klienta niż w pełni wielodzierżawne modele. Ceny powinny odzwierciedlać te różnice.
Wymagania klienta. Niektórzy klienci mogą mieć określone potrzeby dotyczące rezydencji danych, gwarancji wydajności lub zgodności z zabezpieczeniami. Jeśli te wymagania wymagają wyższych poziomów izolacji niż zwykle, rozważ, jak odzwierciedlić zwiększone koszty w modelu biznesowym.
Problem z hałaśliwym sąsiadem. Należy pamiętać o problemie głośnego sąsiada przy współdzieleniu zasobów przez dzierżawców. Najbardziej dotknięte są zasoby obliczeniowe. Aby uzyskać więcej informacji, zobacz antywzorzec hałaśliwego sąsiada.
Po wybraniu modelu dzierżawy zrównoważ oszczędności kosztów udostępniania zasobów dzięki konieczności zagwarantowania wydajności klienta. Nadmierne współdzielenie zasobów lub dopuszczenie do ich nadmiernego wykorzystania może pogorszyć doświadczenia klienta.
Kompromis: wydajność i koszty. Udostępnianie zasobów wśród klientów może być opłacalne, ale jeśli niektórzy klienci korzystają z większej ilości zasobów niż oczekiwano, takie podejście może obniżyć wydajność dla innych. Aby temu zapobiec, wdroż odpowiednie mechanizmy zarządzania zasobami, aby zapewnić, że wykorzystanie zasobów przez dzierżawcę mieści się w oczekiwanych granicach.
Zalecenia dotyczące projektowania
| Zalecenie | Korzyści |
|---|---|
| Oceń funkcje izolacji platformy obliczeniowej, aby upewnić się, że spełnia ona wymagania modelu dzierżawy. | Należy unikać ponownego tworzenia platformy, najpierw weryfikując konfigurację krytyczną. |
| Wymuś swój model izolacji. Należy zachować ostrożność w przypadku zasobów współdzielonych, takich jak lokalne pamięci podręczne dysku, pamięć systemowa i zewnętrzne pamięci podręczne, ponieważ mogą one nieumyślnie ujawniać dane między dzierżawcami, jeśli nie są właściwie zarządzane. W przypadku wymagań dotyczących wysokiej izolacji wymuś izolację na platformie obliczeniowej i w aplikacji. |
Silna izolacja zmniejsza ryzyko wycieku danych między dzierżawcami, co stanowi poważny incydent bezpieczeństwa. |
| Wdróż nadzór nad zasobami i ich monitorowanie, z wglądem w metryki na poziomie poszczególnych klientów. Proaktywne monitorowanie użycia zasobów każdego klienta w celu wykrywania i eliminowania problemów z hałaśliwymi sąsiadami. |
Zapobiegasz problemom wpływającym na innych klientów, monitorując zużycie zasobów i zmniejszając problemy na wczesnym etapie. |
Konfigurowanie pod kątem skalowalności i wydajności kosztów
Klienci mogą używać aplikacji z różnymi profilami wydajności. Oczekuje się, że aplikacja będzie obsługiwać rosnące wymagania użytkowników, dane na dużą skalę i złożone obciążenia bez naruszania szybkości i wydajności. Architektura systemu musi zapewnić skalowalność i optymalną wydajność, niezależnie od tego, czy zarządza setkami, czy milionami użytkowników, jednocześnie równoważąc potrzeby i koszty wydajności.
Kompromis: wydajność i koszty. Poprawa wydajności zwykle wiąże się z dodawaniem zasobów, co zwiększa koszty. Przejrzyj obciążenia całościowo, aby określić, które zasoby oferują największe korzyści w przypadku dodatkowych kosztów. Na przykład izolowanie najważniejszego klienta w dedykowanej infrastrukturze może być warte dodatkowych wydatków, aby uniknąć problemów z wydajnością z innych obciążeń.
Aby uzyskać więcej informacji na temat zarządzania kosztami, zobacz Rozliczenia i zarządzanie kosztami dla obciążeń SaaS na platformie Azure.
Uwagi dotyczące projektowania
Strategie skalowania w poziomie i w pionie. Podejścia do skalowania w poziomie i w pionie są możliwe do obsługi zwiększonego obciążenia. Podejście, którego używasz, zależy od możliwości aplikacji do skalowania w wielu instancjach.
- Skalowanie w poziomie obejmuje dodawanie większej liczby wystąpień węzłów obliczeniowych. Twoja architektura wymaga modułu równoważenia obciążenia, aby rozdzielać ruch przychodzący na wiele serwerów lub instancji.
- Skalowanie w pionie obejmuje zwiększenie zasobów, takich jak procesor CPU i pamięć, na jednym serwerze. Użyj tego podejścia w przypadku aplikacji stanowych, które nie potrzebują magazynów stanów zewnętrznych, takich jak pamięci podręczne. Skalowanie w pionie może spowodować krótkie przerwy w działaniu usługi i ograniczenie zasobów na jednym serwerze.
Zapoznaj się z zaleceniami PE:05 dotyczącymi skalowania i partycjonowania.
Skalowanie automatyczne. Systemy muszą efektywnie obsługiwać różne poziomy zapotrzebowania. W miarę zwiększania się ruchu użytkowników zasoby aplikacji muszą być skalowane w górę, aby utrzymać wydajność. Gdy zapotrzebowanie się zmniejsza, zasoby są skalowane w dół, aby kontrolować koszty bez wpływu na środowisko użytkownika. Czynniki takie jak wykorzystanie procesora CPU, pora dnia lub żądania przychodzące prowadzą do tych korekt. Skalowanie automatyczne pomaga równoważyć wydajność i koszty oraz zmniejszać wpływ wysokiego zapotrzebowania na innych dzierżawców.
Zapoznaj się z zaleceniami RE:06 dotyczącymi niezawodnego skalowania.
Planowanie pojemności i alokacja zasobów obliczeniowych. Dołączanie nowych klientów do obciążenia SaaS zużywa pojemność zasobów. Nawet jeśli skalujesz w pionie lub w poziomie, ostatecznie osiągniesz limity, takie jak ograniczenia dotyczące sieci lub magazynu, w skalowalności rozwiązania.
Uwaga
Wzorzec stemplowania wdrożeń umożliwia wdrażanie wielu niezależnych instancji rozwiązania. Zapewnia kolejny wymiar skalowania. Kluczowe jest zrozumienie pojemności każdego stempla, aby określić, kiedy należy wdrożyć kolejne. Ta koncepcja jest również nazywana pakowaniem pojemników.
Zalecenia dotyczące projektowania
| Zalecenie | Korzyści |
|---|---|
| Wybierz skalowanie poziome zamiast skalowania pionowego. Skalowanie w poziomie jest często mniej złożone, bardziej niezawodne i bardziej ekonomiczne niż skalowanie w pionie. | Skalowanie w poziomie jest często prostsze, bardziej niezawodne i ekonomiczne, co umożliwia skalowanie do wyższego stopnia niż skalowanie w pionie. |
| Przeprowadź testowanie obciążenia. | Symulowanie użycia może pomóc w zidentyfikowaniu wąskich gardeł i progów skalowania przed wdrożeniem w środowisku produkcyjnym. |
| Zdefiniuj próg skalowania na potrzeby wdrażania nowej sygnatury zamiast skalowania w poziomie lub w pionie. Aby skalować system w sposób efektywny kosztowo bez utraty wydajności, skonsoliduj tenanty na możliwie najmniejszej liczbie zasobów. |
Jesteś lepiej przygotowany do sprostania wzrostowi wykraczającemu poza możliwości obecnej infrastruktury. |
| W miarę możliwości zaimplementuj skalowanie automatyczne. Ustaw reguły autoskalowania, aby dokładnie odzwierciedlały obciążenie aplikacji. | Wydajność i koszty można zoptymalizować, zwiększając i zmniejszając zasoby zgodnie z potrzebami. |
| Monitorowanie i ocenianie wzorców użycia klientów. | Wiesz, kiedy dostosować infrastrukturę, aby zwiększyć wydajność lub zoptymalizować koszty. |
| W miarę możliwości zaimplementuj mechanizmy buforowania. | Zmniejszasz potencjalne obciążenie przetwarzania w warstwie obliczeniowej. |
| Korzystaj z alertów kosztowych. | Ostrzeżenia ułatwiają wczesne wykrywanie problemów z wysokim użyciem i kontrolowanie kosztów. |
| Rezerwacje platformy Azure są używane dla klientów, którzy mają długoterminowe zobowiązania i gwarantowane wykorzystanie zasobów obliczeniowych przez cały okres. | Maksymalizujesz efektywność kosztową zarezerwowanej pojemności. |
Projektowanie pod kątem odporności
Odporność warstwy obliczeniowej odgrywa dużą rolę w ogólnej strategii odporności. Aplikacja powinna tolerować typowe awarie i odzyskiwać je automatycznie i bezproblemowo bez wpływu na użytkownika.
Uwagi dotyczące projektowania
Wymagania dotyczące niezawodności. Ustaw jasne wymagania dotyczące niezawodności. Wymagania te obejmują wewnętrzne cele, czyli SLO, oraz zobowiązania wobec klientów, czyli SLA, które często określają cele dotyczące dostępności, takie jak 99,9% w skali miesiąca.
Zapoznaj się z zaleceniami RE:04 dotyczącymi definiowania celów niezawodności.
Strategia wdrażania. Zasoby w chmurze są wdrażane w określonych regionach geograficznych. Na platformie Azure strefy dostępności to izolowane zestawy centrów danych w regionie. Aby zapewnić odporność, wdróż aplikacje w wielu strefach dostępności. Wdrażanie między regionami lub dostawcami usług w chmurze zwiększa odporność, ale zwiększa koszty i złożoność operacyjną.
Zapoznaj się z RE:05 Zaleceniami dotyczącymi używania stref dostępności i regionów.
Obciążenia bezstanowe. Aby wdrożyć odporne aplikacje, zazwyczaj należy uruchamiać nadmiarowe kopie w różnych lokalizacjach. To zadanie może być trudne w przypadku aplikacji stanowych, które muszą utrzymywać stan sesji. W miarę możliwości należy tworzyć obciążenia bezstanowe.
Zalecenia dotyczące projektowania
| Zalecenie | Korzyści |
|---|---|
| Obsługa błędów przejściowych w aplikacji. | Zwiększasz swoją dostępność dzięki szybkiemu usuwaniu drobnych problemów. |
| Wybierz aplikacje bezstanowe. Jeśli aplikacja wymaga zachowywania stanu, użyj zewnętrznego mechanizmu przechowywania stanu, takiego jak pamięć podręczna, aby przechowywać stan. | Zapobiegasz utracie stanu spowodowanej niedostępnością instancji, na przykład podczas nieprawidłowego równoważenia obciążenia lub awarii. |
| Użyj stref dostępności. | Zwiększasz odporność, ograniczając lokalne awarie centrów danych. |
| Zaprojektuj architekturę wieloregionową, gdy istnieje uzasadnienie biznesowe. | Spełniasz wymagania dotyczące wysokiej dostępności i obsługujesz użytkowników w różnych regionach. |
| Przeprowadź testowanie chaosu. | Lepiej zrozumieć, gdzie znajdują się punkty awarii i można je poprawić przed wystąpieniem awarii. |
| Ogranicz użycie komponentów współdzielonych przez wiele stempli. | Eliminujesz pojedyncze punkty awarii i zmniejszasz potencjalny obszar wpływu na awarię. |
Dodatkowe zasoby
Multitenancy to podstawowa metodologia biznesowa projektowania obciążeń SaaS. Te artykuły zawierają więcej informacji na temat zagadnień związanych z platformą obliczeniową:
Następny krok
Dowiedz się więcej o zagadnieniach dotyczących sieci dla obciążeń SaaS.