Share via


Testningsöverväganden för hållbara arbetsbelastningar i Azure

Organisationer som utvecklar och distribuerar lösningar till molnet behöver också tillförlitlig testning. Lär dig mer om överväganden och rekommendationer för att köra arbetsbelastningstester och hur du optimerar för en mer hållbar testmodell.

Viktigt

Den här artikeln är en del av azure-serien Well-Architected hållbar arbetsbelastning . Om du inte är bekant med den här serien rekommenderar vi att du börjar med vad som är en hållbar arbetsbelastning?

Testa effektivitet

Köra integrering, prestanda, belastning eller andra intensiva tester under perioder med låga koldioxidutsläpp

Att köra integrering, prestanda, belastning eller någon annan intensiv testning kan resultera i mycket bearbetning. En väl utformad design för testning av distribuerade arbetsbelastningar kan bidra till att säkerställa full användning av tillgängliga resurser, vilket minskar koldioxidutsläppen.

Green Software Foundation-anpassning: Koldioxidmedvetenhet

Rekommendation:

  • Där du har tillgängliga data planerar du att köra testning när datacentrets energimix främst använder förnybar energi. Det kan till exempel vara mer fördelaktigt att köra tester under natten i vissa regioner.

Automatisera CI/CD för att skala arbetsagenter efter behov

Att köra underutnyttade eller inaktiva CI/CD-agenter resulterar i fler utsläpp.

Green Software Foundation-anpassning: Maskinvarueffektivitet

Rekommendation:

  • Håller beräkningsutnyttjandet högt, baserat på den aktuella efterfrågan, och undviker onödig kapacitetsallokering.
  • Skala bara ut när det behövs, och när det inte testas, skala in. I slutändan säkerställer detta att det inte finns några inaktiva beräkningsresurser i testmiljöer.
  • Överväg optimerade plattformstjänster som containrar över testning på en virtuell dator och använd plattformen för att minska underhållet.

Överväg att cachelagra när du använder CI/CD-agenter

Användning av cachelagringsmekanismer under CI/CD kan minska beräkningstiden och därmed koldioxidutsläppen.

Green Software Foundation-anpassning: Energieffektivitet

Rekommendation:

  • Lagra resultat från steg i en cache och återanvänd dem mellan olika CI/CD-körningar när det är möjligt: när det finns åtgärder som tar CPU-tid att producera en artefakt som inte ofta ändras mellan olika körningar, är det klokt att spara den för framtida användning så att CPU-tid inte slösas bort på varje körning som producerar samma artefakt, om och om.
  • Om CI/CD-agenten är lokalt installerad använder du en cache som är lokal för agenten för att ytterligare minska dataöverföringar och utsläpp. Detta säkerställer att cachen inte överförs över nätverket, vilket kan vara en betydande utsläppskälla.

Dela upp stora kodlagringsplatser

Att dela upp stora lagringsplatser kan hjälpa CI/CD-faserna, där endast de delar av koden som har ändrats kompileras. Detta minskar beräkningstiden, vilket i slutändan minskar koldioxidutsläppen.

Green Software Foundation-anpassning: Energieffektivitet

Rekommendation:

  • Dela upp stora kodlagringsplatser och separera huvudkoden från bibliotek och beroenden.
  • Publicera och återanvända artefakter och bibliotek med kod som är gemensamma för flera lagringsplatser.

Rekommendation:

  • Dela upp stora lagringsplatser med kod i mindre, vilket separerar huvudkoden från bibliotek och beroenden.
  • Publicera och återanvända artefakter och bibliotek med kod som är gemensamma för flera lagringsplatser.

Profilering och mätning

Mätning, profilering och testning av arbetsbelastningar är absolut nödvändigt för att förstå hur du bäst använder allokerade resurser.

Utvärdera var parallellisering är möjlig

Utan korrekt profilering och testning av arbetsbelastningar är det svårt att veta om den använder den underliggande plattformen och distribuerade resurser på bästa sätt.

Green Software Foundation-anpassning: Mäta hållbarhet

Rekommendation:

  • Testa dina program för att förstå samtidiga begäranden, samtidig bearbetning med mera.
  • Om du kör Machine Learning (ML) för tester bör du överväga datorer med en GPU för bättre effektivitetsvinster.
  • Identifiera om arbetsbelastningen är prestandaintensiv och arbeta mot optimering.
  • Överväg den här kompromissen: Att köra GPU-baserade datorer för ML-tester kan öka kostnaden.

Utvärdera med kaosteknik

Körning av integrerings-, prestanda- och belastningstester ökar tillförlitligheten för en arbetsbelastning. Införandet av kaosteknik kan dock avsevärt bidra till att förbättra tillförlitligheten och motståndskraften och hur programmen reagerar på fel. På så sätt kan arbetsbelastningen optimeras för att hantera fel på ett smidigt sätt och med mindre bortkastade resurser.

Green Software Foundation-anpassning: Mäta hållbarhet

Rekommendation:

  • Använd belastningstestning eller kaosteknik för att utvärdera hur arbetsbelastningen hanterar plattformsstopp och trafiktoppar eller dalar. Detta bidrar till att öka tjänstens motståndskraft och förmågan att reagera på fel, vilket möjliggör en mer optimerad felhantering.
  • Överväg den här kompromissen: Att injicera fel under kaosteknik och öka belastningen på alla system ökar också de utsläpp som används för testresurserna. Utvärdera hur och när du kan använda kaosteknik för att öka arbetsbelastningens tillförlitlighet samtidigt som du överväger klimatpåverkan av att köra onödiga testsessioner.
  • En annan vinkel på detta är att använda kaosteknik för att testa energifel eller stunder med högre koldioxidutsläpp: överväg att ställa in tester som utmanar ditt program att förbruka minsta möjliga energi. Definiera hur programmet ska reagera på sådana villkor med en specifik "eco"-version som informerar användarna om att de genererar minsta möjliga koldioxid genom att offra vissa funktioner och eventuellt viss prestanda. Detta kan också vara ditt benchmark-program för att bedöma dess hållbarhet.

Upprätta cpu- och minneströsklar vid testning

Hjälp med att skapa tester för att testa hållbarhet i ditt program. Överväg att ha en baslinje för cpu-användningsmätning och identifiera onormala ändringar i baslinjen för CPU-användning när testerna körs. Med en baslinje kan suboptimala beslut som fattats i de senaste kodändringarna identifieras tidigare.

Genom att lägga till tester och kvalitetsgrindar i distributions- och testpipelinen kan du undvika att distribuera icke-hållbara lösningar, vilket bidrar till minskade utsläpp.

Green Software Foundation-anpassning: Energieffektivitet

Rekommendation:

  • Övervaka cpu- och minnesallokeringar när du kör integrationstester eller enhetstester.
  • Hitta onormalt höga resursförbrukningsområden i programkoden och fokusera på att minimera dem först.
  • Konfigurera aviseringar eller testfel om du överskrider de etablerade baslinjevärdena, vilket hjälper dig att undvika att distribuera icke-hållbara arbetsbelastningar.
  • Överväg den här kompromissen: När programmen växer kan baslinjen behöva ändras i enlighet med detta för att undvika att testerna misslyckas när nya funktioner introduceras.

Nästa steg

Granska designövervägandena för operativa procedurer.