Pengujian beban terdistribusi menggunakan Google Kubernetes Engine
Tetap teratur dengan koleksi
Simpan dan kategorikan konten berdasarkan preferensi Anda.
Last reviewed 2024-08-13 UTC
Dokumen ini menjelaskan cara menggunakan Google Kubernetes Engine (GKE) untuk men-deploy framework pengujian beban terdistribusi yang menggunakan beberapa penampung untuk membuat traffic bagi API berbasis REST sederhana. Dokumen ini menguji beban
aplikasi web yang di-deploy ke App Engine yang mengekspos endpoint bergaya REST untuk
merespons permintaan POST HTTP yang masuk.
Anda dapat menggunakan pola yang sama ini untuk membuat framework pengujian beban untuk berbagai
skenario dan aplikasi, seperti sistem fitur pesan, sistem pengelolaan aliran data,
dan sistem database.
Tujuan
Menentukan variabel lingkungan guna mengontrol konfigurasi deployment.
Membuat cluster GKE.
Melakukan pengujian beban.
Secara opsional meningkatkan jumlah pengguna atau memperluas pola ke kasus pengguna lain.
Biaya
Dalam dokumen ini, Anda akan menggunakan komponen Google Cloud yang dapat ditagih berikut: Google Cloud:
App Engine
Artifact Registry
Cloud Build
Cloud Storage
Google Kubernetes Engine
Untuk membuat perkiraan biaya berdasarkan proyeksi penggunaan Anda,
gunakan kalkulator harga.
Pengguna Google Cloud baru mungkin memenuhi syarat untuk mendapatkan uji coba gratis.
Sebelum memulai
Sign in to your Google Cloud account. If you're new to
Google Cloud,
create an account to evaluate how our products perform in
real-world scenarios. New customers also get $300 in free credits to
run, test, and deploy workloads.
In the Google Cloud console, on the project selector page,
select or create a Google Cloud project.
Setelah menyelesaikan tugas yang dijelaskan dalam dokumen ini, Anda dapat menghindari penagihan berkelanjutan dengan menghapus resource yang Anda buat. Untuk mengetahui informasi selengkapnya, lihat
Pembersihan.
Grant roles to your user account. Run the following command once for each of the following
IAM roles:
roles/serviceusage.serviceUsageAdmin, roles/container.admin, roles/appengine.appAdmin, roles/appengine.appCreator, roles/artifactregistry.admin, roles/resourcemanager.projectIamAdmin, roles/compute.instanceAdmin.v1, roles/iam.serviceAccountUser, roles/cloudbuild.builds.builder, roles/iam.serviceAccountAdmin
Replace USER_IDENTIFIER with the identifier for your user
account.
For example, user:myemail@example.com.
Replace ROLE with each individual role.
Contoh workload
Diagram berikut menunjukkan contoh workload saat permintaan beralih dari klien
ke aplikasi.
Untuk membuat model interaksi ini, Anda dapat menggunakan Locust,
alat pengujian beban berbasis Python terdistribusi yang dapat mendistribusikan
permintaan di beberapa jalur target. Sebagai contoh, Locust dapat mendistribusikan
permintaan ke jalur target /login dan /metrics Workload dimodelkan sebagai serangkaian
tugas
di Locust.
Arsitektur
Arsitektur ini melibatkan dua komponen utama:
Image container Docker Locust.
Orkestrasi container dan mekanisme pengelolaan.
Image container Docker Locust berisi software Locust. Dockerfile,
yang Anda dapatkan saat meng-clone repositori GitHub
yang menyertai dokumen ini,
menggunakan gambar dasar
Python dan menyertakan skrip untuk memulai layanan Locust dan menjalankan
tugas. Untuk memperkirakan klien di dunia nyata, setiap tugas Locust diberi bobot. Sebagai contoh
example, pendaftaran terjadi sekali per seribu total permintaan klien.
GKE menyediakan orkestrasi dan pengelolaan container.
Dengan GKE, Anda dapat menentukan jumlah node container yang
menyediakan dasar untuk framework pengujian beban. Anda juga dapat mengatur
pekerja pengujian beban ke dalam Pod, dan menentukan berapa banyak Pod yang Anda inginkan
agar GKE tetap berjalan.
Untuk men-deploy tugas pengujian beban, Anda dapat melakukan hal berikut:
Men-deploy pengujian beban utama, yang disebut sebagai master oleh Locust.
Men-deploy sekelompok pekerja pengujian beban. Dengan pekerja pengujian beban ini,
Anda dapat membuat traffic dalam jumlah yang besar untuk tujuan pengujian.
Diagram berikut menunjukkan arsitektur yang mendemonstrasikan pengujian beban
menggunakan contoh aplikasi. Pod master menayangkan antarmuka web yang digunakan untuk
mengoperasikan dan memantau pengujian beban. Pod pekerja menghasilkan traffic permintaan REST
untuk aplikasi yang sedang diuji, dan mengirimkan metrik ke master.
[[["Mudah dipahami","easyToUnderstand","thumb-up"],["Memecahkan masalah saya","solvedMyProblem","thumb-up"],["Lainnya","otherUp","thumb-up"]],[["Sulit dipahami","hardToUnderstand","thumb-down"],["Informasi atau kode contoh salah","incorrectInformationOrSampleCode","thumb-down"],["Informasi/contoh yang saya butuhkan tidak ada","missingTheInformationSamplesINeed","thumb-down"],["Masalah terjemahan","translationIssue","thumb-down"],["Lainnya","otherDown","thumb-down"]],["Terakhir diperbarui pada 2024-08-13 UTC."],[],[]]