Freigeben über


Empfehlungen zur Optimierung operativer Aufgaben

Gilt für die folgende Prüfliste zur Leistungseffizienz von Azure Well-Architected Framework:

PE:10 Optimieren Sie operative Aufgaben. Überwachen und minimieren Sie die Auswirkungen des Softwareentwicklungslebenszyklus und anderer Routinevorgänge auf die Workloadleistung. Zu diesen Vorgängen gehören Virenscans, Geheimnisrotationen, Sicherungen, Neuindizierung von Datenbanken und Bereitstellungen.

In diesem Leitfaden werden die Empfehlungen zur Optimierung operativer Aufgaben beschrieben. Die Optimierung operativer Aufgaben ist der Prozess der Minimierung der Auswirkungen von Aufgaben, die Sie im Rahmen von Routingworkloadvorgängen ausführen. Betriebsaktivitäten verwenden dieselben Computeressourcen wie die Workload selbst. Wenn die Auswirkungen von Betriebsaufgaben nicht berücksichtigt werden, kann die Workload ihre Leistungsziele verfehlen. Dies kann sich auch negativ auf die Leistung der Workload für Ihre Kunden auswirken.

Definitionen

Begriff Definition
Blaugrün-Bereitstellung Eine Bereitstellungsstrategie, die zwei identische Umgebungen verwendet und die Richtung des Datenverkehrs zu neuen Bereitstellungen steuert (grüne Bereitstellungen).
Datenbankindexneuerstellung Eine Wartungsaktivität, die einen Index löscht und neu erstellt.
Reorganisation des Datenbankindexes Eine Wartungsaktivität, die den aktuellen Datenbankindex optimiert.
Datenbankschema Die allgemeine Struktur einer Datenbank und ihre Beziehungen zu anderen Daten.
Bereitstellungsslot Ein Feature von Azure App Service, mit dem Sie Live-Apps mit ihren eigenen Hostnamen bereitstellen können.
Direkte Aktualisierungen Der Prozess des Upgrades einer Komponente oder Anwendung, ohne sie zu ersetzen oder in eine neue Umgebung zu migrieren.
Infrastruktur als Code (Infrastructure as Code, IaC) Ein beschreibendes Modell zum Definieren und Bereitstellen von Infrastruktur, einschließlich Netzwerken, virtuellen Computern, Lastenausgleichsmodulen und Verbindungstopologien.

Wichtige Entwurfsstrategien

Sie müssen Maßnahmen ergreifen, um die Auswirkungen des Softwareentwicklungslebenszyklus und anderer Routinevorgänge auf die Workloadleistung zu verringern. Das Ziel besteht darin, sicherzustellen, dass Routinevorgänge wie Virenscans, Geheimnisrotationen, Sicherungen, Indexoptimierung (Reorganisation oder Neuerstellung) und Bereitstellungen die Leistung der Workload nicht erheblich beeinträchtigen.

Konto für betriebsbezogene Aufgaben

Es ist wichtig, beim Festlegen von Leistungszielen operative Aufgaben zu berücksichtigen. Indem Sie Routine-, reguläre und Ad-hoc-Aufgaben in Leistungsziele integrieren, können Sie sicherstellen, dass die Workload effizient funktioniert. Um operative Aufgaben in Leistungszielen zu berücksichtigen, sind hier einige wichtige Punkte zu berücksichtigen:

  • Identifizieren sie operative Aufgaben. Identifizieren und Einbeziehen relevanter operativer Aufgaben in Leistungsziele Beispiele für Routineaufgaben können Virenüberprüfung, Datenbankindexreorganisation, Datenbankindexneuerstellung, Datenträger- oder Datenbanksicherungen, Zertifikatrotation, Patchen eines Betriebssystems, rotierende Kennwörter, rotierende API-Schlüssel, Penetrationstests und Überwachungsüberprüfungen in der Produktion umfassen.

  • Bewerten von Leistungszielen. Bewerten Sie aktuelle Leistungsziele, und passen Sie sie an, um operative Aufgaben zu berücksichtigen, die für die Workload spezifisch sind. Dadurch wird sichergestellt, dass die Leistungsziele den betrieblichen Anforderungen der Workload entsprechen.

Optimieren von Bereitstellungen

