Zagadnienia dotyczące korzystania z usługi Container Apps w rozwiązaniu wielodostępnym

Za pomocą usługi Azure Container Apps można uruchamiać mikrousługi i konteneryzowane aplikacje na platformie bezserwerowej. W tym artykule opisano niektóre funkcje usługi Container Apps, które są przydatne w przypadku rozwiązań wielodostępnych. Zawiera również linki do wskazówek, 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 wielodostępności:

  • Zaufane wielodostępności można zaimplementować przy użyciu środowiska udostępnionego. Na przykład ten model może być odpowiedni, gdy wszystkie dzierżawy pochodzą z organizacji.
  • Można zaimplementować wrogą wielodostępność , wdrażając oddzielne środowiska dla każdej dzierżawy. 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.

Zagadnienie Jedno środowisko na dzierżawę Aplikacje kontenerów specyficzne dla dzierżawy Aplikacje kontenera udostępnionego
Izolacja danych Wysoka Niska Niska
Izolacja wydajności Wysoka Średnia. Brak izolacji sieciowej. Niska
Złożoność wdrożenia Średnie Niski do średni Niska
Złożoność operacyjna Średnie Niska Niska
Koszt zasobu Wysoka Niska Niska
Przykładowy scenariusz Uruchamianie wrogich obciążeń wielodostępnych w izolowanych środowiskach pod kątem zabezpieczeń i zgodności Optymalizowanie kosztów, zasobów sieciowych i operacji dla zaufanych aplikacji wielodostępnych Implementowanie rozwiązania wielodostępnego na poziomie logiki biznesowej

Aplikacje kontenera udostępnionego

Warto rozważyć wdrożenie udostępnionych aplikacji kontenera w jednym środowisku usługi Container Apps, które jest używane dla wszystkich dzierżaw.

Diagram that shows a shared Container Apps isolation model. All tenants share a single Container App environment and container apps.

Takie podejście jest zazwyczaj 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ć obsługujący wiele dzierżaw. Ten model izolacji nie gwarantuje izolacji na poziomie sieci, obliczeń, monitorowania ani danych. Kod aplikacji musi obsługiwać izolację dzierżawy. Ten model nie jest odpowiedni dla wrogich obciążeń wielodostępności, w których nie ufasz kodowi, który jest uruchomiony.

Ponadto ten model może podlegać hałaśliwym problemom sąsiada: obciążenie jednej dzierżawy może mieć wpływ na wydajność obciążenia innej dzierżawy. Jeśli musisz zapewnić dedykowaną przepływność, aby rozwiązać ten problem, model udostępnionych aplikacji kontenera może nie być odpowiedni.

Uwaga

Wzorzec sygnatur wdrażania jest przydatny, gdy dzierżawcy korzystają z różnych modeli kosztów. Na przykład dzierżawy mogą być przypisywane do udostępnionych lub dedykowanych środowisk usługi Container Apps w zależności od ich warstwy cenowej. Ta strategia wdrażania pozwala przekroczyć limity usługi Container Apps dla pojedynczej subskrypcji na region i skalować liniowo w miarę wzrostu liczby dzierżaw.

Aplikacje kontenerów specyficzne dla dzierżawy

Inną metodą, którą można rozważyć, jest izolowanie dzierżaw przez wdrożenie aplikacji kontenerów specyficznych dla dzierżawy w środowisku udostępnionym.

Diagram that shows a Container Apps isolation model in which tenant-specific container apps are deployed within a shared Container Apps environment.

Ten model izolacji zapewnia logiczną izolację między poszczególnymi dzierżawami. Zapewnia następujące korzyści:

  • Opłacalność. Udostępnianie środowiska usługi Container Apps, sieci wirtualnej i innych dołączonych zasobów, takich jak obszar roboczy usługi Log Analytics, zwykle pozwala zmniejszyć całkowity koszt i złożoność zarządzania na dzierżawę.
  • Rozdzielenie uaktualnień i wdrożeń. Pliki binarne aplikacji każdej dzierżawy można wdrażać i uaktualniać niezależnie od innych aplikacji kontenerów 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ślona dzierżawa wymaga większej ilości zasobów, możesz przydzielić więcej procesora CPU i pamięci do określonej aplikacji kontenera tej dzierżawy. Należy pamiętać, że istnieją limity całkowitej alokacji procesora CPU i pamięci w aplikacjach kontenerów.

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 będą źle używać udostępnionych zasobów.

Istnieją również limity liczby aplikacji kontenerów, które można wdrożyć w jednym środowisku. Przed wdrożeniem tego modelu izolacji należy wziąć pod uwagę oczekiwany wzrost liczby dzierżaw.

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 w wielu dzierżawach upewnij się, że odpowiednio określisz zakres składników języka Dapr do odpowiedniej aplikacji kontenera specyficznej dla dzierżawy, aby zagwarantować izolację i uniknąć ryzyka wycieku danych.

