REL08-BP03 Mengintegrasikan pengujian ketahanan sebagai bagian dari deployment Anda - Pilar Keandalan

REL08-BP03 Mengintegrasikan pengujian ketahanan sebagai bagian dari deployment 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 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 gameday Anda.

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

Antipola 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 tidak diketahui

  • Identifikasi kegagalan, tetapi tidak ada penyelesaian

  • Tidak ada dokumentasi temuan dan runbook

Manfaat menjalankan praktik terbaik: Pengujian ketahanan yang terintegrasi dalam deployment Anda membantu mengidentifikasi masalah yang tidak diketahui di dalam sistem yang biasanya tidak diketahui, yang dapat menyebabkan waktu henti dalam produksi. Identifikasi masalah yang tidak diketahui ini di dalam sistem membantu Anda mendokumentasikan temuan, mengintegrasikan pengujian ke dalam proses CI/CD Anda, dan membangun runbook, yang menyederhanakan mitigasi melalui mekanisme yang efisien dan dapat diulang.

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

Panduan implementasi

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

  • Sertakan pembaruan pada rencana pemulihan bencana dan prosedur operasi standar (SOP) Anda dengan deployment signifikan apa pun.

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

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

  • Setelah rencana DR dan SOP Anda diperbarui, selesaikan pengujian pemulihan bencana untuk memverifikasi efektivitasnya. Pengujian pemulihan bencana membantu Anda menentukan apakah Anda dapat memulihkan sistem setelah peristiwa tertentu dan kembali ke operasi normal. Anda dapat menyimulasikan berbagai strategi pemulihan bencana dan mengidentifikasi apakah perencanaan Anda memadai untuk memenuhi persyaratan waktu aktif Anda. Strategi pemulihan bencana umum antara lain pencadangan dan pemulihan, pilot light, cold standby, warm standby, hot standby, dan active-active, dan semuanya memiliki biaya dan kompleksitas yang berbeda-beda. Sebelum pengujian pemulihan bencana, sebaiknya tentukan sasaran waktu pemulihan (RTO) dan sasaran titik pemulihan (RPO) untuk menyederhanakan pilihan strategi yang akan disimulasikan. AWS menawarkan alat pemulihan bencana seperti AWS Elastic Disaster Recovery untuk membantu Anda memulai perencanaan dan pengujian Anda.

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

Sumber daya

Dokumen terkait:

Video terkait: