Freigeben über


Designprinzipien von SaaS-Workloads in Azure

Als unabhängiger Softwareanbieter (ISV) zur Bereitstellung einer SaaS-Lösung sind Sie für die architektonische Exzellenz der Lösung verantwortlich, und Sie teilen die Verantwortung mit Ihrem Kunden. Sie verlassen sich auf Ihre Lösung, und Probleme können an sie überlappen. Wenn Ihre Organisation reif ist und über eine etablierte Kundenbasis verfügt, sind Zuverlässigkeit und Sicherheit wahrscheinlich Ihre größten Bedenken. Ausfallzeiten und Sicherheitsverletzungen können negative Folgen für den Umsatz und den Ruf Ihres Unternehmens haben.

Aber viele ISVs, insbesondere Start-ISVs, funktionieren mit begrenzten Ressourcen, um Kosten zu minimieren. Wenn Sich Ihre Organisation in der Startphase befindet, müssen Sie möglicherweise aggressive Kompromisse treffen, um zur nächsten Wachstumsphase zu kommen. Möglicherweise verfügen Sie nicht über dedizierte Teams für Governance, Sicherheit oder Bereitstellungsautomatisierung, denken Sie aber daran, zukünftiges Wachstum zu planen. Wenn Sie Risiken ergreifen müssen, treffen Sie berechnete Entscheidungen.

Wie Sie eine Lösung entwerfen, die mit geringem Maßstab arbeitet, unterscheidet sich von einer lösung mit hoher Skalierung. Um ein schnelles Wachstum zu unterstützen, sollten Sie eine SaaS-Workload-Architektur mit Flexibilität und Anpassungsfähigkeit entwerfen. In diesem Artikel werden die zugrunde liegenden Prinzipien unter Berücksichtigung dieser Entwicklung des Wachstums beschrieben. Betrachten Sie alle fünf Säulen des Well-Architected Framework zusammen, einschließlich der Kompromisse. Es gibt einen Mindeststandard für alle Säulen. Berücksichtigen Sie daher jeden. Wenn Sie diese Prinzipien nicht anwenden, könnten Sie finanzielle Verluste einführen und das Vertrauen der Kunden reduzieren.

Zuverlässigkeit

Entwurfsprinzip Überlegungen
Priorisieren sie die Verfügbarkeit. Ihre Lösung ist Ihr Unternehmen. Halten Sie hohe Verfügbarkeit so weit wie praktisch. Wenn Ihre Lösung einen Ausfall erlebt, kann sich die Auswirkung nicht nur auf Ihre Kunden, sondern auch auf ihre Kunden auswirken.
Seien Sie ausdrücklich über Vereinbarungen zum Servicelevel (SERVICE Level Agreements, SLAs) informiert, die Sie Ihren Kunden anbieten. Wenn Sie slAs für Ihre Kunden finanziell unterstützen, stellen Sie sicher, dass Sie sie erfüllen können und dass die komponenten, von denen Sie abhängig sind, mit ihnen kompatibel sind. Überprüfen Sie die zusammengesetzten SLAs für zugrunde liegende Azure-Dienste im Rahmen Ihres SLA-Entwurfsprozesses. Machen Sie keine Annahmen. Spiegeln Sie Ihr Modell für gemeinsame Verantwortung in Ihren SLAs wider.

Kompromiss: Zuverlässigkeit und Kosten. Um hohe Zuverlässigkeit zu erreichen, müssen Sie häufig zusätzliche Ressourcen bereitstellen. Beispielsweise können Sie Ressourcen über mehrere Verfügbarkeitszonen oder Regionen verteilen. Einige Azure-Dienste bieten integrierte Georeplikation oder zonenübergreifende Replikation, diese Features sind jedoch häufig mit hohen Kosten verbunden.

Treffen Sie fundierte Entscheidungen über das Resilienzniveau, das Ihr Budget zulässt. Wenn die Zuverlässigkeit einiger Komponenten oder Flüsse in der Workload keine finanziellen Auswirkungen hat, sollten Sie kostengünstige Möglichkeiten in Betracht ziehen, um Ihre Resilienz zu verbessern. Sie können z. B. Verfügbarkeitszonen von Plattformdiensten verwenden, Regelmäßig Daten an einem anderen physischen Standort sichern und Infrastruktur als Code (IaC) verwenden, um Ressourcen während der Wiederherstellungsprozesse schnell erneut bereitzustellen.

Sicherheit

