Freigeben über


Überlegungen zum Entwurf von Hybrid-Apps

Microsoft Azure ist die einzige konsistente Hybrid-Cloud. Es ermöglicht Ihnen, Ihre Entwicklungsinvestitionen wiederzuverwenden und Apps zu ermöglichen, die globale Azure, die souveränen Azure-Clouds und Azure Stack umfassen können, was eine Erweiterung von Azure in Ihrem Rechenzentrum ist. Apps, die Clouds umfassen, werden auch als Hybrid-Appsbezeichnet.

Das Azure Application Architecture Guide beschreibt einen strukturierten Ansatz für das Entwerfen von Apps, die skalierbar, robust und hoch verfügbar sind. Die im Azure-Anwendungsarchitekturhandbuch beschriebenen Überlegungen gleichermaßen für Apps gelten, die für eine einzelne Cloud und für Apps entwickelt wurden, die Clouds umfassen.

In diesem Artikel werden die Säulen der Softwarequalität erweitert, die im Azure ApplicationArchitecture Guideerläutert werden, sich speziell auf das Entwerfen von Hybrid-Apps konzentrieren. Darüber hinaus fügen wir eine Platzierung Säule hinzu, da Hybrid-Apps nicht für ein Cloud- oder ein lokales Rechenzentrum exklusiv sind.

Hybridszenarien variieren stark mit den Ressourcen, die für die Entwicklung verfügbar sind, und umfassen Überlegungen wie Geografie, Sicherheit, Internetzugriff und andere Überlegungen. Obwohl dieser Leitfaden Ihre spezifischen Überlegungen nicht aufzählen kann, kann es einige wichtige Richtlinien und bewährte Methoden für Sie bereitstellen. Das erfolgreiche Entwerfen, Konfigurieren, Bereitstellen und Verwalten einer Hybrid-App-Architektur erfordert viele Entwurfsaspekte, die Ihnen möglicherweise nicht bekannt sind.

Dieses Dokument zielt darauf ab, die möglichen Fragen zu aggregieren, die bei der Implementierung von Hybrid-Apps auftreten können, und bietet Überlegungen (diese Säulen) und bewährte Methoden für die Zusammenarbeit mit ihnen. Indem Sie diese Fragen während der Entwurfsphase behandeln, vermeiden Sie die Probleme, die sie in der Produktion verursachen könnten.

Im Wesentlichen sind dies Fragen, über die Sie nachdenken müssen, bevor Sie eine Hybrid-App erstellen. Um zu beginnen, müssen Sie die folgenden Schritte ausführen:

  • Identifizieren und bewerten Sie die App-Komponenten.
  • Bewerten sie App-Komponenten anhand der Säulen.

Bewerten der App-Komponenten

Jede Komponente einer App hat eine eigene spezifische Rolle innerhalb der größeren App und sollte mit allen Entwurfsaspekten überprüft werden. Die Anforderungen und Features jeder Komponente sollten diesen Überlegungen entsprechen, um die App-Architektur zu ermitteln.

Dekompilieren Sie Ihre App in ihre Komponenten, indem Sie die Architektur Ihrer App untersuchen und bestimmen, was sie besteht. Komponenten können auch andere Apps enthalten, mit denen Ihre App interagiert. Wenn Sie die Komponenten identifizieren, bewerten Sie Ihre beabsichtigten Hybridvorgänge anhand ihrer Merkmale, indem Sie diese Fragen stellen:

  • Was ist der Zweck der Komponente?
  • Welche Abhängigkeiten bestehen zwischen den Komponenten?

Eine App kann z. B. ein Front-End und ein Back-End als zwei Komponenten definieren. In einem Hybridszenario befindet sich das Front-End in einer Cloud und das Back-End befindet sich in der anderen. Die App stellt Kommunikationskanäle zwischen dem Front-End und dem Benutzer sowie zwischen dem Front-End und dem Back-End bereit.

Eine App-Komponente wird durch viele Formulare und Szenarien definiert. Die wichtigste Aufgabe besteht darin, sie und deren Cloud- oder lokalen Standort zu identifizieren.