Uwaga

Nie używaj poprawek do tworzenia różnych wersji aplikacji dla różnych dzierżaw. Poprawki nie zapewniają izolacji zasobów. Są one przeznaczone dla scenariuszy wdrażania, w których trzeba mieć wiele wersji aplikacji uruchomionych w ramach procesu wdrażania aktualizacji, podobnie jak w przypadku wdrożeń niebieskich/zielonych i testowania A/B.

Jedno środowisko na dzierżawę

Możesz rozważyć wdrożenie jednego środowiska usługi Container Apps dla każdej dzierżawy. Środowisko usługi Container Apps to granica izolacji wokół grupy aplikacji kontenera. Środowisko zapewnia izolację obliczeniową i sieciową na płaszczyźnie danych. Każde środowisko jest wdrażane we własnej sieci wirtualnej, która jest współużytkowana przez wszystkie aplikacje w środowisku. Każde środowisko ma własną konfigurację języka Dapr i monitorowania.

Diagram that shows a Container Apps isolation model in which each tenant gets its own Container App environment.

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. W przypadku korzystania z tego modelu aplikacje nie muszą być uwzględniane w wielu dzierżawach. 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óre dzierżawy mogą wymagać większej ilości zasobów procesora CPU i pamięci niż inne, dzięki czemu można zapewnić więcej zasobów aplikacjom tych dzierżaw, jednocześnie korzystając z izolacji zapewnianej przez środowiska specyficzne dla dzierżawy.

Istnieją jednak niskie limity liczby środowisk, które można wdrożyć w ramach subskrypcji na region. W niektórych sytuacjach można zwiększyć te limity przydziału, tworząc bilet pomoc techniczna platformy Azure.

Pamiętaj, aby znać oczekiwany wzrost liczby dzierżaw przed wdrożeniem tego modelu izolacji. Należy pamiętać, że takie podejście często wiąże się z wyższym całkowitym kosztem posiadania oraz wyższym poziomem złożoności wdrażania i operacyjnej ze względu na dodatkowe zasoby potrzebne do wdrożenia i zarządzania nimi.

Funkcje usługi Container Apps, które obsługują wielodostępność

Niestandardowe nazwy domen

Usługa Container Apps umożliwia używanie wieloznacznych nazw DNS i dodawanie własnych certyfikatów TLS z symbolami wieloznacznymi. W przypadku korzystania z poddomen specyficznych dla dzierżawy wieloznaczne certyfikaty DNS 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. Ruch przychodzący musi być również włączony 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 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ć je 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żytkownika. Dzięki temu, niezależnie od dzierżawy firmy Microsoft Entra użytkownika, tokeny są weryfikowane i akceptowane.

Możesz również zintegrować usługę Container Apps z usługą Azure Active Directory B2C na potrzeby uwierzytelniania użytkowników za pośrednictwem dostawców tożsamości partnera.

Aby uzyskać więcej informacji zobacz te zasoby:

Uwaga

Funkcje uwierzytelniania i autoryzacji w usłudze Container Apps są podobne do tych w usłudze aplikacja systemu Azure Service. Istnieją jednak pewne różnice. Aby uzyskać więcej informacji, zobacz Zagadnienia dotyczące korzystania z uwierzytelniania wbudowanego.

Tożsamości zarządzane

Tożsamości zarządzane z identyfikatora Entra firmy Microsoft umożliwiają aplikacji kontenera uzyskiwanie dostępu do innych zasobów uwierzytelnionych przez identyfikator Firmy Microsoft Entra. 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.

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 aplikacje kontenera wszystkim dzierżawcom i wdrażasz bazy danych specyficzne dla dzierżawy. Należy upewnić się, że aplikacja jednej dzierżawy nie może uzyskać dostępu do bazy danych innej dzierżawy.

Aby uzyskać więcej informacji, zobacz Tożsamości zarządzane w usłudze Azure Container Apps.

Współautorzy

Ten artykuł jest obsługiwany przez firmę Microsoft. Pierwotnie został napisany przez następujących współautorów.

Autorzy zabezpieczeń:

  • Daniel Larsen | Główny inżynier klienta, fasttrack dla platformy Azure
  • Will Velida | Inżynier klienta 2, fasttrack dla platformy Azure

Inni współautorzy:

  • John Downs | Główny inżynier klienta, fasttrack dla platformy Azure
  • Chad Kittel | Główny inżynier oprogramowania, Microsoft
  • 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, usługa Azure Container Apps
  • Paolo Salvatori | Główny inżynier klienta, fasttrack dla platformy Azure
  • Arsen Vladimirskiy | Główny inżynier klienta, fasttrack dla platformy Azure

Aby wyświetlić niepubalne profile serwisu LinkedIn, zaloguj się do serwisu LinkedIn.

Następne kroki