Checkliste für DevOps

DevOps ist die Verschmelzung von Entwicklung, Qualitätssicherung und IT-Vorgängen in eine einheitliche Kultur und einen einheitlichen Prozesssatz für die Bereitstellung von Software. Verwenden Sie diese Checkliste als Ausgangspunkt, um Ihre DevOps-Kultur und -Prozesse zu bewerten.

Kultur

Sorgen Sie für eine einheitliche geschäftliche Ausrichtung aller Organisationen und Teams. Konflikte in Bezug auf Ressourcen, Zweck, Ziele und Prioritäten in einer Organisation können ein Risiko für einen erfolgreichen Betrieb darstellen. Sorgen Sie dafür, dass die Geschäfts-, Entwicklungs- und Betriebsteams die gleichen Ziele verfolgen.

Sorgen Sie dafür, dass Ihr Team den Softwarelebenszyklus kennt und versteht. Ihr Team muss den gesamten Lebenszyklus Ihrer Anwendungen kennen und wissen, in welcher Phase dieses Lebenszyklus sich die einzelnen Anwendungen jeweils befinden. Mit diesen Informationen wissen alle Teammitglieder, welche Aufgaben gerade zu erledigen sind und welche Aufgaben sie für die Zukunft planen und vorbereiten müssen.

Verkürzen Sie die Zykluszeiten. Versuchen Sie, den Zeitraum zwischen einer ersten Idee und der entwickelten, nutzbaren Software zu verkürzen. Begrenzen Sie Größe und Umfang einzelner Releases, um den Testaufwand so niedrig wie möglich zu halten. Automatisieren Sie Build-, Test-, Konfigurations- und Bereitstellungsprozesse, wo immer dies möglich ist. Beseitigen Sie alle möglicherweise vorhandenen Kommunikationshindernisse innerhalb des Entwicklungsteams und zwischen den Entwicklungs- und Betriebsteams.

Prüfen und verbessern Sie Prozesse. Ihre Prozesse und Verfahren – sowohl automatisiert als auch manuell – sollten nie als final betrachtet werden. Setzen Sie regelmäßige Überprüfungen aktueller Workflows, Verfahren und Dokumentationsmaterialien an. Das Ziel ist eine kontinuierliche Verbesserung.

Sorgen Sie für eine proaktive Planung. Planen Sie proaktiv für mögliche Fehler. Richten Sie Prozesse ein, um auftretende Probleme schnell identifizieren, zur Behebung an die richtigen Teammitglieder eskalieren und die Problemlösung bestätigen zu können.

Lernen Sie aus Fehlern. Fehler lassen sich nicht vermeiden, und es ist wichtig, daraus zu lernen, damit sie sich nicht wiederholen. Wenn ein Fehler im Betrieb auftritt, kategorisieren Sie ihn, dokumentieren Sie Ursache und Lösung, und geben Sie die aus dem Fehler gezogenen Schlussfolgerungen weiter. Aktualisieren Sie Ihre Buildprozesse nach Möglichkeit, damit solche Fehler in Zukunft automatisch erkannt werden.

Optimieren Sie Ihre Verfahren im Hinblick auf Geschwindigkeit, und sammeln Sie Daten. Jede geplante Verbesserung ist eine Hypothese. Arbeiten Sie in möglichst kleinen Schritten. Betrachten Sie neue Ideen als Experimente. Instrumentieren Sie die Experimente, sodass Sie Produktionsdaten sammeln können, um die Effektivität der Experimente zu bewerten. Seien Sie Fail-Fast-fähig, wenn die Hypothese sich als falsch herausstellt.

Planen Sie genügend Zeit für Lernprozesse ein. Sowohl aus Fehlern als auch aus Erfolgen lässt sich Neues lernen. Bevor Sie neue Projekte in Angriff nehmen, planen Sie genügend Zeit ein, um wichtige Erkenntnisse zu sammeln, und sorgen Sie dafür, dass Ihr Team diese nutzt und umsetzt. Lassen Sie Ihrem Team auch genügend Zeit, um sich neue Kenntnisse und Fähigkeiten anzueignen, zu experimentieren und neue Tools und Verfahren kennenzulernen.

