Bagikan melalui


Pertimbangan pengujian untuk beban kerja berkelanjutan di Azure

Organisasi yang mengembangkan dan menyebarkan solusi ke cloud juga membutuhkan pengujian yang andal. Pelajari tentang pertimbangan dan rekomendasi untuk menjalankan pengujian beban kerja dan cara mengoptimalkan model pengujian yang lebih berkelanjutan.

Penting

Artikel ini adalah bagian dari seri beban kerja azure Well-Architected berkelanjutan . Jika Anda tidak terbiasa dengan seri ini, kami sarankan Anda memulai dengan apa itu beban kerja berkelanjutan?

Efisiensi pengujian

Menjalankan integrasi, performa, beban, atau pengujian intens lainnya selama periode rendah karbon

Menjalankan integrasi, performa, beban, atau kemampuan pengujian intens lainnya dapat mengakibatkan banyak pemrosesan. Desain yang dibuat dengan baik untuk menguji beban kerja yang disebarkan dapat membantu memastikan pemanfaatan penuh sumber daya yang tersedia, mengurangi emisi karbon.

Keselarasan Green Software Foundation: Kesadaran karbon

Rekomendasi:

  • Di mana Anda memiliki data yang tersedia untuk Anda, rencanakan untuk menjalankan pengujian ketika campuran energi pusat data terutama menggunakan energi terbarukan. Mungkin, misalnya, lebih bermanfaat untuk menjalankan pengujian pada malam hari di beberapa wilayah.

Mengotomatiskan CI/CD untuk menskalakan agen pekerja sesuai kebutuhan

Menjalankan agen CI/CD yang kurang digunakan atau tidak aktif menghasilkan lebih banyak emisi.

Keselarasan Green Software Foundation: Efisiensi perangkat keras

Rekomendasi:

  • Menjaga pemanfaatan komputasi tetap tinggi, berdasarkan permintaan saat ini, menghindari alokasi kapasitas yang tidak perlu.
  • Hanya peluasan skala bila perlu, dan ketika tidak menguji, skala masuk. Pada akhirnya ini memastikan tidak ada sumber daya komputasi diam di lingkungan pengujian.
  • Pertimbangkan layanan platform yang dioptimalkan seperti kontainer melalui pengujian di VM, menggunakan platform untuk mengurangi pemeliharaan.

Pertimbangkan penembolokan saat menggunakan agen CI/CD

Menggunakan mekanisme penembolokan selama CI/CD dapat mengurangi waktu komputasi dan, dengan demikian, emisi karbon.

Keselarasan Green Software Foundation: Efisiensi Energi

Rekomendasi:

  • Simpan hasil dari langkah-langkah dalam cache dan gunakan kembali di antara CI/CD yang berbeda berjalan jika memungkinkan: ketika ada langkah-langkah yang membutuhkan waktu CPU untuk menghasilkan artefak yang tidak sering berubah di antara eksekusi yang berbeda, lebih bijaksana untuk menyimpannya untuk penggunaan di masa mendatang sehingga waktu CPU tidak terbuang sia-sia pada setiap proses yang menghasilkan artefak yang sama, berulang-ulang.
  • Jika agen CI/CD dihost sendiri, gunakan cache lokal ke agen untuk mengurangi transfer dan emisi data lebih lanjut. Ini memastikan bahwa cache tidak ditransfer melalui jaringan, yang dapat menjadi sumber emisi yang signifikan.

Memisahkan repositori kode besar

Memisahkan repositori besar dapat membantu fase CI/CD, di mana hanya bagian kode yang telah berubah yang dikompilasi. Ini mengurangi waktu komputasi, yang pada akhirnya menurunkan emisi karbon.

Keselarasan Green Software Foundation: Efisiensi Energi

Rekomendasi:

  • Pisahkan repositori kode besar, memisahkan kode utama dari pustaka dan dependensi.
  • Menerbitkan dan menggunakan kembali artefak dan pustaka kode yang umum di beberapa repositori.

Rekomendasi:

  • Pisahkan repositori kode besar menjadi yang lebih kecil, memisahkan kode utama dari pustaka dan dependensi.
  • Menerbitkan dan menggunakan kembali artefak dan pustaka kode yang umum di beberapa repositori.

Pembuatan profil dan pengukur

Mengukur, membuat profil, dan menguji beban kerja sangat penting untuk memahami cara terbaik menggunakan sumber daya yang dialokasikan.

Menilai di mana paralelisasi dimungkinkan