Die allgemeinen App-Komponenten, die in Ihren Bestand aufgenommen werden sollen, sind in Tabelle 1 aufgeführt.

Tabelle 1. Allgemeine App-Komponenten

Komponenten- Leitfaden für hybride Apps
Clientverbindungen Ihre App (auf jedem Gerät) kann auf verschiedene Arten von einem einstiegspunkt aus auf Benutzer zugreifen, einschließlich der folgenden Möglichkeiten:
– Ein Clientservermodell, das erfordert, dass der Benutzer einen Client installiert hat, um mit der App zu arbeiten. Eine serverbasierte App, auf die über einen Browser zugegriffen wird.
– Clientverbindungen können Benachrichtigungen enthalten, wenn die Verbindung unterbrochen wird, oder Warnungen, wenn Roaminggebühren anfallen können.
Authentifizierung Die Authentifizierung kann erforderlich sein, damit ein Benutzer eine Verbindung mit der App herstellt, oder von einer Komponente, die eine Verbindung mit einer anderen herstellt.
Apis Sie können Entwicklern programmgesteuerten Zugriff auf Ihre App mit API-Sätzen und Klassenbibliotheken bieten und eine Verbindungsschnittstelle basierend auf Internetstandards bereitstellen. Sie können auch APIs verwenden, um eine App in eigenständige logische Einheiten zu dekompilieren.
Dienste Sie können prägnante Dienste verwenden, um die Features für eine App bereitzustellen. Ein Dienst kann das Modul sein, auf dem die App ausgeführt wird.
Warteschlangen Sie können Warteschlangen verwenden, um den Status der Lebenszyklen und Zustände der Komponenten Ihrer App zu organisieren. Diese Warteschlangen können Messaging-, Benachrichtigungs- und Pufferfunktionen für abonnierende Parteien bereitstellen.
Datenspeicher Eine App kann zustandslos oder zustandslos sein. Zustandsbehaftete Apps benötigen Datenspeicher, die von zahlreichen Formaten und Volumes erfüllt werden können.
Zwischenspeichern von Daten Eine Komponente für die Datenzwischenspeicherung in Ihrem Entwurf kann Latenzprobleme strategisch beheben und eine Rolle beim Auslösen von Cloud-Bursts spielen.
Datenaufnahme Daten können auf vielfältige Weise an eine App übermittelt werden, von vom Benutzer übermittelten Werten in einem Webformular bis hin zu kontinuierlich hohem Datenfluss.
Datenverarbeitung Ihre Datenverarbeitungsaufgaben (z. B. Berichte, Analysen, Batchexporte und Datentransformation) können entweder an der Quelle verarbeitet oder auf eine separate Komponente mit einer Kopie der Daten geladen werden.

Bewerten von App-Komponenten für Säulen

Bewerten Sie für jede Komponente ihre Merkmale für jede Säule. Während Sie jede Komponente mit allen Säulen auswerten, werden Ihnen möglicherweise fragen, die Sie möglicherweise nicht berücksichtigt haben, die sich auf das Design der Hybrid-App auswirken. Wenn Sie diese Überlegungen berücksichtigen, kann die Optimierung Ihrer App mehrwertigend sein. Tabelle 2 enthält eine Beschreibung der einzelnen Säulen im Zusammenhang mit Hybrid-Apps.

Tabelle 2. Säulen

Säule Beschreibung
Platzierung Die strategische Positionierung von Komponenten in Hybrid-Apps.
Skalierbarkeit Die Fähigkeit eines Systems, erhöhte Last zu verarbeiten.
Verfügbarkeit Der Anteil der Zeit, die eine Hybrid-App funktioniert und funktioniert.
Elastizität Die Möglichkeit, dass eine Hybrid-App wiederhergestellt werden kann.
Fügsamkeit Vorgänge, mit denen ein System in der Produktion ausgeführt wird.
Sicherheit Schützen von Hybrid-Apps und Daten vor Bedrohungen.

Platzierung

Eine Hybrid-App hat inhärent eine Platzierungsüberlegung, z. B. für das Rechenzentrum.

Platzierung ist die wichtige Aufgabe der Positionierung von Komponenten, damit sie eine Hybrid-App am besten bedienen können. Standardmäßig umfassen Hybrid-Apps Standorte, z. B. lokal in die Cloud und unter verschiedenen Clouds. Sie können Komponenten der App auf zwei Arten auf Clouds platzieren:

  • vertikale Hybrid-Apps
    App-Komponenten werden an verschiedenen Standorten verteilt. Jede einzelne Komponente kann mehrere Instanzen haben, die sich nur an einem einzigen Speicherort befinden.

  • horizontale Hybrid-Apps
    App-Komponenten werden an verschiedenen Standorten verteilt. Jede einzelne Komponente kann mehrere Instanzen haben, die mehrere Speicherorte umfassen.

    Einige Komponenten können sich ihrer Position bewusst sein, während andere keine Kenntnisse über ihren Standort und ihre Platzierung haben. Diese Tugend kann mit einer Abstraktionsebene erreicht werden. Diese Ebene kann mit einem modernen App-Framework wie Microservices definieren, wie die App durch die Platzierung von App-Komponenten, die auf Knoten in allen Clouds ausgeführt werden, gewartet wird.

Platzierungscheckliste

Überprüfen Sie die erforderlichen Speicherorte. Stellen Sie sicher, dass die App oder eine der zugehörigen Komponenten erforderlich ist, um in einer bestimmten Cloud zu arbeiten oder eine Zertifizierung für eine bestimmte Cloud zu erfordern. Dazu können Souveränitätsanforderungen aus Ihrem Unternehmen gehören oder gesetzlich vorgeschrieben werden. Ermitteln Sie außerdem, ob lokale Vorgänge für einen bestimmten Standort oder ein bestimmtes Gebietsschema erforderlich sind.

Ermitteln von Verbindungsabhängigkeiten. Erforderliche Standorte und andere Faktoren können die Verbindungsabhängigkeiten zwischen Ihren Komponenten diktieren. Bestimmen Sie beim Platzieren der Komponenten die optimale Konnektivität und Sicherheit für die Kommunikation zwischen ihnen. Zu den Auswahlmöglichkeiten gehören VPN-,ExpressRoute-, und Hybridverbindungen.

Auswerten von Plattformfunktionen. Überprüfen Sie für jede App-Komponente, ob der erforderliche Ressourcenanbieter für die App-Komponente in der Cloud verfügbar ist und ob die Bandbreite den erwarteten Durchsatz- und Latenzanforderungen erfüllen kann.

Planen der Portabilität. Verwenden Sie moderne App-Frameworks wie Container oder Microservices, um Verschieben von Vorgängen zu planen und Dienstabhängigkeiten zu verhindern.

Bestimmen sie die Anforderungen an die Datenhoheit. Hybrid-Apps sind darauf ausgerichtet, die Datenisolation zu integrieren, z. B. in einem lokalen Rechenzentrum. Überprüfen Sie die Platzierung Ihrer Ressourcen, um den Erfolg zu optimieren, um diese Anforderung zu erfüllen.

Planen sie die Latenz. Inter-Cloud-Vorgänge können physischen Abstand zwischen den App-Komponenten einführen. Ermitteln Sie die Anforderungen, um die Latenz zu erfüllen.

Steuern von Datenverkehrsflüssen. Behandeln Sie Spitzennutzung und die entsprechende und gesicherte Kommunikation für personenbezogene Daten, wenn auf das Front-End in einer öffentlichen Cloud zugegriffen wird.

Skalierbarkeit

Skalierbarkeit ist die Fähigkeit eines Systems, erhöhte Last für eine App zu verarbeiten, was im Laufe der Zeit variieren kann, da andere Faktoren und Kräfte die Benutzergruppengröße zusätzlich zur Größe und dem Umfang der App beeinflussen.

