Freigeben über


Testüberlegungen für nachhaltige Workloads in Azure

Organisationen, die Lösungen für die Cloud entwickeln und bereitstellen, benötigen ebenfalls zuverlässige Tests. Erfahren Sie mehr über die Überlegungen und Empfehlungen für die Ausführung von Workloadtests und die Optimierung für ein nachhaltigeres Testmodell.

Wichtig

Dieser Artikel ist Teil der Azure Well-Architected nachhaltigen Workloadreihe . Wenn Sie mit dieser Reihe nicht vertraut sind, empfehlen wir Ihnen, mit einer nachhaltigen Workload zu beginnen?

Testen der Effizienz

Ausführen von Integrations-, Leistungs-, Last- oder anderen intensiven Tests während kohlenstoffarmer Zeiträume

Die Ausführung von Integration, Leistung, Auslastung oder anderen intensiven Testfunktionen kann zu einer hohen Verarbeitung führen. Ein gut ausgearbeiteter Entwurf zum Testen der bereitgestellten Workloads kann dazu beitragen, die vollständige Nutzung der verfügbaren Ressourcen zu gewährleisten und die CO2-Emissionen zu reduzieren.

Ausrichtung der Green Software Foundation: Carbon Awareness

Empfehlung:

  • Planen Sie dort, wo Ihnen die Daten zur Verfügung stehen, Tests ein, wenn der Energiemix des Rechenzentrums hauptsächlich erneuerbare Energien verwendet. Es kann z. B. vorteilhafter sein, tests in einigen Regionen nachts durchzuführen.

Automatisieren von CI/CD zum Skalieren von Worker-Agents nach Bedarf

Die Ausführung von nicht ausgelasteten oder inaktiven CI/CD-Agents führt zu mehr Emissionen.

Ausrichtung von Green Software Foundation: Hardwareeffizienz

Empfehlung:

  • Hält die Computeauslastung basierend auf dem aktuellen Bedarf hoch, wodurch unnötige Kapazitätszuweisungen vermieden werden.
  • Skalieren Sie nur bei Bedarf hoch, und wenn sie nicht getestet werden, können Sie es herunterskalieren. Dadurch wird letztendlich sichergestellt, dass in Testumgebungen keine Computeressourcen im Leerlauf vorhanden sind.
  • Erwägen Sie optimierte Plattformdienste wie Container gegenüber dem Testen auf einer VM, indem Sie die Plattform nutzen, um die Wartung zu reduzieren.

Zwischenspeichern bei Verwendung von CI/CD-Agents erwägen

Die Verwendung von Cachingmechanismen während CI/CD kann die Computezeit und damit die Co2-Emissionen reduzieren.

Ausrichtung der Green Software Foundation: Energieeffizienz

Empfehlung:

  • Speichern Sie Ergebnisse aus Schritten in einem Cache, und verwenden Sie sie nach Möglichkeit zwischen verschiedenen CI/CD-Ausführungen erneut: Wenn es Schritte gibt, die CPU-Zeit benötigen, um ein Artefakt zu erzeugen, das nicht häufig zwischen verschiedenen Ausführungen wechselt, ist es ratsam, es für die zukünftige Nutzung zu speichern, damit nicht bei jeder Ausführung dasselbe Artefakt entsteht, immer und immer wieder.
  • Wenn der CI/CD-Agent selbst gehostet wird, verwenden Sie einen lokalen Cache für den Agent, um Datenübertragungen und Emissionen weiter zu reduzieren. Dadurch wird sichergestellt, dass der Cache nicht über das Netzwerk übertragen wird, was eine erhebliche Emissionsquelle sein kann.

Aufteilen großer Coderepositorys

Das Aufteilen großer Repositorys kann die CI/CD-Phasen unterstützen, in denen nur die teile des Codes kompiliert werden, die sich geändert haben. Dadurch wird die Rechenzeit reduziert, was letztendlich die CO2-Emissionen senkt.

Ausrichtung der Green Software Foundation: Energieeffizienz

Empfehlung:

  • Teilen Sie große Coderepositorys auf, indem Sie Standard Code von Bibliotheken und Abhängigkeiten trennen.
  • Veröffentlichen und wiederverwenden Sie Artefakte und Codebibliotheken, die in mehreren Repositorys üblich sind.

Empfehlung:

  • Teilen Sie große Coderepositorys in kleinere auf, und trennen Sie Standard Code von Bibliotheken und Abhängigkeiten.
  • Veröffentlichen und wiederverwenden Sie Artefakte und Codebibliotheken, die in mehreren Repositorys üblich sind.

Profilerstellung und Messung

Das Messen, Profilerstellungs- und Testworkloads ist unerlässlich, um zu verstehen, wie zugeordnete Ressourcen am besten verwendet werden können.

Bewerten, wo Parallelisierung möglich ist