Dokumentieren Sie Vorgänge. Dokumentieren Sie alle Tools, Prozesse und automatisierten Aufgaben in der gleichen Qualität wie Ihren Produktcode. Dokumentieren Sie den aktuellen Entwurf und die aktuelle Architektur aller Systeme, die Sie unterstützen. Vergessen Sie auch die Wiederherstellungsprozesse und andere Wartungsverfahren nicht. Konzentrieren Sie sich auf die Schritte, die Sie tatsächlich ausführen, nicht auf die Prozesse, die theoretisch optimal wären. Überprüfen und aktualisieren Sie Ihre Dokumentation regelmäßig. Achten Sie darauf, dass Code aussagekräftige Kommentare enthält, insbesondere in öffentlichen APIs. Verwenden Sie nach Möglichkeit Tools, um die Codedokumentation automatisch zu generieren.

Geben Sie Wissen weiter. Dokumentationsmaterialien sind nur dann nützlich, wenn Benutzer wissen, dass sie vorhanden und wo sie zu finden sind. Stellen Sie sicher, dass die Dokumentation gut organisiert und problemlos aufzufinden ist. Seien Sie kreativ: Geben Sie Wissen beispielsweise in informellen Präsentationen, Videos oder Newslettern weiter.

Entwicklung

Stellen Sie für Entwickler Umgebungen bereit, die die gleichen Merkmale aufweisen wie Produktionsumgebungen. Wenn die Entwicklungs- und Testumgebungen nicht mit der Produktionsumgebung übereinstimmen, lassen sich Probleme nur sehr schwer testen und diagnostizieren. Richten Sie die Entwicklungs- und Testumgebungen so ein, dass sie Ihrer Produktionsumgebung so ähnlich wie möglich sind. Stellen Sie sicher, dass die Testdaten konsistent mit den Daten sind, die in der Produktion verwendet werden – auch wenn es sich (aus Gründen des Datenschutzes oder aufgrund rechtlicher Vorschriften) nicht um echte Produktionsdaten handelt, sondern um Testdaten. Planen Sie die Generierung und Anonymisierung von Beispieldaten für Tests.

Stellen Sie sicher, dass alle autorisierten Teammitglieder die Infrastruktur einrichten und Anwendungen bereitstellen können. Zum Einrichten ähnlicher Ressourcen wie in der Produktionsumgebung und zum Bereitstellen der Anwendung sollten keine komplizierten manuellen Aufgaben oder detaillierten technischen Systemkenntnisse erforderlich sein. Jede Person mit den richtigen Berechtigungen sollte in der Lage sein, produktionsähnliche Ressourcen zu erstellen oder bereitzustellen, ohne Ihr Betriebsteam involvieren zu müssen.

Diese Empfehlung impliziert nicht, dass jede Person Liveupdates in eine Produktionsbereitstellung übertragen kann. Es geht darum, es den Entwicklungs- und QA-Teams so einfach wie möglich zu machen, produktionsähnliche Umgebungen zu erstellen.

Instrumentieren Sie jede Anwendung, um die richtigen Erkenntnisse zu erhalten. Um die Integrität Ihrer Anwendungen zu verstehen, müssen Sie wissen, wie leistungsfähig sie sind und ob Fehler oder Probleme auftreten. Schließen Sie die Instrumentierung immer in die Designanforderungen ein, und integrieren Sie sie von Anfang an in jede Anwendung. Die Instrumentierung muss eine Ereignisprotokollierung für die Ursachenermittlung umfassen. Sie muss auch Telemetrie- und Metrikdaten beinhalten, damit Integrität und Nutzung jeder Anwendung überwacht werden können.

Verfolgen Sie Ihre technischen Schulden nach. In vielen Projekten wird Releasezeitplänen bis zu einem gewissen Grad höhere Priorität eingeräumt als der Codequalität. Dokumentieren Sie alle Abkürzungen und andere suboptimale Implementierungen, und planen Sie Zeit ein, um diese Probleme erneut zu überprüfen.

Erwägen Sie, Updates direkt in die Produktionsumgebung zu übermitteln. Um den Releasezyklus insgesamt zu verkürzen, ziehen Sie in Betracht, ordnungsgemäß getestete Codecommits direkt in die Produktionsumgebung zu übermitteln. Verwenden Sie Feature Toggles, um zu steuern, welche Features Sie aktivieren. So können Sie schnell von der Entwicklung zum Release umschalten, indem Sie die Toggles verwenden, um Features zu aktivieren oder zu deaktivieren. Toggles sind auch hilfreich bei Tests wie Canary Releases, bei denen Sie ein bestimmtes Feature für einen Teil der Produktionsumgebung bereitstellen.