Die Kerndiskossion dieser Säule finden Sie unter Skalierbarkeit in den fünf Säulen der Architektur-Exzellenz.

Ein horizontaler Skalierungsansatz für Hybrid-Apps ermöglicht das Hinzufügen weiterer Instanzen zur Erfüllung der Nachfrage und anschließendes Deaktivieren dieser Instanzen während ruhigerer Zeiträume.

In Hybridszenarien erfordert das Skalieren einzelner Komponenten zusätzliche Überlegungen, wenn Komponenten über Clouds verteilt sind. Die Skalierung eines Teils der App kann eine andere Skalierung erfordern. Wenn beispielsweise die Anzahl der Clientverbindungen steigt, die Webdienste der App jedoch nicht entsprechend skaliert werden, kann die Auslastung der Datenbank die App überlasten.

Einige App-Komponenten können linear skaliert werden, während andere Skalierungsabhängigkeiten aufweisen und in welchem Umfang sie skalieren können. Ein VPN-Tunnel, der eine Hybridkonnektivität für die Speicherorte der App-Komponenten bereitstellt, weist beispielsweise eine Beschränkung auf die Bandbreite und Latenz auf, auf die sie skaliert werden kann. Wie werden Komponenten der App skaliert, um sicherzustellen, dass diese Anforderungen erfüllt sind?

Checkliste für Skalierbarkeit

Ermitteln sie Skalierungsschwellenwerte. Um die verschiedenen Abhängigkeiten in Ihrer App zu behandeln, bestimmen Sie, inwieweit App-Komponenten in verschiedenen Clouds unabhängig voneinander skaliert werden können, während sie die Anforderungen zum Ausführen der App erfüllen. Hybrid-Apps müssen häufig bestimmte Bereiche in der App skalieren, um ein Feature während der Interaktion zu behandeln und sich auf den Rest der App auswirkt. Wenn Sie beispielsweise eine Anzahl von Front-End-Instanzen überschreiten, muss das Back-End möglicherweise skaliert werden.

Definieren Sie Skalierungszeitpläne. Die meisten Apps verfügen über Beschäftigt-Zeiträume, sodass Sie ihre Spitzenzeiten in Zeitpläne aggregieren müssen, um die optimale Skalierung zu koordinieren.

Verwenden Sie ein zentrales Überwachungssystem. Plattformüberwachungsfunktionen können eine automatische Skalierung bereitstellen, hybride Apps benötigen jedoch ein zentrales Überwachungssystem, das die Systemintegrität und -last aggregiert. Ein zentralisiertes Überwachungssystem kann die Skalierung einer Ressource an einem Ort initiieren und je nach Ressource an einem anderen Ort skalieren. Darüber hinaus kann ein zentrales Überwachungssystem nachverfolgen, welche Clouds Autoskalierungsressourcen und welche Clouds nicht verwenden.

Nutzen Sie die Funktionen für die automatische Skalierung (wie verfügbar). Wenn die Funktionen für die automatische Skalierung Teil Ihrer Architektur sind, implementieren Sie die automatische Skalierung, indem Sie Schwellenwerte festlegen, die definieren, wann eine App-Komponente hoch, out, down oder in skaliert werden muss. Ein Beispiel für die automatische Skalierung ist eine Clientverbindung, die in einer Cloud automatisch skaliert wird, um eine erhöhte Kapazität zu verarbeiten, verursacht jedoch andere Abhängigkeiten der App, die sich über verschiedene Clouds erstreckt, ebenfalls skaliert werden. Die autokalierenden Funktionen dieser abhängigen Komponenten müssen ermittelt werden.

Wenn die automatische Skalierung nicht verfügbar ist, sollten Sie Skripts und andere Ressourcen implementieren, um die manuelle Skalierung zu berücksichtigen, die durch Schwellenwerte im zentralisierten Überwachungssystem ausgelöst wird.

