Checkliste für DevOpsDevOps Checklist

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.DevOps is the integration of development, quality assurance, and IT operations into a unified culture and set of processes for delivering software. Verwenden Sie diese Checkliste als Ausgangspunkt, um Ihre DevOps-Kultur und -Prozesse zu bewerten.Use this checklist as a starting point to assess your DevOps culture and process.

KulturCulture

Sorgen Sie für eine einheitliche geschäftliche Ausrichtung aller Organisationen und Teams.Ensure business alignment across organizations and teams. Konflikte in Bezug auf Ressourcen, Zweck, Ziele und Prioritäten in einer Organisation können ein Risiko für einen erfolgreichen Betrieb darstellen.Conflicts over resources, purpose, goals, and priorities within an organization can be a risk to successful operations. Stellen Sie sicher, dass die Geschäfts-, Entwicklungs- und Betriebsteams die gleichen Ziele verfolgen.Ensure that the business, development, and operations teams are all aligned.

Stellen Sie sicher, dass das gesamte Team den Softwarelebenszyklus versteht.Ensure the entire team understands the software lifecycle. Ihr Team muss den Gesamtlebenszyklus der Anwendung verstehen und wissen, in welcher Lebenszyklusphase die Anwendung sich derzeit befindet.Your team needs to understand the overall lifecycle of the application, and which part of the lifecycle the application is currently in. So wissen alle Teammitglieder, welche Aufgaben gerade zu erledigen sind und wie sie die zukünftige Entwicklung planen und vorbereiten müssen.This helps all team members know what they should be doing now, and what they should be planning and preparing for in the future.

Verkürzen Sie die Zykluszeiten.Reduce cycle time. Versuchen Sie, die Zeitspanne zwischen der ersten Idee und einer nutzbaren entwickelten Software zu verkürzen.Aim to minimize the time it takes to move from ideas to usable developed software. Begrenzen Sie Größe und Umfang einzelner Releases, um den Testaufwand so niedrig wie möglich zu halten.Limit the size and scope of individual releases to keep the test burden low. Automatisieren Sie die Build-, Test-, Konfigurations- und Bereitstellungsprozesse, wo immer dies möglich ist.Automate the build, test, configuration, and deployment processes whenever possible. Beseitigen Sie alle möglicherweise vorhandenen Kommunikationshindernisse innerhalb des Entwicklerteams und zwischen Entwickler- und Betriebsteam.Clear any obstacles to communication among developers, and between developers and operations.

Prüfen und verbessern Sie Prozesse.Review and improve processes. Ihre Prozesse und Verfahren – sowohl automatisiert als auch manuell – sollten nie als final betrachtet werden.Your processes and procedures, both automated and manual, are never final. Setzen Sie regelmäßige Überprüfungen aktueller Workflows, Verfahren und Dokumentationsmaterialien an. Das Ziel ist eine kontinuierliche Verbesserung.Set up regular reviews of current workflows, procedures, and documentation, with a goal of continual improvement.

Sorgen Sie für eine proaktive Planung.Do proactive planning. Planen Sie proaktiv für mögliche Fehler.Proactively plan for failure. Richten Sie Prozesse ein, um auftretende Probleme schnell zu identifizieren, zur Behebung an die richtigen Teammitglieder zu eskalieren und die Problemlösung zu bestätigen.Have processes in place to quickly identify issues when they occur, escalate to the correct team members to fix, and confirm resolution.

Lernen Sie aus Fehlern.Learn from failures. Fehler lassen sich nicht vermeiden, und es ist wichtig, daraus zu lernen, damit sie sich nicht wiederholen.Failures are inevitable, but it's important to learn from failures to avoid repeating them. Wenn ein Fehler im Betrieb auftritt, kategorisieren Sie ihn, dokumentieren Ursache und Lösung, und geben Sie die aus dem Fehler gezogenen Schlussfolgerungen weiter.If an operational failure occurs, triage the issue, document the cause and solution, and share any lessons that were learned. Aktualisieren Sie Ihre Buildprozesse nach Möglichkeit, damit diese Art Fehler in Zukunft automatisch erkannt wird.Whenever possible, update your build processes to automatically detect that kind of failure in the future.

Optimieren Sie Ihr System im Hinblick auf Geschwindigkeit und Datensammlung.Optimize for speed and collect data. Jede geplante Verbesserung ist eine Hypothese.Every planned improvement is a hypothesis. Arbeiten Sie in möglichst kleinen Schritten.Work in the smallest increments possible. Betrachten Sie neue Ideen als Experimente.Treat new ideas as experiments. Instrumentieren Sie die Experimente, sodass Sie Produktionsdaten sammeln können, um deren Effektivität zu bewerten.Instrument the experiments so that you can collect production data to assess their effectiveness. Seien Sie darauf vorbereitet, Fail-Fast-fähig zu sein, wenn die Hypothese sich als falsch herausstellt.Be prepared to fail fast if the hypothesis is wrong.