Testen

Automatisieren Sie das Testing. Das manuelle Testen von Software ist mühsam und fehleranfällig. Automatisieren Sie häufige Testaufgaben, und integrieren Sie die Tests in Ihre Buildprozesse. Mit automatisierten Tests können Sie sicherstellen, dass Tests alle notwendigen Funktionen abdecken und sich wiederholen lassen. Für Tests der integrierten Benutzeroberfläche sollten Sie ebenfalls ein automatisiertes Tool verwenden. Azure bietet Entwicklungs- und Testressourcen, die Sie bei der Konfiguration und Ausführung von Tests unterstützen. Weitere Informationen finden Sie unter Entwickeln und Testen in Azure.

Testen Sie auf Fehler. Wenn ein System keine Verbindung mit einem Dienst herstellen kann, sollte es ordnungsgemäß reagieren. Und wenn der Dienst wieder verfügbar ist, sollte sich das System wiederherstellen. Integrieren Sie Fault-Injection-Tests standardmäßig in die Überprüfung von Test- und Stagingumgebungen. Wenn Ihre Testprozesse und -verfahren ausgereift sind, ziehen Sie in Betracht, diese Tests in der Produktionsumgebung auszuführen.

Testen Sie in der Produktion. Ein Releaseprozess endet nicht mit der Bereitstellung in der Produktion. Richten Sie Tests ein, um sicherzustellen, dass der bereitgestellte Code erwartungsgemäß funktioniert. Bei Bereitstellungen, die Sie nur selten aktualisieren, planen Sie Produktionstests als regulären Bestandteil der Wartung.

Automatisieren Sie Leistungstests, um Leistungsprobleme frühzeitig zu erkennen. Die Auswirkungen eines ernsthaften Leistungsproblems können genauso schwerwiegend sein wie ein Fehler im Code. Automatisierte Funktionstests können zwar Anwendungsfehler verhindern, erkennen aber möglicherweise keine Leistungsprobleme. Definieren Sie akzeptable Leistungsziele für Metriken wie Latenz, Ladezeiten und Ressourcennutzung. Integrieren Sie automatisierte Leistungstests in Ihre Pipeline, um sicherzustellen, dass Ihre Anwendung diese Ziele erfüllt.

Führen Sie Kapazitätstests durch. Auch wenn eine Anwendung unter Testbedingungen gut funktioniert, können in der Produktion aufgrund von Skalierungs- oder Ressourceneinschränkungen Probleme auftreten. Definieren Sie immer die maximal zu erwartenden Grenzwerte hinsichtlich Kapazität und Nutzung. Führen Sie Tests aus, um sicherzustellen, dass die Anwendung diese Grenzwerte bewältigen kann. Testen Sie jedoch auch, was passiert, wenn sie überschritten werden. Führen Sie in regelmäßigen Abständen Kapazitätstests durch.

Nach dem ersten Release sollten Sie immer dann Leistungs- und Kapazitätstests durchführen, wenn Sie den Produktionscode aktualisieren. Verwenden Sie Verlaufsdaten, um Tests zu optimieren und zu bestimmen, welche Arten von Tests nötig sind.

Führen Sie automatisierte Penetrationstests durch. Die Gewährleistung der Sicherheit Ihrer Anwendung ist genauso wichtig wie das Testen jeder anderen Funktionalität. Richten Sie automatisierte Penetrationstests als standardmäßigen Bestandteil Ihres Build- und Bereitstellungsprozesses ein. Planen Sie regelmäßige Sicherheitstests und Überprüfungen auf Sicherheitsrisiken für bereitgestellte Anwendungen. Überwachen Sie das System auf offene Ports, Endpunkte und Angriffe. Automatisierte Tests entbinden Sie jedoch nicht von der Verpflichtung, in regelmäßigen Abständen detaillierte Sicherheitsüberprüfungen durchzuführen.

Führen Sie automatisierte Tests bezüglich der Geschäftskontinuität durch. Entwickeln Sie Tests für die Geschäftskontinuität in großem Umfang, einschließlich Wiederherstellung aus Sicherungen und Failovermechanismen. Richten Sie automatisierte Prozesse ein, um diese Tests regelmäßig durchzuführen.