Bestimmen sie die erwartete Last nach Standort. Hybrid-Apps, die Clientanforderungen verarbeiten, basieren möglicherweise in erster Linie auf einem einzelnen Speicherort. Wenn die Auslastung von Clientanforderungen einen Schwellenwert überschreitet, können zusätzliche Ressourcen an einem anderen Ort hinzugefügt werden, um die Last eingehender Anforderungen zu verteilen. Stellen Sie sicher, dass die Clientverbindungen die erhöhten Lasten verarbeiten können, und bestimmen Sie auch alle automatisierten Verfahren für die Clientverbindungen, um die Last zu verarbeiten.

Verfügbarkeit

Verfügbarkeit ist die Zeit, zu der ein System funktioniert und funktioniert. Die Verfügbarkeit wird als Prozentsatz der Betriebszeit gemessen. App-Fehler, Infrastrukturprobleme und Systemlasten können die Verfügbarkeit reduzieren.

Die Kerndiskossion dieser Säule finden Sie unter Verfügbarkeit in den fünf Säulen der Architektur-Exzellenz.

Verfügbarkeitscheckliste

Stellen Sie Redundanz für die Konnektivität bereit. Hybrid-Apps erfordern Konnektivität zwischen den Clouds, auf die die App verteilt ist. Sie haben eine Auswahl an Technologien für hybride Konnektivität, daher verwenden Sie neben Ihrer primären Technologieauswahl eine andere Technologie, um Redundanz mit automatisierten Failoverfunktionen bereitzustellen, wenn die primäre Technologie fehlschlägt.

Klassifizieren von Fehlerdomänen. Fehlertolerante Apps erfordern mehrere Fehlerdomänen. Fehlerdomänen helfen dabei, den Fehlerpunkt zu isolieren, z. B. wenn eine einzelne Festplatte lokal fehlschlägt, wenn ein Top-of-Rack-Switch abläuft oder das vollständige Rechenzentrum nicht verfügbar ist. In einer Hybrid-App kann ein Speicherort als Fehlerdomäne klassifiziert werden. Je mehr Verfügbarkeitsanforderungen erforderlich sind, desto mehr müssen Sie bewerten, wie eine einzelne Fehlerdomäne klassifiziert werden soll.

Klassifizieren von Upgradedomänen. Upgradedomänen werden verwendet, um sicherzustellen, dass Instanzen von App-Komponenten verfügbar sind, während andere Instanzen derselben Komponente mit Updates oder Featureupgrades gewartet werden. Wie bei Fehlerdomänen können Upgradedomänen nach ihrer Platzierung an verschiedenen Standorten klassifiziert werden. Sie müssen ermitteln, ob eine App-Komponente ein Upgrade an einem Ort aufnehmen kann, bevor es an einem anderen Speicherort aktualisiert wird oder ob andere Domänenkonfigurationen erforderlich sind. Ein einzelner Speicherort selbst kann mehrere Upgradedomänen aufweisen.

Nachverfolgen von Instanzen und Verfügbarkeit. Hoch verfügbare App-Komponenten können durch Lastenausgleich und synchrone Datenreplikation verfügbar sein. Sie müssen festlegen, wie viele Instanzen offline sein können, bevor der Dienst unterbrochen wird.

Implementieren Sie die Selbstheilung. Wenn ein Problem zu einer Unterbrechung der App-Verfügbarkeit führt, könnte eine Erkennung durch ein Überwachungssystem Selbstheilungsaktivitäten für die App initiieren, z. B. das Entladen der fehlgeschlagenen Instanz und die erneute Bereitstellung der App. Dies erfordert höchstwahrscheinlich eine zentrale Überwachungslösung, die in eine hybride Kontinuierliche Integration integriert ist, und eine CI/CD-Pipeline (Continuous Delivery). Die App ist in ein Überwachungssystem integriert, um Probleme zu identifizieren, die eine erneute Bereitstellung einer App-Komponente erfordern könnten. Das Überwachungssystem kann auch hybride CI/CD auslösen, um die App-Komponente und potenziell andere abhängige Komponenten an demselben oder anderen Speicherort erneut bereitzustellen.