Ohne ordnungsgemäße Profilerstellung und Tests von Workloads ist es schwierig zu wissen, ob die zugrunde liegende Plattform und die bereitgestellten Ressourcen optimal genutzt werden.

Ausrichtung von Green Software Foundation: Messen der Nachhaltigkeit

Empfehlung:

  • Testen Sie Ihre Anwendungen, um gleichzeitige Anforderungen, die gleichzeitige Verarbeitung und vieles mehr zu verstehen.
  • Wenn Sie Machine Learning (ML) für Tests ausführen, sollten Sie Computer mit einer GPU in Betracht ziehen, um die Effizienz zu verbessern.
  • Ermitteln Sie, ob die Workload leistungsintensiv ist, und arbeiten Sie an der Optimierung.
  • Betrachten Sie diesen Kompromiss: Das Ausführen von GPU-basierten Computern für ML-Tests kann die Kosten erhöhen.

Bewerten mit Chaos Engineering

Die Ausführung von Integrations-, Leistungs- und Auslastungstests erhöht die Zuverlässigkeit einer Workload. Die Einführung von Chaos Engineering kann jedoch erheblich dazu beitragen, die Zuverlässigkeit und Resilienz sowie die Reaktion der Anwendungen auf Fehler zu verbessern. Auf diese Weise kann die Workload optimiert werden, um Fehler ordnungsgemäß und mit weniger ressourcenverwendeten Ressourcen zu behandeln.

Ausrichtung von Green Software Foundation: Messen der Nachhaltigkeit

Empfehlung:

  • Verwenden Sie Auslastungstests oder Chaos engineering , um zu bewerten, wie die Workload Plattformausfälle und Datenverkehrsspitzen oder -einbrüche verarbeitet. Dies trägt dazu bei, die Resilienz des Diensts zu erhöhen und auf Fehler zu reagieren, was eine optimierte Fehlerbehandlung ermöglicht.
  • Betrachten Sie diesen Kompromiss: Das Einschleusen von Fehlern während der Chaostechnik und die Erhöhung der Belastung für jedes System erhöhen auch die Emissionen, die für die Prüfressourcen verwendet werden. Evaluieren Sie, wie und wann Sie chaos engineering nutzen können, um die Zuverlässigkeit der Workload zu erhöhen, und berücksichtigen Sie dabei die Klimaauswirkungen der Ausführung unnötiger Testsitzungen.
  • Ein weiterer Aspekt ist die Verwendung von Chaos engineering, um Energiefehler oder Momente mit höheren CO2-Emissionen zu testen: Erwägen Sie die Einrichtung von Tests, die Ihre Anwendung auffordern, die möglichst wenig Energie zu verbrauchen. Definieren Sie, wie die Anwendung auf solche Bedingungen mit einer bestimmten "eco"-Version reagiert, und informieren Sie die Benutzer darüber, dass sie den minimalen möglichen Kohlenstoff emittieren, indem sie einige Features und möglicherweise einige Leistung opfern. Dies kann auch Ihre Benchmarkanwendung für die Bewertung ihrer Nachhaltigkeit sein.

Festlegen von CPU- und Arbeitsspeicherschwellenwerten bei Tests

Helfen Sie beim Erstellen von Tests zum Testen der Nachhaltigkeit in Ihrer Anwendung. Erwägen Sie eine geplante CPU-Auslastungsmessung, und erkennen Sie ungewöhnliche Änderungen an der CPU-Auslastungsbaseline, wenn Tests ausgeführt werden. Mit einer Baseline können suboptimale Entscheidungen, die bei kürzlichen Codeänderungen getroffen wurden, früher erkannt werden.

Das Hinzufügen von Tests und Qualitätsgates in die Bereitstellungs- und Testpipeline trägt dazu bei, die Bereitstellung nicht nachhaltiger Lösungen zu vermeiden, was zu geringeren Emissionen beiträgt.

Ausrichtung der Green Software Foundation: Energieeffizienz

Empfehlung:

  • Überwachen Sie CPU- und Arbeitsspeicherbelegungen beim Ausführen von Integrationstests oder Komponententests.
  • Suchen Sie bereiche mit ungewöhnlich hohem Ressourcenverbrauch im Anwendungscode, und konzentrieren Sie sich zuerst darauf, diese zu verringern.
  • Konfigurieren Sie Warnungen oder Testfehler, wenn sie die festgelegten Baselinewerte überschreiten, um die Bereitstellung nicht nachhaltiger Workloads zu vermeiden.
  • Berücksichtigen Sie diesen Kompromiss: Wenn Anwendungen wachsen, muss die Baseline möglicherweise entsprechend verschoben werden, um zu vermeiden, dass die Tests bei der Einführung neuer Features fehlschlagen.

Nächster Schritt

Überprüfen Sie die Entwurfsüberlegungen für betriebsbezogene Verfahren.