Planen Sie genügend Zeit für Lernprozesse ein.Allow time for learning. Sowohl aus Fehlern als auch aus Erfolgen lässt sich Neues lernen.Both failures and successes provide good opportunities for learning. Bevor Sie neue Projekte in Angriff nehmen, planen Sie genügend Zeit ein, um die wichtigsten Erkenntnisse zusammenzustellen, und stellen Sie sicher, dass Ihr Team diese Erkenntnisse entsprechend umsetzt.Before moving on to new projects, allow enough time to gather the important lessons, and make sure those lessons are absorbed by your team. Lassen Sie dem Team auch genügend Zeit, um sich neue Kenntnisse und Fähigkeiten anzueignen, zu experimentieren und neue Tools und Techniken kennenzulernen.Also give the team the time to build skills, experiment, and learn about new tools and techniques.

Dokumentieren Sie Vorgänge.Document operations. Dokumentieren Sie alle Tools, Prozesse und automatisierten Aufgaben in der gleichen Qualität wie Ihren Produktcode.Document all tools, processes, and automated tasks with the same level of quality as your product code. Dokumentieren Sie den aktuellen Entwurf und die aktuelle Architektur aller Systeme, die Sie unterstützen. Vergessen Sie auch die Wiederherstellungsprozesse und andere Wartungsverfahren nicht.Document the current design and architecture of any systems you support, along with recovery processes and other maintenance procedures. Konzentrieren Sie sich auf die Schritte, die tatsächlich ausgeführt werden, nicht auf die Prozesse, die theoretisch optimal wären.Focus on the steps you actually perform, not theoretically optimal processes. Überprüfen und aktualisieren Sie die Dokumentation regelmäßig.Regularly review and update the documentation. Wenn es um den Code geht, stellen Sie sicher, dass er aussagekräftige Kommentare enthält – insbesondere in öffentlichen APIs –, und verwenden Sie nach Möglichkeit Tools zum automatischen Generieren der Codedokumentation.For code, make sure that meaningful comments are included, especially in public APIs, and use tools to automatically generate code documentation whenever possible.

Geben Sie Wissen weiter.Share knowledge. Dokumentationsmaterialien sind nur dann nützlich, wenn Benutzer wissen, dass sie vorhanden und wo sie zu finden sind.Documentation is only useful if people know that it exists and can find it. Stellen Sie sicher, dass die Dokumentation gut organisiert und problemlos aufzufinden ist.Ensure the documentation is organized and easily discoverable. Seien Sie kreativ: Geben Sie Wissen beispielsweise in informellen Präsentationen, Videos oder Newslettern weiter.Be creative: Use brown bags (informal presentations), videos, or newsletters to share knowledge.

EntwicklungDevelopment

Stellen Sie für Entwickler Umgebungen bereit, die die gleichen Merkmale aufweisen wie Produktionsumgebungen.Provide developers with production-like environments. Wenn die Entwicklungs- und Testumgebungen nicht der Produktionsumgebung entsprechen, lassen sich Probleme nur sehr schwer testen und diagnostizieren.If development and test environments don't match the production environment, it is hard to test and diagnose problems. Richten Sie daher die Entwicklungs- und Testumgebungen so ein, dass sie der Produktionsumgebung so ähnlich wie möglich sind.Therefore, keep development and test environments as close to the production environment as possible. 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.Make sure that test data is consistent with the data used in production, even if it's sample data and not real production data (for privacy or compliance reasons). Planen Sie die Generierung und Anonymisierung von Beispieldaten für Tests.Plan to generate and anonymize sample test data.

Stellen Sie sicher, dass alle autorisierten Teammitglieder die Infrastruktur einrichten und die Anwendung bereitstellen können.Ensure that all authorized team members can provision infrastructure and deploy the application. Um produktionsähnliche Ressourcen einzurichten und die Anwendung bereitzustellen, sollten keine komplizierten manuellen Aufgaben oder detaillierten technischen Systemkenntnisse erforderlich sein.Setting up production-like resources and deploying the application should not involve complicated manual tasks or detailed technical knowledge of the system. Jeder Benutzer mit der richtigen Berechtigung sollte in der Lage sein, produktionsähnliche Ressourcen zu erstellen oder bereitzustellen, ohne das Betriebsteam involvieren zu müssen.Anyone with the right permissions should be able to create or deploy production-like resources without going to the operations team.

Diese Empfehlung impliziert nicht, dass jeder Benutzer Liveupdates in die Produktionsbereitstellung übertragen kann.This recommendation doesn't imply that anyone can push live updates to the production deployment. Es geht darum, es den Entwicklungs- und QA-Teams so einfach wie möglich zu machen, produktionsähnliche Umgebungen zu erstellen.It's about reducing friction for the development and QA teams to create production-like environments.

Instrumentieren Sie die Anwendung, um Einblicke zu erhalten.Instrument the application for insight. Um die Integrität Ihrer Anwendung bewerten zu können, müssen Sie wissen, wie leistungsfähig sie ist und ob Fehler oder Probleme auftreten.To understand the health of your application, you need to know how it's performing and whether it's experiencing any errors or problems. Schließen Sie die Instrumentierung immer in die Designanforderungen ein, und integrieren Sie sie von Anfang an in die Anwendung.Always include instrumentation as a design requirement, and build the instrumentation into the application from the start. Die Instrumentierung muss eine Ereignisprotokollierung für die Ursachenermittlung umfassen. Sie muss ebenfalls die Sammlung von Telemetrie- und Metrikdaten beinhalten, um die Integrität und Nutzung der Anwendung insgesamt zu überwachen.Instrumentation must include event logging for root cause analysis, but also telemetry and metrics to monitor the overall health and usage of the application.