Verwalten von Vereinbarungen auf Serviceebene (SLAs). Die Verfügbarkeit ist für alle Vereinbarungen wichtig, um die Konnektivität mit den Diensten und Apps aufrechtzuerhalten, die Sie mit Ihren Kunden haben. Jeder Standort, auf dem Ihre Hybrid-App basiert, verfügt möglicherweise über eine eigene SLA. Diese verschiedenen SLAs können sich auf die allgemeine SLA Ihrer Hybrid-App auswirken.

Elastizität

Resilienz ist die Möglichkeit einer Hybrid-App und eines Systems, aus Fehlern wiederherzustellen und weiterhin funktionieren zu können. Ziel der Resilienz ist es, die App nach einem Fehler in einen voll funktionsfähigen Zustand zurückzugeben. Resilienzstrategien umfassen Lösungen wie Sicherung, Replikation und Notfallwiederherstellung.

Die Kerndiskossion dieser Säule finden Sie unter Resilienz in den fünf Säulen der Architektur-Exzellenz.

Prüfliste zur Ausfallsicherheit

Entdecken Sie Notfallwiederherstellungsabhängigkeiten. Für die Notfallwiederherstellung in einer Cloud sind möglicherweise Änderungen an App-Komponenten in einer anderen Cloud erforderlich. Wenn eine oder mehrere Komponenten aus einer Cloud nicht an einen anderen Speicherort übertragen werden, entweder innerhalb derselben Cloud oder in einer anderen Cloud, müssen die abhängigen Komponenten über diese Änderungen informiert werden. Dazu gehören auch die Verbindungsabhängigkeiten. Resilienz erfordert einen vollständig getesteten App-Wiederherstellungsplan für jede Cloud.

Richten Sie den Wiederherstellungsfluss ein. Ein effektiver Wiederherstellungsflussentwurf hat App-Komponenten ausgewertet, um Puffer, Wiederholungen, fehlgeschlagene Datenübertragungen aufzunehmen und ggf. auf einen anderen Dienst oder Workflow zurückzugreifen. Sie müssen bestimmen, welcher Sicherungsmechanismus verwendet werden soll, welche Wiederherstellungsprozeduren sie beinhalten und wie oft sie getestet werden. Sie sollten auch die Häufigkeit für inkrementelle und vollständige Sicherungen bestimmen.

Testen Sie partielle Wiederherstellungen. Eine partielle Wiederherstellung für einen Teil der App kann Benutzern versichern, dass alle nicht verfügbar sind. Dieser Teil des Plans sollte sicherstellen, dass eine teilweise Wiederherstellung keine Nebenwirkungen hat, z. B. einen Sicherungs- und Wiederherstellungsdienst, der mit der App interagiert, um sie ordnungsgemäß herunterzufahren, bevor die Sicherung erstellt wird.

Ermitteln Sie Diestigatoren für die Notfallwiederherstellung, und weisen Sie Die Verantwortung zu. Ein Wiederherstellungsplan sollte beschreiben, wer und welche Rollen Sicherungs- und Wiederherstellungsaktionen initiieren können, zusätzlich zu dem, was gesichert und wiederhergestellt werden kann.

Vergleich der Selbstheilungsschwellenwerte mit der Notfallwiederherstellung. Ermitteln Sie die Selbstheilungsfunktionen einer App für die automatische Wiederherstellungsinitiierung und die Zeit, die für die Selbstheilung einer App als Fehler oder Erfolg erforderlich ist. Bestimmen Sie die Schwellenwerte für jede Cloud.

Überprüfen Sie die Verfügbarkeit von Resilienzfeatures. Ermitteln Sie die Verfügbarkeit von Resilienzfeatures und -funktionen für jeden Standort. Wenn ein Standort nicht die erforderlichen Funktionen bereitstellt, sollten Sie diesen Standort in einen zentralisierten Dienst integrieren, der die Resilienzfeatures bereitstellt.

Ermitteln sie Ausfallzeiten. Ermitteln Sie die erwartete Ausfallzeit aufgrund der Wartung der App als Ganzes und als App-Komponenten.