Die Optimierung von Bereitstellungen bezieht sich auf die Verfeinerung des Prozesses der Freigabe von Ressourcen und Code, um eine nahtlose Leistung und minimale Unterbrechungen zu gewährleisten. Dies umfasst die Planung, effektive Ressourcenverteilung und gründliche Tests sowohl der Infrastructure-as-Code (IaC) als auch des Anwendungscodes, bevor sie in eine Liveumgebung eingeführt werden. Unzulänglichkeiten bei der Bereitstellung können zu einer geringeren Geschwindigkeit und Effizienz einer Workload, zu potenziellen Ressourceneinschränkungen und zu einer beeinträchtigten Benutzererfahrung in der Betriebsumgebung führen. Berücksichtigen Sie die folgenden Strategien, um Bereitstellungen zu optimieren:

Bewerten Sie akzeptable Ausfallzeiten. Wenn Ausfallzeiten akzeptabel sind, können Sie Bereitstellungsstrategien implementieren, die Geschwindigkeit und Effizienz priorisieren. Es ist jedoch wichtig, die Auswirkungen von Ausfallzeiten auf geschäftsrelevante Anforderungen sorgfältig zu bewerten, bevor Sie diese Entscheidung treffen. Wenn Ausfallzeiten hingegen nicht akzeptabel sind, müssen Sie Bereitstellungsstrategien implementieren, die eine kontinuierliche Verfügbarkeit der Workload gewährleisten. Erwägen Sie, Techniken wie blau-grüne Bereitstellungen oder Canary-Bereitstellungen zu verwenden, bei denen Sie schrittweise neue Versionen der Workload bereitstellen, während Sie probleme überwachen. Diese Strategien tragen dazu bei, die Auswirkungen von Ausfallzeiten zu minimieren und eine nahtlose Benutzererfahrung zu gewährleisten.

Stellen Sie die Bereitstellung zur aktuellen instance Anzahl bereit. Sie sollten auch Bereitstellungen vermeiden, die sofortige Skalierungsvorgänge verursachen. Sie sollten keine Ressourcen in einem Livesystem mit einer so niedrigen instance Anzahl bereitstellen, dass das System gezwungen wird, sofort einen Skalierungsvorgang auszuführen. Beispielsweise stimmt Ihre IaC-Vorlage (Infrastructure-as-Code) möglicherweise nicht mit der Anzahl von Instanzen überein, die Sie zum Zeitpunkt der Bereitstellung benötigen. Es kann eine instance Anzahl von zwei aufweisen, obwohl die aktuelle bereitgestellte Umgebung acht Instanzen ausführt. Die Bereitstellung würde sechs Instanzen entfernen und sich negativ auf die Leistung auswirken.

Verwenden Sie eine blau-grüne Bereitstellungsstrategie. Bereitstellungen können Dienstunterbrechungen und Ausfallzeiten verursachen. Um diese Probleme zu beheben, wählen Sie eine Bereitstellungsstrategie aus, die die Auswirkungen auf die Leistung minimiert, z. B. eine blau-grüne Bereitstellung. Diese Ansätze ermöglichen nahtlose Übergänge zwischen Umgebungen und verringern das Risiko von Dienstunterbrechungen. Wenn Sie den Blau-Grün-Bereitstellungsansatz verwenden, verfügen Sie über zwei separate Umgebungen: die blaue und die grüne Umgebung. Wenn Probleme oder Leistungseinbußen in der grünen Umgebung erkannt werden, können Sie problemlos zu der stabilen blauen Umgebung zurückkehren. Diese Strategie hilft Ihnen, minimale Ausfallzeiten sicherzustellen und ein hohes Leistungsniveau für Ihre Workload zu gewährleisten. Führen Sie die folgenden allgemeinen Schritte aus, um die Bereitstellung mithilfe des blau-grünen Ansatzes auszuführen:

  • Stellen Sie die neue Umgebung bereit. Richten Sie die neue Umgebung (grün) zusammen mit der vorhandenen Umgebung (blau) mit der aktualisierten Version Ihrer Anwendung ein.

  • Überprüfen Sie die neue Umgebung. Bereitstellungen können latenzen und die Antwortzeiten erhöhen. Erwägen Sie das Vorwarnen von Instanzen vor der Umstellung. Die Vorwärmung umfasst die Vorbereitung der neuen Umgebung, indem produktionsähnlicher Datenverkehr und Workload simuliert werden, um sicherzustellen, dass die Umgebung bereit ist, die erwartete Last zu bewältigen. Es trägt dazu bei, die Auswirkungen auf Latenz und Antwortzeiten zu minimieren. Testen und überprüfen Sie die neue Umgebung gründlich, um sicherzustellen, dass sie ordnungsgemäß funktioniert und die Leistungserwartungen erfüllt. Das Testen hilft, Caches aufzuwärmen, Datenbankverbindungen einzurichten und sicherzustellen, dass die Umgebung bereit ist, die erwartete Last zu verarbeiten.

  • Der Datenverkehr wird schrittweise verschoben. Nachdem die neue Umgebung vorgewart und validiert wurde, verschieben Sie den Produktionsverkehr schrittweise von der alten Umgebung (blau) in die neue Umgebung (grün). Leiten Sie zunächst einen kleinen Prozentsatz des Datenverkehrs in die grüne Umgebung und erhöhen Sie ihn schrittweise, nachdem die Stabilität und die erwartete Anwendungsintegrität überprüft wurden. Sie können einen globalen Lastenausgleich oder einen Mechanismus für die Datenverkehrsverwaltung verwenden. Die kontrollierte Verschiebung des Datenverkehrs ermöglicht es Ihnen, Leistungsprobleme frühzeitig zu erkennen und Korrekturmaßnahmen zu ergreifen, bevor Sie die Workload vollständig auf die neue Umgebung umstellen.

  • Überwachen und Optimieren. Bereitstellungen können freigegebene Computingressourcen verwenden. Überwachen Sie kontinuierlich die Leistung und Integrität der neuen Umgebung, nachdem Sie den Datenverkehr verschoben haben. Nehmen Sie alle erforderlichen Optimierungen oder Anpassungen vor, um die gewünschte Leistung und Benutzererfahrung zu gewährleisten.

  • Entfernen Sie die alte Umgebung. Nachdem Sie den gesamten Datenverkehr erfolgreich in die grüne Umgebung umgestellt haben, entfernen Sie die blaue Umgebung aus vorhandenen Verbindungen. Dieser Schritt trägt dazu bei, die Kosten für die Wartung der alten Umgebung zu optimieren und sicherzustellen, dass neue Umgebungen frei von Konfigurationsabweichungen sind.

  • Wiederholen Sie den Vorgang. Für zukünftige Bereitstellungen müssen Sie die Rollen der blauen und grünen Umgebung umkehren. Stellen Sie Änderungen an der neuen blauen Umgebung bereit, überprüfen Sie sie, orchestrieren Sie den Datenverkehrsübergang, und setzen Sie die alte grüne Umgebung außer Betrieb.

Verwenden Sie mehrere Builds. Verschiedene Typen von Builds können Ihnen helfen, die Buildzeiten zu optimieren und die Qualität der Bereitstellungen sicherzustellen. Sie können beispielsweise Continuous Integration(CI)-Builds (Continuous Integration) verwenden, die mit jedem Codecommit ausgelöst werden. Sie können nächtliche Builds haben, die regelmäßig automatisierte Tests ausführen, und Releasebuilds, die für die Bereitstellung in der Produktion verwendet werden. Jeder Buildtyp sollte einen bestimmten Zweck haben, z. B. Continuous Integration, automatisierte Tests oder Produktionsbereitstellung. Das Testen und Überprüfen der Workload vor der Bereitstellung helfen, Probleme oder Fehler frühzeitig im Entwicklungsprozess zu identifizieren und zu beheben.

Betrachten Sie Featureflags. Featureflags werden in der Softwareentwicklung verwendet, um die Sichtbarkeit und das Verhalten bestimmter Features in einer Anwendung zu steuern. Mithilfe von Featureflags können Entwickler bestimmte Features aktivieren oder deaktivieren, ohne die Anwendung erneut bereitstellen zu müssen. Featureflags funktionieren, indem bedingte Logik in den Code eingeführt wird, die bestimmt, ob ein Feature aktiviert oder deaktiviert werden soll. Diese Logik kann auf verschiedenen Faktoren basieren, z. B. Benutzerrollen, Benutzereinstellungen oder bestimmten Bedingungen, die vom Entwicklungsteam definiert werden. Mithilfe von Featureflags können Entwickler neue Features schrittweise für eine Teilmenge von Benutzern bereitstellen oder Features für bestimmte Gruppen zu Testzwecken aktivieren (Canary-Tests).

Optimieren von Upgrades

Ein direktes Upgrade ist ein Upgrade auf eine vorhandene Ressource oder Anwendung. Direkte Upgrades können eine Workload vorübergehend verlangsamen oder unterbrechen. Es ist wichtig sicherzustellen, dass Upgrades mit der Workload kompatibel sind. Bevor Sie ein Upgrade anwenden, sollten Sie es in einer separaten Umgebung testen, um potenzielle Probleme zu identifizieren. Stellen Sie einen Rollbackplan bereit, falls während des Upgradevorgangs Probleme auftreten. Es ist wichtig, eine vollständige Sicherung wichtiger Daten und Konfigurationen durchzuführen, bevor Sie das Upgrade anwenden. Überwachen Sie das aktualisierte System nach dem Upgrade genau, um sicherzustellen, dass alles wie erwartet funktioniert. Mit der Sicherung können Sie bei Bedarf einen guten Zustand wiederherstellen. Sie sollten die Planung des Upgrades außerhalb der Spitzenzeiten priorisieren, um die Auswirkungen auf Benutzer und Workloadleistung zu minimieren. Benachrichtigen Sie Benutzer im Voraus über das geplante Upgrade, einschließlich der erwarteten Ausfallzeit und aller erforderlichen Aktionen, die sie ergreifen müssen.

Kompromiss: Das Warten auf die Durchführung von Betriebsaktivitäten außerhalb der Spitzenzeiten kann sich auf die Betriebseffizienz auswirken. Es ist möglicherweise weniger bequem, das Personal mit den richtigen Qualifikationen zu den Spitzenzeiten arbeiten zu lassen.

Optimieren von Tools

Wichtige Tools für die Überwachung der Dateiintegrität, Virenüberprüfung, Erkennung von Eindringversuchen und andere operative Aufgaben können sich auf die Workloadleistung auswirken. Sie nutzen Computeressourcen und können latenz- und Leistungsmehraufwand erhöhen. Sie müssen testen und verstehen, welche Auswirkungen Ihre Tools auf die Workloadleistung haben. Basierend auf den Testergebnissen sollten Sie die Toolkonfigurationen optimieren, die Scanhäufigkeit anpassen und Computeressourcen neu zuweisen. Für Virenscans können Sie eine relevante Ausschlussliste erstellen, um die Dauer der Überprüfungen zu minimieren.

Optimieren von Datenbankvorgängen

Das Optimieren von Datenbankvorgängen bezieht sich auf den Prozess der Verfeinerung und Optimierung von Datenbankaufgaben, um maximale Effizienz und minimale Ressourcennutzung sicherzustellen. Diese Vorgänge umfassen Aufgaben wie Sicherungen, Schemaänderungen, Leistungsoptimierung und Überwachung. Effiziente Datenbankvorgänge führen zu schnelleren Abfrageantworten, geringerem Systemaufwand und einer insgesamt reibungsloseren Benutzererfahrung.

Schemaänderungen umfassen das Ändern der Struktur einer Datenbank, z. B. das Hinzufügen oder Ändern von Tabellen, Spalten oder Indizes. Diese Änderungen erfordern möglicherweise eine zusätzliche Verarbeitung und Ressourcenauslastung während des Bereitstellungsprozesses, was sich möglicherweise auf die Gesamtleistung der Workload auswirkt. Schemaänderungen können die Leistung aktiver Abfragen, Indizes oder Transaktionen beeinträchtigen oder dazu führen, dass Daten nicht verfügbar sind.

Um diese Auswirkungen zu minimieren, sollten Sie Schemaänderungen in einer Nichtproduktionsumgebung planen und testen. Sie können verschiedene Bereitstellungstechniken verwenden, um Schemaupdates zu implementieren. Sie sollten auch verfügbare Schemaänderungstools verwenden, um den Prozess zu optimieren. Die Archivierung von Daten und die Partitionierung kann dazu beitragen, die Auswirkungen von Schemaänderungen zu reduzieren.

Optimieren von Sicherungen