Release

Automatisieren Sie Bereitstellungen. Automatisierung bietet viele Vorteile, wie z. B.:

  • Ermöglicht schnellere und zuverlässigere Bereitstellungen.
  • Sorgt für konsistente Bereitstellungen für jede unterstützte Umgebung, einschließlich Test, Staging und Produktion.
  • Beseitigt das Risiko von menschlichen Fehlern, das bei manuellen Bereitstellungen besteht.
  • Vereinfacht Releases zu passenden Uhrzeiten, um Auswirkungen möglicher Ausfallzeiten zu minimieren.

Automatisieren Sie den Prozess der Bereitstellung jeder Anwendung in Ihren Test-, Staging- und Produktionsumgebungen. Legen Sie Systeme fest, um Probleme während des Rollouts zu erkennen, und halten Sie ein automatisiertes Verfahren zum Ausführen eines Rollforwards für Fehler oder eines Rollbacks von Änderungen bereit.

Nutzen Sie Continuous Integration. Continuous Integration (CI) ist ein Verfahren, mit dem regelmäßig der gesamte Entwicklungscode in einer zentralen Codebasis zusammengeführt wird (Merging). Darauf basierend werden automatisch die standardmäßigen Build- und Testprozesse ausgeführt. CI stellt sicher, dass ein ganzes Team gleichzeitig ohne Konflikte mit der gleichen Codebasis arbeiten kann. CI hilft auch dabei, Fehler im Code so frühzeitig wie möglich zu finden. Ein CI-Prozess sollte optimalerweise jedes Mal ausgeführt werden, wenn Sie Code committen oder einchecken. Er sollte mindestens einmal pro Tag ausgeführt werden.

Erwägen Sie den Einsatz eines trunkbasierten Entwicklungsmodells. In diesem Modell committen Entwickler ihren Code in einen einzelnen Branch (Trunk). Eine Anforderung lautet, dass Commits einen Build nicht unterbrechen dürfen. Dieses Modell vereinfacht die CI, da alle Featureaufgaben im Trunk ausgeführt und mögliche Mergekonflikte aufgelöst werden, wenn der Commit erfolgt.

Ziehen Sie Continuous Delivery in Betracht. Continuous Delivery (CD) ist ein Verfahren, um sicherzustellen, dass Code jederzeit bereitgestellt werden kann. Dieses Verfahren führt automatische Build-, Test- und Bereitstellungsprozesse für den Code in produktionsähnlichen Umgebungen aus. Indem Sie durch Hinzufügen von CD eine vollständige CI/CD-Pipeline schaffen, können Sie Codefehler schnellstmöglich erkennen. Außerdem stellen Sie auf diese Weise sicher, dass Sie ordnungsgemäß getestete Updates innerhalb kurzer Zeit veröffentlichen können.

Continuous Deployment ist ein Prozess, der automatisch alle Updates, die durch eine CI/CD-Pipeline weitergegeben wurden, in der Produktion bereitstellt. Für Continuous Deployment sind stabile, automatische Tests und eine komplexe Prozessplanung erforderlich. Dieser Ansatz ist möglicherweise nicht für alle Teams geeignet.

Nehmen Sie kleine inkrementelle Änderungen vor. Bei umfangreichen Codeänderungen ist das Risiko größer, dass sich Fehler einschleichen. Nehmen Sie Änderungen nach Möglichkeit nur in geringem Umfang vor. So können Sie die möglichen Auswirkungen jeder Änderung eingrenzen und Fehler einfacher nachvollziehen und debuggen.

Steuern Sie die Verbreitung von Änderungen. Stellen Sie sicher, dass Sie vollständige Kontrolle darüber haben, welche Updates für Endbenutzer*innen sichtbar sein sollen. Verwenden Sie ggf. Feature Toggles, um zu steuern, wann Features für Endbenutzer*innen aktiviert werden.

Implementieren Sie Strategien für die Releaseverwaltung, um das Bereitstellungsrisiko zu senken. Die Bereitstellung eines Anwendungsupdates in der Produktion birgt immer ein gewisses Risiko. Um dieses Risiko zu minimieren, nutzen Sie Strategien wie z. B. Canary Releases oder Blau-/Grün-Bereitstellungen, um Updates nur für einen Teil der Benutzer*innen bereitzustellen. Überprüfen Sie bei jedem Update, ob es erwartungsgemäß funktioniert, und führen Sie es dann im restlichen System ein.