Dokumentbehandlungsverfahren. Definieren Sie Problembehandlungsverfahren für die erneute Bereitstellung von Ressourcen und App-Komponenten.

Fügsamkeit

Die Überlegungen zur Verwaltung Ihrer Hybrid-Apps sind beim Entwerfen Ihrer Architektur von entscheidender Bedeutung. Eine gut verwaltete Hybrid-App bietet eine Infrastruktur als Code, die die Integration von konsistentem App-Code in eine gemeinsame Entwicklungspipeline ermöglicht. Durch die Implementierung konsistenter systemweiter und individueller Tests von Änderungen an der Infrastruktur können Sie eine integrierte Bereitstellung sicherstellen, wenn die Änderungen die Tests bestehen, sodass sie mit dem Quellcode zusammengeführt werden können.

Die Kerndiskossion dieser Säule finden Sie unter DevOps in den fünf Säulen der Architektur-Exzellenz.

Prüfliste zur Verwaltbarkeit

Implementieren der Überwachung. Verwenden Sie ein zentralisiertes Überwachungssystem von App-Komponenten, das sich über Clouds erstreckt, um eine aggregierte Ansicht ihrer Integrität und Leistung bereitzustellen. Dieses System umfasst die Überwachung der App-Komponenten und der zugehörigen Plattformfunktionen.

Bestimmen Sie die Teile der App, die eine Überwachung erfordern.

Koordinieren von Richtlinien. Jeder Speicherort, über den eine Hybrid-App verfügt, kann über eine eigene Richtlinie verfügen, die zulässige Ressourcentypen, Benennungskonventionen, Tags und andere Kriterien abdeckt.

Definieren und Verwenden von Rollen Als Datenbankadministrator müssen Sie die erforderlichen Berechtigungen für unterschiedliche Personas (z. B. einen App-Besitzer, einen Datenbankadministrator und einen Endbenutzer) ermitteln, die auf App-Ressourcen zugreifen müssen. Diese Berechtigungen müssen für die Ressourcen und innerhalb der App konfiguriert werden. Mit einem rollenbasierten Zugriffssteuerungssystem (RBAC) können Sie diese Berechtigungen für die App-Ressourcen festlegen. Diese Zugriffsrechte stellen eine Herausforderung dar, wenn alle Ressourcen in einer einzigen Cloud bereitgestellt werden, aber noch mehr Aufmerksamkeit erfordern, wenn die Ressourcen über Clouds verteilt sind. Berechtigungen für ressourcen, die in einer Cloud festgelegt sind, gelten nicht für Ressourcen, die in einer anderen Cloud festgelegt sind.

Verwenden Sie CI/CD-Pipelines. Eine Pipeline für kontinuierliche Integration und kontinuierliche Entwicklung (CI/CD) kann einen konsistenten Prozess für die Erstellung und Bereitstellung von Apps bereitstellen, die sich über Clouds erstrecken und die Qualitätssicherung für ihre Infrastruktur und App bieten. Diese Pipeline ermöglicht es der Infrastruktur und der App, auf einer Cloud zu testen und in einer anderen Cloud bereitgestellt zu werden. Mit der Pipeline können Sie sogar bestimmte Komponenten Ihrer Hybrid-App in einer Cloud und anderen Komponenten in einer anderen Cloud bereitstellen, was im Wesentlichen die Grundlage für die Hybrid-App-Bereitstellung bildet. Ein CI/CD-System ist für die Behandlung der Abhängigkeiten von App-Komponenten während der Installation wichtig, z. B. für die Web-App, die eine Verbindungszeichenfolge mit der Datenbank benötigt.

Verwalten des Lebenszyklus. Da Ressourcen einer Hybrid-App Standorte umfassen können, muss die Lebenszyklusverwaltungsfähigkeit jedes einzelnen Standorts in einer einzigen Lebenszyklusverwaltungseinheit aggregiert werden. Überlegen Sie, wie sie erstellt, aktualisiert und gelöscht werden.