Verfolgen Sie Ihre technischen Schulden nach.Track your technical debt. In vielen Projekten können Releasezeitpläne bis zu einem gewissen Grad Vorrang vor der Codequalität erhalten.In many projects, release schedules can get prioritized over code quality to one degree or another. Wenn dies der Fall ist, stellen Sie eine sorgfältige Nachverfolgung sicher.Always keep track when this occurs. Dokumentieren Sie alle Abkürzungen und andere suboptimale Implementierungen, und planen Sie für zukünftige Releases Zeit ein, um diese Probleme erneut anzugehen.Document any shortcuts or other suboptimal implementations, and schedule time in the future to revisit these issues.

Erwägen Sie, Updates direkt in die Produktionsumgebung zu übermitteln.Consider pushing updates directly to production. Um den Releasezyklus insgesamt zu beschleunigen, ziehen Sie in Betracht, ordnungsgemäß getestete Codecommits direkt in die Produktionsumgebung zu übermitteln.To reduce the overall release cycle time, consider pushing properly tested code commits directly to production. Verwenden Sie Feature Toggles, um zu steuern, welche Features aktiviert sind.Use feature toggles to control which features are enabled. So können Sie schnell von der Entwicklung zum Release gelangen, indem Sie die Toggles verwenden, um Features zu aktivieren oder zu deaktivieren.This allows you to move from development to release quickly, using the toggles to enable or disable features. Toggles sind auch hilfreich bei Tests wie Canary Releases, bei denen ein bestimmtes Feature nur für einen Teil der Produktionsumgebung bereitgestellt wird.Toggles are also useful when performing tests such as canary releases, where a particular feature is deployed to a subset of the production environment.

TestenTesting

Automatisieren Sie das Testing.Automate testing. Das manuelle Testen von Software ist mühsam und fehleranfällig.Manually testing software is tedious and susceptible to error. Automatisieren Sie häufige Testaufgaben, und integrieren Sie die Tests in Ihren Buildprozess.Automate common testing tasks and integrate the tests into your build processes. Mit automatisierten Tests können Sie sicherstellen, dass Tests alle notwendigen Funktionen abdecken und sich wiederholen lassen.Automated testing ensures consistent test coverage and reproducibility. Tests der integrierten Benutzeroberfläche sollten ebenfalls durch ein automatisiertes Tool durchgeführt werden.Integrated UI tests should also be performed by an automated tool. Azure bietet Entwicklungs- und Testressourcen, die Sie bei der Konfiguration und Ausführung von Tests unterstützen.Azure offers development and test resources that can help you configure and execute testing. Weitere Informationen finden Sie unter Entwicklung und Test.For more information, see Development and test.

Testen Sie auf Fehler.Test for failures. Wie reagiert ein System, wenn es keine Verbindung zu einem Dienst herstellen kann?If a system can't connect to a service, how does it respond? Kann es sich selbst wiederherstellen, sobald der Dienst wieder verfügbar ist?Can it recover once the service is available again? Integrieren Sie Fault Injection-Tests als standardmäßigen Bestandteil der Überprüfung in Test- und Stagingumgebungen.Make fault injection testing a standard part of review on test and staging environments. Wenn Ihre Testprozesse und -verfahren ausgereift sind, ziehen Sie in Betracht, diese Tests in der Produktionsumgebung auszuführen.When your test process and practices are mature, consider running these tests in production.

Testen Sie in der Produktion.Test in production. Der Releaseprozess endet nicht mit der Bereitstellung in der Produktion.The release process doesn't end with deployment to production. Richten Sie Tests ein, um sicherzustellen, dass der bereitgestellte Code erwartungsgemäß funktioniert.Have tests in place to ensure that deployed code works as expected. Bei Bereitstellungen, die nur selten aktualisiert werden, planen Sie Produktionstests als regulären Bestandteil der Wartung.For deployments that are infrequently updated, schedule production testing as a regular part of maintenance.

Automatisieren Sie Leistungstests, um Leistungsprobleme frühzeitig zu erkennen.Automate performance testing to identify performance issues early. Die Auswirkungen eines ernsthaften Leistungsproblems können genauso schwerwiegend sein wie ein Fehler im Code.The impact of a serious performance issue can be as severe as a bug in the code. Automatisierte Funktionstests können zwar Anwendungsfehler verhindern, erkennen aber möglicherweise keine Leistungsprobleme.While automated functional tests can prevent application bugs, they might not detect performance problems. Definieren Sie akzeptable Leistungsziele für Metriken wie Latenz, Ladezeiten und Ressourcennutzung.Define acceptable performance goals for metrics like latency, load times, and resource usage. Integrieren Sie automatisierte Leistungstests in Ihre Pipeline, um sicherzustellen, dass die Anwendung diese Ziele erfüllt.Include automated performance tests in your release pipeline, to make sure the application meets those goals.

