Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Za pomocą usługi Azure Container Apps można uruchamiać mikrousługi i konteneryzowane aplikacje na platformie bezserwerowej. W tym artykule opisano kilka funkcji usługi Container Apps, które są przydatne w przypadku rozwiązań wielodostępnych. Udostępnia również zasoby, które mogą pomóc w fazie planowania.
Modele izolacji
Podczas pracy z wielodostępnym systemem korzystającym z usługi Container Apps należy określić wymagany poziom izolacji. Usługa Container Apps obsługuje różne modele wielodzierżawności:
Można zaimplementować zaufaną wielodostępność przy użyciu współdzielonego środowiska. Na przykład ten model może być odpowiedni, gdy wszyscy najemcy pochodzą z organizacji.
Można zaimplementować wrogą multi-tenantowość, wdrażając oddzielne środowiska dla każdego najemcy. Na przykład ten model może być odpowiedni, gdy nie ufasz kodowi uruchamianemu przez dzierżawców.
W poniższej tabeli przedstawiono podsumowanie różnic między głównymi modelami izolacji dzierżawy dla usługi Container Apps. Modele zostały opisane w dalszej części tego artykułu.
| Kwestie wymagające rozważenia | Jedno środowisko dla każdego najemcy | Aplikacje kontenerowe specyficzne dla tenantów | Aplikacje kontenera udostępnionego |
|---|---|---|---|
| Izolacja danych | Wysoki | Niski | Niski |
| Izolacja wydajności | Wysoki | Średnia, bez izolacji sieciowej | Niski |
| Złożoność wdrożenia | Średni | Niski do średni | Niski |
| Złożoność operacyjna | Średni | Niski | Niski |
| Koszt zasobu | Wysoki | Niski | Niski |
| Przykładowy scenariusz | Uruchamia nieprzyjazne obciążenia wielodostępne w izolowanych środowiskach dla bezpieczeństwa i zgodności. | Optymalizuje koszty, zasoby sieciowe i operacje dla zaufanych aplikacji wielodostępnych. | Implementuje wielodostępne rozwiązanie na poziomie logiki biznesowej. |
Aplikacje kontenera udostępnionego
Rozważ wdrożenie udostępnionych aplikacji kontenera w jednym środowisku usługi Container Apps używanym przez wszystkich dzierżawców.
Takie podejście jest zwykle opłacalne i wymaga najmniejszego nakładu pracy operacyjnej, ponieważ istnieje mniej zasobów do zarządzania.
Jeśli jednak chcesz użyć tego modelu izolacji, kod aplikacji musi być świadomy wielości najemców. Ten model izolacji nie gwarantuje izolacji na poziomie sieci, obliczeń, monitorowania ani danych. Kod aplikacji musi obsługiwać izolację najemcy. Ten model nie jest odpowiedni dla wrogich obciążeń w środowisku wielodostępnym, w których nie ufasz kodowi, który jest wykonywany.
Ten model może podlegać problemom zakłócających sąsiadów, co oznacza, że obciążenie jednego najemcy może mieć wpływ na wydajność obciążenia innego najemcy. Jeśli musisz zapewnić dedykowane zasoby przepustowości, aby rozwiązać ten problem, model współdzielonych aplikacji kontenerowych może nie być odpowiedni.
Notatka
Wzorzec sygnatur wdrażania jest przydatny, gdy dzierżawy znajdują się w różnych modelach cenowych. Na przykład najemcy mogą być przypisywani do współdzielonych lub dedykowanych środowisk usługi Container Apps w zależności od ich poziomu cenowego. Ta strategia wdrażania umożliwia przekroczenie limitu usługi Container Apps dla pojedynczej subskrypcji dla każdego regionu i skalowanie liniowe w miarę wzrostu liczby dzierżaw.
Aplikacje kontenerowe specyficzne dla tenantów
Inną metodą, którą można rozważyć, jest izolowanie dzierżawców poprzez wdrożenie aplikacji kontenerowych przeznaczonych dla poszczególnych dzierżawców w środowisku udostępnionym.
Ten model izolacji zapewnia logiczne rozdzielenie między najemcami, jednocześnie oferując kilka korzyści:
Efektywność kosztowa: Udostępniając środowisko usługi Container Apps, sieć wirtualną i inne dołączone zasoby, takie jak obszar roboczy usługi Log Analytics, można ogólnie zmniejszyć ogólny koszt i złożoność zarządzania dla każdej dzierżawy.
Separacja uaktualnień i wdrożeń: Pliki binarne aplikacji każdej dzierżawy można wdrażać i uaktualniać niezależnie od plików binarnych innych aplikacji kontenerowych w tym samym środowisku. Takie podejście może być przydatne, jeśli trzeba uaktualnić różne dzierżawy do określonych wersji kodu w różnym czasie.
Izolacja zasobów: Każda aplikacja kontenera w danym środowisku jest przydzielana do własnych zasobów procesora CPU i pamięci. Jeśli określony klient wymaga większej ilości zasobów, możesz przydzielić więcej CPU i pamięci do tej konkretnej kontenerowej aplikacji klienta. Należy pamiętać, że istnieją limity całkowitej alokacji procesora CPU i pamięci w aplikacjach kontenera.
Jednak takie podejście nie zapewnia izolacji sprzętowej ani sieciowej między dzierżawami. Wszystkie aplikacje kontenerów w jednym środowisku współdzielą tę samą sieć wirtualną. Musisz mieć pewność, że obciążenia wdrożone w aplikacjach nie nadużywają udostępnionych zasobów.
Usługa Container Apps ma wbudowaną obsługę języka Dapr, która używa modułowego projektu do dostarczania funkcji jako składników . W usłudze Container Apps składniki języka Dapr są zasobami na poziomie środowiska. W przypadku współużytkowania pojedynczego środowiska przez wielu dzierżawców upewnij się, że składniki Dapr są prawidłowo przypisane do odpowiedniej aplikacji kontenerowej dedykowanej dla każdej dzierżawy, aby zagwarantować izolację i zapobiec wyciekom danych.
Notatka
Nie używaj poprawek do tworzenia różnych wersji aplikacji dla różnych użytkowników. Poprawki nie zapewniają izolacji zasobów. Są one przeznaczone dla scenariuszy wdrażania, w których podczas wdrażania aktualizacji musi być uruchamianych wiele wersji aplikacji. Takie podejście obejmuje strategie, takie jak wdrożenia niebiesko-zielone i testowanie A/B.
Jedno środowisko dla każdego najemcy
Rozważ wdrożenie jednego środowiska usługi Container Apps dla każdego najemcy. Środowisko Container Apps to granica izolacyjna dla grupy aplikacji kontenerowych. Środowisko zapewnia izolację obliczeniową i sieciową na płaszczyźnie danych. Każde środowisko jest wdrażane w własnej sieci wirtualnej. Wszystkie aplikacje w środowisku współdzielą tę sieć wirtualną. Każde środowisko ma własną konfigurację języka Dapr i monitorowania.
Takie podejście zapewnia najsilniejszy poziom izolacji danych i wydajności, ponieważ dane i ruch poszczególnych dzierżawców są izolowane do określonego środowiska. Ten model nie wymaga, aby aplikacje były świadome wielodzierżawowości. W przypadku korzystania z tego podejścia masz bardziej szczegółową kontrolę nad sposobem przydzielania zasobów do aplikacji kontenera w środowisku. Alokacje można określić na podstawie wymagań dzierżawy. Na przykład niektórzy najemcy mogą wymagać więcej zasobów CPU i pamięci niż inni. Możesz udostępnić więcej zasobów aplikacjom tych najemców, jednocześnie korzystając z izolacji zapewnianej przez środowiska najemcy.
Istnieją jednak niskie limity liczby środowisk, które można wdrożyć w ramach subskrypcji dla każdego regionu. W niektórych scenariuszach można zwiększyć te limity przydziału, tworząc zgłoszenie do pomocy technicznej platformy Azure.
Przed wdrożeniem tego modelu izolacji upewnij się, że znasz oczekiwany wzrost liczby dzierżaw. Takie podejście często wiąże się z wyższym łącznym kosztem posiadania (TCO) i wyższym poziomem złożoności wdrożenia i złożoności operacyjnej ze względu na dodatkowe zasoby potrzebne do wdrożenia i zarządzania nimi.
Funkcje usługi Container Apps, które obsługują wielotenancyjność
Następujące funkcje usługi Container Apps obsługują wielodostępność.
Niestandardowe nazwy domen
Usługa Container Apps umożliwia korzystanie z wieloznacznych systemu nazw domen (DNS) i dodawanie własnych certyfikatów protokołu Transport Layer Security (TLS). W przypadku korzystania z poddomen specyficznych dla dzierżawy zarówno wieloznaczne certyfikaty DNS, jak i TLS umożliwiają łatwe skalowanie rozwiązania do dużej liczby dzierżaw bez konieczności ręcznego ponownego konfigurowania każdej nowej dzierżawy.
W usłudze Container Apps zarządzasz certyfikatami na poziomie środowiska. Funkcję Ingress należy również włączyć dla aplikacji kontenera, zanim będzie można powiązać z nią domenę niestandardową.
Żądanie uwierzytelniania i autoryzacji
Usługa Container Apps może weryfikować tokeny uwierzytelniania w imieniu Twojej aplikacji. Jeśli żądanie nie zawiera tokenu, token jest nieprawidłowy lub żądanie nie jest autoryzowane, możesz skonfigurować usługę Container Apps, aby zablokować żądanie lub przekierować żądanie do dostawcy tożsamości, aby użytkownik mógł się zalogować.
Jeśli dzierżawcy używają identyfikatora Entra firmy Microsoft jako dostawcy tożsamości, możesz skonfigurować usługę Container Apps, aby używać /common endpoint do sprawdzania poprawności tokenów użytkowników. Takie podejście zapewnia, że tokeny użytkowników są weryfikowane i akceptowane, niezależnie od dzierżawcy Microsoft Entra użytkownika.
Możesz również zintegrować usługę Container Apps z zewnętrznym identyfikatorem firmy Microsoft na potrzeby uwierzytelniania użytkowników za pośrednictwem dostawców tożsamości partnera.
Aby uzyskać więcej informacji, zobacz następujące zasoby:
- Autoryzacja usługi Container Apps
- Włączanie uwierzytelniania i autoryzacji w usłudze Container Apps przy użyciu identyfikatora Entra firmy Microsoft
Notatka
Funkcje uwierzytelniania i autoryzacji w usłudze Container Apps są podobne do funkcji w usłudze Azure App Service. Istnieją jednak pewne różnice. Aby uzyskać więcej informacji, zobacz Zagadnienia dotyczące korzystania z wbudowanego uwierzytelniania.
Tożsamości zarządzane
Zarządzane tożsamości z Microsoft Entra ID umożliwiają aplikacji kontenera dostęp do innych zasobów uwierzytelnionych przez Microsoft Entra ID. W przypadku korzystania z tożsamości zarządzanych aplikacja kontenera nie musi zarządzać poświadczeniami dla komunikacji między usługami. Możesz przyznać określone uprawnienia tożsamości aplikacji kontenera na potrzeby kontroli dostępu opartej na rolach (RBAC) platformy Azure.
W przypadku korzystania z tożsamości zarządzanych należy pamiętać o wybranym modelu izolacji. Załóżmy na przykład, że udostępniasz swoje aplikacje kontenerowe wśród wszystkich dzierżawców i wdrażasz bazy danych przeznaczone dla poszczególnych dzierżaw. Należy upewnić się, że aplikacja jednego klienta nie może uzyskać dostępu do bazy danych innego klienta.
Aby uzyskać więcej informacji, zobacz Tożsamości zarządzane w usłudze Container Apps.
Profile obciążeń w dedykowanych obliczeniach
Usługa Container Apps udostępnia dedykowany plan, który umożliwia zarezerwowanie dedykowanych zasobów dla tenanta. Ten plan jest przydatny do ograniczania zasobów dostępnych dla najemcy, które mogą być dzielone przez wiele aplikacji kontenerowych. Pomaga również spełniać określone wymagania najemców, takie jak wyższe współczynniki pamięci do CPU lub dostępność GPU.
Aby uzyskać więcej informacji, zobacz Profile obciążeń w usłudze Container Apps.
Routing oparty na regułach
Routing oparty na regułach umożliwia kierowanie ruchu przychodzącego do określonych aplikacji kontenera lub poprawek aplikacji kontenera. Żądania można kierować na podstawie ścieżki żądania HTTP i zapisać ją ponownie w adresie URL. Ta funkcja jest przydatna w przypadku systemów wielodostępnych, które muszą mapować żądania do aplikacji kontenerowych specyficznych dla najemcy lub wersji, które używają ścieżki w żądaniu. Ta funkcja jest zwykle używana z modelem izolacji aplikacji kontenerowych dostosowanych do konkretnej dzierżawy.
Aby uzyskać więcej informacji, zobacz Używanie routingu opartego na regułach w usłudze Container Apps.
Współpracownicy
Firma Microsoft utrzymuje ten artykuł. Następujący współautorzy napisali ten artykuł.
Główni autorzy
- Daniel Larsen | Główny inżynier klienta, FastTrack dla Azure
- Will Velida | Inżynier Klienta 2, FastTrack dla platformy Azure
Inni współautorzy:
- John Downs | Główny inżynier oprogramowania, wzorce i praktyki platformy Azure
- Chad Kittel | Główny inżynier oprogramowania, wzorce i praktyki platformy Azure
- Xuhong Liu | Starszy inżynier usług, FastTrack dla platformy Azure
- Aarthi Murugan | Starszy menedżer programu, CS Tech Strategy App Innovation
- Kendall Roden | Starszy menedżer programu, aplikacje kontenerów
- Paolo Salvatori | Główny inżynier klienta, FastTrack dla Platformy Azure
- Daniel Scott-Raynsford | Architekt rozwiązań partnerskich, dane i sztuczna inteligencja
- Arsen Vladimirskiy | Główny inżynier klienta, FastTrack dla Azure
Aby wyświetlić niepubliczne profile serwisu LinkedIn, zaloguj się do serwisu LinkedIn.
Następne kroki
- Omówienie produktu Container Apps
- dokumentacja usługi Container Apps
Powiązane zasoby
- Zasoby dla architektów i deweloperów rozwiązań typu multitenant
- Projektowanie wielodostępnych rozwiązań na platformie Azure
- Lista kontrolna projektowania i budowania rozwiązań wielodostępnościowych na platformie Azure