Dokumentieren Sie alle Änderungen. Kleine Updates und Konfigurationsänderungen können zu Irritationen und Versionskonflikten führen. Führen Sie eine sorgfältige Liste sämtlicher Änderungen – ganz egal, wie klein eine Änderung auch sein mag. Protokollieren Sie jede Art von Änderung, z.B. von Ihnen aufgespielte Patches oder Richtlinien- und Konfigurationsänderungen. Die Liste der Änderungen sollte für Ihr gesamtes Team sichtbar sein. Speichern Sie keine vertraulichen Daten in diesen Protokollen. Protokollieren Sie z. B., dass Anmeldeinformationen aktualisiert wurden und wer die Änderung vorgenommen hat. Führen Sie jedoch nicht die aktualisierten Anmeldeinformationen auf.

Ziehen Sie in Betracht, die Infrastruktur unveränderlich zu machen. Eine unveränderliche Infrastruktur basiert auf dem Prinzip, dass Sie die Infrastruktur nach dem Bereitstellen in der Produktion nicht mehr ändern. Andernfalls kann es zu einem Zustand kommen, in dem Ad-hoc-Änderungen angewendet wurden, sodass es schwierig ist, die genauen Änderungen zu identifizieren. Bei einer unveränderlichen Infrastruktur werden im Rahmen jeder neuen Bereitstellung ganze Server ausgetauscht. So können Sie Code und Hostingumgebung als Block testen und bereitstellen. Nach der Bereitstellung ändern Sie Infrastrukturkomponenten frühestens im nächsten Build- und Bereitstellungszyklus.

Überwachung

Sorgen Sie dafür, dass Systeme überwacht werden können. Ihr Betriebsteam sollte jederzeit transparenten Einblick in die Integrität und den Status eines Systems oder Diensts haben. Richten Sie externe Integritätsendpunkte für die Statusüberwachung ein, und programmieren Sie Anwendungen so, dass Betriebsmetriken instrumentiert werden. Verwenden Sie ein allgemeines und konsistentes Schema, mit dem Sie Ereignisse systemübergreifend korrelieren können. Azure-Diagnose und Application Insights sind die Standardmethoden zum Nachverfolgen der Integrität und des Status von Azure-Ressourcen. Azure Monitor ermöglicht auch die zentralisierte Überwachung und Verwaltung für Cloud- oder Hybridlösungen.

Aggregieren und korrelieren Sie Protokolle und Metriken. Ein ordnungsgemäß instrumentiertes Telemetriesystem liefert eine große Menge an Rohdaten zur Leistung und Ereignisprotokollen. Stellen Sie sicher, dass Ihr System Telemetrie- und Protokolldaten schnell verarbeitet und korreliert, sodass dem Betriebsteam jederzeit der aktuelle Stand der Systemintegrität angezeigt wird. Sie sollten Daten so organisieren und anzeigen, dass Sie eine zusammenhängende Übersicht über Probleme erhalten und feststellen können, ob Ereignisse miteinander in Verbindung stehen.

In der Aufbewahrungsrichtlinie Ihres Unternehmens finden Sie die Anforderungen in Bezug darauf, wie Daten verarbeitet werden und wie lange sie gespeichert werden müssen.

Implementieren Sie automatische Warnungen und Benachrichtigungen. Richten Sie Überwachungstools wie Monitor ein, um Muster oder Bedingungen zu erkennen, die auf potenzielle oder aktuelle Probleme hindeuten. Senden Sie Benachrichtigungen an Teammitglieder, die Probleme beheben können. Optimieren Sie die Warnungen, um falsch positive Ergebnisse zu vermeiden.

Überwachen Sie den Ablauf von Assets und Ressourcen. Manche Ressourcen wie Zertifikate haben ein Ablaufdatum. Verfolgen Sie genau nach, welche Ressourcen ablaufen, wann sie ablaufen und von welchen Diensten oder Features diese Ressourcen benötigt werden. Verwenden Sie automatisierte Prozesse, um diese Assets zu überwachen. Benachrichtigen Sie Ihr Betriebsteam, bevor ein Asset abläuft, und eskalieren Sie das Problem, falls durch den Ablauf eine Störung von Anwendungen droht.