Entwurfsprinzip Überlegungen
Richten Sie Governance als Grundlage für Sicherheit ein. Erstellen Sie von Anfang an bewährte Governance-Praktiken, anstatt Probleme später anzugehen. Viele Faktoren wirken sich auf die Sicherheit aus, z. B. wie Sie Rollen verwalten, Ressourcen organisieren und Richtlinien implementieren. Ohne robuste Governance schützen Sicherheitskontrollen das System nicht.
Folgen Sie einem Cloudsicherheitsgrundplan vom ersten Tag an. Erwarten Sie Sicherheitsüberwachungen von Ihren Kunden. Integrieren Sie Überwachungspfade frühzeitig in Ihr Design.
Isolieren Sie Ihre Kunden, und isolieren Sie Ihre Segmente. Verwenden Sie Ihr Mandantenmodell als Strategie für die Datenisolation. Segmentieren Sie Ihre Bereitstellungen und Umgebungen.
Beginnen Sie mit Zero Trust, und stellen Sie den geringsten Zugriff bereit. Standardeinstellung für eine Position ohne Zugriff. Führen Sie nur bei Bedarf mindesten Zugriff ein. Verwenden Sie diese Strategie für identitätsverwaltung und Netzwerkdatenverkehr. Regelmäßige Überprüfung der Abläufe durch das System und Ergreifen von Maßnahmen zu Anomalien.
Vermeiden Sie nach Möglichkeit Anmeldeinformationen. Wenn Sie Anmeldeinformationen verwenden müssen, schützen Sie sie. Behandeln Sie Anmeldeinformationen als Haftung. Verwenden Sie vertrauenswürdige Identitätsanbieter und -techniken, die den Speicher von Anmeldeinformationen minimieren. Wenn unvermeidbar, schützen Sie Anmeldeinformationen mit sicheren cloudeigenen Ansätzen. Behandeln Sie Kundenanmeldeinformationen und geheime Schlüssel mit größtmöglicher Sorgfalt.
Übernehmen Sie Sicherheit als fortlaufenden Prozess. Bewerten Sie Ihren Sicherheitsstatus kontinuierlich neu. Berücksichtigen Sie die sich entwickelnde Bedrohungslandschaft, neue Funktionen und Protokolle sowie aktualisierte Compliance- oder behördliche Anforderungen.

Kompromiss: Sicherheits- und Kostenoptimierung. Das Entwerfen und Betreiben sicherer Lösungen sind teuer. Sie können jedoch erhebliche Schritte in Richtung Sicherheit erreichen, z. B. eine gute Governance und die Einhaltung einer Sicherheitsgrundlinie, mit minimalem bis keine Kosten. Bestimmen Sie das Gleichgewicht zwischen Kosteneffizienz und Ihrem idealen Sicherheitsstatus.

Kostenoptimierung

Entwurfsprinzip Überlegungen
Zahlen Sie nur für das, was Sie benötigen. Nutzen Sie die Microsoft Cost Management-Features, um Ihre Gesamtausgaben zu verstehen. Priorisieren Sie die teuersten Ressourcenkategorien für eine weitere Überprüfung. Identifizieren Sie Bereiche, in denen Sie möglicherweise überlastet sind.
Verwenden Sie das, wofür Sie bezahlen. Maximieren Sie den Wert von Ressourcen, für die Sie bezahlen, aber dass Sie möglicherweise unterverwenden.
Modellieren Sie Ihre Kosten. Verfolgen Sie Ihre Kosten für verkaufte Waren. Verstehen Sie die Kosten für die Bereitstellung Ihrer Lösung an Kunden. Dieser Prozess ähnelt der Herstellung eines physischen Produkts. Um Ihre Entscheidungsfindung zu informieren, überwachen Sie die Kosten für jeden Kunden im Verhältnis zu dem Umsatz, den er generiert. Um Ihre Azure-Ausgaben schnell zu verstehen und zu aggregieren, implementieren Sie Governanceprozesse wie gute Ressourcenorganisation und Tagging.
Verstehen Sie, wie Ihre Kosten und Einnahmen zusammenhängen. Vermeiden Sie Situationen, in denen die Kosten ohne entsprechenden Umsatzanstieg steigen. Die Kosten können beispielsweise steigen, wenn Sie ein neues Feature hinzufügen, das unbegrenzten kostenlosen Speicherplatz bietet. Wenn Sie Kunden entsprechend der Anzahl der Benutzer belasten, stellen Sie sicher, dass Sie die Funktionalität an die Benutzer binden.

Kompromiss: Kostenoptimierung und Zuverlässigkeit. Um zuverlässige Lösungen zu erstellen, müssen Sie häufig zusätzliche Komponenten bereitstellen, mehr Daten übertragen und stabilere Schlüsselkomponenten-SKUs verwenden, die alle die Kosten erhöhen. Die zusätzliche Zuverlässigkeit ist häufig die Kosten wert, aber Sie müssen fundierte Entscheidungen treffen. Um diese Kostensteigerungen auszugleichen, stellen Sie sicher, dass Sie andere Komponenten effektiv verwenden und ihren Wert maximieren.

