Daten für SaaS-Workloads in Azure
Behandeln Sie Daten als die wertvollste Ressource Ihrer Lösung. Als unabhängiger Softwareanbieter (ISV) sind Sie für die Verwaltung der Kundendaten verantwortlich. Ihre Datenentwurfsstrategie und die Auswahl des Datenspeichers können sich erheblich auf Ihre Kunden auswirken.
Dieser Artikel enthält Anleitungen zum Sicherstellen der Datenintegrität und Vertraulichkeit für Ihre Kunden, während die Geschäftsleistungsanforderungen erfüllt werden. Es hebt wichtige Überlegungen hervor, die Ihnen helfen, diese Ziele effektiv zu erreichen.
Auswählen eines Datenspeichers
Der Datenspeicher in einer SaaS-Lösung (Software as a Service) wirkt sich auf seine Architektur, Leistung, Zuverlässigkeit und Transaktionskomplexität aus. Vergleichen Sie die Funktionen von verwalteten Azure-Diensten mit ähnlichen Nicht-Microsoft-Angeboten. In einigen Fällen können Sie auch open-source-Produkte auf virtuellen Computern ausführen.
Überlegungen zum Entwurf
Unterscheiden Sie zwischen Transaktions- und Analysevorgängen. Transaktionsdatenspeicher dienen zur Unterstützung Ihrer Anwendungen, und analytische Datenspeicher werden für Berichte und Aufgaben wie maschinelles Lernen verwendet. Diese Stores werden mit spezialisierten Produkten erstellt und verfügen über einzigartige Anforderungen für Leistung, Zugriffsmuster, Schemas und Anwendungsfälle.
Dieser Leitfaden konzentriert sich auf Transaktionsdatenspeicher.
Verstehen Sie Ihre Datenanforderungen. Schätzen Sie das Volumen, die Häufigkeit, mit der sie sich ändern kann, und den Datentyp, den Sie speichern müssen.
Erwarten Sie, dass Daten im Laufe der Zeit deutlich wachsen. Bei SaaS-Lösungen erfolgt das Wachstum in mehreren Dimensionen. Nehmen Sie eine Zunahme des Volumens und der Arten von Daten vor, während die Anzahl der Kunden wächst. Stellen Sie sicher, dass Sie dieses Wachstum planen und in Technologien investieren, die sie unterstützen können.
Entscheiden Sie zwischen einer relationalen oder nichtrelationalen Datenplattform basierend auf der Art Ihrer Daten. Bei vielen Transaktionsworkloads ist eine relationale Datenbank eine gute Option zum Modellieren von Anwendungsentitäten als diskrete Tabellen. Mit diesem Ansatz können Abfragen über das relationale Datenmodell hinweg ausgeführt werden. Wenn Ihre Daten natürlich zu einem Dokumentmodell passen oder einer Diagrammstruktur folgen, ist ein nichtrelationaler Ansatz möglicherweise besser geeignet.
Weitere Informationen finden Sie unter SQL im Vergleich zu NoSQL-Datenplattformen.
Minimieren Sie die Datentypen von Datenspeichern. Das Speichern verschiedener Datentypen in mehreren, unterschiedlichen Datenspeichern kann für ausgereifte Organisationen von Vorteil sein, die über Expertise auf verschiedenen Datenplattformen verfügen. Dieser Ansatz führt jedoch häufig zu unnötiger Komplexität für Startups und kleinere Organisationen. Es ist effektiver, sich auf einen oder eine kleine Anzahl von Datenspeichern zu konzentrieren.
Wenn Sie nicht über die geschäftliche Begründung für die Verwendung mehrerer Datenspeicher verfügen, konzentrieren Sie sich auf eine oder eine kleine Anzahl von Datenspeichern.
Verwenden Sie das, was Sie wissen, und investieren Sie in sie. Wenn Ihr Team bereits über Kenntnisse mit einem bestimmten Datenspeicher verfügt, ist es häufig besser, diesen Datenspeicher zu verwenden, anstatt in das Erlernen neuer Fähigkeiten zu investieren. Datenspeicher und Plattformen sind komplex, und Entwurfsentscheidungen können schwierig rückgängig gemacht werden.
Bedenken Sie jedoch das Potenzielle Wachstum. Wenn Ihr aktueller Datenspeicher Ihre Anforderungen nicht mehr erfüllt, wählen Sie einen Datenspeicher aus, der die Leistung, Resilienz, Sicherheit und Betriebseffizienz Ihrer Lösung verbessern kann. Es sollte auch Ihrem Team helfen, sein Fachwissen zu vertiefen.
Entwurfsempfehlungen
Empfehlung | Vorteil |
---|---|
Trennen Sie Transaktionsdatenspeicher für täglichen Betrieb von analytischen und Berichtsdatenspeichern. | Das Mischen der Absicht Ihrer Datenspeicher kann zu einer unnötigen Komplexität führen. Die Datensegmentierung verbessert die betriebliche Effizienz und maximiert die Nutzung der einzelnen Datenspeicher. |
Wählen Sie zwischen einer relationalen oder nichtrelationalen Datenstruktur basierend auf Ihren Anforderungen aus. Beginnen Sie mit einer oder einer kleinen Anzahl von Datenspeichern. Priorisieren von verwalteten Datenspeichern. Zu den allgemeinen Optionen gehören Azure Cosmos DB, Azure SQL, MySQL, MongoDB und PostgreSQL. |
Dieser Ansatz trägt zur Minimierung der Komplexität bei und stellt sicher, dass Sie das richtige Produkt verwenden, um die Effizienz zu maximieren. Verwaltete Datenspeicher bieten Flexibilität bei der Verwaltung von Ressourcen und Kosten elastisch und skaliert mit Ihren Anforderungen. Die Verwendung von verwalteten Datenspeichern verursacht weniger Verwaltungsaufwand als die Bereitstellung Ihres eigenen Datenspeichers in Ihrer eigenen Infrastruktur. |
Investieren Sie in das Lernen Ihrer gewählten Technologie. Rüsten Sie Ihr Team aus, um die hohen Skalierungsanforderungen und andere Komplexitäten von SaaS-Lösungen zu verwalten. | Erfahren Sie mehr über die Tools, die Sie verwenden, und deren breiteres Ökosystem, damit Sie Ihre Datenplattform effektiv nutzen können, während Sie skalieren. |
Übernehmen Sie Flexibilität im Datenentwurf. | Wenn Ihre SaaS-Lösung wächst oder sich Ihre Anforderungen ändern, können Sie sich anpassen, indem Sie Datenspeicher hinzufügen oder ändern. Mit dieser Flexibilität können Sie mit einem Datenspeicher beginnen und sich im Laufe der Zeit weiterentwickeln, um Ihre Anforderungen zu erfüllen. |
Mandantenmodell und Datenbankstrategie
Ein wichtiger Aspekt des Datenentwurfs ist die Entscheidung, Ressourcen im Namen Ihrer Kunden zu hosten oder Ressourcen in ihrer Umgebung zu hosten. Die meisten SaaS-Anbieter hosten Ressourcen für alle Kunden, die Flexibilität bei der Datenbankverwaltung bieten. Wenn Sie Ressourcen in der Umgebung des Kunden hosten, überlegen Sie, wie Sie auf diese Ressourcen zugreifen und diese verwalten.
Überlegungen zum Entwurf
Planen Sie die Datenbanksegmentierung. Bei SaaS-Lösungen (Business-to-Business, B2B) empfehlen wir, für jeden Kunden dedizierte Datenbanken zu erstellen. Dieser Ansatz verbessert die Datensicherheit, indem strenge Isolation zwischen Kunden beibehalten wird, wodurch das Risiko einer Datenmischung verringert und vom Kunden verwaltete Verschlüsselungsschlüssel unterstützt werden. Es hilft Ihnen auch bei der Einhaltung gesetzlicher Complianceanforderungen für einige Kunden.
Durch das Trennen von Kundendaten in einzelne Datenbanken kann die Leistung verbessert werden, indem laute Nachbarprobleme minimiert werden. Einige verwaltete Datenspeicher umfassen Ressourcenzuordnungskontrollen, um diese Probleme zu beheben, Kosteneffizienz zu bieten und Tools zum Verwalten mehrerer Datenbanken im Großen und Umfang zu integrieren.
In einigen Fällen ist es sinnvoll, die Daten mehrerer Kunden in einem einzigen Datenspeicher zu speichern. Beispielsweise können Sie in Business-to-Consumer-Lösungen (B2C)-Lösungen Daten in einem einzigen Speicher mit logischer Partitionierung basierend auf der Kunden-ID speichern. In B2B-Lösungen, die Komponenten gemeinsam nutzen, können Sie einen einzelnen Datenspeicher für bestimmte Teile verwenden, z. B. einen Ereignisspeicher, und gleichzeitig sicherstellen, dass Sie Kunden-IDs für jedes Ereignis einschließen.
Verknüpfen Von Datenspeichern mit Anwendungskomponenten. Wenn Sie Ressourcen im Namen des Kunden hosten, stellen Sie in derselben Azure-Region bereit, um Bandbreitengebühren und Latenz zu vermeiden. Wenn Sie Anwendungen und Datenspeicher in der Umgebung eines Kunden hosten, stellen Sie sie in derselben Umgebung bereit, um umgebungsübergreifende Komplexitäten zu vermeiden.
Standardisieren Sie die Datenspeicherverwaltung so weit wie praktisch. Uniformität ist der Schlüssel zum Verwalten von Daten über Kunden hinweg. Wenn Ihr Unternehmen wächst, erhöhen die Unterschiede zwischen Kunden Risiken und Komplexität. Diese Unterschiede können auch zu Produktionsausfällen führen, die wahrscheinlicher sind und die Problembehandlung erschwert wird.
Vermeiden Sie einmalige Änderungen in Ihrem Management, um einzelne Kunden zu unterstützen. Um beispielsweise vom Kunden verwaltete Metadaten zu unterstützen, vermeiden Sie Schemaänderungen wie das Hinzufügen zusätzlicher Spalten zu Ihrer Datenbank. Erstellen Sie stattdessen Funktionen für Kunden, um eigene Metadaten hinzuzufügen. Wenn Sie unterschiedliche Datenbankleistungsebenen für unterschiedliche Kunden bereitstellen müssen, erstellen Sie einen einzelnen Prozess, mit dem Sie unterschiedliche Konfigurationen auf verschiedene Kundenebenen anwenden können.
Weitere Informationen dazu, wie sich Ihr Mandantenmodell auf Ihre Datenstrategie auswirkt, finden Sie unter.
Entwurfsempfehlungen
Empfehlung | Vorteil |
---|---|
Bewerten Sie, ob Datenbanken zwischen mehreren Kunden freigegeben oder eine freigegebene Datenplattform bereitgestellt werden sollen. Stellen Sie gegebenenfalls eine einzelne Datenbank für die Daten der einzelnen Kunden bereit. Entspannen Sie diese Strategie, wenn strenge Isolierung keine Anforderung ist, z. B. in B2C-Lösungen. |
Dieser Ansatz minimiert laute Nachbarprobleme und kann Complianceanforderungen für einige Kunden unterstützen. |
Stellen Sie Anwendungen und ihre Datenbanken in derselben Region bereit. | Dieser Ansatz optimiert Die Bandbreitenkosten und Latenz, die durch den regionsübergreifenden Datenbankzugriff entstehen. |
Entwerfen Sie einen standardisierten Ansatz zum Speichern von kundendefinierten Daten oder Metadaten. Vermeiden Sie das Ändern des Schemas für einzelne Kunden oder zu unterschiedlichen Kundenumgebungen. | Dieser Ansatz hilft Ihnen, die betriebliche Belastung der Verwaltung von Inkonsistenzen zwischen Datenbanken für jeden Kunden zu vermeiden. |
Planen Sie Routinewartungsvorgänge in der vom Kunden bereitgestellten Umgebung. Planen Sie den Zugriff auf die Datenbank für Updates, Schemaänderungen, Wartung und andere Vorgänge. |
Dieser proaktive Ansatz minimiert Probleme aufgrund fehlender Wartung und reduziert das Risiko von Ausfallzeiten und Leistungsproblemen. |
Planen der Kapazität
Die Kapazitätsplanung bezieht sich auf die Verwaltung der Ressourcenauslastung, wobei der Schwerpunkt auf CPU-, Speicher-, Speicher- und Datenträgervorgängen wie Eingabe- und Ausgabevorgängen pro Sekunde (IOPS) liegt. Einige Datenspeicher kombinieren diese Ressourcen in einer einfachen Metrik für den synthetischen Ressourcenverbrauch, z. B. einer Datenbankdurchsatzeinheit (DTU) in Azure SQL oder einer Anforderungseinheit (RU) in Azure Cosmos DB. Verwaltete Datenspeicher bieten Flexibilität bei der Ressourcenverwaltung, wodurch Änderungen im Laufe der Zeit möglich sind. Es ist wichtig, einen anfänglichen Plan zu erstellen und zu durchlaufen, wenn Sich Ihre Anforderungen entwickeln.
Überlegungen zum Entwurf
Grundlegendes zu Ihren Ressourcenzuordnungsanforderungen. Verschiedene Kunden in SaaS-Lösungen können unterschiedliche Ressourcenanforderungen haben. Kleinere Kunden benötigen möglicherweise minimale Ressourcen, und größere Kunden benötigen möglicherweise mehr. Größere Kunden zahlen oft mehr, was eine höhere Ressourcenzuordnung rechtfertigt. Durch die Verwendung separater Datenbanken für jeden Kunden können Sie die Ressourcenzuordnung basierend auf ihrer Größe und ihren Anforderungen anpassen.
Verstehen Sie die verschiedenen Kapazitätsmodelle, die Datenplattformen anbieten. Cloudbasierte Datenplattformen bieten häufig mehrere Ressourcenmodelle. Beispielsweise stellen einige Azure-Dienste wie Azure Cosmos DB bereitgestellte, durchsatzbasierte Modelle und serverlose Modelle bereit. Azure SQL-Datenbank bietet auch elastische Pools.
Der bereitgestellte Durchsatz erfordert eine vordefinierte Ressourcenzuordnung, entweder aus einer einzelnen Datenbank oder einer Gruppe von Datenbanken. Flexible Pools ermöglichen die Ressourcenfreigabe zwischen mehreren Datenbanken. Flexible Pools werden häufig in SaaS-Lösungen verwendet.
Auch wenn der bereitgestellte Durchsatz voraussetzt, dass Sie Ressourcen vorab zuordnen, bieten Dienste wie Azure Cosmos DB automatischen Durchsatz. Sie können Regeln für das dynamische Hinzufügen oder Entfernen von Ressourcen basierend auf angegebenen Triggern festlegen.
Serverlose Ressourcenmodelle werden basierend auf Bedarf automatisch skaliert. Diese Funktion macht sie zu einem guten Ausgangspunkt, wenn Sie Ihre Kapazitätsanforderungen nicht vorab vorhersagen können. Sie können jedoch weniger Features unterstützen und kosteneffizient werden, wenn Sie wachsen. Serverlose Modelle sind in Azure SQL-Datenbank und Azure Cosmos DB verfügbar.
Entwurfsempfehlungen
Empfehlung | Vorteil |
---|---|
Modellieren Sie Ihre Datenbankanforderungen für jeden Kunden. Ermitteln Sie, ob Sie viele kleine Datenbanken, weniger große Datenbanken oder eine Mischung aus den beiden datenbanken haben sollten. Verwenden Sie eine T-Shirt-Größenübung, um Kunden in kleine, mittlere und große Buckets zu kategorisieren. |
Dieser Ansatz bietet eine grobe Schätzung der benötigten Ressourcen pro Kunde und hilft Ihnen, Kunden Ihrem Abrechnungsmodell zuzuordnen. |
Segmentieren Sie Ressourcenpools basierend auf der Größe der Kundendatenbanken, die sie verwenden. Nutzen Sie bereitgestellte Kapazität zu Ihrem Vorteil. Sie können z. B. einen freigegebenen sql-elastischen Pool für kleinere Kunden, einen separaten Pool für mittlere Kunden und dedizierte Ressourcen für große Kunden erstellen. |
Indem Sie Ressourcenpools basierend auf der Datenbankgröße Ihrer Kunden segmentieren, können Sie die Ressourcenzuordnung und Kosteneffizienz optimieren. |
Nutzen Sie die integrierten Skalierungsfunktionen, die von den verwalteten Diensten bereitgestellt werden. | Sie können die Skalierungsverantwortung auf die Plattform auslagern. Features wie elastische Pools und Autoskalen können die Ressourcennutzung optimieren. |
Überprüfen Sie regelmäßig serverlose Datenspeicher, um sicherzustellen, dass sie Ihre Anforderungen weiterhin erfüllen. | Sie können sicherstellen, dass der Datenspeicher mit Ihren sich entwickelnden Anforderungen wirksam bleibt. Optimieren Sie die Leistung und Kosteneffizienz, wenn sich Ihre Anforderungen ändern. |
Hochverfügbarkeit und Notfallwiederherstellung
Kunden von SaaS-Lösungen haben häufig hohe Erwartungen an hohe Verfügbarkeit (HA) und Disaster Recovery (DR). Wenn Ihre Kunden in regulierten Branchen arbeiten oder sich auf Ihre Lösung für den täglichen Betrieb verlassen, sind ihre Anforderungen möglicherweise noch strenger.
HA und DR sind keine One-size-fits-all-Lösungen und hängen von verschiedenen Faktoren ab. Sie haben ein klares Verständnis der verfügbaren Optionen, die sowohl für Sie als auch für die Anforderungen Ihrer Kunden gelten, um fundierte Entscheidungen zur Risikominderung verschiedener Risiken zu treffen.
Kompromiss: Zuverlässigkeit, Kosten und Leistung: Ausfallsicherheit für Datendienste erfordert häufig die Verteilung von Replikaten oder Kopien Ihrer Daten über einen breiteren geografischen Bereich, um Risiken zu minimieren. Es gibt jedoch Nachteile. Je länger die Entfernung der Daten zu reisen ist, desto mehr Schutz vor lokalisierten Fehlern. Das Kopieren von Daten über längere Entfernungen erhöht jedoch die Latenz und kostet häufig mehr. Viele verwaltete Datenspeicher bieten eine automatisierte Datenreplikation, aber sie legen möglicherweise Beschränkungen für die Replikationstypen fest, die Sie über unterschiedliche Entfernungen ausführen können, um die Leistung aufrechtzuerhalten.
Überlegungen zum Entwurf
Quantifizieren der Resilienz. Messen Sie Resilienzanforderungen mithilfe von Zielen auf Dienstebene (SLOs), die Metriken wie Uptime, Wiederherstellungszeit und Wiederherstellungspunkt enthalten. Diese Metriken werden sowohl von Ihren geschäftlichen Anforderungen als auch von denen Ihrer Kunden gesteuert, die möglicherweise unterschiedliche Anforderungen haben. Wenn Sie große Datenmengen im Auftrag Ihrer Kunden speichern, müssen Ihre HA- und DR-Lösung möglicherweise komplexer sein, um strenge Anforderungen zu erfüllen.
Weitere Informationen zu Resilienzmetriken finden Sie unter RE:04 Empfehlungen zum Definieren von Zuverlässigkeitszielen.
Verwenden Sie Plattformfeatures. Azure bietet Funktionen zur Resilienz innerhalb eines Rechenzentrums, innerhalb einer Region mithilfe von Verfügbarkeitszonen und über einen breiteren geografischen Bereich mithilfe mehrerer Regionen. Kombinieren Sie Strategien wie Verfügbarkeitszonen, regionsübergreifende Sicherung und Multiregion-Bereitstellungen, um die richtige Resilienz für Ihre Lösung zu erreichen. Berücksichtigen Sie für hohe Resilienzanforderungen eine multiregion-passive Architektur mit asynchroner Datenreplikation zwischen Regionen. Dieser Ansatz kann zu einem Datenverlust während eines katastrophalen Ausfalls führen.
Kompromiss: Multiregion-, aktiv-aktive Designs mit Replikation sind die widerstandsfähigsten, sind aber komplex zu erstellen und zu testen. Für die meisten aktiv aktiven Lösungen müssen Sie einen Konfliktlösungsansatz entwerfen, der Verzögerungen bei der Datensynchronisierung rechnung. Die meisten Lösungen benötigen diese Resilienz nicht.
Informationen zur Verwendung von Verfügbarkeitszonen und Regionen finden Sie in den RE:05-Empfehlungen.
Verwenden Sie Bereitstellungsstempel, um den Strahlradius von Komponenten zu isolieren. Das Bereitstellungsstempelmuster wird in SaaS-Lösungen häufig verwendet, da es Vorteile für Bereitstellung, Verwaltung, Leistung und Resilienz bietet. Die Bereitstellung eines Stempels in der USA und eines anderen Stempels in Europa stellt beispielsweise sicher, dass Kunden in einer Region von Ausfällen in der anderen Region isoliert sind und unabhängig arbeiten können.
Entwurfsempfehlungen
Empfehlung | Vorteil |
---|---|
Konzentrieren Sie sich auf Resilienzanforderungen, während Sie über die allgemeinen Datenanforderungen für Ihre und Ihre Kunden nachdenken. | Indem Sie Ihre Designentscheidungen in diese Anforderungen eindingen, können Sie sicherstellen, dass Sie die geeigneten Kompromisse treffen und unter- oder überlastet für Ihre Anforderungen vermeiden. |
Berücksichtigen Sie unterschiedliche Resilienzniveaus in Ihrem Abrechnungsmodell. Legen Sie Erwartungen an Ihre Kunden fest. Null Datenverlust bei katastrophalen Ausfällen oder 100 % Betriebszeit kann unrealistisch sein. |
Abrechnungsmodelle können Ihren Kunden helfen zu verstehen, für wie viel garantierte Resilienz sie sich registrieren. Beispielsweise erhalten Kunden mit einer niedrigeren Ebene minimale Garantien. In einer höheren Ebene erhalten Kunden mehr Resilienz, da Sie sich leisten können, ihre Ressourcen in mehreren Regionen zu replizieren. |
Verwenden Sie Azure-Verfügbarkeitszonen für Produktionslösungen. Verwenden Sie nach Möglichkeit zonenredundante Datenspeicher. | Verfügbarkeitszonen bieten Ausfallsicherheit gegenüber Rechenzentrumsausfällen, ohne die Kosten, Latenz oder Komplexität Ihrer Lösung erheblich zu erhöhen. |
Bewahren Sie Sicherungen Ihrer Datenspeicher in einem global redundanten Format auf, indem Sie die regionsübergreifende Replikation verwenden, sofern verfügbar. | Regionsübergreifende Sicherungen von Daten fügen eine zusätzliche Resilienzebene hinzu. |
Verwenden Sie Bereitstellungsstempel, um separate Instanzen Ihrer Lösung an geografisch verteilten Standorten zu erstellen. | Indem Sie Bereitstellungsstempel verwenden, um separate Instanzen Ihrer Lösung an geografisch verteilten Standorten zu erstellen, können Sie die Resilienz erhöhen und mehr Vorteile bieten, z. B. die Verwaltung von Vorgängen. |
Bewerten Sie, ob Sie eine Multiregion-Bereitstellung benötigen und ob Sie ein aktives Design benötigen, um die Anforderungen zu erfüllen. Berücksichtigen Sie die Kompromisse, die beteiligt sind. Zustandslose Komponenten sind einfacher zu replizieren als zustandsbehaftete Komponenten wie ein Datenspeicher. |
Das Verteilen Ihrer Lösung oder Stempel über Regionen hinweg bietet höhere Resilienzniveaus, indem Daten zwischen Regionen repliziert werden. |
Sicherheit und Konformität
Sie sind dafür verantwortlich, die Vertraulichkeit und Integrität der Daten Ihrer Kunden sicherzustellen. Berücksichtigen Sie beim Erstellen einer Sicherheitsbasislinie Ihre Sicherheitsanforderungen und Zusagen. Planen Sie, die Complianceanforderungen Ihrer Kunden zu erfüllen, einschließlich der Datenaufbewahrung.
Überlegungen zum Entwurf
Netzwerk: Überlegen Sie, wer auf Ihren Datenspeicher zugreifen wird. In der Regel benötigt nur Ihre Anwendung eine direkte Kommunikation, konfigurieren Sie sie also für nur private Netzwerke.
Identität: Überlegen Sie, wie auf Ihre Datenspeicher zugegriffen wird. Viele SaaS-Lösungen verwenden eine einzelne Anwendungsidentität für alle Datenspeicher, wobei die Anwendungsebene Isolation und Autorisierung erzwingt. Für die Autorisierung auf Zeilenebene oder auf Datenbankebene müssen Sie möglicherweise die Identität des Benutzers an den Datenspeicher weitergeben, der in einer mehrinstanzenfähigen Umgebung komplex ist.
Datenaufbewahrung: Planen Sie Ihre Datenaufbewahrungsrichtlinien im Voraus. Die Verwaltung von mehr Daten erhöht die Speicherkosten und die Verwaltungskomplexität. Beispielsweise können große Datenmengen in einer Transaktionsdatenbank Abfragen und Abschneiden von Prozessen erschweren.
Bei langfristiger Datenaufbewahrung, z. B. für Compliance- oder zukünftige Analysen, sollten Sie die Zuweisung von Daten zu einem Speicher in Betracht ziehen, der für eine langfristige Aufbewahrung geeignet ist.
Entwurfsempfehlungen
Empfehlung | Vorteil |
---|---|
Konfigurieren Sie Ihre Datenspeicher für die Verwendung privater Endpunkte und deaktivieren Sie öffentliche Endpunkte. | Dieser Ansatz verbessert die Sicherheit, indem der Zugriff auf Ihr internes Netzwerk eingeschränkt wird. Indem Sie den Zugriff einschränken, können Sie das Risiko eines unbefugten Zugriffs und potenzieller Datenschutzverletzungen verringern. |
Verwenden Sie verwaltete Identitäten und Microsoft Entra-ID für die Authentifizierung. Vermeiden Sie die Verwendung von Datenbankschlüsseln oder Anmeldeinformationen. | Verwaltete Identitäten vermeiden die Notwendigkeit von Datenbankschlüsseln oder Anmeldeinformationen, wodurch das Risiko des Diebstahls von Anmeldeinformationen verringert und die Zugriffsverwaltung vereinfacht wird. |
Wenn Sie mit freigegebenen Datenspeichern arbeiten, stellen Sie sicher, dass die Anwendung alle Anforderungen an einen einzelnen Mandanten einbezieht, indem Sie die Mandanten-ID in WHERE Klauseln einschließen. |
Dieser Prozess trägt dazu bei, das Risiko von mandantenübergreifenden Datenlecks oder Identitätswechseln zu verringern. |
Planen Sie Ihre Datenaufbewahrungsstrategie basierend auf Compliance- und Geschäftsanforderungen. Vermeiden Sie unnötige historische Daten. Verschieben Sie Daten aus primären Speichern zur langfristigen Aufbewahrung in den Archivierungsspeicher. | Durch die Vermeidung unnötiger Aufbewahrung behalten Sie einen kleineren Oberflächenbereich bei. |
Verwenden Sie Datenspeicherfeatures, um Ihre Datenlebenszyklusanforderungen zu unterstützen. Legen Sie in Azure Cosmos DB die Zeit für die Live-Nutzung von Dokumenten fest. Implementieren Sie in Azure SQL eine Gleitfensterstrategie mithilfe der Tabellenpartitionierung , um die Auswirkungen des Archivierungsprozesses auf die Datenbank zu minimieren. |
Diese Ansätze sorgen für eine effiziente Verwaltung des Datenlebenszyklus, optimieren Sie die Speicherung, indem Sie veraltete Daten archivieren oder löschen und den manuellen Eingriff nach Möglichkeit reduzieren. |
Vorgänge
SaaS-Lösungen enthalten häufig eine große Anzahl von Datenbanken oder anderen Stores. Es ist wichtig, die Routinewartung in Ihrer Flotte zu planen und Automatisierungsoptionen zu erkunden, um diese Aufgaben effizient zu verwalten.
Überlegungen zum Entwurf
Verstehen sie die Funktionen Ihres Teams. Wenn Sie nicht über große Teams von Datenbankadministratoren verfügen, die detaillierte Analysen zu den Datenbanken einzelner Kunden durchführen können, haben Sie einen Plan für die Durchführung von Vorgängen im Großen und Ganzen und verwenden Sie Plattformtools, wenn möglich.
Planen Sie Ihre regelmäßigen Wartungsverfahren. Listet die erforderlichen regelmäßigen Wartungsvorgänge und deren Häufigkeit auf. Die spezifischen Vorgänge variieren je nach Art des verwendeten Datenspeichers. Zum Beispiel:
- Überwachen Sie die Gesamtmenge von Daten und Daten, die sich in bestimmten Entitäten befinden, z. B. wichtige Tabellen.
- Erstellen Sie Indizes neu.
- Erstellen oder entfernen Sie Indizes basierend auf dem Ändern von Abfragemustern.
- Partitionen neu ausgleichen.
Erkunden Sie Plattformfeatures, die Ihnen helfen können, regelmäßige Wartungen durchzuführen und proaktiv nach neuen Problemen zu suchen. Beispielsweise überwacht SQL-Datenbank Advisor in Azure SQL-Datenbank auf Probleme.
Design für Automatisierung. Automatisierte Vorgänge sind für eine SaaS-Lösung unerlässlich, um effektiv zu skalieren. Identifizieren Sie regelmäßige und gelegentliche Aufgaben, und erstellen Sie Playbooks oder Automatisierungsskripts für sie. Für Aufgaben, die Sie nicht sofort automatisieren können, dokumentieren Sie die Prozesse gründlich, um Konsistenz und Klarheit sicherzustellen.
Entwurfsempfehlungen
Empfehlung | Vorteil |
---|---|
Streben Sie nach Konsistenz zwischen den Datenspeichern der Kunden an, wenn möglich. Wenn ein Kunde spezielle Unterkünfte benötigt, integrieren Sie sie in einen allgemeinen Prozess, anstatt die Konfiguration für diesen Kunden anzupassen. Verwenden Sie z. B. dasselbe Schema für jede Datenbank, und verwenden Sie dieselben Prozesse, um Ihre Ressourcen bereitzustellen und zu verwalten. |
Die Konsistenz erleichtert das Vornehmen von Änderungen im Maßstab und minimiert das Risiko versehentlicher Probleme bei Bereitstellungen oder Wartungsprozeduren. |
Stellen Sie begrenzte Ressourcen sorgfältig bereit und suchen Sie nach Möglichkeiten zum Optimieren von Vorgängen. | Sie können kleine Effizienzen vermeiden und eine bessere Ressourcenauslastung und eine bessere Gesamtleistung erzielen. |
Erstellen Sie Automatisierung für sich wiederholende Aufgaben. Wählen Sie aus, automatisierte Tools zu kaufen, anstatt eine benutzerdefinierte Lösung zu erstellen. Erkunden Sie die Optionen, die die Plattform und Nicht-Microsoft-Anbieter bereitstellen. |
Indem Sie in die Qualitätsautomatisierung investieren, können Sie diese Ressourcen wiederholt verwenden und manuelle Aufgaben reduzieren, die häufig fehleranfällig sind. Automatisierte Tools sind nützlich, wenn Sie kein Experte im von Ihnen verwendeten Datenspeicher sind oder wenn Sie sich nicht über die erforderlichen Wartungsaufgaben sicher sind. |
Stellen Sie die Datenbankverwaltungskapazität Ihres Teams sorgfältig bereit. Reservieren Sie Personaldatenbankadministratoren für die wirkungsvollsten Aktivitäten, z. B. den Umgang mit großen Kunden oder die Gebäudeautomatisierung, die für viele Kunden skaliert werden kann. | Indem Sie wertvolle Funktionen priorisieren, können Sie die Effizienz maximieren. |
Kundenzugriff auf Daten
Einige Ihrer Kunden fordern möglicherweise direkten Zugriff auf ihre Daten für benutzerdefinierte Berichte oder Analysen an. Überlegen Sie sorgfältig, wie Kunden auf Daten in Ihrer Lösung zugreifen können und ob Sie diese Anforderungen erteilen oder alternative Methoden bereitstellen können, um ihren Anforderungen gerecht zu werden.
Überlegungen zum Entwurf
Gründe für den direkten Zugriff rechtfertigen. Verstehen Sie, warum Kunden Zugriff auf Rohdaten benötigen, indem Sie Informationen zu ihrem Geschäftsproblem erhalten. Arbeiten Sie zusammen, um eine Lösung zu finden, die ihren Anforderungen entspricht, ohne Risiken für Ihre Plattform einzuführen.
Suchen Sie alternative Methoden, um die Anforderungen zu erfüllen, anstatt direkten Zugriff zu gewähren. Wenn der Zugriff für Berichtszwecke erforderlich ist, sind Anwendungsebenenansätze bevorzugt. Sie können beispielsweise Berichte für sie mithilfe von Microsoft Power BI erstellen oder eine Teilmenge Ihrer Daten in eine Datei exportieren, die Sie ihnen bereitstellen. Sie können auch APIs erstellen, die sie für den Zugriff auf Ihre Daten verwenden können.
Bewerten von Sicherheits- und Isolationsauswirkungen. Die Bereitstellung eines direkten Zugriffs auf einen Datenspeicher stellt erhebliche Sicherheitsrisiken dar. Vermeiden Sie das Verfügbarmachen interner Ressourcen für externe Parteien, einschließlich Kunden. In einer SaaS-Umgebung, in der viele Kunden eine Lösung teilen, sind die Risiken noch höher, da die Umgebung ausgenutzt werden kann, um auf die Daten anderer Kunden zuzugreifen.
Erwägen Sie, Kunden den Zugriff auf ihre Daten auf sichere, isolierte Weise bereitzustellen, die sich nicht auf Ihr Produktionssystem auswirkt, und ermöglicht es Ihnen, interne Datenbankentwurfsänderungen vorzunehmen, ohne die Abfragen von Kunden zu unterbrechen.
Berücksichtigen Sie die Auswirkungen auf die Leistung. Das Zulassen des direkten Zugriffs auf Ihren Transaktionsdatenspeicher kann zu Leistungsproblemen für Ihre Hauptanwendung führen. Beispielsweise kann ein Kunde eine ressourcenintensive Abfrage ausführen, die die Funktionalität der Anwendung stört.
Entwurfsempfehlungen
Empfehlung | Vorteil |
---|---|
Vermeiden Sie direkten Zugriff auf Ihre Datenspeicher. Wenn Sie direkten Zugriff gewähren müssen, gewähren Sie Zugriff auf ein schreibgeschütztes Replikat, wenn die Datenplattform es unterstützt. |
Mit Anwendungsebenenansätzen können Sie steuern, wie Kunden Ihre Daten verwenden. Wenn es nicht möglich ist, Anwendungsebenenkonstrukte zu erstellen, reduziert der Zugriff über schreibgeschützte Replikate die Belastung der Abfragen des Kunden für Ihre Vorgänge. |
Vermeiden Sie das Verfügbarmachen interner Implementierungsdetails. | Durch die Steuerung des Zugriffs auf Ihre Datenstrukturen verhindern Sie, dass Kunden Annahmen über die Funktionalität Ihres Datenbankschemas treffen. Diese Flexibilität ermöglicht es Ihnen, Ihre Datenbankstruktur im Laufe der Zeit zu entwickeln und zu optimieren, ohne die Einschränkungen von vom Kunden erstellten Tools oder ungenauen Annahmen. |
Zusätzliche Ressourcen
Multitenancy ist eine Kern-Geschäftsmethodik für das Entwerfen von SaaS-Workloads. Diese Artikel enthalten weitere Informationen zu Überlegungen zum Datenentwurf:
- Architekturansätze für mehrinstanzenfähige Lösungen
- Architekturansätze für Speicherung und Daten in mehrinstanzenfähigen Lösungen
- Architekturansätze für mandantenintegration und Datenzugriff
- Mandantenmodelle
Nächster Schritt
Erfahren Sie mehr über DevOps-Überlegungen für SaaS-Workloads, einschließlich effizienter Verwaltung des Kundenlebenszyklus und sicherer Bereitstellungsmethoden.