Verwaltung

Automatisieren Sie Betriebsaufgaben. Die manuelle Ausführung der immer gleichen Betriebsprozesse ist fehleranfällig. Automatisieren Sie diese Aufgaben nach Möglichkeit, um eine konsistente Ausführung und Qualität sicherzustellen. Verwenden Sie die Quellcodeverwaltung, um Code zu versionieren, der die Automatisierung implementiert. Testen Sie Ihre Automatisierungstools wie jeden anderen Code auch.

Implementieren Sie die Bereitstellung als „Infrastructure-as-Code“. Minimieren Sie den Umfang manueller Konfigurationsaufgaben, die Sie für die Bereitstellung von Ressourcen ausführen müssen. Verwenden Sie stattdessen Skripts und Azure Resource Manager-Vorlagen. Verwenden Sie die Quellcodeverwaltung für die Skripts und Vorlagen, wie bei jedem anderen von Ihnen verwalteten Code auch.

Ziehen Sie die Verwendung von Containern in Betracht. Container bieten eine standardmäßige, paketbasierte Schnittstelle für die Bereitstellung von Anwendungen. Wenn Sie Container verwenden, stellen Sie die Anwendung mithilfe eigenständiger Pakete bereit, die alle Softwareelemente, Abhängigkeiten und Dateien enthalten, die zum Ausführen der Anwendung erforderlich sind. So lässt sich der Bereitstellungsprozess erheblich vereinfachen.

Container erstellen auch eine Abstraktionsschicht zwischen einer Anwendung und dem zugrunde liegenden Betriebssystem, die für umgebungsübergreifende Konsistenz sorgt. Diese Abstraktion kann einen Container auch von anderen Prozessen oder Anwendungen isolieren, die auf einem Host ausgeführt werden.

Implementieren Sie Resilienz und Selbstreparatur. Resilienz bezeichnet die Fähigkeit einer Anwendung, nach Ausfällen eine Wiederherstellung durchzuführen. Resilienzstrategien umfassen Wiederholungsversuche nach vorübergehenden Fehlern sowie Failover in eine sekundäre Instanz oder sogar in eine andere Region. Weitere Informationen finden Sie unter Entwerfen zuverlässiger Azure-Anwendungen. Instrumentieren Sie Ihre Anwendungen, damit Probleme sofort gemeldet werden und Sie Ausfälle oder andere Systemfehler beheben können.

Erstellen Sie ein Betriebshandbuch. Ein Betriebshandbuch oder Runbook dokumentiert die Verfahren und Verwaltungsinformationen, die vom Betriebspersonal für die Wartung eines Systems benötigt werden. Dokumentieren Sie des Weiteren alle Betriebsszenarien und Pläne für die Schadenminimierung, die nach einem Ausfall oder einer anderen Unterbrechung des Diensts ins Spiel kommen können. Erstellen Sie diese Dokumentation während des Entwicklungsprozesses, und halten Sie sie danach immer auf dem neuesten Stand. Behandeln Sie diese Ressourcen als lebendige Dokumente, die Sie regelmäßig überprüfen, testen und verbessern müssen.

Es ist von entscheidender Bedeutung, diese Dokumentation für alle Benutzer freizugeben, die sie benötigen. Fordern Sie die Teammitglieder auf, zur Dokumentation beizutragen und ihr Wissen zu teilen. Ihr gesamtes Team sollte Zugriff auf die Dokumente haben. Machen Sie es den Mitgliedern möglichst einfach, die Dokumente auf dem neuesten Stand zu halten.

Dokumentieren Sie Verfahren für Bereitschaftsdienste. Stellen Sie sicher, dass alle Pflichten, Zeitpläne und Verfahren für Bereitschaftsdienste dokumentiert sind und allen Teammitgliedern zur Verfügung gestellt wurden. Halten Sie diese Informationen immer auf dem neuesten Stand.

Dokumentieren Sie Eskalationsverfahren im Fall von Abhängigkeiten von Drittanbietern. Wenn Ihre Anwendung von externen Drittanbieterdiensten abhängig ist, die nicht Ihrer direkten Kontrolle unterliegen, müssen Sie einen Plan entwickeln, wie bei Ausfällen verfahren werden soll. Erstellen Sie eine Dokumentation Ihrer geplanten Prozesse für die Schadenminimierung. Fügen Sie Informationen zu Supportkontakten und Eskalationspfaden ein.

