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.
DevOps-Praktiken sind integraler Bestandteil der Verwaltung von Workloads in Azure, insbesondere für SaaS-Anwendungen (Software as a Service). Zu den wichtigsten Aspekten der Verwaltung einer Workload gehören Onboarding, Offboarding und Ändern von Kundeninstanzen. Diese Methoden optimieren Den Betrieb und verbessern die Skalierbarkeit und Zuverlässigkeit, wodurch die Chancen auf Ausfälle minimiert werden.
In diesem Artikel werden Entwurfsüberlegungen für eine effiziente Verwaltung des Kundenlebenszyklus und sichere Bereitstellungsmethoden beschrieben.
Verwalten von Kundenlebenszyklus
Das Verwalten von Kundenlebenszyklusereignissen ist für jede SaaS-Anwendung von entscheidender Bedeutung. In der Regel umfassen diese Ereignisse Folgendes:
- Onboarding: Wenn sich ein Kunde anmeldet.
- Änderung: Wenn die Instanz eines Kunden geändert wird, zum Beispiel bei einer Änderung der Preisstufe.
- Offboarding: Wenn ein Kunde sein Konto kündigt.
Möglicherweise treten andere Lebenszyklusereignisse auf. Beispielsweise können Sie Ihren Kunden erlauben, ihr Abonnement anzuhalten, während sie ihre Daten für einen festgelegten Zeitraum aufbewahren und ihr Abonnement später fortsetzen. Jedes Ereignis kann eindeutige Auswirkungen auf Ihre Anwendung haben.
In einigen Lösungen erfordert die Verwaltung des Kundenlebenszyklus möglicherweise nur das Erstellen oder Verwalten von Daten in einer Datenbanktabelle. Bei anderen Lösungen kann es u. U. die Orchestrierung der Bereitstellung von Azure-Infrastruktur, Anwendungscode und komplexerer Konfiguration umfassen.
Die Lebenszyklusverwaltung ist eine Schlüsselverantwortung für die Steuerungsebene einer SaaS-Lösung. Zunächst kann Ihr Team diese Aktivitäten manuell behandeln. Versuchen Sie jedoch im Laufe der Zeit, mehr Funktionen in eine formalisierte Steuerungsebenenlösung oder -anwendung zu übertragen.
Überlegungen zum Entwurf
Konsistenz. Berücksichtigen Sie bei der Planung Ihrer Lebenszyklusverwaltungsstrategie die Komplexität der Aktionen, die für jedes Kundenlebenszyklusereignis erforderlich sind. Zu diesen Aktionen gehören die Größe Ihrer Lösung, der Kundenbasis und des Organisationsaufwands. Verfügen Sie über ein klares Verständnis der erforderlichen Schritte für jedes Ereignis und investieren Sie in Steuerelemente, um Konsistenz zu gewährleisten. Überprüfen und aktualisieren Sie Ihre Prozesse regelmäßig, um sicherzustellen, dass sie gültig bleiben, während Ihre Lösung weiterentwickelt wird.
Mandantmodell. Ihr Ansatz zur Behandlung von Kundenlebenszyklusereignissen hängt von Ihrem Mandantenmodell ab.
Vollständig mehrinstanzenfähige Lösungen mit Infrastrukturressourcen. Das Onboarding oder Offboarding eines Kunden umfasst in der Regel das Aktualisieren einer Kundenliste und zugehöriger Daten im Datenspeicher Ihrer Anwendung.
Dedizierte Ressourcen pro Kunde. Die Aufgaben umfassen in der Regel das Initiieren von Bereitstellungen in Azure, die Überwachung des Fortschritts und die Behandlung von Bereitstellungsfehlern, möglicherweise mit menschlichem Eingreifen.
Vom Kunden bereitgestellte Ressourcen. Möglicherweise müssen Sie direkt mit dem Entwicklungsteam des Kunden für das Onboarding oder Offboarding zusammenarbeiten.
Ebenen. Berücksichtigen Sie Ihr Preismodell und die unterschiedlichen Infrastrukturanforderungen jeder Stufe, insbesondere, wenn Sie es Kunden ermöglichen, ihre SKU jederzeit frei zu ändern. Wenn Ihre SaaS-Lösung beispielsweise eine Kernanwendung und mehrere kostenpflichtige Add-On-Module enthält, stellen Sie sicher, dass die Ressourcen der Kern-App während des Onboardings bereitgestellt werden. Ermöglichen Sie außerdem das dynamische Hinzufügen und Entfernen von Add-On-Modulen. Wenn ein Modul entfernt wird, entscheiden Sie, ob verknüpfte Daten gelöscht oder zur potenziellen Reaktivierung gespeichert werden sollen.
Entwurfsempfehlungen
| Empfehlung | Vorteil |
|---|---|
| Dokumentieren Sie jeden Typ des Kundenlebenszyklusereignisses. Stellen Sie sicher, dass Sie schritt-für-Schritt-Details des Prozesses für jedes Ereignis erfassen. |
Sie können planen, wie Sie auf jedes Ereignis im Lösungsentwurf reagieren. Klare Anweisungen helfen menschlichen Operatoren dabei, Konsistenz zu gewährleisten und als Grundlage für zukünftige Automatisierung zu dienen. |
| Kommunizieren Sie die gemeinsame Verantwortung zwischen Ihnen und Ihrem Kunden für jedes Lebenszyklusereignis. Kommunizieren Sie deutlich und frühzeitig darüber, welche Aktionen die Kunden erwarten, um eine Lebenszyklusstufe abzuschließen. | Sie können potenzielle Fehler und Kunden-Frustrationen reduzieren, die durch Fehlkommunikation verursacht werden. |
| Planen Sie die Kapazitätsplanung für jedes Lebenszyklusereignis. Wenn Sie beispielsweise einen neuen Kunden integrieren, planen Sie die Bereitstellung einer neuen Instanz Ihrer Anwendung, wenn vorhandene Instanzen nicht genügend Kapazität zum Verarbeiten der zusätzlichen Last haben. Weitere Informationen finden Sie unter Abrechnung und Kostenverwaltung für SaaS-Workloads in Azure. |
Sie können einfacher skalieren und Bereitstellungsfehler verhindern. |
| Automatisieren Sie Ihre Lebenszyklusereignisse, wenn sie praktisch sind. Bei Lösungen mit geringem Volumen oder frühen Phasen reicht die manuelle Bereitstellung und Konfiguration möglicherweise aus. Aber sollten weiterhin Skripts verwenden, auch wenn ein Techniker sie jedes Mal ausführt, wenn ein Lebenszyklusereignis auftritt. Wenn Ihre Lösung reift, integrieren Sie diese Verantwortlichkeiten in eine Vollzugriffsebene, um den menschlichen Fehler zu reduzieren und eine höhere Skalierung zu unterstützen. |
Sie können das erhebliche Risiko von menschlichem Fehler verringern und eine höhere Skalierung unterstützen. |
Planen Der Strategie für die Infrastrukturverwaltung
Entwickeln Sie frühzeitig eine Strategie für die Bereitstellung, Wartung und Verwaltung der Azure-Infrastruktur. Während Sie Ihre SaaS skalieren, wächst die Anzahl der Ressourcen. Es ist einfacher, eine Managementstrategie von Anfang an zu verfolgen, als die Infrastruktur später abzugleichen, wenn sie zu komplex wird, um manuell zu verarbeiten.
Überlegungen zum Entwurf
Kundenressourcenverwaltung. Ihr Mandantenmodell wirkt sich auf die Ressourcenbereitstellung in SaaS-Lösungen aus. Sie können dedizierte Azure-Ressourcen für jeden Kunden bereitstellen oder Ressourcen für eine festgelegte Anzahl von Kunden freigeben. Alternativ können Sie einen einzigen Satz gemeinsam genutzter Ressourcen verwenden und diese beim Onboarding neuer Kunden neu konfigurieren. Berücksichtigen Sie diese typischen Ansätze für die Verwaltung des Lebenszyklus der Ressourcen:
Behandeln Sie Ihre Kundenliste als Konfiguration der bereitzustellenden Ressourcen. Verwenden Sie zentralisierte Bereitstellungspipelinen, um diese Ressourcen bereitzustellen und zu konfigurieren.
Behandeln Sie Ihre Kundenliste als Daten. Verwenden Sie eine Steuerungsebenenanwendung zum Bereitstellen und Konfigurieren der Infrastruktur.
Infrastrukturautomatisierung. Viele Organisationen beginnen mit der manuellen Bereitstellung der Cloudinfrastruktur über das Azure-Portal. Diese Strategie ist zunächst einfach, wird aber im Laufe der Zeit nicht gut skaliert. Planen Sie die Automatisierung Ihrer Infrastruktureinrichtung mithilfe von Infrastructure as Code-Tools (IaC), z. B. Bicep oder Terraform. Erstellen Sie für komplexere Anforderungen eine Steuerungsebene, die Azure Resource Manager-APIs direkt verwendet.
Infrastrukturzuordnung. Verfolgen Sie, welche Kunden in welcher Infrastruktur bereitgestellt werden. Die Nachverfolgung ist wichtig für die genaue Kapazitätsplanung und Kostenzuordnung. Sie können die Kundeninfrastruktur zentral in einer Kundendatenbank nachverfolgen. Oder für dedizierte Infrastruktur verwenden Sie Azure-Ressourcenmetadaten mit kundenspezifischen Ressourcengruppen und Ressourcentags. Weitere Informationen finden Sie in der Ressourcenorganisation für SaaS-Workloads.
Entwurfsempfehlungen
| Empfehlung | Vorteil |
|---|---|
| Erstellen Sie die Infrastrukturautomatisierung mithilfe von Bereitstellungspipelines, Skripts oder Vorlagen mit Tools, mit denen Ihr Team bereits vertraut ist. | Vertraute Tools verringern das Risiko von Fehlern, da die Infrastrukturautomatisierung störend sein kann, wenn die Tools nicht verstanden werden. |
| Stellen Sie Ihre Infrastruktur nach Möglichkeit mithilfe von IaC bereit. | IaC trägt dazu bei, die manuelle Wartung zu reduzieren, was riskanter und belastender wird, wenn die Menge der Infrastruktur wächst. |
| Trennen Sie die Kerninfrastruktur von der Infrastruktur auf Kundenebene. | Verschiedene Arten von Infrastruktur weisen unterschiedliche Lebenszyklus- und Verwaltungsaktivitäten auf. Durch trennende Elemente können Sie jeden Satz unabhängig voneinander nach eigenem Zeitplan verwalten. |
| Verwenden Sie azure Managed Applications, um vom Kunden bereitgestellte Ressourcen bereitzustellen und zu verwalten. | Azure Managed Applications bietet eine Reihe von Funktionen, mit denen Sie Ressourcen innerhalb des Azure-Abonnements eines Kunden bereitstellen und verwalten können. |
Planen von Anwendungsbereitstellungen
Um die Funktionalität zu verbessern, aktualisieren Sie den Anwendungscode und die Konfiguration regelmäßig. Kunden erwarten eine konsistente Betriebszeit während Updates und sichere Rollouts, um das Risiko von Ausfällen zu minimieren.
Überlegungen zum Entwurf
Standardisieren Sie Tools und Prozesse. Die branchenbewährten DevOps-Tools tragen dazu bei, Konsistenz in allen Funktionen und Reife in den Prozessen zur Verwaltung Ihrer Anwendungsbereitstellungen sicherzustellen. In den meisten Fällen gilt die Entwicklung eigener Tools als Antipattern. Weitere Informationen finden Sie unter OE:03 Softwareentwicklungsmethoden.
Kompromiss: Komplexität und Kosten. Vertraute DevOps-Tools können kosteneffizient in Bezug auf Geld und Fähigkeiten sein. Sie fügen jedoch die betriebliche Belastung der Verwaltung jedes Tools separat hinzu. Es ist wichtig, offen für neue technologische Innovationen zu bleiben, die Ihrer Arbeitsauslastung zugute kommen könnten.
Stellen Sie Updates schrittweise bereit. Bereitstellen von Updates für Kunden in Phasen. Teilen Sie Benutzer in logische Gruppen auf, und stellen Sie gleichzeitig Änderungen an einer Gruppe bereit. Wenden Sie die gleiche Strenge auf Konfigurationsänderungen an, da sie das Codeverhalten ändern und Ausfälle verursachen können. Folgen Sie einem Bereitstellungsprozess für diese Änderungen.
Übernehmen Sie eine Versionsverwaltungsstrategie. Wenn Kunden ihre Anwendungsversion auswählen können, bietet sie Flexibilität, erschwert aber Ihre Vorgänge. Legen Sie klare Erwartungen für das Veraltet von alten Versionen fest, und erläutern Sie, was geschieht, wenn sie nicht mehr unterstützt werden.
Implementieren sie Automatisierung. Manuelle Bereitstellungen sind aufgrund von menschlichem Fehler und mangelnder Konsistenz anfällig für Risiken. Auch wenn Ihre Bereitstellungen manuell ausgelöst werden, sollten Sie den Bereitstellungsprozess so weit wie möglich automatisieren und eine minimale menschliche Aufsicht erfordern. Berücksichtigen Sie die Schritte ihres Bereitstellungsprozesses und wie Sie diese am besten automatisieren können.
Integrieren von Tests. Integrieren Sie Tests in Ihren Bereitstellungsprozess, indem Sie Folgendes ausführen:
- Komponententests während des Codebuilds.
- Integrationstests nach der Bereitstellung.
- Regelmäßige Leistungstests.
- Regelmäßige Sicherheits- und Penetrationstests.
Entscheiden Sie über einen Aktionsplan, wenn tests zu einem beliebigen Zeitpunkt fehlschlagen.
Fehlgeschlagene Bereitstellungen. Planen Sie Bereitstellungsfehler, indem Sie erforderliche Aktionen in Betracht ziehen und eine Rollbackstrategie vorbereiten.
Zugriff auf Kundenumgebungen. Wenn Sie Ressourcen in Kundenumgebungen bereitstellen, verstehen Sie, wie Sie Updates in diesen Umgebungen anwenden können. Berücksichtigen Sie Funktionen, die von Azure Managed Applications bereitgestellt werden, z. B. die Bereitstellung von Updates für Anwendungen.
Entwurfsempfehlungen
| Empfehlung | Vorteil |
|---|---|
| Verwenden Sie bewährte DevOps-Tools und -Prozesse, um Ihre Anwendungsbereitstellungen zu verwalten. In den meisten Fällen gilt die Entwicklung eigener Tools als Antipattern. Weitere Informationen finden Sie unter OE:03 Softwareentwicklungsmethoden. |
Mit dieser Strategie kann sichergestellt werden, dass Ihr Entwicklungsteam Anwendungen effektiv bereitstellt, indem sie keine benutzerdefinierten Tools erlernen müssen. |
| Benachrichtigen Sie Kunden proaktiv über bevorstehende oder abgeschlossene Bereitstellungen. | Diese Strategie kann dazu beitragen, dass die richtigen Erwartungen an Ihre Kunden hinsichtlich bevorstehender Änderungen an Ihrer Anwendung festgelegt werden. |
| Übernehmen Sie sichere Bereitstellungsverfahren, die Updates für Kundengruppen über Strategien wie progressive Expositions- und Gesundheitsmodelle bereitstellen. Beginnen Sie mit weniger sensiblen oder Early Adopter-Kunden, bevor Sie zu einer breiteren Kundenbasis wechseln. Weitere Informationen finden Sie unter Empfehlungen für sichere Vorgehensweisen bei der Bereitstellung. |
Diese Strategie kann Ihnen helfen, Probleme zu identifizieren, bevor sie alle Kunden betreffen. |
| Behandeln Sie Konfiguration als Code. | Sie können die Wahrscheinlichkeit von Ausfallzeiten verringern und einen konsistenten Prozess für Produktionsänderungen übernehmen. Dieser Ansatz zentralisiert die betrieblichen Verantwortlichkeiten, z. B. Das Testen von Änderungen und das schrittweise Rollout von Updates für Konfiguration und Code. |
| Definieren Sie einen Änderungsverwaltungsprozess und kommunizieren Sie eine Versionsaktualisierungsrichtlinie, um sicherzustellen, dass Kunden wissen, wer Updates, ihre Häufigkeit und Bedingungen auslöst. Wenn Kunden die Möglichkeit haben, ihre Anwendungsversion auszuwählen, legen Sie klare Richtlinien für die Abschreibung alter Versionen fest. Minimieren Sie die Anzahl der Anwendungsversionen, die in der Produktion ausgeführt werden. |
Die Aufrechterhaltung älterer Versionen führt zu einer betrieblichen Ineffizienz. Sorgen Sie für die notwendige Kontrolle für Ihre Kunden, und vermeiden Sie die Überlastung Ihres Teams, indem Sie klare Erwartungen und Richtlinien festlegen. |
| Vermeiden Sie das Anpassen von Anwendungen für einen einzelnen Kunden. Um unterschiedliche Kundenanforderungen zu unterstützen, können Sie entweder verschiedene Ebenen Ihrer Lösung erstellen oder Featurekennzeichnungen verwenden, um bestimmte Funktionen für bestimmte Benutzer zu aktivieren. |
Vermeiden Sie Mehrdeutigkeit darüber, welche Features in welcher Version bereitgestellt werden, und verringern Sie Ihre Wartungslast. |
| Führen Sie einen Rollbackplan für fehlgeschlagene Bereitstellungen durch, einschließlich kriterien für das Auslösen und die erforderlichen Genehmigungen. | Rollbackpläne tragen dazu bei, dass Sie sich selbst unter unvorhergesehenen Umständen von Bereitstellungsfehlern erholen können. |
| Testen Sie Ihre Anwendung regelmäßig und in mehreren Phasen des Softwareentwicklungsprozesses. Übernehmen Sie einen Shift-Left-Ansatz und erkennen Sie Fehler und Abweichungen frühzeitig im Lebenszyklus. | Vermeiden Sie kritische Fehler, die Sich auf Ihre Kunden auswirken. |
Weitere Ressourcen
Multitenancy ist eine Kern-Geschäftsmethodik für das Entwerfen von SaaS-Workloads. Die folgenden Artikel enthalten weitere Informationen zur Einführung von DevOps-Praktiken:
- Architekturansätze für die Bereitstellung und Konfiguration mehrinstanzenfähiger Lösungen
- Überlegungen zum Aktualisieren einer Mehrinstanzenlösung
- Überlegungen zu mehrinstanzenfähigen Steuerungsebenen
- Architekturansätze für Steuerungsebenen in mandantenfähigen Lösungen
Nächster Schritt
Erfahren Sie mehr über Überlegungen zur Vorfallverwaltung zum Implementieren von Prozessen und Tools, die eine SaaS-Lösung in Azure unterstützen.