Overwegingen voor het testen van duurzame workloads in Azure
Organisaties die oplossingen in de cloud ontwikkelen en implementeren, hebben ook betrouwbare tests nodig. Meer informatie over de overwegingen en aanbevelingen voor het uitvoeren van workloadtests en hoe u kunt optimaliseren voor een duurzamer testmodel.
Belangrijk
Dit artikel maakt deel uit van de reeks azure Well-Architected duurzame workloads . Als u niet bekend bent met deze reeks, raden we u aan te beginnen met wat is een duurzame workload?
Efficiëntie testen
Integratie, prestaties, belasting of andere intensieve tests uitvoeren tijdens koolstofarme perioden
Het uitvoeren van integratie, prestaties, belasting of een andere intensieve testmogelijkheid kan leiden tot veel verwerking. Een goed ontworpen ontwerp voor het testen van de geïmplementeerde workloads kan ervoor zorgen dat de beschikbare resources volledig worden gebruikt, waardoor de koolstofuitstoot wordt verminderd.
Green Software Foundation alignment: Carbon awareness
Aanbeveling:
- Waar u de gegevens tot uw beschikking hebt, kunt u plannen voor het uitvoeren van tests wanneer de energiemix van het datacenter voornamelijk gebruikmaakt van hernieuwbare energie. Het kan bijvoorbeeld nuttiger zijn om in sommige regio's 's nachts tests uit te voeren.
CI/CD automatiseren om werkrolagents zo nodig te schalen
Het uitvoeren van onderbenutte of inactieve CI/CD-agents leidt tot meer emissies.
Green Software Foundation-uitlijning: Hardware-efficiëntie
Aanbeveling:
- Houdt het rekengebruik hoog, op basis van de huidige vraag, waardoor onnodige capaciteitstoewijzing wordt voorkomen.
- Schaal alleen uit wanneer dat nodig is en als u niet test, kunt u inschalen. Uiteindelijk zorgt dit ervoor dat er geen niet-actieve rekenresources zijn in testomgevingen.
- Overweeg om geoptimaliseerde platformservices, zoals containers, te testen in een VM, waarbij het platform wordt gebruikt om het onderhoud te verminderen.
Overweeg om in cache op te nemen bij het gebruik van CI/CD-agents
Het gebruik van cachemechanismen tijdens CI/CD kan de rekentijd en dus de koolstofuitstoot verminderen.
Uitlijning van Green Software Foundation: Energie-efficiëntie
Aanbeveling:
- Sla resultaten van stappen in een cache op en gebruik deze waar mogelijk opnieuw tussen verschillende CI/CD-uitvoeringen: wanneer er stappen zijn die CPU-tijd nodig hebben om een artefact te produceren dat niet vaak tussen verschillende uitvoeringen verandert, is het verstandig om deze op te slaan voor toekomstig gebruik, zodat de CPU-tijd niet wordt verspild bij elke uitvoering die hetzelfde artefact produceert. steeds weer.
- Als de CI/CD-agent zelf-hostend is, gebruikt u een lokale cache voor de agent om gegevensoverdrachten en -emissies verder te verminderen. Dit zorgt ervoor dat de cache niet wordt overgedragen via het netwerk, wat een belangrijke bron van emissies kan zijn.
Grote codeopslagplaatsen splitsen
Het splitsen van grote opslagplaatsen kan helpen bij de CI/CD-fasen, waarbij alleen de gewijzigde delen van de code worden gecompileerd. Dit verkort de rekentijd, waardoor uiteindelijk de koolstofuitstoot wordt verlaagd.
Uitlijning van Green Software Foundation: Energie-efficiëntie
Aanbeveling:
- Splits grote codeopslagplaatsen, waarbij hoofdcode wordt gescheiden van bibliotheken en afhankelijkheden.
- Artefacten en codebibliotheken publiceren en opnieuw gebruiken die gemeenschappelijk zijn in meerdere opslagplaatsen.
Aanbeveling:
- Splits grote opslagplaatsen met code in kleinere, waarbij hoofdcode wordt gescheiden van bibliotheken en afhankelijkheden.
- Artefacten en codebibliotheken publiceren en opnieuw gebruiken die gemeenschappelijk zijn in meerdere opslagplaatsen.
Profileren en meten
Het meten, profileren en testen van workloads is essentieel om te begrijpen hoe u toegewezen resources het beste kunt gebruiken.
Beoordelen waar parallellisatie mogelijk is
Als workloads niet goed worden geprofileerd en getest, is het moeilijk om te weten of het onderliggende platform en de geïmplementeerde resources optimaal worden gebruikt.
Green Software Foundation alignment: Measuring sustainability (Duurzaamheid meten)
Aanbeveling:
- Test uw toepassingen om inzicht te hebben in gelijktijdige aanvragen, gelijktijdige verwerking en meer.
- Als u Machine Learning (ML) uitvoert voor tests, kunt u machines met een GPU overwegen voor betere efficiëntieverbeteringen.
- Bepaal of de workload prestatie-intensief is en werk toe aan optimalisatie.
- Houd rekening met deze afweging: Het uitvoeren van GPU-machines voor ML-tests kan de kosten verhogen.
Evalueren met chaos-engineering
Het uitvoeren van integratie-, prestatie- en belastingstests verhoogt de betrouwbaarheid van een workload. De introductie van chaos-engineering kan echter aanzienlijk bijdragen aan het verbeteren van de betrouwbaarheid en tolerantie en de reactie van toepassingen op fouten. Hierdoor kan de workload worden geoptimaliseerd om fouten probleemloos en met minder verspilde resources af te handelen.
Green Software Foundation alignment: Measuring sustainability (Duurzaamheid meten)
Aanbeveling:
- Gebruik belastingtests of chaos-engineering om te beoordelen hoe de workload omgaat met uitval van het platform en pieken of dalen in het verkeer. Dit helpt bij het vergroten van de tolerantie van de service en het vermogen om te reageren op fouten, waardoor een meer geoptimaliseerde foutafhandeling mogelijk is.
- Houd rekening met deze afweging: Het injecteren van fouten tijdens chaos engineering en het verhogen van de belasting van een systeem verhoogt ook de emissies die worden gebruikt voor de testresources. Evalueer hoe en wanneer u chaos-engineering kunt gebruiken om de betrouwbaarheid van de workload te verhogen, terwijl u rekening houdt met de klimaatimpact van het uitvoeren van onnodige testsessies.
- Een andere hoek hiervan is het gebruik van chaos-engineering om energiefouten of momenten met een hogere koolstofuitstoot te testen: overweeg om tests in te stellen die uw toepassing uitdagen om zo min mogelijk energie te verbruiken. Definieer hoe de toepassing op dergelijke omstandigheden reageert met een specifieke 'eco'-versie die gebruikers informeert dat ze de minimaal mogelijke koolstof uitstoten door bepaalde functies en mogelijk wat prestaties op te offeren. Dit kan ook uw benchmarktoepassing zijn voor het beoordelen van de duurzaamheid.
Drempelwaarden voor CPU en geheugen instellen bij het testen
Help bij het bouwen van tests voor het testen van duurzaamheid in uw toepassing. Overweeg om het CPU-gebruik volgens de basislijn te meten en abnormale wijzigingen in de basislijn voor CPU-gebruik te detecteren wanneer tests worden uitgevoerd. Met een basislijn kunnen suboptimale beslissingen in recente codewijzigingen eerder worden gedetecteerd.
Door tests en kwaliteitspoorten toe te voegen aan de implementatie- en testpijplijn wordt voorkomen dat niet-duurzame oplossingen worden geïmplementeerd, wat bijdraagt aan lagere emissies.
Uitlijning van Green Software Foundation: Energie-efficiëntie
Aanbeveling:
- Bewaak CPU- en geheugentoewijzingen bij het uitvoeren van integratietests of eenheidstests.
- Zoek gebieden met abnormaal hoog resourceverbruik in de toepassingscode en richt u eerst op het beperken van deze gebieden.
- Configureer waarschuwingen of testfouten als de vastgestelde basislijnwaarden worden overschreden, zodat u niet-duurzame workloads kunt implementeren.
- Houd rekening met deze afweging: naarmate toepassingen toenemen, moet de basislijn mogelijk dienovereenkomstig veranderen om te voorkomen dat de tests mislukken bij het introduceren van nieuwe functies.
Volgende stap
Bekijk de ontwerpoverwegingen voor operationele procedures.