Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
GAMEOPS03-BP03 Uji beban lebih awal dan sering
Pengujian beban adalah proses simulasi lalu lintas dunia nyata pada suatu sistem untuk menilai keandalan dan kinerjanya.
Tingkat risiko yang terjadi jika praktik terbaik ini tidak diterapkan: Tinggi
Panduan implementasi
Pengujian beban adalah faktor kunci dalam mengembangkan baseline kinerja untuk sumber daya Anda dan memahami kapasitas sistem Anda, yang dapat memandu peramalan keuangan, desain arsitektur, alokasi sumber daya, konfigurasi penskalaan otomatis, dan aktivitas pra-penskalaan pasca-peluncuran. Manfaat tambahan meliputi:
-
Infrastruktur yang dioptimalkan: Sumber daya mungkin lebih atau kurang disediakan. Memahami sumber daya yang dibutuhkan akan menghasilkan biaya yang lebih rendah dan infrastruktur yang lebih sedikit untuk dikelola.
-
Kesiapan skalabilitas: Mekanisme dan fitur tertentu dapat mendorong pengguna ke dalam game dengan cepat. Mengetahui kapan dan bagaimana menskalakan bisa menjadi perbedaan antara memenuhi permintaan yang meningkat dengan tepat dan kehilangan pemain. Gunakan hasil uji beban untuk menyiapkan runbook dengan ambang batas sistem, titik peringatan, dan titik peringatan kritis pada tingkat penskalaan yang berbeda.
-
Kode kualitas yang lebih tinggi: Masalah seperti crosstalk yang berlebihan antar layanan, panggilan basis data yang tidak terbatasi, algoritme yang tidak efisien, kebocoran memori, dan masalah degradasi layanan terkadang lebih mudah diidentifikasi dalam skala besar.
-
Validasi perilaku: Menyuntikkan berbagai jenis kegagalan ke dalam pengujian Anda dapat memvalidasi perilaku yang diharapkan sistem atau mengungkap masalah penanganan kesalahan yang perlu diperbaiki.
Idealnya, pengembang harus melakukan pengujian beban di beberapa titik selama proses pengembangan, karena masing-masing dapat menghasilkan manfaat yang berbeda: Sejak awal, mereka memandu keputusan arsitektur dan upaya refactoring sementara itu lebih murah dan mudah untuk membuat perubahan. Pada akhir setiap sprint atau iterasi, mereka memvalidasi kinerja aplikasi dengan fitur dan fungsionalitas terbaru.
Sebelum menerapkan ke produksi, pengujian beban skala besar yang mensimulasikan pola penggunaan dunia nyata yang diharapkan menegaskan kemampuan sistem untuk menangani beban kerja produksi. Setelah penerapan, uji beban berkala memantau kinerja sistem dan mengidentifikasi perubahan atau kemacetan yang mungkin timbul seiring waktu.
Untuk mensimulasikan lalu lintas pemain, Anda memerlukan klien atau bot ringan yang meniru aliran klien game dan bertransaksi dengan backend game untuk mensimulasikan perilaku pemain dunia nyata. Data ini umumnya ditangkap melalui log permainan game dan data yang dihasilkan oleh tes QA yang digerakkan oleh manusia, serta melalui tes alfa atau beta skala terbatas dunia nyata di mana pemain sungguhan diundang untuk memainkan versi permainan akses awal.
Penting untuk mencatat perilaku sistem dalam runbook operasional untuk membantu memecahkan masalah kemungkinan kegagalan di masa depan dan untuk mempertahankan metrik kinerja yang dapat dibandingkan dengan pengujian beban masa depan. Juga disarankan untuk meminta personel QA manusia menguji permainan saat sedang diuji beban karena mereka mungkin menemukan masalah yang gagal diidentifikasi oleh bot dan metrik tidak tercermin.
AWS Fault Injection Service
Langkah-langkah implementasi
-
Siapkan lingkungan pengujian beban terdistribusi menggunakan Guidance for Kubernetes-Bases
Game Load Testing. -
Kustomisasi dan terapkan kontrol Locust dan pod pekerja di dalam klaster EKS menggunakan file penerapan yang disediakan, memungkinkan pembuatan beban yang dapat diskalakan dan dikelola.
-
Rekam perilaku dan metrik sistem selama pengujian beban dalam runbook operasional untuk membantu pemecahan masalah di masa depan dan menetapkan garis dasar kinerja.
-
Gunakan eksperimen injeksi kesalahan untuk mensimulasikan gangguan dunia nyata dan mengungkap masalah tersembunyi dalam kinerja sistem, observabilitas, dan ketahanan.