Tanpa membuat profil dan menguji beban kerja dengan benar, sulit untuk mengetahui apakah itu memanfaatkan platform yang mendasar dan sumber daya yang disebarkan dengan sebaik-baiknya.

Penyelarasan Green Software Foundation: Mengukur keberlanjutan

Rekomendasi:

  • Uji aplikasi Anda untuk memahami permintaan bersamaan, pemrosesan simultan, dan banyak lagi.
  • Jika Anda menjalankan Pembelajaran Mesin (ML) untuk pengujian, pertimbangkan mesin dengan GPU untuk mendapatkan keuntungan efisiensi yang lebih baik.
  • Identifikasi apakah beban kerja intensif performa dan bekerja menuju pengoptimalan.
  • Pertimbangkan tradeoff ini: Menjalankan komputer berbasis GPU untuk pengujian ML dapat meningkatkan biaya.

Menilai dengan rekayasa kekacauan

Menjalankan integrasi, performa, dan pengujian beban meningkatkan keandalan beban kerja. Namun, pengenalan rekayasa chaos dapat secara signifikan membantu meningkatkan keandalan dan ketahanan dan bagaimana aplikasi bereaksi terhadap kegagalan. Dengan demikian, beban kerja dapat dioptimalkan untuk menangani kegagalan dengan anggun dan dengan sumber daya yang kurang terbuang sia-sia.

Penyelarasan Green Software Foundation: Mengukur keberlanjutan

Rekomendasi:

  • Gunakan pengujian beban atau rekayasa kekacauan untuk menilai bagaimana beban kerja menangani pemadaman platform dan lonjakan lalu lintas atau dips. Ini membantu meningkatkan ketahanan layanan dan kemampuan untuk bereaksi terhadap kegagalan, memungkinkan penanganan kesalahan yang lebih dioptimalkan.
  • Pertimbangkan tradeoff ini: Menyuntikkan kesalahan selama rekayasa kekacauan dan meningkatkan beban pada sistem apa pun juga meningkatkan emisi yang digunakan untuk sumber daya pengujian. Evaluasi bagaimana dan kapan Anda dapat menggunakan rekayasa kekacauan untuk meningkatkan keandalan beban kerja sambil mempertimbangkan dampak iklim menjalankan sesi pengujian yang tidak perlu.
  • Sudut lain untuk ini adalah menggunakan rekayasa kekacauan untuk menguji kesalahan energi atau momen dengan emisi karbon yang lebih tinggi: pertimbangkan untuk menyiapkan pengujian yang akan menantang aplikasi Anda untuk mengonsumsi energi minimum yang mungkin. Tentukan bagaimana aplikasi akan bereaksi terhadap kondisi tersebut dengan versi "eco" tertentu yang memberi tahu pengguna bahwa mereka memancarkan minimum kemungkinan karbon dengan mengorbankan beberapa fitur dan mungkin beberapa performa. Ini juga dapat menjadi aplikasi tolok ukur Anda untuk menilai keberlanjutannya.

Menetapkan ambang batas CPU dan Memori dalam pengujian

Membantu membangun pengujian untuk menguji keberlanjutan di aplikasi Anda. Pertimbangkan untuk memiliki pengukuran pemanfaatan CPU dasar, dan deteksi perubahan abnormal pada garis besar pemanfaatan CPU saat pengujian berjalan. Dengan garis besar, keputusan suboptimal yang dibuat dalam perubahan kode terbaru dapat ditemukan sebelumnya.

Menambahkan pengujian dan gerbang kualitas ke dalam alur penyebaran dan pengujian membantu menghindari penyebaran solusi yang tidak berkelanjutan, berkontribusi pada emisi yang diturunkan.

Keselarasan Green Software Foundation: Efisiensi energi

Rekomendasi:

  • Pantau alokasi CPU dan memori saat menjalankan pengujian integrasi atau pengujian unit.
  • Temukan area konsumsi sumber daya yang sangat tinggi dalam kode aplikasi dan fokus pada mitigasi yang pertama.
  • Konfigurasikan pemberitahuan atau kegagalan pengujian jika melampaui nilai dasar yang ditetapkan, membantu menghindari penyebaran beban kerja yang tidak berkelanjutan.
  • Pertimbangkan tradeoff ini: Seiring pertumbuhan aplikasi, garis besar mungkin perlu bergeser sesuai untuk menghindari kegagalan pengujian saat memperkenalkan fitur baru.

Langkah selanjutnya

Tinjau pertimbangan desain untuk prosedur operasional.