Considerazioni sui test per carichi di lavoro sostenibili in Azure

Anche le organizzazioni che sviluppano e distribuiscono soluzioni nel cloud necessitano di test affidabili. Informazioni sulle considerazioni e le raccomandazioni per l'esecuzione di test del carico di lavoro e su come ottimizzare per un modello di test più sostenibile.

Importante

Questo articolo fa parte della serie di carichi di lavoro sostenibili di Azure Well-Architected . Se non si ha familiarità con questa serie, è consigliabile iniziare con che cos'è un carico di lavoro sostenibile?

Efficienza dei test

Eseguire l'integrazione, le prestazioni, il carico o qualsiasi altro test intenso durante periodi a basse emissioni di carbonio

L'esecuzione di integrazione, prestazioni, carico o qualsiasi altra funzionalità di test intensa può comportare un'elaborazione elevata. Una progettazione ben progettata per testare i carichi di lavoro distribuiti può contribuire a garantire l'utilizzo completo delle risorse disponibili, riducendo le emissioni di carbonio.

Allineamento Green Software Foundation: Consapevolezza del carbonio

Consiglio:

  • Dove sono disponibili i dati, pianificare l'esecuzione di test quando il mix energetico del data center usa principalmente energia rinnovabile. Può, ad esempio, essere più utile eseguire test durante la notte in alcune aree.

Automatizzare CI/CD per ridimensionare gli agenti di lavoro in base alle esigenze

L'esecuzione di agenti CI/CD sottoutilizzati o inattivi comporta un aumento delle emissioni.

Allineamento verde di Software Foundation: efficienza hardware

Consiglio:

  • Mantiene elevato l'utilizzo delle risorse di calcolo, in base alla domanda corrente, evitando l'allocazione di capacità non necessaria.
  • Aumentare il numero di istanze solo quando necessario e, quando non si esegue il test, aumentare le prestazioni. In definitiva, ciò garantisce che non siano presenti risorse di calcolo inattive negli ambienti di test.
  • Prendere in considerazione i servizi della piattaforma ottimizzati, ad esempio i contenitori durante i test in una macchina virtuale, usando la piattaforma per ridurre la manutenzione.

Prendere in considerazione la memorizzazione nella cache quando si usano agenti CI/CD

L'uso di meccanismi di memorizzazione nella cache durante CI/CD può ridurre il tempo di calcolo e, di conseguenza, le emissioni di carbonio.

Allineamento Green Software Foundation: Efficienza energetica

Consiglio:

  • Archiviare i risultati dei passaggi in una cache e riutilizzarli tra esecuzioni CI/CD diverse, quando possibile: quando sono necessari passaggi che richiedono tempo cpu per produrre un artefatto che non cambia spesso tra esecuzioni diverse, è consigliabile salvarlo per un utilizzo futuro in modo che il tempo della CPU non venga sprecato per ogni esecuzione che produce lo stesso artefatto, più e più.
  • Se l'agente CI/CD è self-hosted, usare una cache locale per l'agente per ridurre ulteriormente i trasferimenti e le emissioni dei dati. Ciò garantisce che la cache non venga trasferita in rete, che può essere una fonte significativa di emissioni.

Dividere repository di codice di grandi dimensioni

La suddivisione di repository di grandi dimensioni può aiutare le fasi CI/CD, in cui vengono compilate solo le parti del codice che sono state modificate. Ciò riduce il tempo di calcolo, riducendo in definitiva le emissioni di carbonio.

Allineamento Green Software Foundation: Efficienza energetica

Consiglio:

  • Suddividere repository di codice di grandi dimensioni, separando il codice principale dalle librerie e dalle dipendenze.
  • Pubblicare e riutilizzare artefatti e librerie di codice comuni in più repository.

Consiglio:

  • Suddividere i repository di codice di grandi dimensioni in quelli più piccoli, separando il codice principale dalle librerie e dalle dipendenze.
  • Pubblicare e riutilizzare artefatti e librerie di codice comuni in più repository.

Profilatura e misurazione

La misurazione, la profilatura e i carichi di lavoro di test sono fondamentali per comprendere come usare al meglio le risorse allocate.

Valutare la posizione in cui è possibile la parallelizzazione

Senza profilare e testare correttamente i carichi di lavoro, è difficile sapere se usa al meglio la piattaforma sottostante e le risorse distribuite.

Allineamento di Green Software Foundation: Misurazione della sostenibilità

Consiglio:

  • Testare le applicazioni per comprendere le richieste simultanee, l'elaborazione simultanea e altro ancora.
  • Se si esegue Machine Learning (ML) per i test, prendere in considerazione i computer con una GPU per migliorare l'efficienza.
  • Identificare se il carico di lavoro richiede un utilizzo intensivo delle prestazioni e lavorare per l'ottimizzazione.
  • Si consideri questo compromesso: L'esecuzione di computer basati su GPU per i test di Machine Learning può aumentare il costo.

Valutare con l'ingegneria del caos

L'esecuzione di test di integrazione, prestazioni e carico aumenta l'affidabilità di un carico di lavoro. Tuttavia, l'introduzione dell'ingegneria del caos può contribuire in modo significativo a migliorare l'affidabilità e la resilienza e il modo in cui le applicazioni reagiscono agli errori. In questo modo, il carico di lavoro può essere ottimizzato per gestire correttamente gli errori e con risorse meno sprecate.

Allineamento di Green Software Foundation: Misurazione della sostenibilità

Consiglio:

  • Usare il test di carico o la progettazione chaos per valutare il modo in cui il carico di lavoro gestisce le interruzioni della piattaforma e i picchi o i picchi di traffico. Ciò consente di aumentare la resilienza del servizio e la possibilità di reagire agli errori, consentendo una gestione degli errori più ottimizzata.
  • Si consideri questo compromesso: L'inserimento di errori durante l'ingegneria del caos e l'aumento del carico su qualsiasi sistema aumentano anche le emissioni usate per le risorse di test. Valutare come e quando è possibile usare chaos engineering per aumentare l'affidabilità del carico di lavoro considerando l'impatto climatico dell'esecuzione di sessioni di test non necessarie.
  • Un'altra angolazione è l'uso dell'ingegneria del caos per testare gli errori energetici o i momenti con emissioni di carbonio più elevate: è consigliabile configurare test che sfidano l'applicazione a consumare il minimo possibile energia. Definire il modo in cui l'applicazione reagisce a tali condizioni con una versione "eco" specifica che informa gli utenti che emettono il carbonio minimo possibile sacrificando alcune funzionalità e possibilmente alcune prestazioni. Questo può anche essere l'applicazione benchmark per assegnare punteggi alla propria sostenibilità.

Stabilire soglie di CPU e memoria nei test

Aiutare a compilare test per testare la sostenibilità nell'applicazione. Prendere in considerazione la misurazione dell'utilizzo della CPU di base e rilevare modifiche anomale alla baseline di utilizzo della CPU durante l'esecuzione dei test. Con una baseline, è possibile individuare in precedenza decisioni non ottimali prese nelle modifiche del codice recenti.

L'aggiunta di test e controlli di qualità nella pipeline di distribuzione e test consente di evitare la distribuzione di soluzioni non sostenibili, contribuendo a ridurre le emissioni.

Allineamento Green Software Foundation: Efficienza energetica

Consiglio:

  • Monitorare le allocazioni di CPU e memoria quando si eseguono test di integrazione o unit test.
  • Individuare aree a consumo di risorse anomalamente elevate nel codice dell'applicazione e concentrarsi sulla mitigazione di tali aree.
  • Configurare avvisi o errori di test se superano i valori di base stabiliti, evitando di distribuire carichi di lavoro non sostenibili.
  • Considerare questo compromesso: man mano che le applicazioni aumentano, la baseline potrebbe dover cambiare di conseguenza per evitare di non riuscire i test durante l'introduzione di nuove funzionalità.

Passaggio successivo

Esaminare le considerazioni sulla progettazione per le procedure operative.