Führen Sie Kapazitätstests durch.Perform capacity testing. Auch wenn eine Anwendung unter Testbedingungen gut funktioniert, können in der Produktion aufgrund von Skalierungs- oder Ressourceneinschränkungen Probleme auftreten.An application might work fine under test conditions, and then have problems in production due to scale or resource limitations. Definieren Sie immer die maximal zu erwartenden Grenzwerte hinsichtlich Kapazität und Nutzung.Always define the maximum expected capacity and usage limits. Führen Sie Tests aus, um sicherzustellen, dass die Anwendung diese Einschränkungen bewältigen kann. Testen Sie jedoch auch, was passiert, wenn diese Grenzwerte überschritten werden.Test to make sure the application can handle those limits, but also test what happens when those limits are exceeded. Kapazitätstests sollten regelmäßig durchgeführt werden.Capacity testing should be performed at regular intervals.

Nach dem ersten Release sollten Sie immer dann Leistungs- und Kapazitätstests durchführen, wenn der Produktionscode aktualisiert wird.After the initial release, you should run performance and capacity tests whenever updates are made to production code. Verwenden Sie Verlaufsdaten, um Tests zu optimieren und zu bestimmen, welche Arten von Tests durchgeführt werden müssen.Use historical data to fine-tune tests and to determine what types of tests need to be performed.

Führen Sie automatisierte Penetrationstests durch.Perform automated security penetration testing. Die Bereitstellung von Anwendungssicherheit ist genauso wichtig wie das Testen jeder anderen Funktionalität.Ensuring your application is secure is as important as testing any other functionality. Richten Sie automatisierte Penetrationstests als standardmäßigen Bestandteil des Build- und Bereitstellungsprozesses ein.Make automated penetration testing a standard part of the build and deployment process. Planen Sie regelmäßige Sicherheitstests und Überprüfungen auf Sicherheitsrisiken für bereitgestellte Anwendungen. Überwachen Sie das System auf offene Ports, Endpunkte und Angriffe.Schedule regular security tests and vulnerability scanning on deployed applications, monitoring for open ports, endpoints, and attacks. Automatisierte Tests entbinden Sie jedoch nicht von der Verpflichtung, in regelmäßigen Abständen detaillierte Sicherheitsüberprüfungen durchzuführen.Automated testing does not remove the need for in-depth security reviews at regular intervals.

Führen Sie automatisierte Tests bezüglich der Geschäftskontinuität durch.Perform automated business continuity testing. Entwickeln Sie Tests für die Geschäftskontinuität in großem Umfang, einschließlich Wiederherstellung aus Sicherungen und Failovermechanismen.Develop tests for large-scale business continuity, including backup recovery and failover. Richten Sie automatisierte Prozesse ein, um diese Tests regelmäßig durchzuführen.Set up automated processes to perform these tests regularly.

ReleaseRelease

Automatisieren Sie Bereitstellungen.Automate deployments. Automatisieren Sie die Bereitstellung der Anwendung in Test-, Staging- und Produktionsumgebungen.Automate deploying the application to test, staging, and production environments. Die Automatisierung ermöglicht schnellere und zuverlässigere Bereitstellungen und stellt konsistente Bereitstellungen in jeder unterstützten Umgebung sicher.Automation enables faster and more reliable deployments, and ensures consistent deployments to any supported environment. Zudem eliminiert sie das Risiko menschlicher Fehler, die bei manuellen Bereitstellungen passieren können.It removes the risk of human error caused by manual deployments. Sie vereinfacht auch die Bereitstellung zu möglichst passenden Uhrzeiten, um mögliche Auswirkungen von Ausfallzeiten zu minimieren.It also makes it easy to schedule releases for convenient times, to minimize any effects of potential downtime. 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.Have systems in place to detect any problems during rollout, and have an automated way to roll forward fixes or roll back changes.

Nutzen Sie Continuous Integration.Use continuous integration. Continuous Integration (CI) ist ein Verfahren, mit dem regelmäßig der gesamte Entwicklercode in einer zentralen Codebasis zusammengeführt wird (Merging). Darauf basierend werden automatisch die standardmäßigen Build- und Testprozesse ausgeführt.Continuous integration (CI) is the practice of merging all developer code into a central codebase on a regular schedule, and then automatically performing standard build and test processes. Continuous Integration stellt sicher, dass das gesamte Team gleichzeitig ohne Konflikte mit der gleichen Codebasis arbeiten kann.CI ensures that an entire team can work on a codebase at the same time without having conflicts. CI stellt auch sicher, dass Fehler im Code so frühzeitig wie möglich gefunden werden.It also ensures that code defects are found as early as possible. Der CI-Prozess sollte optimalerweise jedes Mal ausgeführt werden, wenn Code committet oder eingecheckt wird.Preferably, the CI process should run every time that code is committed or checked in. Dieser Prozess sollte zumindest einmal am Tag ausgeführt werden.At the very least, it should run once per day.