Sorgen Sie für Konfigurationsverwaltung. Planen Sie Konfigurationsänderungen, machen Sie sie für das Betriebsteam sichtbar, und zeichnen Sie sie auf. Zu diesem Zweck können Sie eine Datenbank für die Konfigurationsverwaltung verwenden oder einen Configuration-as-Code-Ansatz wählen. Überprüfen Sie Konfiguration regelmäßig, um sicherzustellen, dass die erwarteten Einstellungen tatsächlich vorhanden sind.

Erwerben Sie einen Azure-Supportplan, und informieren Sie sich über den Supportprozess. Azure bietet viele Supportpläne. Ermitteln Sie den Plan, der sich für Ihre Anforderungen am besten eignet, und stellen Sie sicher, dass das gesamte Team den Plan kennt und weiß, wie vorzugehen ist. Alle Teammitglieder müssen die Einzelheiten des Plans kennen und wissen, wie der Supportprozess funktioniert und wie sie in Azure ein Supportticket eröffnen. Wenn Sie ein Ereignis erwarten, das sich in hohem Maß auf Ihre Anwendung auswirken wird, kann der Azure-Support Ihnen beim Erhöhen der Dienstlimits helfen. Weitere Informationen finden Sie unter Häufig gestellte Fragen zu Azure-Supportplänen.

Befolgen Sie beim Gewähren von Zugriff auf Ressourcen das Prinzip der geringsten Rechte. Gehen Sie beim Verwalten des Zugriffs auf Ressourcen mit großer Umsicht vor. Der Zugriff sollte standardmäßig verweigert werden, sofern einem Benutzer oder einer Benutzerin nicht explizit Zugriff auf eine Ressource gewährt wurde. Gewähren Sie Benutzer*innen nur Zugriff auf diejenigen Ressourcen, die sie zum Erledigen ihrer Aufgaben benötigen. Verfolgen Sie Benutzerberechtigungen nach, und führen Sie regelmäßige Sicherheitsüberwachungen durch.

Verwenden Sie die Azure RBAC. Das Zuweisen von Benutzerkonten und des Zugriffs auf Ressourcen sollte kein manueller Vorgang sein. Verwenden Sie die rollenbasierte Zugriffssteuerung in Azure (Azure Role-Based Access Control, Azure RBAC), um basierend auf Azure Active Directory-Identitäten und -Gruppen Zugriff zu gewähren.

Verwenden Sie ein System zur Nachverfolgung von Problemen. Ohne eine gute Methode zum Nachverfolgen von Problemen kann es schnell passieren, dass etwas übersehen wird, Aufgaben doppelt erledigt werden oder sich neue Probleme einschleichen. Verlassen Sie sich nicht auf eine informelle Kommunikation zwischen Benutzern, um den Status von Fehlern nachzuverfolgen. Verwenden Sie ein Tool zum Nachverfolgen von Fehlern, um Details zu Problemen aufzuzeichnen, Ressourcen zur Behebung zuzuweisen und ein Überwachungsprotokoll in Bezug auf Fortschritt und Status bereitzustellen.

Verwalten Sie alle Ressourcen in einem Change Management-System. Wenn Sie alle Aspekte Ihres DevOps-Prozesses in ein Verwaltungs- und Versionsverwaltungssystem einbeziehen, können Sie Änderungen problemlos nachverfolgen und überwachen. Beziehen Sie Code, Infrastruktur, Konfiguration, Dokumentation und Skripts ein. Behandeln Sie all diese Arten von Ressourcen im gesamten Test-, Build- und Reviewprozess als Code.

Verwenden Sie Checklisten. Mit Vorgangschecklisten lassen sich Prozesse leichter befolgen. Bei umfangreichen Leitfäden kann es leicht passieren, dass etwas übersehen wird. Durch eine Checkliste dagegen wird die Aufmerksamkeit auf Details gelenkt, die andernfalls möglicherweise nicht bemerkt worden wären. Verwalten und pflegen Sie die Checklisten, und suchen Sie kontinuierlich nach Möglichkeiten, Aufgaben zu automatisieren und Prozesse zu optimieren.

Nächste Schritte