Sicherungen verbrauchen Workloadressourcen wie Verarbeitungsleistung, Netzwerkbandbreite und Datenträger-E/A. Sie müssen eine Sicherungsstrategie testen und auswählen, die diese Auswirkungen minimiert. Sicherungen sollten nach Möglichkeit außerhalb der Spitzenzeiten ausgeführt werden. Ihre Strategie sollte jedes Mal inkrementelle Sicherungen anstelle vollständiger Sicherungen umfassen. Momentaufnahmen können weniger ressourcenintensiv sein als Sicherungen. Sie sollten integrierte Plattformsicherungs- und -wiederherstellungsfeatures in Betracht ziehen, anstatt eine benutzerdefinierte Lösung zu erstellen. Sie müssen diese Optionen testen und eine Kombination verwenden, die die beste Leistung für Ihre Workload bietet.

Optimieren der Überwachung und des Debuggens

Übermäßige oder schlecht implementierte Protokollierung, Telemetrie, Instrumentierung und verteilte Ablaufverfolgungserfassung und -sammlung können sich auf die Leistung auswirken. Ebenso können komfortbezogene Features wie Remotedebuggen die Leistung beeinträchtigen. Sie müssen deren Auswirkungen auf die Leistung auf die Umgebung messen und kennen. Sie möchten nicht, dass diese Prozesse die Leistung beeinträchtigen. Sie sollten Prozesse konfigurieren oder deaktivieren, deren Leistungseffekte ihre Vorteile überwiegen.

Azure-Erleichterung

Berücksichtigen operativer Aufgaben: Azure DevOps ist eine Reihe von Entwicklungstools und -diensten, mit denen Teams Software effizient planen, entwickeln, testen und bereitstellen können. Sie umfasst Features wie Versionskontrolle, Continuous Integration und Continuous Delivery, Projektmanagement und vieles mehr.

Azure bietet eine Dienst-zu-Dienst-Integration, die die Auswirkungen vieler operativer Aufgaben minimiert. Beispielsweise unterstützen Dienste, die in Azure Key Vault integrieren, häufig eine nahtlose Zertifikatrotation oder Geheimnisrotation, die auswirkungen auf die Leistung minimiert.

Optimieren von Bereitstellungen: App Service stellt Bereitstellungsslots bereit. Sie können Bereitstellungsslots verwenden, um Code in einer Nichtproduktionsumgebung bereitzustellen. Sie können App-Inhalte und -Konfigurationselemente zwischen zwei Bereitstellungsslots austauschen. Beispielsweise können Sie App-Inhalte von einem Nichtproduktionsslot zum Produktionsslot wechseln.

Mit Azure Front Door und Azure Traffic Manager können Sie eine Blau-Grün-Bereitstellungsstrategie implementieren. Einige Azure-Computedienste unterstützen auch erweiterte Bereitstellungsstrategien wie blau-grüne Bereitstellungen. Sie können diese Dienste mit Ihrer Strategie zur Verschiebung des Datenverkehrs oder instance Erwärmung kombinieren, um die Auswirkungen der Bereitstellung auf die Leistung zu minimieren.

Optimieren von Datenbankvorgängen: Azure SQL Datenbank übernimmt automatisch vollständige Sicherungen, differenzielle Sicherungen und Transaktionsprotokollsicherungen. Azure Cosmos DB erstellt in regelmäßigen Abständen automatisch Sicherungen Ihrer Daten. Die automatischen Sicherungen werden erstellt, ohne die Leistung oder Verfügbarkeit von Datenbankvorgängen zu beeinträchtigen. Azure Cosmos DB speichert die Sicherungen in einem separaten Speicherdienst.

Optimieren von Sicherungen: Einige Azure-Datendienste unterstützen geringe bis keine Auswirkungen auf die Leistung bei der Point-in-Time-Wiederherstellung und Indizierung. Azure Backup ist eine zuverlässige und skalierbare cloudbasierte Sicherungslösung, mit der Sie Ihre Daten und Anwendungen schützen können. Es bietet Features wie inkrementelle Sicherungen, Komprimierung und Verschlüsselung, um die Auswirkungen auf die Leistung bei Sicherungsvorgängen zu minimieren. Azure Site Recovery unterstützt Sie beim Schutz Ihrer Anwendungen, indem sie an einem sekundären Standort repliziert werden. Es bietet Funktionen für kontinuierliche Replikation und automatisiertes Failover, um die Ausfallzeiten und Die Auswirkungen auf die Leistung bei Sicherungs- und Notfallwiederherstellungsvorgängen zu minimieren.

Prüfliste zur Leistungseffizienz

Sehen Sie sich den vollständigen Satz von Empfehlungen an.