Optimaler Betrieb

Entwurfsprinzip Überlegungen
Verstehen des Modells der gemeinsamen Verantwortung. Definieren Sie klar die Verantwortlichkeiten Ihres Cloudanbieters, Ihrer Kunden und Ihrer Organisation. Stellen Sie sicher, dass jeder weiß, wer für welche Aufgaben zuständig ist.
Bereiten Sie sich darauf vor, eine Lösung im Namen Ihrer Kunden zu betreiben. Richten Sie Ihre Organisation, Ihr Team, Ihre Prozesse und Tools ein, um saaS im großen Maßstab zu unterstützen.
Übernehmen Sie konsistente Prozesse. Verwenden Sie Bereitstellungsstempel. Fördern Sie die Konsistenz in der Konfiguration und Architektur des Stempels. Automatisieren oder Standardisieren von Prozessen.
Formalisieren sie Ausnahmen oder Unterschiede. Definieren Sie unterschiedliche SKUs, um unterschiedliche Anforderungen zu erfüllen. Verwenden Sie diese Methode, um benutzerdefinierte Bereitstellungen, Konfigurationen oder Code für verschiedene Kunden zu vermeiden.
Sicheres Bereitstellen von Änderungen. Implementieren Sie einen sicheren Bereitstellungsprozess, den Sie für progressive Exposition, konstante Überwachung und Rollback verwenden können, wenn Probleme auftreten. Verwenden Sie einen konsistenten Prozess für Code-, Infrastruktur- und Konfigurationsänderungen. Steuern Sie die Anzahl der Lösungsversionen, die Sie zu einem bestimmten Zeitpunkt bereitstellen.

Kompromiss: Operative Exzellenz und die Kosten der Komplexität. Automatisierte Verwaltungsvorgänge können die Komplexität Ihrer Lösung erhöhen und zeitaufwendbar sein. Zunächst könnten die Kosten für die Automatisierung die Vorteile überwiegen, insbesondere bei einem kleinen Kundenstamm. Aber wenn die Anzahl der Kunden wächst, zahlt sich die Kosten der Automatisierung aus, und die Vorteile steigen.

Effiziente Leistung

Entwurfsprinzip Überlegungen
Implementieren Sie globale Skalierung, um die globale Leistung zu ermöglichen. Bieten Sie eine gute Erfahrung für globale Kunden über Multiregion-Bereitstellungen oder beschleunigtes Datenverkehrsrouting.
Quantifizieren Sie Ihre erwartete Skalierung. Modell der besten, durchschnittlichen und schlimmsten Wachstumsszenarien. Analysieren Sie Trends, und wenden Sie sich an Ihr Vertriebsteam, um realistische Projektionen zu erhalten. Planen Sie flexible Skalierungsstrategien, um verschiedene Wachstumsmöglichkeiten zu berücksichtigen.
Grundlegendes zu Skalierungspunkten. Ermitteln Sie, wo Sie wahrscheinlich Flexibilität benötigen. Allgemeine Trigger umfassen die Anzahl der Kunden oder Mandanten, Benutzer und Transaktionen pro Benutzer. Verstehen Sie, wie sich diese Faktoren ändern, wenn Ihr Unternehmen wächst und wie sie sich auf Ihre Architektur auswirken.
Entwerfen sie für skalierungsausskalieren. Die Skalierung nach oben hat Grenzen, aber das Skalieren ermöglicht eine größere Erweiterung. Nicht alles wird skaliert. Ziehen Sie daher die Verwendung von Bereitstellungsstempeln in Betracht, um Ihre Lösung als Einheit zu skalieren, um die Einschränkungen der Skalierung von Ressourcen zu vermeiden.

Kompromiss: Leistungseffizienz und Zuverlässigkeit. Zuverlässige Systeme erfordern häufig datenreplikation in breiten geografischen Gebieten. Je nach Replikationsdesign kann dieses Setup zu einer höheren Latenz und einem niedrigeren Durchsatz führen. Wenn Sie beispielsweise wichtige Daten zwischen zwei Azure-Regionen synchron replizieren, die mehrere hundert Meilen voneinander entfernt sind, können Sie Aufgrund der Echtzeitreplikation Hunderte von Millisekunden zu Ihren Reaktionszeiten hinzufügen.

Nächster Schritt

Beginnen Sie Ihre Lernreise, indem Sie die Abrechnung ihrer Kunden und Ihre Kostenmanagementstrategie optimieren.