Untersuchen Sie Problembehandlungsstrategien. Die Problembehandlung für eine Hybrid-App umfasst mehr App-Komponenten als dieselbe App, die in einer einzelnen Cloud ausgeführt wird. Neben der Konnektivität zwischen den Clouds wird die App auf zwei Plattformen statt auf einer Plattform ausgeführt. Eine wichtige Aufgabe bei der Problembehandlung von Hybrid-Apps besteht darin, die aggregierte Integritäts- und Leistungsüberwachung der App-Komponenten zu untersuchen.

Sicherheit

Sicherheit ist einer der wichtigsten Überlegungen für jede Cloud-App und wird für Hybrid-Cloud-Apps noch wichtiger.

Die Kerndiskossion dieser Säule finden Sie unter Sicherheits- in den fünf Säulen der Architektur-Exzellenz.

Sicherheitsprüfliste

Gehen Sie von Einer Verletzung aus. Wenn ein Teil der App kompromittiert wird, stellen Sie sicher, dass lösungen vorhanden sind, um die Ausbreitung der Verletzung zu minimieren, nicht nur innerhalb desselben Standorts, sondern auch über standorte hinweg.

Überwachen des zulässigen Netzwerkzugriffs. Ermitteln Sie die Netzwerkzugriffsrichtlinien für die App, z. B. nur den Zugriff auf die App aus einem bestimmten Subnetz, und lassen Sie nur die Mindestports und Protokolle zwischen den Komponenten zu, die für die Ordnungsgemäße Funktion der App erforderlich sind.

Verwenden Sie eine robuste Authentifizierung. Ein robustes Authentifizierungsschema ist für die Sicherheit Ihrer App von entscheidender Bedeutung. Erwägen Sie die Verwendung eines Verbundidentitätsanbieters, der Funktionen für einmaliges Anmelden bereitstellt und ein oder mehrere der folgenden Schemas verwendet: Benutzername und Kennwortanmeldung, öffentliche und private Schlüssel, zweistufige oder mehrstufige Authentifizierung und vertrauenswürdige Sicherheitsgruppen. Ermitteln Sie die geeigneten Ressourcen zum Speichern vertraulicher Daten und anderer geheimer Schlüssel für die App-Authentifizierung zusätzlich zu Zertifikattypen und deren Anforderungen.

Verwenden Sie Verschlüsselung. Ermitteln Sie, welche Bereiche der App Verschlüsselung verwenden, z. B. für die Datenspeicherung oder die Clientkommunikation und den Zugriff.

Verwenden Sie sichere Kanäle. Ein sicherer Kanal in den Clouds ist wichtig für die Bereitstellung von Sicherheits- und Authentifizierungsprüfungen, Echtzeitschutz, Quarantäne und anderen Diensten in der gesamten Cloud.

Definieren und Verwenden von Rollen Implementieren Sie Rollen für Ressourcenkonfigurationen und den Zugriff auf einzelidentitätsübergreifende Clouds. Ermitteln Sie die Anforderungen für die rollenbasierte Zugriffssteuerung (RBAC) für die App und die zugehörigen Plattformressourcen.

Überwachen Sie Ihr System. Die Systemüberwachung kann Daten sowohl aus den App-Komponenten als auch aus den zugehörigen Cloudplattformvorgängen protokollieren und aggregieren.

Zusammenfassung

Dieser Artikel enthält eine Checkliste von Elementen, die beim Erstellen und Entwerfen Ihrer Hybrid-Apps wichtig sind. Wenn Sie diese Säulen überprüfen, bevor Sie Ihre App bereitstellen, können Sie diese Fragen nicht in Produktionsausfällen ausführen und möglicherweise das Design erneut aufrufen.

Es kann wie eine zeitaufwendige Aufgabe im Voraus aussehen, aber Sie erhalten ihre Rendite einfach, wenn Sie Ihre App basierend auf diesen Säulen entwerfen.

Nächste Schritte

Weitere Informationen finden Sie in den folgenden Ressourcen: