View a markdown version of this page

Dokumen perencanaan eksperimen - AWS Bimbingan Preskriptif

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Dokumen perencanaan eksperimen

Keadaan mantap

Nama proses Situs adopsi hewan peliharaan

Arsitektur fisik

(Tautan ke diagram arsitektur.)

Arsitektur logis

(Tautan ke diagram logis.)

Tentukan kondisi tunak

Waktu buka halaman rata-rata, diukur dengan menggunakan Largest Contentful Paint (LCP), untuk situs adopsi hewan peliharaan adalah 2,5 detik atau kurang dengan latensi 99 persentil (P99) 4,0 detik atau kurang dengan baseline 5000 pengguna bersamaan.

Metrik kondisi stabil

Metrik LCP ditangkap di seluruh basis pengguna, dan metrik emas (latensi, throughput, tingkat kesalahan, saturasi).

Observabilitas kondisi mapan

LCP akan ditangkap oleh browser pengguna, dikirim ke Amazon CloudWatch, dan diperiksa dengan CloudWatch RUM. Selama periode 60 detik, rata-rata dan waktu P99 LCP akan dikumpulkan untuk semua permintaan dalam periode tersebut. Metrik emas tingkat atas ditangkap dengan menggunakan. CloudWatch

Proses untuk mencapai kondisi tunak

Grafana K6 akan digunakan untuk membuat beban yang mensimulasikan tingkat lalu lintas produksi normal sekitar 5K pengguna bersamaan.

Persyaratan observabilitas

Tim harus dapat melihat yang berikut:

  • Steady state: Apa yang akan diamati untuk memverifikasi bahwa aplikasi dalam kondisi normal?

  • Kondisi kegagalan: Bagaimana kondisi kegagalan akan muncul di dasbor? Misalnya:

    • Alarm yang harus dipicu

    • Log yang harus dihasilkan

  • Dampak kegagalan: Apa yang harus diamati untuk melihat komponen yang diharapkan terkena dampak (ruang lingkup dampak)?

  • Pemulihan: Bagaimana pemulihan akan dilihat dan diukur untuk menangkap MTTR?

  • Debug: Detail pemecahan masalah tentang kegagalan eksperimen.

Tabel berikut memberikan saran dan contoh untuk bagan persyaratan observabilitas. Anda harus menentukan apa yang harus diamati berdasarkan eksperimen spesifik Anda.

Apa yang perlu diperhatikan Tautan ke alat observabilitas Apa yang sedang diamati

Sumber masukan

Dasbor Grafana K6

  • Menjalankan jumlah kontainer

  • Permintaan per detik

Kesehatan aplikasi secara keseluruhan

  • CloudWatch Dasbor adopsi hewan peliharaan

  • Dasbor pengalaman pengguna adopsi hewan peliharaan (RUM)

  • Jumlah simpul sehat Amazon EKS

  • Pemanfaatan CPU node Amazon EKS

Alur kerja kesehatan

CloudWatch Dasbor adopsi hewan peliharaan

Waktu LCP, metrik emas

Jejak

Dasbor X-Ray adopsi hewan peliharaan

  • Minta latensi

  • Jumlah permintaan

  • Hitungan kegagalan

Log

CloudWatch Log adopsi hewan peliharaan

Setiap kesalahan yang ditemui oleh pod akan dikeluarkan ke CloudWatch Log.

Definisi eksperimen

Nama percobaan Stres CPU Amazon EKS PetSite pod

Kode sumber percobaan

(Tautan ke repositori sumber eksperimen.)

Deskripsi percobaan

Eksperimen ini mengeksplorasi bagaimana peningkatan penggunaan CPU dari pod PetSite aplikasi akan berdampak pada pengalaman pelanggan secara keseluruhan. Dengan menyuntikkan stress CPU ke setiap PetSite pod yang sedang berjalan, kita akan dapat memahami apakah ada dampak terhadap pelanggan dan sejauh mana dampaknya.

Persyaratan atau parameter eksperimen

Beban aplikasi: Rata-rata produksi

Pemilih label pod: app=petsite

Durasi eksperimen

10 menit

Lingkungan

Lingkungan uji alfa

Sumber daya target percobaan

PetSite pod aplikasi

Baseline percobaan yang diperkenalkan melalui alat pembangkit beban

  • 54% permintaan memiliki LCP <2,5 detik.

  • 46% permintaan memiliki LCP <4 detik.

  • Tidak ada kesalahan yang diamati.

Kondisi backoff

Tidak ada

Hipotesis

Bagaimana jika Dampak Pemulihan

Apa yang akan terjadi pada kondisi stabil jika pod PetSite aplikasi mengalami atau menyebabkan lebih dari 60% pemanfaatan CPU selama 10 menit di bawah lalu lintas tingkat produksi normal?

 

Waktu LCP akan tetap di bawah 2,5 detik untuk P50 pengguna dengan P99 4,0 detik atau kurang. Konsumen harus dapat memuat halaman PetSite arahan.

Deteksi:

  • Stres CPU akan dideteksi oleh alarm yang dikonfigurasi. CloudWatch

  • Metrik LCP juga akan menghasilkan alarm untuk degradasi pengalaman pengguna.

Penyembuhan diri:

  • Sifat terdistribusi dari arsitektur microservice berarti bahwa banyak instance pod berjalan di beberapa Availability Zone. 

  • Pesawat kontrol kluster EKS akan mengalihkan lalu lintas dari pod yang terpengaruh, dan akan meluncurkan pod baru pada node pekerja.

Pemulihan:  

Ketika pemanfaatan CPU kembali normal, LCP harus pulih secara otomatis.

Proses percobaan

Sesuaikan contoh step-by-step proses berikut dengan eksperimen spesifik Anda:

  1. Validasi akses ke, dan fungsionalitas, semua Amazon CloudWatch, CloudWatch RUM, dan AWS X-Ray dasbor.

  2. Validasi kesehatan lingkungan aplikasi:

    1. Konfirmasikan bahwa cluster EKS sehat dengan menggunakan CloudWatch dasbor.

    2. Kunjungi penerapan aplikasi situs adopsi hewan peliharaan uji di URL contoh.

  3. Memulai beban untuk mencapai kondisi tunak:

    1. Konfirmasikan bahwa generator beban sedang berjalan dan mengirim 5000 permintaan per detik.

    2. Biarkan 5 menit agar aplikasi mencapai kondisi tunaknya.

    3. Konfirmasikan kondisi tunak aplikasi dengan menggunakan dasbor CloudWatch RUM.

  4. Memulai kesalahan (percobaan):

    1. Buka AWS FIS konsol.

    2. Jalankan pet-adoption-pod-stress eksperimen.

    3. Konfirmasikan bahwa percobaan sedang berjalan di konsol.

  5. Amati dampak kesalahan pada aplikasi Anda:

    1. Tangkap tangkapan layar dari CloudWatch RUM dan CloudWatch dasbor, dan catat titik data anomali apa pun.

    2. Setelah percobaan selesai AWS FIS, ambil tangkapan layar tambahan untuk merekam jika aplikasi kembali ke kondisi tunak tanpa adanya stres, dan catat anomali apa pun pada titik data.

    3. Jika kondisi tunak tidak dilanjutkan, ambil langkah-langkah untuk memulihkan aplikasi dan mencatat langkah-langkah yang diambil.

  6. Validasi bahwa lingkungan telah kembali normal:

    • Tinjau semua metrik bisnis, pengalaman pengguna, aplikasi, dan infrastruktur untuk memverifikasi bahwa sistem telah kembali ke keadaan yang diketahui. Tangkap tangkapan layar dasbor jika membantu.

Garis waktu percobaan

Pastikan Anda menangkap garis waktu end-to-end percobaan, dimulai dengan pembuatan beban, injeksi kesalahan, pengamatan dampak, dan pemulihan aplikasi, dan berakhir saat Anda menghentikan pembuatan beban. Ini diilustrasikan dalam contoh berikut.

Contoh timeline untuk eksperimen chaos.

Hasil percobaan

Eksperimen menjalankan ID Hasil percobaan

PET-ADOPT-EXP-23

(Tautan ke hasil eksperimen.)

Cacat yang teridentifikasi

  • Cluster Kubernetes tidak mendeteksi kerusakan CPU pada PetSite pod, sehingga tidak menjadwalkan penerapan tambahan.

  • Tidak ada peningkatan tingkat kesalahan 4XX atau 5XX sebagai hasil dari percobaan ini.

  • Kita perlu menyesuaikan pemeriksaan kesehatan pod untuk memperhitungkan dampak ke LCP ketika ada kendala sumber daya.