Udostępnij za pośrednictwem


Obliczenia dla obciążeń SaaS na platformie Azure

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 czynników, takich jak architektura aplikacji, skalowanie, wymagania dotyczące wydajności i model izolacji dzierżawy. 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 udostępnia maszyny wirtualne i pełną kontrolę nad nimi, w tym sieć i magazyn. Wymaga to jednak zarządzania i stosowania poprawek, które mogą być intensywnie wykorzystujące operacje. 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łady to aplikacja systemu Azure 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ę, a nie przechodzisz prosto do bardziej zaawansowanej opcji.

    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ź testowanie obciążenia, aby zebrać dokładniejsze dane w celu poinformowania o ćwiczeniu 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. Celem rozwiązania, które można iterować z upływem czasu, aby dostosować się do zmieniających się 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 z jedną dzierżawą mają wyższe koszty na klienta w porównaniu z w pełni wielodostępnymi modelami. 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 z hałaśliwym sąsiadem podczas udostępniania zasobów między dzierżawami. Zasoby obliczeniowe mają największy wpływ na zasoby obliczeniowe. Aby uzyskać więcej informacji, zobacz Antywzorzec noisy 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 udostępnianie zasobów lub umożliwienie nadmiernego zużycia może obniżyć środowisko 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, zaimplementuj odpowiedni nadzór nad zasobami, aby upewnić się, że użycie dzierżawy pozostaje w granicach oczekiwanych.

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ą.
Wymuszanie modelu izolacji.

Należy zachować ostrożność w przypadku zasobów udostępnionych, takich jak lokalne pamięci podręczne, pamięć systemowa i zewnętrzne pamięci podręczne, ponieważ mogą przypadkowo wyciekać danych między dzierżawami, jeśli nie są prawidłowo 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żawami, poważnego zdarzenia zabezpieczeń.
Zaimplementuj ład i monitorowanie zasobów z widocznością metryk na poziomie klienta.

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. Używane podejście zależy od możliwości skalowania aplikacji w wielu wystąpieniach.

    • Skalowanie w poziomie obejmuje dodawanie większej liczby wystąpień węzłów obliczeniowych. Twoja architektura wymaga modułu równoważenia obciążenia do dystrybucji ruchu przychodzącego między wieloma serwerami lub wystąpieniami.
    • 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 sygnatur wdrażania umożliwia wdrożenie wielu niezależnych wystąpień rozwiązania. Zapewnia kolejny wymiar skalowania. Ważne jest, aby zrozumieć pojemność każdej sygnatury, aby określić, kiedy należy wdrożyć więcej. Ta koncepcja jest również nazywana pakowaniem pojemników.

Zalecenia dotyczące projektowania

Zalecenie Korzyści
Wybierz skalowanie w poziomie w pionie. 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.

W przypadku ekonomicznego skalowania bez utraty wydajności skondensuj dzierżawy na jak najmniejsze zasoby.
Lepiej przygotować się do obsługi wzrostu poza bieżącą infrastrukturą.
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.
Użyj alertów dotyczących kosztów. 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. Maksymalizuj wydajność kosztową pojemności zarezerwowanej.

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ą cele wewnętrzne lub cele slo oraz zobowiązania klientów lub umowy SLA, które często określają cele dotyczące czasu pracy, takie jak 99,9% miesięcznie.

    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 tematem RE:05 Recommendations for using availability zones and regions (Zalecenia dotyczące 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 obciążeń stanowych, które muszą obsługiwać 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ększenie dostępności dzięki szybkiemu odzyskiwaniu po drobnych problemach.
Wybierz aplikacje bezstanowe. Jeśli aplikacja musi być stanowa, użyj mechanizmu magazynu stanu zewnętrznego, takiego jak pamięć podręczna do przechowywania stanu. Zapobiegasz utracie stanu spowodowanej niedostępnym wystąpieniem, takim jak podczas błędnego 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.
Wykonywanie inżynierii chaosu. Lepiej zrozumieć, gdzie znajdują się punkty awarii i można je poprawić przed wystąpieniem awarii.
Ogranicz użycie składników współużytkujących wiele sygnatur. 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.