REL08-BP03 Mengintegrasikan pengujian ketahanan sebagai bagian dari penerapan Anda - AWS Kerangka Well-Architected

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

REL08-BP03 Mengintegrasikan pengujian ketahanan sebagai bagian dari penerapan Anda

Integrasikan pengujian ketahanan dengan memasukkan kegagalan secara sadar ke dalam sistem Anda guna mengukur kemampuannya apabila terjadi skenario yang mengganggu. Pengujian ketahanan berbeda dari pengujian unit dan fungsi yang biasanya terintegrasi dalam siklus deployment, karena pengujian ini berfokus pada identifikasi terhadap kegagalan-kegagalan yang tidak terduga di dalam sistem Anda. Meskipun memulai dengan integrasi pengujian ketahanan dalam tahap praproduksi aman dilakukan, tetapkan tujuan untuk mengimplementasikan pengujian ini dalam produksi sebagai bagian dari game day Anda.

Hasil yang diinginkan: Pengujian ketahanan akan membantu Anda membangun kepercayaan pada kemampuan sistem untuk bertahan dari degradasi dalam produksi. Eksperimen mengidentifikasi titik lemah yang dapat menyebabkan kegagalan, yang akan membantu Anda meningkatkan kualitas sistem Anda untuk mengurangi terjadinya kegagalan dan penurunan kualitas secara otomatis dan efisien.

Anti-pola umum:

  • Kurangnya observabilitas dan pemantauan dalam proses deployment

  • Ketergantungan pada manusia untuk mengatasi kegagalan sistem

  • Mekanisme analisis kualitas yang buruk

  • Fokus pada masalah yang diketahui dalam suatu sistem dan kurangnya eksperimen untuk mengidentifikasi masalah yang belum diketahui

  • Identifikasi kegagalan yang tidak mempunyai penyelesaian

  • Tidak ada dokumentasi temuan dan runbook

Manfaat menerapkan praktik terbaik: Pengujian ketahanan yang terintegrasi dalam deployment Anda akan membantu Anda dalam mengidentifikasi masalah yang tidak diketahui yang terjadi dalam sistem yang tidak diketahui, yang dapat menyebabkan waktu henti dalam produksi. Melakukan identifikasi terhadap masalah-masalah yang tidak diketahui di dalam sistem akan membantu Anda mendokumentasikan temuan, mengintegrasikan pengujian ke dalam proses CI/CD Anda, dan membangun runbook, yang pada akhirnya akan menyederhanakan mitigasi melalui mekanisme yang efisien dan dapat diulang.

Tingkat risiko yang terjadi jika praktik terbaik ini tidak diterapkan: Sedang

Panduan implementasi

Bentuk pengujian ketahanan yang paling umum yang dapat diintegrasikan dalam deployment sistem Anda adalah pemulihan bencana dan rekayasa kekacauan (chaos engineering).

  • Sertakan pembaruan pada rencana pemulihan bencana dan prosedur operasi standar (SOPs) dengan penerapan yang signifikan.

  • Integrasikan pengujian keandalan ke dalam pipeline deployment otomatis Anda. Layanan-layanan seperti AWS Resilience Hub dapat diintegrasikan ke dalam pipeline CI/CD Anda untuk membuat penilaian ketahanan berkelanjutan yang secara otomatis dievaluasi sebagai bagian dari setiap deployment.

  • Tentukan aplikasi Anda di AWS Resilience Hub. Penilaian ketahanan menghasilkan cuplikan kode yang membantu Anda membuat prosedur pemulihan sebagai dokumen AWS Systems Manager untuk aplikasi Anda dan memberikan daftar monitor dan alarm Amazon yang direkomendasikan. CloudWatch

  • Setelah DR Anda merencanakan dan SOPs diperbarui, selesaikan pengujian pemulihan bencana untuk memverifikasi bahwa mereka efektif. Pengujian pemulihan bencana akan membantu Anda untuk menentukan apakah Anda dapat memulihkan sistem setelah terjadinya peristiwa tertentu dan kembali ke beroperasi secara normal. Anda dapat membuat simulasi dari berbagai strategi pemulihan bencana dan mengidentifikasi apakah perencanaan Anda sudah memadai untuk memenuhi persyaratan-persyaratan waktu aktif Anda. Strategi pemulihan bencana yang biasanya dibuat mencakup pencadangan dan pemulihan, pilot light, cold standby, warm standby, hot standby, dan active-active, dan semuanya memerlukan biaya dan memiliki kompleksitas yang berbeda-beda. Sebelum pengujian pemulihan bencana, kami menyarankan Anda menentukan tujuan waktu pemulihan (RTO) dan tujuan titik pemulihan (RPO) untuk menyederhanakan pilihan strategi untuk disimulasikan. AWS menawarkan alat pemulihan bencana seperti AWS Elastic Disaster Recoveryuntuk membantu Anda memulai dengan perencanaan dan pengujian Anda.

  • Eksperimen chaos engineering memasukkan gangguan (disruptions) ke dalam sistem, seperti pemadaman jaringan dan kegagalan layanan. Dengan melakukan simulasi dengan kegagalan terkontrol, Anda akan dapat menemukan kerentanan sistem Anda sambil mengendalikan dampak-dampak yang ditimbulkan oleh kegagalan yang dimasukkan. Sama seperti strategi lainnya, jalankan simulasi kegagalan terkontrol di lingkungan non-produksi dengan menggunakan layanan-layanan seperti AWS Fault Injection Service untuk mendapatkan kepercayaan diri sebelum melakukan deployment di lingkungan produksi.

Sumber daya

Dokumen terkait:

Video terkait: