Wielodostępna usługa SaaS na platformie Azure

Identyfikator Microsoft Entra
Azure App Service
Azure DNS
Azure Front Door
Azure Kubernetes Service (AKS)

Po zidentyfikowaniu części rozwiązania programowego twojej firmy, którą można odezwynić i wprowadzać na rynek w innych firmach, dodaje cały nowy strumień przychodów dla firmy. Jednak skonfigurowanie rozwiązania pod kątem obciążenia, które przynosi mnóstwo dzierżaw, jest często trudną przeszkodą do rozwiązania. To rozwiązanie obejmuje zestaw technologii platformy Azure, które zabezpieczają i równoważą ruch.

Architektura

Diagram przedstawiający wielodostępną architekturę SaaS skonfigurowaną na platformie Azure w dwóch różnych regionach.

Pobierz plik programu Visio z tą architekturą.

Przepływ pracy

Pakiet technologii platformy Azure bezpieczny i równoważy obciążenie ruchem.

  1. Usługa Microsoft Azure Front Door obsługuje kilka początkowych zadań:

    • Przetwarzanie początkowego żądania

    • Równoważenie obciążenia między regionami

    • Kończenie i odciążanie protokołu SSL(HTTPS)

    • Przełączanie w tryb failover w przypadku awarii regionalnej

  2. Usługa Azure DNS zarządza rekordami DNS i zapewnia routing do poprawnego punktu końcowego usługi Azure Front Door.

  3. Architektura używa identyfikatora Entra firmy Microsoft jako dostawcy tożsamości do uwierzytelniania.

  4. Po przekierowaniu do odpowiedniego regionu usługa Application Gateway kieruje żądania do odpowiedniej usługi aplikacja systemu Azure Service.

  5. W przypadku tej architektury użycie usługi App Service jest preferowaną usługą dla:

    • Dowolna aplikacja oparta na protokole HTTP.

    • Obsługa zawartości internetowej.

    • Uwidacznianie interfejsów API RESTful.

    • Implementowanie logiki biznesowej za aplikacją frontonu.

    Usługę App Service można skonfigurować do automatycznego skalowania w górę i w poziomie. Dzięki temu usługa App Service jest odpowiednia do skalowania wielu żądań opartych na protokole HTTP dzierżawy na żądanie.

  6. Usługi warstwy dostępu do danych są również skalowane niezależnie na podstawie obciążenia. Usługi danych zarządzają modelami danych, klientami połączeń i sterownikami. Usługi zapewniają również spójny interfejs danych dla wszystkich usług wyższego poziomu, które chcą korzystać z danych w aplikacji. Te usługi danych można wdrażać i skalować przy użyciu usługi Azure Kubernetes Service (AKS). Każdy klaster usługi AKS jest odpowiedzialny za zestaw powiązanych funkcji w warstwie. Usługa AKS może zaimplementować architekturę mikrousług, która zawiera szereg kontenerów, które każdy hermetyzuje określone funkcje w klastrze. Pozwala to na wysoki stopień abstrakcji i desprzężenia w kodzie. Umożliwia również klastrom skalowanie w poziomie indywidualnie w celu uwzględnienia zwiększonego obciążenia z wielu dzierżaw. Każdy klaster może skalować swoje zasoby w górę, jeśli obciążenie zwiększa się w klastrze. Skalowanie w górę nie ma wpływu na inne klastry w grupie zasobów, o ile nie występują one w tym samym wzroście.

  7. Przechowywanie danych relacyjnych i zarządzanie nimi poza strukturą aplikacji. Zapewnia to pojedynczy punkt wprowadzania danych dla dowolnego regionu. Replikacja, dostępność, skalowalność i zabezpieczenia można osiągnąć, wykorzystując siłę elastycznych pul Usługi Azure SQL. Aprowizuj każdą dzierżawę bazę danych w puli. Przydziel zasoby dostępne w puli do baz danych na żądanie w miarę ładowania i żądań. Pozwala to zoptymalizować zasoby bazy danych dostępne dla dzierżaw w stosunku do budżetu.

Składniki

Podstawowe składniki to sugerowane składniki architektury w tym rozwiązaniu. Jeśli którykolwiek z podstawowych składników nie pasuje do architektury, zobacz listę składników alternatywnych.

Podstawowe składniki

  • Azure Front Door: regionalny moduł równoważenia obciążenia, który kieruje ruch klientów do właściwego regionu. Może przejść w tryb failover do drugiego regionu, jeśli wystąpi awaria regionalna, i może zabezpieczyć punkt wejścia dostępny z Internetu za pośrednictwem usługi Azure Web Application Firewall.

  • Microsoft Entra ID: działa jako dostawca tożsamości dla całej aplikacji, wymuszając uwierzytelnianie i kompleksową autoryzację żądania w aplikacji.

  • Azure DNS: usługa hostingu na platformie Azure na potrzeby rozpoznawania nazw domen. W rozwiązaniu wielodostępnym wielu klientów uzyskuje dostęp do rozwiązania za pośrednictwem własnych domen. Użyj usługi Azure DNS, aby skonfigurować i rozwiązać żądania klientów do odpowiedniego stosu aplikacji.

  • Application Gateway: trasy i równoważenie obciążenia ruchu wewnętrznie w aplikacji do różnych usług, które spełniają potrzeby biznesowe klienta. Usługa Azure Front Door równoważy obciążenie między regionami wysokiego poziomu, ale usługa Application Gateway ma świadomość obciążenia poszczególnych usług w grupie. Usługi Azure Front Door i Application Gateway łączą się w celu zapewnienia złożonego równoważenia obciążenia na wszystkich poziomach w rozwiązaniu wielodostępnym. Aby uzyskać więcej informacji na temat opcji równoważenia obciążenia na platformie Azure, zapoznaj się z tym omówieniem równoważenia obciążenia platformy Azure.

  • App Service: usługa premier platformy Azure dla aplikacji internetowych i internetowych interfejsów API. Zabezpieczenia integrują się z usługami, takimi jak Microsoft Entra ID i Azure Key Vault. Możesz skonfigurować automatyczne skalowanie. Ponadto ilość zasobów dostępnych do skalowania jest elastyczna między różnymi planami usługi App Service, na których można uruchomić aplikację. Usługa App Service może również korzystać ze zintegrowanych funkcji DevOps w celu ciągłej integracji i ciągłego wdrażania w wielu środowiskach. Te i inne funkcje pomocnicze platformy Azure umożliwiają deweloperom skoncentrowanie się na tworzeniu aplikacji.

  • Azure Kubernetes Service (AKS): orkiestruje wystąpienia obrazów kontenerów wdrożonych w klastrze. Zarządzanie danymi wielu klientów często wiąże się z zaimplementowaniem zestawu składników do zarządzania:

    • Modelowanie danych

    • Łączność źródeł danych

    • Wyodrębnianie, przekształcanie, ładowanie (ETL)

    • Działania importowania/eksportowania

    Opracowywanie tych wielu mniejszych składników jako mikrousług opartych na kontenerach tworzy idealny scenariusz wdrożenia w klastrze usługi AKS. Narzędzia do skalowania automatycznego, równoważenia obciążenia i możliwości uaktualniania są wbudowane w platformę. Usługa AKS dobrze integruje się ze strategią ciągłej integracji/ciągłego dostarczania (CI/CD) przy użyciu dostępnych funkcji metodyki DevOps i usługi Azure Container Registry.

  • Elastyczne pule usługi Azure SQL: udostępnia rozwiązanie do elastycznego zarządzania zestawem baz danych przy użyciu puli zasobów. Usługa przydziela zasoby na żądanie do baz danych. Zapewnia deweloperowi wielodostępnej architektury SaaS możliwość dostarczania zasobów bazy danych klientom w miarę ich potrzeb. Usługa zmniejsza również budżet i koszty utrzymania wielu serwerów SQL z dużymi fragmentami nieużywanych zasobów obliczeniowych.

  • Azure Cognitive Search (wcześniej znana jako Azure Search): usługa, która dodaje zaawansowany aparat indeksowania i zapytań do aplikacji. Zapewnia klientom dostęp do silnych funkcji zapytań. Mogą również korzystać z możliwości sztucznej inteligencji platformy Azure, aby wzbogacić i zwiększyć funkcjonalność zapytań. Usługa Azure Cognitive Search może uwzględniać wielodostępność przy użyciu strategii indeksu na dzierżawę lub usługi na dzierżawę.

  • Azure Cache for Redis: stosuje warstwę buforowania jako usługę do rozwiązania, zapewniając pamięć podręczną zarządzaną w pamięci w celu zmniejszenia opóźnień i zwiększenia wydajności dla klientów. Wysoka przepływność umożliwia obsługę wielu dzierżaw dostępu do systemu przez dużą liczbę żądań. Możesz elastycznie skalować usługę w górę w miarę zwiększania obciążenia aplikacji. Obsługuje również szyfrowanie magazynowane w celu ochrony i izolowania buforowanych danych dzierżawy.

Składniki alternatywne

  • Zestawy skalowania maszyn wirtualnych platformy Azure: umożliwia wdrażanie usług w środowisku maszyny wirtualnej, które skaluje i zwiększa się automatycznie w razie potrzeby. Zestawy skalowania maszyn wirtualnych dobrze integrują się z modułem równoważenia obciążenia lub usługą Application Gateway w celu automatycznego ponownego równoważenia obciążenia w miarę zwiększania się zestawu skalowania. Zestawy skalowania maszyn wirtualnych zapewniają skalowalność, która wymaga tego rozwiązania. W wielu przypadkach nie jest konieczne zarządzanie pełnym środowiskiem maszyny wirtualnej i możemy odroczyć ten poziom stosu do usługi App Service lub usługi AKS.

  • Azure SQL Database: zaimplementuj jako pojedyncze wystąpienia dedykowane jako zamiennik pul elastycznych. Korzystanie z usługi Azure SQL Database zwiększa obciążenie związane z zarządzaniem wystąpieniem bezpośrednio i wiąże się z większym kosztem przydzielonych zasobów. Oznacza to, że jest to akceptowalna alternatywa, gdy dzierżawa wymaga dedykowanego serwera. W szczególności klient może wymagać większej kontroli nad wystąpieniem i dedykowanymi dostępnymi zasobami. Dzierżawy, które wymagają dedykowanego programu SQL Server, mogą istnieć obok dzierżaw w konfiguracji elastycznej puli. Warstwę baz danych SQL można ustawić jako jedną z opcji cen dostępnych dla dzierżaw podczas zakupu licencji dla modelu SaaS.

  • PROGRAM SQL Server na maszynach wirtualnych: inna opcja wdrażania baz danych SQL. Dzierżawa może mieć wstępnie istniejącą infrastrukturę IT i istniejące serwery SQL Server w środowisku lokalnym. W takim przypadku dzierżawa może chcieć użyć swoich bieżących licencji jako pełnej migracji lub w scenariuszu hybrydowym. Oddzielony charakter modelu SaaS umożliwia warstwie danych aplikacji kierowanie dowolnej bazy danych SQL Database za pośrednictwem konfiguracji.

Szczegóły scenariusza

Po zidentyfikowaniu części rozwiązania programowego twojej firmy, którą można odezwynić i wprowadzać na rynek w innych firmach, dodaje cały nowy strumień przychodów dla firmy. Jednak skonfigurowanie rozwiązania pod kątem obciążenia, które przynosi mnóstwo dzierżaw, jest często trudną przeszkodą do rozwiązania.

Platforma Azure oferuje szereg usług do zarządzania rozwiązaniem programowym, które:

  • Elastycznie utrzymuje bazy danych dla wszystkich klientów.

  • Skaluje warstwę biznesową i logikę rozwiązania, aby zapobiec wąskim gardłom w warstwie obliczeniowej.

  • Integruje dostępność i regionalny tryb failover.

  • Zapewnia kompleksowe zabezpieczenia na wszystkich poziomach rozwiązania.

Potencjalne przypadki użycia

Te przypadki użycia mają wzorce projektowe, które mogą korzystać z wielodostępnego rozwiązania SaaS hostowanego na platformie Azure:

  • Opracowywanie rozwiązania do zarządzania relacjami z klientami (CRM), które klienci mogą sprzedawać klientom i sprzedawać.

  • Zaimplementuj system zarządzania zawartością (CMS) i dostarczaj go wielu użytkownikom przy użyciu tej architektury.

Kwestie wymagające rozważenia

Te zagadnienia implementują filary struktury Azure Well-Architected Framework, która jest zestawem wytycznych, które mogą służyć do poprawy jakości obciążenia. Aby uzyskać więcej informacji, zobacz Microsoft Azure Well-Architected Framework.

Wielodostępność

Rozwiązanie wielodostępne to kluczowa kwestia w tym rozwiązaniu. Rozwiązanie obsługuje jednocześnie wielu klientów. Przydziela również wystarczającą ilość zasobów do efektywnego przetwarzania wszystkich żądań klientów. Podczas przetwarzania żądań rozwiązanie zabezpiecza ruch z globalnych punktów końcowych i izoluje dane klientów, aby zapobiec naruszeniom i zanieczyszczeniu krzyżowemu. Wdróż klientów w pary regionalnych grup zasobów w oparciu o ich lokalizację podstawową. W ten sposób optymalizuje dostępność regionalną.

Można wdrożyć wielu klientów w jednej grupie obliczeniowej, ponieważ system izoluje żądania na podstawie uwierzytelniania i kluczy klienta, co odróżnia żądania na podstawie tych unikatowych identyfikatorów. System może szyfrować wszystkie żądania klientów oddzielnie przy użyciu kluczy, aby żaden klient nie mógł odszyfrować żadnych innych danych klienta. Zarządzanie wieloma klientami na jednym stosie obliczeniowym umożliwia optymalizowanie alokacji zasobów w celu zapewnienia klientom odpowiedzi, których potrzebują kosztem.

Bazy danych klienta można zarządzać w podobny sposób poza stosem obliczeniowym, ponieważ żądanie klienta może pochodzić z jednego z regionalnych stosów. Wiele baz danych klienta może istnieć w tej samej elastycznej puli, izolowanej i zabezpieczonej za pomocą funkcji Transparent Data Encryption (TDE). Każdą bazę danych można skonfigurować tak, aby szyfrować dane przy użyciu klucza zarządzanego przez klienta i odszyfrowywać dane just in time (JIT). Odszyfrowywanie trybu JIT chroni dane klienta zarówno przed deweloperem, jak i innymi klientami. System wykorzystuje pulę elastyczną do udostępniania zasobów na żądanie klientom przypisanym do niego przy zachowaniu niskich kosztów. Zasady replikacji można przypisać do każdej elastycznej puli, aby zapewnić tworzenie kopii zapasowych i przechodzenie w tryb failover dla danych klienta. Umożliwianie większej liczby elastycznych pul w trybie online podczas dołączania większej liczby klientów do systemu.

Aby uzyskać więcej informacji na temat rozwiązań wielodostępnych, zobacz Tworzenie architektury wielodostępnych rozwiązań na platformie Azure.

Niezawodność

Niezawodność zapewnia, że aplikacja może spełnić zobowiązania podjęte przez klientów. Aby uzyskać więcej informacji, zobacz Omówienie filaru niezawodności.

Skalowalność i dostępność

To rozwiązanie jest przeznaczone do obsługi dużej liczby dzierżaw przy użyciu modelu SaaS. Korzysta ona z dużej liczby skalowalnych składników i usług w celu zwiększania się na podstawie obciążenia. Ta architektura nie jest przeznaczona dla rozwiązań obsługujących kilka dzierżaw ani małego obciążenia żądań i danych. Może to podkreślić budżet rozwiązania przeznaczonego dla pojedynczego klienta lub mniejszego obciążenia. Nie trzeba również pracować nad wieloma regionami, w których wysoka dostępność globalna nie jest wymagana, ponieważ zwiększa niepotrzebną złożoność i koszty.

Zabezpieczenia

Zabezpieczenia zapewniają ochronę przed celowymi atakami i nadużyciami cennych danych i systemów. Aby uzyskać więcej informacji, zobacz Omówienie filaru zabezpieczeń.

System rozwiązuje zabezpieczenia od końca do końca na każdym poziomie aplikacji:

  • Usługa Azure Front Door zapewnia wbudowaną obsługę protokołu HTTPS dla swoich domen. Oznacza to, że system może szyfrować cały ruch do aplikacji SaaS. Usługa Azure Front Door implementuje również zaporę aplikacji internetowej platformy Azure, chroniąc stos SaaS przed atakami na brzegu, zanim system kieruje żądania do aplikacji.

  • Każdy stos aplikacji w każdym regionie znajduje się w sieci wirtualnej platformy Azure. System ogranicza ruch do sieci wirtualnej akceptującej żądania z usługi Azure Front Door, chroniąc wszystkie usługi aplikacji przed ruchem zewnętrznym. Po przejściu do bezpiecznej zapory usługa Application Gateway może przerwać protokół SSL i zapewnić wydajne równoważenie obciążenia i routing w aplikacji.

  • Za pomocą usługi Azure Key Vault można bezpiecznie zarządzać wszystkimi poświadczeniami, wpisami tajnymi i parametry połączenia. Zarządzając tymi poufnymi danymi jako wpisami tajnymi, deweloperzy mogą wprowadzać poświadczenia do aplikacji w czasie wdrażania. Dzięki temu kod nie jest zanieczyszczony poufnymi informacjami. Używanie wpisów tajnych chroni dane klienta przez zapewnienie, że naruszenie kodu lub ataku typu man-in-the-middle nie uzyska dostępu do baz danych dzierżawy.

  • W tym scenariuszu dane wielu dzierżaw mogą istnieć obok siebie na tym samym serwerze bazy danych, jeśli nie jest to ta sama baza danych. Używanie funkcji odszyfrowywania TDE i JIT chroni dane w bazie danych. System szyfruje wszystkie dane w bazie danych magazynowanych i odszyfrowuje je tylko po żądaniu przez dzierżawę. Klienci mogą udostępniać własne klucze i przechowywać wszystkie klucze klienta w usłudze Azure Key Vault, aby zarządzać szyfrowaniem dla wielu dzierżaw. Chroni ona dane klienta na końcu, uniemożliwia deweloperowi dostęp do danych klienta, izoluje dane między dzierżawami i pomaga spełnić wymagania dotyczące zgodności z zabezpieczeniami i danymi.

Optymalizacja kosztów

Optymalizacja kosztów dotyczy sposobów zmniejszenia niepotrzebnych wydatków i poprawy wydajności operacyjnej. Aby uzyskać więcej informacji, zobacz Omówienie filaru optymalizacji kosztów.

usługa aplikacja systemu Azure udostępnia wiele warstw cenowych na podstawie oczekiwanych wymaganych zasobów obliczeniowych. W przypadku wielodostępnych rozwiązań SaaS funkcje wysokiej dostępności i skalowania w poziomie są kluczowymi składnikami wybierania planu usługi. Jeśli oczekujesz hostowania wielu dzierżaw, wybranie warstwy Premium lub izolowanej może być konieczne, aby zapewnić zasoby obliczeniowe niezbędne do uwzględnienia dużego ruchu. Warstwy standardowe, Premium i izolowane to wszystkie dedykowane wystąpienia maszyn wirtualnych. Możesz obliczyć koszt na jednostkę czasu, określając liczbę maszyn wirtualnych określonej warstwy. Aby uzyskać więcej informacji, zapoznaj się z omówieniem planów cenowych usługi App Service.

Usługa Azure Kubernetes Service oferuje ekonomiczną usługę kontenerów. Opłaty za węzły usługi AKS występują tylko w przypadku użycia, więc opłaty są naliczane tylko za:

  • Maszyny wirtualne

  • Zużyte zasoby magazynu i sieci

  • Skalowanie kosztów bezpośrednio związanych z użyciem

Korzystanie z usługi AKS jako usługi warstwy danych jest idealne, jeśli chcesz obniżyć koszty. Aby uzyskać oszacowanie dotyczące ustalania cen warstwy wystąpień usługi AKS, odwiedź kalkulator usługi Kubernetes.

Zgodnie z projektem cennik elastycznej puli Azure SQL jest wysoce ekonomiczny w scenariuszu wielodostępnym. Bazy danych dzierżaw w elastycznej puli będą współdzielić dostępne zasoby. Wraz ze zmianą zapotrzebowania między dzierżawami w miarę upływu czasu zasoby również się zmieniają. Elastyczna pula Azure SQL zapewnia maksymalne dostępne zasoby dla baz danych wymagających bez konieczności narzutowania zasobów we wszystkich bazach danych. Usługa utrzymuje niskie koszty dla deweloperów rozwiązań SaaS i dzierżaw. Skorzystaj z kalkulatora cen usługi Azure SQL Database, aby ustalić cenę warstwy i ilości zasobów potrzebnych do obsługi dzierżaw i ich danych.

  • Użycie modelu cen rdzeni wirtualnych (rdzeni wirtualnych) zapewnia większą elastyczność skalowania w celu spełnienia wymaganych zasobów. Ponadto możesz skorzystać z Korzyść użycia hybrydowego platformy Azure. Istniejące licencje programu SQL Server zapewniają rabat na zasoby SQL rdzeni wirtualnych w chmurze. W związku z tym w wystąpieniu, gdy serwery lokalne są już częścią infrastruktury deweloperów, można zarządzać kosztami jeszcze bardziej, korzystając z tych rabatów. Potencjalne oszczędności można oszacować przy użyciu kalkulatora oszczędności Korzyść użycia hybrydowego platformy Azure.

  • Możesz również obniżyć koszty zasobów programu SQL Server, kupując pojemność zarezerwowaną usługi Azure SQL Database. Zakup pojemności zarezerwowanej oznacza zobowiązanie długoterminowego użycia usługi SQL Database. Termin ten wynosi zwykle od jednego do trzech lat. W zamian otrzymujesz rabaty na koszty obliczeń zasobów w rezerwacji. Można na przykład zarezerwować 32 rdzenie wirtualne ogólnego przeznaczenia przez rok, co zmniejsza koszt tych 32 rdzeni wirtualnych w tym roku. Posiadanie wielu dzierżawców zakupu licencji dla modelu SaaS jest silnym wskaźnikiem, że wykorzystanie pojemności zarezerwowanej pasuje do rozwiązania, a idealne oszczędności kosztów w tym obciążeniu.

Strukturę cenową usługi Azure Cache for Redis można znaleźć na stronie cennika usługi Azure Cache for Redis. Dostosuj warstwę pamięci podręcznej w dowolnym momencie między warstwą Podstawowa, Standardowa i Premium w zależności od potrzeb. Zobaczysz wyższe ceny dla większych limitów pamięci podręcznej i dodatkowych funkcji, takich jak replikacja i odzyskiwanie po awarii. Usługa Azure Cache for Redis oferuje również cennik pojemności zarezerwowanej dla długoterminowych zobowiązań dotyczących użycia.

Cennik usługi Azure Front Door zależy od ilości transferu danych do i z usługi. W przypadku danych wychodzących ceny różnią się w zależności od stref. Różne regiony będą ponosić różne koszty. Jeśli napotkasz różnicę cen, szacuj koszt oddzielnie. Cena obejmuje pewną pojemność routingu i domeny, ale system generuje koszty po przekroczeniu początkowych limitów. Zapora aplikacji internetowej platformy Azure generuje niewielką dodatkową opłatę za zastosowane zasady lub regułę. Szczegóły cennika usługi Azure Front Door można znaleźć na stronie cennika usługi Azure Front Door.

Ceny usługi Azure Cognitive Search to w pełni warstwowy system. Warstwa Bezpłatna jest dostępna do programowania i testowania. Następnie każda warstwa wiąże się z kosztem za godzinę dla każdego przydzielonego wystąpienia usługi Cognitive Search. W miarę zwiększania się warstw łączna liczba magazynów, liczba indeksów i limity skalowania w poziomie również rosną. Usługa Azure Cognitive Search udostępnia wyodrębnianie obrazów jako usługę w tej samej stawce dla wszystkich warstw płatnych.

Następne kroki