Erwägen Sie den Einsatz eines trunkbasierten Entwicklungsmodells.Consider adopting a trunk based development model. In diesem Modell committen Entwickler ihren Code in einen einzelnen Branch (Trunk).In this model, developers commit to a single branch (the trunk). Eine Anforderung lautet, dass Commits den Build nicht unterbrechen dürfen.There is a requirement that commits never break the build. Dieses Modell vereinfacht die Continuous Integration, da alle Featureaufgaben im Trunk ausgeführt und mögliche Mergekonflikte aufgelöst werden, wenn der Commit erfolgt.This model facilitates CI, because all feature work is done in the trunk, and any merge conflicts are resolved when the commit happens.

Ziehen Sie Continuous Delivery in Betracht.Consider using continuous delivery. 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.Continuous delivery (CD) is the practice of ensuring that code is always ready to deploy, by automatically building, testing, and deploying code to production-like environments. Richten Sie eine vollständige CI/CD-Pipeline ein, um Codefehler so schnell wie möglich zu erkennen und sicherzustellen, dass ordnungsgemäß getestete Updates innerhalb kürzester Zeit freigegeben werden können.Adding continuous delivery to create a full CI/CD pipeline will help you detect code defects as soon as possible, and ensures that properly tested updates can be released in a very short time.

Continuous Deployment ist ein weiterer Prozess, der automatisch alle Updates, die durch die CI/CD-Pipeline weitergegeben wurden, in der Produktion bereitstellt.Continuous deployment is an additional process that automatically takes any updates that have passed through the CI/CD pipeline and deploys them into production. Continuous Deployment erfordert stabile automatische Testverfahren sowie eine erweiterte Prozessplanung und eignet sich möglicherweise nicht für jedes Team.Continuous deployment requires robust automatic testing and advanced process planning, and may not be appropriate for all teams.

Nehmen Sie kleine inkrementelle Änderungen vor.Make small incremental changes. Bei umfangreichen Codeänderungen ist das Risiko größer, dass sich Fehler einschleichen.Large code changes have a greater potential to introduce bugs. Nehmen Sie Änderungen nach Möglichkeit nur in geringem Umfang vor.Whenever possible, keep changes small. So können Sie die möglichen Auswirkungen jeder einzelnen Änderung eingrenzen und Fehler einfacher verstehen und debuggen.This limits the potential effects of each change, and makes it easier to understand and debug any issues.

Steuern Sie die Verbreitung von Änderungen.Control exposure to changes. Stellen Sie sicher, dass Sie die vollständige Kontrolle darüber haben, welche Updates für Endbenutzer sichtbar sein sollen.Make sure you're in control of when updates are visible to your end users. Verwenden Sie ggf. Feature Toggles, um zu steuern, wann Features für Endbenutzer aktiviert werden.Consider using feature toggles to control when features are enabled for end users.

Implementieren Sie Strategien für die Releaseverwaltung, um das Bereitstellungsrisiko zu senken.Implement release management strategies to reduce deployment risk. Die Bereitstellung eines Anwendungsupdates in der Produktion birgt immer ein gewisses Risiko.Deploying an application update to production always entails some risk. 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 bereitzustellen.To minimize this risk, use strategies such as canary releases or blue-green deployments to deploy updates to a subset of users. Überprüfen Sie, ob das Update erwartungsgemäß funktioniert, und führen Sie es dann im restlichen System ein.Confirm the update works as expected, and then roll the update out to the rest of the system.

Dokumentieren Sie alle Änderungen.Document all changes. Kleine Updates und Konfigurationsänderungen können zu Irritationen und Versionskonflikten führen.Minor updates and configuration changes can be a source of confusion and versioning conflict. Führen Sie eine sorgfältige Liste sämtlicher Änderungen – ganz egal, wie klein eine Änderung auch sein mag.Always keep a clear record of any changes, no matter how small. Protokollieren Sie jede Art von Änderung, z.B. aufgespielte Patches oder Richtlinien- und Konfigurationsänderungen.Log everything that changes, including patches applied, policy changes, and configuration changes. (Speichern Sie keine vertraulichen Daten in diesen Protokollen.(Don't include sensitive data in these logs. Protokollieren Sie z.B., dass Anmeldeinformationen aktualisiert wurden und welcher Benutzer die Änderung vorgenommen hat. Führen Sie jedoch nicht die aktualisierten Anmeldeinformationen auf.) Die Liste der Änderungen sollte für das gesamte Team sichtbar sein.For example, log that a credential was updated, and who made the change, but don't record the updated credentials.) The record of the changes should be visible to the entire team.

Ziehen Sie in Betracht, die Infrastruktur unveränderlich zu machen.Consider making infrastructure immutable. Eine unveränderliche Infrastruktur setzt das Prinzip um, dass die Infrastruktur nach dem Bereitstellen in der Produktion nicht mehr geändert werden darf.Immutable infrastructure is the principle that you shouldn't modify infrastructure after it's deployed to production. Andernfalls kann es zu einem Zustand kommen, in dem Ad-hoc-Änderungen angewendet wurden, sodass es schwierig ist, die genauen Änderungen zu identifizieren.Otherwise, you can get into a state where ad hoc changes have been applied, making it hard to know exactly what changed. Bei einer unveränderlichen Infrastruktur werden im Rahmen jeder neuen Bereitstellung ganze Server ausgetauscht.Immutable infrastructure works by replacing entire servers as part of any new deployment. So können Code und Hostingumgebung als Block getestet und bereitgestellt werden.This allows the code and the hosting environment to be tested and deployed as a block. Nach der Bereitstellung werden Infrastrukturkomponenten bis zum nächsten Build- und Bereitstellungszyklus nicht geändert.Once deployed, infrastructure components aren't modified until the next build and deploy cycle.

ÜberwachungMonitoring

Sorgen Sie dafür, dass Systeme überwacht werden können.Make systems observable. Das Betriebsteam sollte jederzeit klaren Einblick in die Integrität und den Status eines Systems oder Diensts haben.The operations team should always have clear visibility into the health and status of a system or service. Richten Sie externe Integritätsendpunkte für die Statusüberwachung ein, und stellen Sie sicher, dass Anwendungen so programmiert sind, dass die Betriebsmetriken instrumentiert werden.Set up external health endpoints to monitor status, and ensure that applications are coded to instrument the operations metrics. Verwenden Sie ein allgemeines und konsistentes Schema, mit dem Sie Ereignisse systemübergreifend korrelieren können.Use a common and consistent schema that helps you correlate events across systems. Azure-Diagnose und Application Insights sind die Standardmethoden zum Nachverfolgen der Integrität und des Status von Azure-Ressourcen.Azure Diagnostics and Application Insights are the standard method of tracking the health and status of Azure resources. Microsoft Operation Management Suite bietet ebenfalls zentrale Überwachungs- und Verwaltungsfunktionen für Cloud- oder Hybridlösungen.Microsoft Operation Management Suite also provides centralized monitoring and management for cloud or hybrid solutions.

Aggregieren und korrelieren Sie Protokolle und Metriken.Aggregate and correlate logs and metrics. Ein ordnungsgemäß instrumentiertes Telemetriesystem liefert eine große Menge an Rohdaten zur Leistung und Ereignisprotokollen.A properly instrumented telemetry system will provide a large amount of raw performance data and event logs. Stellen Sie sicher, dass die Telemetrie- und Protokolldaten innerhalb kürzester Zeit verarbeitet und korreliert werden, sodass dem Betriebsteam jederzeit der aktuelle Stand der Systemintegrität angezeigt wird.Make sure that telemetry and log data is processed and correlated in a short period of time, so that operations staff always have an up-to-date picture of system health. Daten sollten so organisiert und angezeigt werden, dass sie eine zusammenhängende Übersicht über Probleme bieten, sodass nach Möglichkeit ersichtlich ist, wenn Ereignisse miteinander in Verbindung stehen.Organize and display data in ways that give a cohesive view of any issues, so that whenever possible it's clear when events are related to one another.

Suchen Sie in der Aufbewahrungsrichtlinie Ihres Unternehmens nach den Anforderungen in Bezug darauf, wie Daten verarbeitet werden und wie lange sie gespeichert werden müssen.Consult your corporate retention policy for requirements on how data is processed and how long it should be stored.

Implementieren Sie automatische Warnungen und Benachrichtigungen.Implement automated alerts and notifications. Richten Sie Überwachungstools wie Azure Monitor ein, um Muster oder Bedingungen zu erkennen, die auf potenzielle oder aktuelle Probleme hinweisen. Senden Sie Warnungen an die Teammitglieder, die diese Probleme beheben können.Set up monitoring tools like Azure Monitor to detect patterns or conditions that indicate potential or current issues, and send alerts to the team members who can address the issues. Optimieren Sie die Warnungen, um falsch positive Ergebnisse zu vermeiden.Tune the alerts to avoid false positives.

Überwachen Sie den Ablauf von Assets und Ressourcen.Monitor assets and resources for expirations. Einige Ressourcen und Assets, wie z.B. Zertifikate, laufen nach einem bestimmten Zeitraum ab.Some resources and assets, such as certificates, expire after a given amount of time. Stellen Sie sicher, dass Sie genau nachverfolgen, welche Assets ablaufen, wann der Ablauf erfolgt und von welchen Diensten oder Features diese Assets benötigt werden.Make sure to track which assets expire, when they expire, and what services or features depend on them. Verwenden Sie automatisierte Prozesse, um diese Assets zu überwachen.Use automated processes to monitor these assets. Benachrichtigen Sie das Betriebsteam, bevor ein Asset abläuft, und eskalieren Sie das Problem, falls durch den Ablauf eine Störung der Anwendung droht.Notify the operations team before an asset expires, and escalate if expiration threatens to disrupt the application.

VerwaltungManagement

Automatisieren Sie Betriebsaufgaben.Automate operations tasks. Die manuelle Ausführung der immer gleichen Betriebsprozesse ist fehleranfällig.Manually handling repetitive operations processes is error-prone. Automatisieren Sie diese Aufgaben nach Möglichkeit, um eine konsistente Ausführung und Qualität sicherzustellen.Automate these tasks whenever possible to ensure consistent execution and quality. Code, der die Automatisierung implementiert, muss in der Quellcodeverwaltung versioniert werden.Code that implements the automation should be versioned in source control. Und wie bei jedem anderen Code auch müssen Automatisierungstools getestet werden.As with any other code, automation tools must be tested.

Implementieren Sie die Bereitstellung als „Infrastructure-as-Code“.Take an infrastructure-as-code approach to provisioning. Minimieren Sie den Umfang manueller Konfigurationsaufgaben, die für die Bereitstellung von Ressourcen ausgeführt werden müssen.Minimize the amount of manual configuration needed to provision resources. Verwenden Sie stattdessen Skripts und Azure Resource Manager-Vorlagen.Instead, use scripts and Azure Resource Manager templates. Verwalten Sie die Skripts und Vorlagen in der Quellcodeverwaltung, wie jeden anderen von Ihnen verwalteten Code auch.Keep the scripts and templates in source control, like any other code you maintain.

Ziehen Sie die Verwendung von Containern in Betracht.Consider using containers. Container bieten eine standardmäßige, paketbasierte Schnittstelle für die Bereitstellung von Anwendungen.Containers provide a standard package-based interface for deploying applications. Bei diesem Ansatz werden Anwendungen mithilfe von eigenständigen Paketen bereitgestellt, die alle Softwarefunktionen, Abhängigkeiten und Dateien enthalten, die zur Ausführung der Anwendung erforderlich sind. So lässt sich der Bereitstellungsprozess ganz erheblich vereinfachen.Using containers, an application is deployed using self-contained packages that include any software, dependencies, and files needed to run the application, which greatly simplifies the deployment process.

Container erstellen auch eine Abstraktionsschicht zwischen der Anwendung und dem zugrunde liegenden Betriebssystem, die für umgebungsübergreifende Konsistenz sorgt.Containers also create an abstraction layer between the application and the underlying operating system, which provides consistency across environments. Diese Abstraktion kann einen Container auch von anderen Prozessen oder Anwendungen isolieren, die auf einem Host ausgeführt werden.This abstraction can also isolate a container from other processes or applications running on a host.

Implementieren Sie Resilienz und Selbstreparatur.Implement resiliency and self-healing. Resilienz bezeichnet die Fähigkeit einer Anwendung, nach Ausfällen eine Wiederherstellung durchzuführen.Resiliency is the ability of an application to recover from failures. Resilienzstrategien umfassen Wiederholungsversuche nach vorübergehenden Fehlern sowie die Durchführung eines Failovers in eine sekundäre Instanz oder sogar in eine andere Region.Strategies for resiliency include retrying transient failures, and failing over to a secondary instance or even another region. Weitere Informationen finden Sie unter Entwerfen zuverlässiger Azure-Anwendungen.For more information, see Designing reliable Azure applications . Instrumentieren Sie Ihre Anwendungen, sodass Probleme sofort gemeldet werden und Sie Ausfälle oder andere Systemfehler beheben können.Instrument your applications so that issues are reported immediately and you can manage outages or other system failures.

Erstellen Sie ein Betriebshandbuch.Have an operations manual. Ein Betriebshandbuch oder Runbook dokumentiert die Verfahren und Verwaltungsinformationen, die vom Betriebspersonal für die Ausführung und Wartung eines Systems benötigt werden.An operations manual or runbook documents the procedures and management information needed for operations staff to maintain a system. 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.Also document any operations scenarios and mitigation plans that might come into play during a failure or other disruption to your service. Erstellen Sie diese Dokumentation während des Entwicklungsprozesses, und halten Sie sie danach immer auf dem neuesten Stand.Create this documentation during the development process, and keep it up to date afterwards. Diese Dokumentation sollte regelmäßig überprüft, getestet und verbessert werden.This is a living document, and should be reviewed, tested, and improved regularly.

Es ist von entscheidender Bedeutung, diese Dokumentation für alle Benutzer freizugeben, die sie benötigen.Shared documentation is critical. Fordern Sie die Teammitglieder auf, zur Dokumentation beizutragen und ihr Wissen zu teilen.Encourage team members to contribute and share knowledge. Das gesamte Team sollte Zugriff auf die Dokumente haben.The entire team should have access to documents. Machen Sie es den Mitgliedern möglichst einfach, die Dokumente auf dem neuesten Stand zu halten.Make it easy for anyone on the team to help keep documents updated.

Dokumentieren Sie Verfahren für Bereitschaftsdienste.Document on-call procedures. Stellen Sie sicher, dass alle Verpflichtungen, Zeitpläne und Verfahren für Bereitschaftsdienste dokumentiert sind und allen Teammitgliedern zur Verfügung gestellt wurden.Make sure on-call duties, schedules, and procedures are documented and shared to all team members. Diese Informationen müssen immer aktuell sein.Keep this information up-to-date at all times.

Dokumentieren Sie Eskalationsverfahren im Fall von Abhängigkeiten von Drittanbietern.Document escalation procedures for third-party dependencies. 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.If your application depends on external third-party services that you don't directly control, you must have a plan to deal with outages. Erstellen Sie eine Dokumentation Ihrer geplanten Prozesse für die Schadenminimierung.Create documentation for your planned mitigation processes. Fügen Sie Informationen zu Supportkontakten und Eskalationspfaden ein.Include support contacts and escalation paths.

Sorgen Sie für Konfigurationsverwaltung.Use configuration management. Konfigurationsänderungen sollten geplant werden, für Vorgänge sichtbar sein und aufgezeichnet werden.Configuration changes should be planned, visible to operations, and recorded. Hierfür können Sie eine Datenbank für die Konfigurationsverwaltung verwenden oder einen Configuration-as-Code-Ansatz wählen.This could take the form of a configuration management database, or a configuration-as-code approach. Die Konfiguration sollte regelmäßig überwacht werden, um sicherzustellen, dass die erwarteten Funktionen und Merkmale auch tatsächlich vorhanden sind.Configuration should be audited regularly to ensure that what's expected is actually in place.

Erwerben Sie einen Azure-Supportplan, und informieren Sie sich über den Prozess.Get an Azure support plan and understand the process. Azure bietet eine Reihe von Supportplänen an.Azure offers a number of support plans. 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.Determine the right plan for your needs, and make sure the entire team knows how to use it. Alle Teammitglieder müssen die Einzelheiten des Plans kennen und wissen, wie der Supportprozess funktioniert und wie sie in Azure ein Supportticket eröffnen.Team members should understand the details of the plan, how the support process works, and how to open a support ticket with Azure. 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.If you are anticipating a high-scale event, Azure support can assist you with increasing your service limits. Weitere Informationen finden Sie unter Häufig gestellte Fragen zum Azure-Support.For more information, see the Azure Support FAQs.

Befolgen Sie beim Gewähren des Zugriffs auf Ressourcen das Prinzip der geringsten Rechte.Follow least-privilege principles when granting access to resources. Gehen Sie beim Verwalten des Zugriffs auf Ressourcen mit großer Umsicht vor.Carefully manage access to resources. Standardmäßig sollte der Zugriff verweigert werden, sofern einem Benutzer nicht explizit Zugriff auf eine Ressource gewährt wurde.Access should be denied by default, unless a user is explicitly given access to a resource. Gewähren Sie Benutzern nur Zugriff auf diejenigen Ressourcen, die sie zum Durchführen ihrer Aufgaben benötigen.Only grant a user access to what they need to complete their tasks. Verfolgen Sie Benutzerberechtigungen nach, und führen Sie regelmäßige Sicherheitsüberwachungen durch.Track user permissions and perform regular security audits.

Verwenden Sie die rollenbasierte Zugriffssteuerung.Use role-based access control. Das Zuweisen von Benutzerkonten und des Zugriffs auf Ressourcen sollte kein manueller Prozess sein.Assigning user accounts and access to resources should not be a manual process. Verwenden Sie die rollenbasierte Zugriffssteuerung (Role-Based Access Control, RBAC), um Zugriff basierend auf Azure Active Directory-Identitäten und -Gruppen zu gewähren.Use role-based access control (RBAC) grant access based on Azure Active Directory identities and groups.

Verwenden Sie ein System zur Nachverfolgung von Fehlern.Use a bug tracking system to track issues. Ohne eine gute Methode zum Nachverfolgen von Fehlern kann es leicht passieren, dass etwas übersehen wird, Aufgaben doppelt ausgeführt werden oder sich zusätzliche Probleme einschleichen.Without a good way to track issues, it's easy to miss items, duplicate work, or introduce additional problems. Verlassen Sie sich nicht auf eine informelle Kommunikation zwischen Benutzern, um den Status von Fehlern nachzuverfolgen.Don't rely on informal person-to-person communication to track the status of bugs. 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.Use a bug tracking tool to record details about problems, assign resources to address them, and provide an audit trail of progress and status.

Verwalten Sie alle Ressourcen in einem Change Management-System.Manage all resources in a change management system. Alle Aspekte Ihres DevOps-Prozesses sollten in einem Verwaltungs- und Versionierungssystem enthalten sein, sodass Änderungen problemlos nachverfolgt und überwacht werden können.All aspects of your DevOps process should be included in a management and versioning system, so that changes can be easily tracked and audited. Hierzu gehören Code, Infrastruktur, Konfiguration, Dokumentation und Skripts.This includes code, infrastructure, configuration, documentation, and scripts. Behandeln Sie all diese Arten von Ressourcen über den gesamten Test-, Build- und Reviewprozess hinweg als Code.Treat all these types of resources as code throughout the test/build/review process.

Verwenden Sie Checklisten.Use checklists. Legen Sie Betriebschecklisten an, um sicherzustellen, dass die Prozesse befolgt werden.Create operations checklists to ensure processes are followed. Bei Verwendung umfangreicher Handbücher kann es leicht geschehen, dass etwas übersehen wird. Bei der Verwendung einer Checkliste dagegen wird die Aufmerksamkeit auf Details gelenkt, die andernfalls möglicherweise nicht bemerkt worden wären.It's common to miss something in a large manual, and following a checklist can force attention to details that might otherwise be overlooked. Verwalten und pflegen Sie die Checklisten, und suchen Sie kontinuierlich nach Möglichkeiten, Aufgaben zu automatisieren und Prozesse zu optimieren.Maintain the checklists, and continually look for ways to automate tasks and streamline processes.

Weitere Informationen zu DevOps finden Sie auf der Website zu Visual Studio unter Was ist DevOps?.For more about DevOps, see What is DevOps? on the Visual Studio site.