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.
Einer der Vorteile der Cloudtechnologie ist eine kontinuierliche Verbesserung und Weiterentwicklung. Als Dienstanbieter müssen Sie Updates auf Ihre Lösung anwenden. Möglicherweise müssen Sie Änderungen an Ihrem Anwendungscode, Ihrer Azure-Infrastruktur, Ihren Datenbankschemas oder einer anderen Komponente vornehmen. Es ist wichtig zu planen, wie Sie Ihre Umgebungen aktualisieren. In einer mehrinstanzenfähigen Lösung ist es besonders wichtig, sich über Ihre Updaterichtlinie zu informieren, da einige Ihrer Mandanten möglicherweise zögerlich sind, Änderungen an ihren Umgebungen zuzulassen, oder sie verfügen möglicherweise über Anforderungen, die die Bedingungen einschränken, unter denen Sie den Dienst aktualisieren können.
Wenn Sie eine Strategie zum Aktualisieren Ihrer Lösung planen, müssen Sie:
- Identifizieren Sie die Anforderungen Ihrer Mandanten.
- Klären Sie Ihre eigenen Anforderungen für den Betrieb Ihres Dienstes.
- Finden Sie ein Gleichgewicht, das sowohl Sie als auch Ihre Mandanten akzeptieren können.
- Kommunizieren Sie Ihre Strategie klar mit Ihren Mandanten und anderen Projektbeteiligten.
Dieser Artikel enthält einen Leitfaden für Entscheidungsträger im technischen Bereich zu möglichen Herangehensweisen beim Aktualisieren der Mandantensoftware und zu möglichen Nachteilen.
Anforderungen Ihrer Kunden
Kunden haben häufig explizite oder implizite Anforderungen, die sich darauf auswirken können, wie Ihr System aktualisiert wird. Berücksichtigen Sie die folgenden Aspekte, um ein Bild von allen Bedenken zu schaffen, die Kunden möglicherweise auslösen:
Erwartungen und Anforderungen: Ermitteln Sie alle Erwartungen oder Anforderungen, die Kunden möglicherweise haben, wenn ihre Lösung aktualisiert werden kann. Diese Erwartungen oder Anforderungen können in Verträgen oder Vereinbarungen auf Serviceebene formell an Sie übermittelt werden, oder sie sind informell.
Wartungsfenster: Verstehen Sie, ob Ihre Kunden servicedefinierte oder selbstdefinierte Wartungsfenster erwarten. Möglicherweise müssen sie ihren Benutzern über potenzielle Ausfälle kommunizieren. Möglicherweise erwarten sie auch, wichtige Aspekte Ihres Diensts zu testen, nachdem das Update abgeschlossen ist.
Vorschriften: Klären Sie, ob Kunden behördliche Bedenken haben, die eine zusätzliche Genehmigung erfordern, bevor Updates angewendet werden können. Wenn Sie z. B. eine Gesundheitslösung bereitstellen, die IoT-Komponenten enthält, müssen Sie möglicherweise die Genehmigung von der UNITED States Food and Drug Administration (FDA) erhalten, bevor Sie ein Update anwenden.
Empfindlichkeit: Verstehen Sie, ob eine Ihrer Kunden besonders sensibel oder widerstandsfähig ist, wenn Updates angewendet werden. Wenn dies der Grund ist, versuchen Sie zu verstehen, warum. Wenn sie beispielsweise einen physischen Store oder eine Einzelhandelswebsite ausführen, möchten sie möglicherweise Updates rund um Black Friday vermeiden, da die Risiken höher als potenzielle Vorteile sind.
Geschichte: Überprüfen Sie Ihre eigene Erfolgsbilanz bei der erfolgreichen Durchführung von Updates ohne Auswirkungen auf Ihre Kunden. Sie sollten gute DevOps-, Test-, Bereitstellungs- und Überwachungspraktiken befolgen, um die Wahrscheinlichkeit von Ausfällen zu verringern und sicherzustellen, dass Sie schnell Probleme erkennen, die Updates verursachen. Wenn Ihre Kunden wissen, dass Sie ihre Umgebungen reibungslos aktualisieren können, sind sie weniger wahrscheinlich Einwände zu erheben.
Rollback: Überlegen Sie, ob Kunden Updates zurücksetzen möchten, wenn es eine kritische Änderung gibt und wer eine solche Rollback-Anforderung auslöst.
Ihre Anforderungen
Sie müssen auch die folgenden Fragen aus eigener Sicht berücksichtigen:
Kontrolle, die Sie bereitstellen möchten: Ist es sinnvoll, dass Ihre Kunden die Kontrolle darüber haben, wann Updates angewendet werden? Wenn Sie eine Lösung erstellen, die von großen Unternehmenskunden verwendet wird, lautet die Antwort möglicherweise ja. Wenn Sie jedoch eine kundenorientierte Lösung erstellen, ist es unwahrscheinlich, dass Sie die Kontrolle darüber haben, wie Sie Ihre Lösung aktualisieren oder betreiben.
Versionen: Wie viele Versionen Ihrer Lösung können Sie gleichzeitig in angemessener Weise verwalten? Wenn Sie einen Fehler oder eine Sicherheitslücke finden und einen Hotfix anwenden müssen, müssen Sie ihn möglicherweise auf alle derzeit verwendeten Versionen anwenden.
Folgen alter Versionen: Welche Auswirkungen hat es, wenn Kunden zu weit hinter der aktuellen Version zurückbleiben? Wenn Sie neue Features regelmäßig veröffentlichen, werden alte Versionen schnell veraltet? Je nach Upgradestrategie und den Arten von Änderungen müssen Sie möglicherweise separate Infrastrukturen für jede Version Ihrer Lösung verwalten. Es kann also sowohl operative als auch finanzielle Kosten geben, da Sie die Unterstützung für ältere Versionen beibehalten.
Rollback: Kann Ihre Bereitstellungsstrategie Rollbacks für frühere Versionen unterstützen? Möchten Sie diese Funktion aktivieren?
Hinweis
Überlegen Sie, ob Sie Ihre Lösung für Updates oder Wartung offline schalten müssen. Ausfallfenster gelten im Allgemeinen als veraltete Praxis für Software as a Service (SaaS). Moderne DevOps-Praktiken und Cloudtechnologien ermöglichen es Ihnen, Ausfallzeiten während Updates und Wartungen zu vermeiden. Jedoch müssen Sie für Bereitstellungen ohne Ausfallzeiten planen. Es ist wichtig, den Updateprozess beim Planen der Lösungsarchitektur zu berücksichtigen.
Auch wenn Sie während des Updatevorgangs keine Ausfälle planen, definieren Sie möglicherweise noch ein normales Wartungsfenster. Dieser Ansatz hilft Ihren Kunden zu kommunizieren, dass Änderungen in bestimmten Zeiten auftreten.
Weitere Informationen zum Erreichen von Bereitstellungen ohne Ausfallzeiten finden Sie unter Entfernen von Ausfallzeiten durch versionsgesteuerte Dienstupdates.
Suchen eines Saldos
Wenn Sie den Rhythmus Ihrer Dienstupdates ganz in das Ermessen Ihrer Mandanten stellen, könnten sie sich dafür entscheiden, niemals zu aktualisieren. Es ist wichtig, dass Sie ihre Lösung aktualisieren können, während Sie alle angemessenen Bedenken oder Einschränkungen berücksichtigen, die Ihre Kunden möglicherweise haben. Wenn ein Kunde beispielsweise besonders auf Updates am Freitag empfindlich ist, da dies der größte Tag der Woche ist, überlegen Sie, ob Sie Updates genauso einfach auf Montag zurückstellen können, ohne dass ihre Lösung beeinträchtigt wird.
Ein Ansatz, der gut funktioniert, ist das Rollout von Updates auf Mandantenbasis mithilfe einer der Bereitstellungsstrategien. Informieren Sie Ihre Kunden über geplante Updates. Es sollte erlaubt sein, dass Kunden sich vorübergehend, aber nicht dauerhaft von einer Funktion abmelden. Ein angemessener Zeitraum sollte festgelegt werden, bis zu dem das Update angewendet werden muss.
Erwägen Sie, sich die Möglichkeit zu erlauben, Sicherheitspatches oder andere wichtige Hotfixes mit minimalem oder keinem Vorabhinweis bereitzustellen. Stellen Sie sicher, dass Mandanten diese Praxis und ihre Bedeutung beim Schutz ihrer Daten verstehen.
Ein weiterer Ansatz kann sein, Mandanten das Initiieren eigener Updates während einer von ihnen ausgewählten Zeit zu ermöglichen. Auch hier sollten Sie einen Stichtag angeben, an dem Sie das Update in ihrem Auftrag anwenden.
Warnung
Achten Sie darauf, dass Mandanten ihre eigenen Updates initiieren können. Dieser Prozess ist komplex zu implementieren und erfordert erhebliche Entwicklungs- und Testanstrengungen, um die Bereitstellung und Wartung zu gewährleisten.
Egal, was Sie tun, stellen Sie sicher, dass Sie über einen Prozess verfügen, um den Zustand Ihrer Mandanten zu überwachen, insbesondere vor und nach der Anwendung von Updates. Kritische Produktionsvorfälle, auch als Live-Site-Vorfälle bezeichnet, treten häufig nach Änderungen an Code oder Konfiguration auf. Daher ist es wichtig, proaktiv auf Probleme zu überwachen und darauf zu reagieren, um das Vertrauen der Kunden zu bewahren. Weitere Informationen finden Sie unter Vorfallverwaltung für SaaS-Workloads in Azure.
Kommunizieren mit Ihren Kunden
Klare Kommunikation ist der Schlüssel zum Aufbau des Vertrauens Ihrer Kunden. Es ist wichtig, die Vorteile regelmäßiger Updates zu erläutern, einschließlich neuer Features, Fehlerbehebungen, Beheben von Sicherheitsrisiken und Leistungsverbesserungen. Einer der Vorteile einer modernen in der Cloud gehosteten Lösung ist die fortlaufende Bereitstellung von Features und Updates.
Berücksichtigen Sie die folgenden Fragen:
Werden Sie Kunden über bevorstehende Updates benachrichtigen?
Wenn Sie dies tun, fordern Sie implizit die Berechtigung an, indem Sie einen Opt-Out-Prozess bereitstellen, und was sind die Grenzwerte für die Deaktivierung?
Verfügen Sie über ein geplantes Wartungsfenster, das Sie beim Anwenden von Updates verwenden?
Was geschieht, wenn Sie über ein Notfallupdate verfügen, z. B. einen kritischen Sicherheitspatch? Können Sie Updates in diesen Situationen erzwingen?
Wenn Sie Kunden nicht proaktiv über bevorstehende Updates benachrichtigen können, können Sie retrospektive Benachrichtigungen bereitstellen? Können Sie beispielsweise eine Seite auf Ihrer Website mit der Liste der Updates aktualisieren, die Sie angewendet haben?
Wie viele separate Versionen Ihres Systems werden Sie in der Produktion verwalten?
Kommunikation mit Ihrem Kundensupportteam
Es ist wichtig, dass Ihr eigenes Supportteam vollständige Einblicke in Updates hat, die auf die Infrastruktur jedes Mandanten angewendet wurden. Kundensupportmitarbeiter sollten in der Lage sein, die folgenden Fragen auf einfache Weise zu beantworten:
Wurden kürzlich Updates auf die Infrastruktur eines Mandanten oder auf freigegebene Komponenten angewendet?
Was war die Natur dieser Updates?
Was war die vorherige Version?
Wie häufig werden Updates auf diesen Mandanten angewendet?
Wenn eines Ihrer Kunden aufgrund eines Updates ein Problem hat, müssen Sie sicherstellen, dass Ihr Kundensupportteam über die erforderlichen Informationen verfügt, um zu verstehen, was geändert wurde.
Bereitstellungsstrategien zur Unterstützung von Updates
Überlegen Sie, wie Sie Updates für Ihre Infrastruktur bereitstellen. Ihre Updatestrategie hängt stark vom von Ihnen verwendeten Mandantenmodell ab. Drei gängige Ansätze für die Bereitstellung von Updates sind Bereitstellungsstempel, Featurekennzeichnungen und Bereitstellungsringe. Sie können diese Ansätze unabhängig voneinander verwenden oder sie kombinieren, um komplexere Anforderungen zu erfüllen.
Stellen Sie in allen Fällen sicher, dass Sie über ausreichende Berichte und Sichtbarkeit verfügen. Sie müssen wissen, welche Version der Infrastruktur, Software oder Funktion jeder Mieter nutzt, zu welcher Version sie berechtigt sind zu migrieren, und welche zeitbezogenen Daten mit diesen Versionen verbunden sind. Die Verfolgung dieser Informationen ist häufig eine der Verantwortlichkeiten einer Steuerungsebene.
Muster mit Bereitstellungsstempeln
Viele mehrinstanzenfähige Anwendungen eignen sich gut für das Muster mit Bereitstellungsstempeln. In diesem Muster stellen Sie mehrere Kopien Ihrer Anwendung und anderer Komponenten bereit. Abhängig von den Isolationsanforderungen können Sie einen Stempel für jeden Mandanten oder freigegebene Stempel bereitstellen, die Workloads mehrerer Mandanten ausführen.
Stempel sind eine hervorragende Möglichkeit, Isolation zwischen Mandanten zu erzielen. Sie bieten Ihnen auch Flexibilität für Ihren Updateprozess, da Sie Updates schrittweise über Stempel hinweg bereitstellen können, ohne dass sich dies auf andere auswirkt.
Featureflags
Featurekennzeichnungen ermöglichen es Ihnen, Ihrer Lösung Funktionen hinzuzufügen, während sie diese Funktionalität nur einer Teilmenge Ihrer Kunden oder Mandanten verfügbar machen.
Erwägen Sie die Verwendung von Featurekennzeichnungen, wenn eines dieser Szenarien für Sie gilt:
Sie stellen Updates regelmäßig bereit, möchten aber vermeiden, dass neue Funktionen angezeigt werden, bis sie vollständig implementiert sind.
Sie möchten das Anwenden von Verhaltensänderungen vermeiden, bis ein Kunde sich anmeldet.
Sie können die Unterstützung von Featurekennzeichnungen in Ihre Anwendung einbetten, indem Sie Code selbst schreiben oder einen Dienst wie Azure App Configuration verwenden.
Bereitstellungsringe
Mit Bereitstellungsringen können Sie Updates progressiv für eine Gruppe von Mandanten oder Bereitstellungsstempeln bereitstellen. Sie können in der Rollout-Sequenz jedem Ring eine Teilmenge der Mandanten zuweisen.
Sie können bestimmen, wie viele Ringe erstellt werden sollen und was jeder Ring für Ihre eigene Lösung bedeutet. Häufig verwenden Organisationen die folgenden Ringe:
Canary: Ein Canary-Ring umfasst Ihre Testmandanten und Kunden, die Updates sofort bei Verfügbarkeit erhalten möchten. Jeder im Canary-Ring sollte verstehen, dass sie möglicherweise häufigere Updates erhalten. Diese Updates haben möglicherweise nicht denselben umfassenden Validierungsprozess durchlaufen wie Updates in anderen Ringen.
Early Adopter: Ein Early Adopter-Ring enthält Mandanten, die etwas riskanter sind, aber dennoch bereit sind, regelmäßige Updates zu erhalten.
Benutzer: Die meisten Ihrer Mandanten gehören zum Benutzerring , der weniger häufige und streng getestete Updates empfängt.
API-Versionen
Wenn Ihr Dienst eine externe API verfügbar macht, sollten Sie berücksichtigen, dass alle von Ihnen angewendeten Updates sich auf die Art und Weise auswirken, wie Kunden oder Partner in Ihre Plattform integriert werden. Insbesondere müssen Sie sich über Breaking Changes Ihrer APIs bewusst sein. Erwägen Sie die Verwendung einer API-Versionsverwaltungsstrategie , um das Risiko von Updates für Ihre API zu verringern.
Beitragende
Microsoft verwaltet diesen Artikel. Die folgenden Mitwirkenden haben diesen Artikel geschrieben.
Hauptautor:
- John Downs | Principal Software Engineer, Azure Patterns & Practices
Andere Mitwirkende:
- Chad Kittel | Principal Software Engineer, Azure Patterns & Practices
- Daniel Scott-Raynsford | Partner Technology Strategist
- Arsen Vladimirskiy | Principal Customer Engineer, FastTrack für Azure
Um nicht-öffentliche LinkedIn-Profile anzuzeigen, melden Sie sich bei LinkedIn an.