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.