Empfehlungen für sichere Bereitstellungspraktiken
Hierfür gilt die Empfehlung der Power Platform Well-Architected Operational Excellence-Checkliste:
OE:10 | Definieren Sie eindeutig die sicheren Bereitstellungspraktiken Ihrer Workload. Betonen Sie die Ideale kleiner, inkrementeller und qualitätsgesteuerter Release-Methoden. Verwenden Sie moderne Bereitstellungsmuster, um Risiken zu kontrollieren. Berücksichtigen Sie routinemäßige Bereitstellungen sowie Notfall- bzw. Hotfixbereitstellungen. |
---|
Dieses Anleitung beschreibt die Empfehlungen für die Verwendung sicherer Bereitstellungspraktiken. Sichere Bereitstellungsprozesse und -verfahren definieren, wie Sie Änderungen an Ihrer Workload sicher vornehmen und bereitstellen. Um diese umzusetzen, müssen Sie Bereitstellungen aus der Perspektive des Risikomanagements betrachten. Durch die Implementierung dieser Vorgehensweisen können Sie das Risiko menschlicher Fehler bei Ihren Bereitstellungen minimieren und die Auswirkungen problematischer Bereitstellungen auf Ihre Benutzer begrenzen.
Wichtige Designstrategien
Bei der Implementierung sicherer Bereitstellungspraktiken müssen Sie wichtige Richtlinien beachten:
- Sicherheit und Konsistenz: Alle Änderungen an der Produktionsarbeitslast sind von Natur aus riskant und müssen mit Blick auf Sicherheit und Konsistenz vorgenommen werden.
- Gesundheitsmodelle: Bereitstellungen müssen Gesundheitsprüfungen bestehen, bevor jede Phase der schrittweisen Offenlegung beginnen kann.
- Problemerkennung: Wenn Probleme erkannt werden, sollte die Bereitstellung sofort gestoppt und eine Wiederherstellung eingeleitet werden.
Die folgenden Abschnitte enthalten detaillierte Empfehlungen zu jedem dieser Punkte.
Sicherheit und Konsistenz
Unabhängig davon, ob Sie ein Update Ihres Anwendungscodes, Ihrer Infrastruktur als Code (IaC), Ihres Feature-Flags oder Ihrer Konfiguration bereitstellen, setzen Sie die Arbeitslast einem Risiko aus. Es gibt keine Bereitstellungen in der Produktion mit geringem Risiko. Jede Bereitstellung muss einem Standardmuster folgen und sollte automatisiert werden, um die Konsistenz sicherzustellen und das Risiko menschlicher Fehler zu minimieren. Es ist von entscheidender Bedeutung, dass Ihre Workload-Lieferkette und Bereitstellungspipelines zuverlässig und sicher sind und über klar definierte Bereitstellungsstandards verfügen. Behandeln Sie jede Bereitstellung als mögliches Risiko, und unterziehen Sie jede Bereitstellung dem gleichen Maß an Risikomanagement.
Trotz der Risiken sollten Sie weiterhin regelmäßig Änderungen an Ihrer Workload vornehmen. Das Versäumnis, regelmäßige Updates bereitzustellen, bringt andere Risiken mit sich, beispielsweise Sicherheitslücken, die durch die Bereitstellung behoben werden müssen. Erfahren Sie mehr in den Empfehlungen zum Entwerfen einer Workload-Entwicklung Lieferkette.
Häufige kleine Bereitstellungen sind seltenen großen Bereitstellungen vorzuziehen. Kleine Änderungen lassen sich bei auftretenden Problemen leichter beheben und häufige Bereitstellungen helfen Ihrem Team, Vertrauen in den Bereitstellungsprozess aufzubauen. Es ist auch wichtig, dass Sie aus der Produktion lernen, indem Sie Ihre Workload-Prozesse überprüfen, wenn Sie während der Bereitstellung auf eine Anomalie stoßen. Möglicherweise finden Sie Schwachstellen im Design Ihrer Infrastruktur oder beim Rollout. Wenn während der Bereitstellung Probleme auftreten, stellen Sie sicher, dass Ihr Prozess Postmortem-Analysen ohne Schuldzuweisungen umfasst, um Lehren aus dem Vorfall zu ziehen.
Integritätsmodelle
Entwickeln Sie im Rahmen Ihrer Plattform zur Einblicksüberwachung und Ihrer Zuverlässigkeitsstrategien ein robustes Integritätsmodell. Ihr Integritätsmodell sollte detaillierte Einblicke in die Komponenten und die allgemeine Integrität der Workload bieten. Überwachen Sie die Integritätsmetriken nach einem Rollout genau. Wenn Sie während der Einführung eine Warnmeldung über eine Änderung des Zustands erhalten, untersuchen Sie das Problem umgehend und legen Sie die nächsten Schritte fest, z. B. das Rückgängigmachen der Änderung. Wenn Benutzer keine Probleme melden und alle Integritätsindikatoren grün bleiben, sollte der Rollout fortgesetzt werden. Achten Sie darauf, Nutzungsmetriken in Ihr Integritätsmodell aufzunehmen, um sicherzustellen, dass sich hinter dem Fehlen von Benutzermeldungen und negativen Integritätssignalen kein Problem verbirgt. Weitere Informationen finden Sie in den Empfehlungen zur Durchführung einer Fehlermöglichkeitsanalyse.
Problemerkennung
Wenn Ihre Bereitstellung ein Problem in einer der Rollout-Gruppen verursacht, muss der Rollout sofort gestoppt werden. Untersuchen Sie die Ursache des Problems und die Schwere der Auswirkungen, sobald die Warnung eingeht. Die Behebung des Problems kann Folgendes umfassen:
- Rollback durch Rückgängigmachen der in der Bereitstellung vorgenommenen Änderungen und Zurückkehren zur letzten bekannten funktionierenden Konfiguration.
- Fortsetzen durch Beheben des Problems während der Einführung. Sie können Probleme während der Einführung beheben, indem Sie einen Hotfix anwenden oder das Problem auf andere Weise minimieren.
- Bereitstellen einer neuen Infrastruktur unter Verwendung der letzten bekannten funktionierenden Konfiguration.
Das Rückgängigmachen von Änderungen, insbesondere von Datenbank-, Schema- oder anderen Statuskomponentenänderungen, kann komplex sein. Ihre Richtlinien für sichere Bereitstellungspraktiken sollten klare Anweisungen zum Umgang mit Datenänderungen entsprechend dem Datenbestandsentwurf für Ihre Arbeitslast enthalten. Ebenso muss das Rollforwarding sorgfältig gehandhabt werden, um sicherzustellen, dass sichere Bereitstellungsprozesse nicht vernachlässigt werden und dass der Hotfix oder andere Minimierungsmaßnahmen sicher durchgeführt werden.
Allgemeine Empfehlungen
Implementieren Sie eine Versionsverwaltung für alle Ihre Build-Artefakte, um sicherzustellen, dass Sie bei Bedarf ein Zurück- oder Fortsetzen des Rollouts durchführen können.
Verwenden Sie anstelle eines Gitflows oder einer umgebungsbasierten Verzweigungsstruktur einen Release-Flow oder eine Trunk-basierte Verzweigungsstruktur, die eine eng synchronisierte Zusammenarbeit im gesamten Entwicklungsteam erzwingt.
Automatisieren Sie Ihren sicheren Bereitstellungsprozess so weit wie möglich. Weitere Informationen finden Sie in den Empfehlungen zur Implementierung der Automatisierung.
Verwenden Sie Continuous Integration-Praktiken (CI), um Codeänderungen regelmäßig in Repositorys zu integrieren. CI-Praktiken können Ihnen dabei helfen, Integrationskonflikte zu erkennen und die Wahrscheinlichkeit großer, riskanter Zusammenführungen zu verringern. Erfahren Sie mehr in den Empfehlungen zur kontinuierlichen Integration.
Verwenden Sie Feature-Flags, um neue Features oder Änderungen in der Produktion selektiv zu aktivieren oder zu deaktivieren. Mithilfe von Feature-Flags können Sie die Freigabe von neuem Code steuern und bei auftretenden Problemen die Bereitstellung schnell rückgängig machen.
Stellen Sie Änderungen in Stagingumgebungen bereit, die Ihre Produktionsumgebung widerspiegeln. Übungsumgebungen ermöglichen Ihnen, Änderungen in einer kontrollierten Umgebung zu testen, bevor Sie sie in der Liveumgebung bereitstellen.
Führen Sie vor der Bereitstellung Prüfungen durch, darunter Codeüberprüfungen, Sicherheitsscans und Konformitätsprüfungen, um sicherzustellen, dass die Änderungen sicher bereitgestellt werden können.
Implementieren Sie Leistungsschalter, um den Datenverkehr zu einem Dienst, bei dem Probleme auftreten, automatisch zu stoppen und eine weitere Verschlechterung des Systems zu verhindern.
Notfallprotokolle
Legen Sie verbindliche Protokolle fest, die definieren, wie Ihre sicheren Bereitstellungsprozesse für einen Hotfix oder für Notfallprobleme wie eine Sicherheitsverletzung oder die Offenlegung einer Sicherheitsanfälligkeit angepasst werden können. Ihre Notfallprotokolle könnten beispielsweise Folgendes umfassen:
- Beschleunigung der Promotion- und Genehmigungsphase
- Beschleunigung von Smoke-Tests und Integrationstests
- Verkürzung der Backzeit
In manchen Fällen kann es durch den Notfall zu Einschränkungen bei der Qualität und beim Testen kommen, aber die Gates sollten dennoch so schnell wie möglich als Out-of-Band-Übung ausgeführt werden. Stellen Sie sicher, dass Sie festlegen, wer im Notfall eine Beschleunigung des sicheren Einsatzes genehmigen kann, und welche Kriterien für die Genehmigung einer Beschleunigung erfüllt sein müssen. Ausrichten Ihre Notfallprotokolle mit Ihrem Notfall-Antwort-Plan , um sicherzustellen, dass alle Notfälle gemäß denselben Protokollen behandelt werden.
Überlegungen
Der Aufbau und die Aufrechterhaltung sicherer Bereitstellungspraktiken sind komplex. Ihr Erfolg bei der vollständigen Implementierung robuster Standards hängt von der Reife Ihrer Praktiken in vielen Bereichen der Softwareentwicklung ab. Der Einsatz von Automatisierung, IaC-only für Infrastrukturänderungen, Konsistenz bei Verzweigungsstrategien, Feature-Flags und anderen Praktiken können zur Gewährleistung einer sicheren Bereitstellung beitragen. Nutzen Sie diese Anleitung, um Ihre Workload zu optimieren und Ihre Verbesserungspläne im Zuge der Weiterentwicklung Ihrer Abläufe zu erstellen.
Power Platform: schnellere Durchführung
Pipelines zielen darauf ab, das Application Lifecycle Management (ALM) für Power Platform und Dynamics 365-Kunden zu demokratisieren, indem ALM-Automatisierung sowie Funktionen für kontinuierliche Integration und kontinuierliche Bereitstellung (CI/CD) in den Dienst integriert werden. Power Platform
Microsoft Power Platform Mit Build Tools für Azure DevOps können allgemeine Build- und Bereitstellungsaufgaben im Zusammenhang mit auf Power Platform erstellten Apps automatisiert werden.
GitHub Actions ermöglicht es Entwicklern, automatisierte Workflows für den Softwareentwicklungslebenszyklus zu erstellen. Power Platform Mit GitHub-Aktionen für Microsoft Power Platform können Sie Workflows in Ihrem Repository erstellen, um Apps zu erstellen, zu testen, zu paketieren, freizugeben und bereitzustellen, Automatisierungen durchzuführen und Bots und andere Komponenten zu verwalten, die auf Power Platform erstellt wurden.
ALM Accelerator ist ein Open-Source-Tool, das aus einer Reihe von Anwendungen, Skripten und Pipelines besteht, die zur Automatisierung des kontinuierlichen Integrations-/Lieferprozesses entwickelt wurden.
Automatisieren Sie Tests mit Azure Pipelines.
Umgebung-Variablen in Lösungen speichern die Parameterschlüssel und -werte, die dann als Eingabe für andere Anwendungsobjekte dienen. Durch Trennen der Parameter von den verwendenden Objekten können Sie die Werte in derselben Umgebung oder bei der Migration von Lösungen in andere Umgebungen ändern.
Power Platform Umgebungen bieten eine Point-in-Time-Wiederherstellungsfunktion, die Ihnen beim Rollback helfen kann.