Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Sie können Azure Container-Apps verwenden, um Microservices und containerisierte Anwendungen auf einer serverlosen Plattform auszuführen. In diesem Artikel werden mehrere Features von Container-Apps beschrieben, die für Multitenant-Lösungen nützlich sind. Außerdem werden Ressourcen bereitgestellt, die Ihnen während der Planungsphase helfen können.
Isolationsmodelle
Wenn Sie mit einem Mehrinstanzensystem arbeiten, das Container-Apps verwendet, müssen Sie die erforderliche Isolationsebene ermitteln. Container Apps unterstützt verschiedene Modelle der Mehrinstanzenfähigkeit:
Sie können vertrauenswürdige Mehrinstanzenfähigkeit mithilfe einer freigegebenen Umgebung implementieren. Dieses Modell kann beispielsweise geeignet sein, wenn Ihre Mandanten alle aus Ihrer Organisation stammen.
Sie können hostile Multitenancy implementieren, indem Sie separate Umgebungen für jeden Mandanten bereitstellen. Dieses Modell kann beispielsweise geeignet sein, wenn Sie dem von Ihren Mandanten ausgeführten Code nicht vertrauen.
In der folgenden Tabelle werden die Unterschiede der wichtigsten Mandantenisolationsmodelle für Container Apps erläutert. Die Modelle werden weiter unten in diesem Artikel beschrieben.
Überlegung | Eine Umgebung für jeden Mandanten | Mandantenspezifische Container-Apps | Freigegebene Container-Apps |
---|---|---|---|
Datenisolation | Hoch | Niedrig | Niedrig |
Leistungsisolation | Hoch | Moderat, keine Netzwerkisolation | Niedrig |
Bereitstellungskomplexität | Mittel | Niedrig bis mittel | Niedrig |
Komplexität des Betriebs | Mittel | Niedrig | Niedrig |
Ressourcenkosten | Hoch | Niedrig | Niedrig |
Beispielszenario | Führt feindliche mehrinstanzenfähige Workloads in isolierten Umgebungen für Sicherheit und Compliance aus. | Optimiert Kosten, Netzwerkressourcen und Vorgänge für vertrauenswürdige Mehrinstanzenanwendungen. | Implementiert eine mehrinstanzenfähige Lösung auf der Ebene der Geschäftslogik. |
Freigegebene Container-Apps
Erwägen Sie die Bereitstellung freigegebener Container-Apps in einer einzelnen Container-Apps-Umgebung, die alle Ihre Mandanten verwenden.
Dieser Ansatz ist in der Regel kosteneffizient und erfordert den geringsten Betriebsaufwand, da weniger Ressourcen verwaltet werden müssen.
Wenn Sie dieses Isolationsmodell verwenden möchten, muss der Anwendungscode jedoch mehrinstanzenfähig sein. Dieses Isolationsmodell garantiert keine Isolation auf Netzwerk-, Compute-, Überwachungs- oder Datenebene. Ihr Anwendungscode muss die Mandantenisolation behandeln. Dieses Modell eignet sich nicht für feindliche Mehrinstanzenarbeitslasten, bei denen Sie dem ausgeführten Code nicht vertrauen.
Dieses Modell unterliegt möglicherweise Problemen mit lauten Nachbarn, was bedeutet, dass die Auslastung eines Mandanten die Leistung der Auslastung eines anderen Mandanten beeinträchtigen kann. Wenn Sie einen dedizierten Durchsatz bereitstellen müssen, um dieses Problem zu minimieren, ist das Modell der freigegebenen Container-Apps möglicherweise nicht geeignet.
Hinweis
Das Muster für Bereitstellungsstempel ist nützlich, wenn Sich Mandanten auf verschiedenen Preismodellen befinden. Mieter können z. B. gemeinsamen oder dedizierten Container-Apps-Umgebungen zugewiesen werden, je nach Preisstufe. Diese Bereitstellungsstrategie ermöglicht es Ihnen, den Container-Apps-Grenzwert für ein einzelnes Abonnement in jeder Region zu überschreiten und linear zu expandieren, wenn die Anzahl der Mandanten wächst.
Mandantenspezifische Container-Apps
Ein weiterer Ansatz, den Sie berücksichtigen können, ist das Isolieren Ihrer Mandanten durch die Bereitstellung von mandantenspezifischen Container-Apps in einer freigegebenen Umgebung.
Dieses Isolationsmodell stellt eine logische Trennung zwischen Mandanten sicher und bietet mehrere Vorteile:
Kosteneffizienz. Durch die Freigabe einer Container-Apps-Umgebung, eines virtuellen Netzwerks und anderer angefügter Ressourcen wie einem Log Analytics-Arbeitsbereich können Sie in der Regel Ihre Gesamtkosten und Verwaltungskomplexität für jeden Mandanten reduzieren.
Trennung von Upgrades und Bereitstellungen. Die Binärdateien der Einzelnen Mandanten können unabhängig von den Binärdateien anderer Container-Apps in derselben Umgebung bereitgestellt und aktualisiert werden. Dieser Ansatz kann nützlich sein, wenn Sie verschiedene Mandanten zu unterschiedlichen Versionen Ihres Codes aktualisieren müssen.
Ressourcenisolation. Jeder Container-App in Ihrer Umgebung wird eine eigene CPU- und Arbeitsspeicherressourcen zugeordnet. Wenn ein bestimmter Mandant mehr Ressourcen benötigt, können Sie der spezifischen Container-App dieses Mandanten mehr CPU und Arbeitsspeicher zuweisen. Beachten Sie, dass es Grenzwerte für die gesamt CPU- und Speicherzuweisungen für Container-Apps gibt.
Dieser Ansatz bietet jedoch keine Hardware- oder Netzwerkisolation zwischen Mandanten. Alle Container-Apps in einer einzigen Umgebung verwenden dasselbe virtuelle Netzwerk. Sie müssen vertrauen können, dass die für die Apps bereitgestellten Workloads die freigegebenen Ressourcen nicht missbrauchen.
Container-Apps bieten integrierte Unterstützung für Dapr, die ein modulares Design verwendet, um Funktionen als Komponenten bereitzustellen. In Container-Apps sind Dapr-Komponenten Ressourcen auf Umgebungsebene. Wenn Sie eine einzelne Umgebung für mehrere Mandanten freigeben, stellen Sie sicher, dass Dapr-Komponenten ordnungsgemäß auf die richtige mandantenspezifische Container-App ausgerichtet sind, um eine Isolation zu gewährleisten und Datenlecks zu verhindern.
Hinweis
Verwenden Sie keine Überarbeitungen , um unterschiedliche Versionen Ihrer App für unterschiedliche Mandanten zu erstellen. Überarbeitungen bieten keine Ressourcenisolation. Sie sind für Bereitstellungsszenarien konzipiert, in denen mehrere Versionen einer App während eines Updaterollouts ausgeführt werden müssen. Dieser Ansatz umfasst Strategien wie blaugrüne Bereitstellungen und A/B-Tests.
Eine Umgebung für jeden Mandanten
Erwägen Sie die Bereitstellung einer Container-Apps-Umgebung für jeden Ihrer Mandanten. Eine Container-Apps-Umgebung ist die Isolationsgrenze um eine Gruppe von Container-Apps. Eine Umgebung bietet Rechen- und Netzwerkisolierung in der Datenebene. Jede Umgebung wird in einem eigenen virtuellen Netzwerk bereitgestellt. Alle Apps innerhalb der Umgebung teilen dieses virtuelle Netzwerk. Jede Umgebung verfügt über eine eigene Dapr- und Überwachungskonfiguration.
Dieser Ansatz bietet die stärkste Daten- und Leistungsisolation, da die Daten und der Datenverkehr jedes Mandanten in einer bestimmten Umgebung isoliert sind. Für dieses Modell ist es nicht erforderlich, dass Ihre Anwendungen mehrinstanzenfähig sind. Wenn Sie diesen Ansatz verwenden, haben Sie genauere Kontrolle darüber, wie Sie Ressourcen container-Apps innerhalb der Umgebung zuordnen. Sie können Zuordnungen basierend auf den Anforderungen Ihres Mandanten bestimmen. Beispielsweise benötigen einige Mandanten möglicherweise mehr CPU- und Arbeitsspeicherressourcen als andere, sodass Sie mehr Ressourcen für die Anwendungen dieser Mandanten bereitstellen können, während Sie von der Isolation profitieren, die mandantenspezifische Umgebungen bereitstellen.
Es gibt jedoch niedrige Grenzwerte für die Anzahl der Umgebungen, die Sie innerhalb eines Abonnements für jede Region bereitstellen können. In einigen Szenarien können Sie diese Kontingente erhöhen, indem Sie ein Azure-Supportticket erstellen.
Stellen Sie sicher, dass Sie das erwartete Wachstum der Anzahl der Mandanten kennen, bevor Sie dieses Isolationsmodell implementieren. Dieser Ansatz verursacht häufig aufgrund der zusätzlichen Ressourcen, die Sie bereitstellen und verwalten müssen, eine höhere Gesamtbetriebskosten und höhere Bereitstellungs- und Betriebskomplexität.This approach often incurs a higher total cost of ownership and higher levels of deployment and operational complexity because of the extra resources that you need to deploy and manage.
Container Apps-Features, die Mehrinstanzenfähigkeit unterstützen
Benutzerdefinierte Domänennamen
Container-Apps ermöglichen Ihnen die Verwendung von Wildcard-DNS (Domain Name System) und das Hinzufügen eigener Wildcard-TLS-Zertifikate (Transport Layer Security). Wenn Sie mandantenspezifische Unterdomänen verwenden, ermöglichen sowohl Platzhalter-DNS- als auch TLS-Zertifikate Ihnen, Ihre Lösung problemlos auf eine große Anzahl von Mandanten zu skalieren, ohne jeden neuen Mandanten manuell neu konfigurieren zu müssen.
In Container-Apps verwalten Sie Zertifikate auf Umgebungsebene. Ingress muss auch für die Container-App aktiviert sein, bevor Sie eine benutzerdefinierte Domäne an sie binden können.
Anfordern der Authentifizierung und Autorisierung
Container-Apps können Authentifizierungstoken im Auftrag Ihrer App überprüfen. Wenn eine Anforderung kein Token enthält, ist das Token ungültig, oder die Anforderung ist nicht autorisiert, können Sie Container-Apps konfigurieren, um die Anforderung zu blockieren oder die Anforderung an Ihren Identitätsanbieter umzuleiten, damit sich der Benutzer anmelden kann.
Wenn Ihre Mandanten Microsoft Entra ID als Identitätsanbieter nutzen, können Sie Container Apps so konfigurieren, dass der /common-Endpunkt zur Validierung von Benutzertokens verwendet wird. Mit diesem Ansatz wird sichergestellt, dass die Token der Benutzer unabhängig vom Microsoft Entra-Mandanten des Benutzers überprüft und akzeptiert werden.
Sie können Container-Apps auch mit der externen Microsoft Entra-ID für die Benutzerauthentifizierung über Partneridentitätsanbieter integrieren.
Weitere Informationen finden Sie in den folgenden Ressourcen:
- Container-Apps-Autorisierung
- Aktivieren der Authentifizierung und Autorisierung in Container-Apps mit Microsoft Entra-ID
Hinweis
Die Authentifizierungs- und Autorisierungsfeatures in Container-Apps ähneln den Features in Azure App Service. Es gibt aber einige Unterschiede. Weitere Informationen finden Sie unter Überlegungen zur Verwendung der integrierten Authentifizierung.
Verwaltete Identitäten
Sie können verwaltete Identitäten von Microsoft Entra ID verwenden, um Ihrer Container-App den Zugriff auf andere Ressourcen zu ermöglichen, die von Microsoft Entra ID authentifiziert werden. Wenn Sie verwaltete Identitäten verwenden, muss Ihre Container-App keine Anmeldeinformationen für die Dienst-zu-Dienst-Kommunikation verwalten. Sie können spezifische Berechtigungen für die Identität Ihrer Containeranwendung für die rollenbasierte Zugriffssteuerung erteilen.
Wenn Sie verwaltete Identitäten verwenden, sollten Sie immer Ihr gewähltes Isolationsmodell im Blick behalten. Angenommen, Sie geben Ihre Container-Apps für alle Ihre Mandanten frei und stellen mandantenspezifische Datenbanken bereit. Sie müssen sicherstellen, dass die Anwendung eines Mandanten nicht auf die Datenbank eines anderen Mandanten zugreifen kann.
Weitere Informationen finden Sie unter verwaltete Identitäten in Container-Apps.
Workloadprofile für dedizierte Computeressourcen
Container-Apps bieten einen dedizierten Plan, mit dem Sie dedizierte Ressourcen für einen Mandanten reservieren können. Dieser Plan ist nützlich, um die für einen Mandanten verfügbaren Ressourcen einzuschränken, die für mehrere Container-Apps freigegeben werden können. Sie hilft auch dabei, bestimmte Mandantenanforderungen zu erfüllen, z. B. höhere Arbeitsspeicher-zu-CPU-Verhältnisse oder GPU-Verfügbarkeit.
Weitere Informationen finden Sie unter Workloadprofile in Container-Apps.
Regelbasiertes Routing
Mit regelbasiertem Routing können Sie eingehenden Datenverkehr an bestimmte Container-Apps oder Container-App-Überarbeitungen weiterleiten. Anforderungen können basierend auf dem HTTP-Anforderungspfad weitergeleitet werden, und Sie können den Pfad in der URL neu schreiben. Dieses Feature ist nützlich für mehrinstanzenfähige Systeme, die Anforderungen mandantenspezifischen Container-Apps oder Überarbeitungen zuordnen müssen, die den Pfad in der Anforderung verwenden. Diese Funktion wird in der Regel mit dem mandantenspezifischen Container-Apps-Isolationsmodell verwendet.
Weitere Informationen finden Sie unter Verwenden des regelbasierten Routings mit Container-Apps.
Beitragende
Microsoft verwaltet diesen Artikel. Die folgenden Mitwirkenden haben diesen Artikel geschrieben.
Hauptautoren:
- Daniel Larsen | Principal Customer Engineer, FastTrack für Azure
- Will Velida | Customer Engineer 2, FastTrack für Azure
Andere Mitwirkende:
- John Downs | Principal Software Engineer, Azure Patterns & Practices
- Chad Kittel | Principal Software Engineer, Azure Patterns & Practices
- Xuhong Liu | Senior Service Engineer, FastTrack für Azure
- Aarthi Murugan | Senior Program Manager, CS Tech Strategy App Innovation
- Kendall Roden | Senior Program Manager, Container-Apps
- Paolo Salvadori | Principal Customer Engineer, FastTrack für Azure
- Daniel Scott-Raynsford | Partner Solution Architect, Data & AI
- Arsen Vladimirskiy | Principal Customer Engineer, FastTrack für Azure
Um nicht-öffentliche LinkedIn-Profile anzuzeigen, melden Sie sich bei LinkedIn an.