Bagikan melalui


Rekomendasi untuk merancang strategi pengujian keandalan

Berlaku untuk rekomendasi daftar periksa Keandalan yang Dirancang dengan Baik ini Power Platform :

RE:06 Uji skenario ketahanan dan ketersediaan dengan menerapkan prinsip-prinsip rekayasa kekacauan di lingkungan pengujian dan produksi Anda. Gunakan pengujian untuk memastikan bahwa strategi implementasi degradasi Anda yang anggun efektif dengan melakukan kerusakan aktif dan pengujian beban simulasi.

Panduan ini menjelaskan rekomendasi untuk merancang strategi pengujian keandalan untuk memvalidasi dan mengoptimalkan keandalan beban kerja Anda. Pengujian keandalan berfokus pada ketahanan dan ketersediaan beban kerja Anda, khususnya alur penting yang Anda identifikasi saat merancang solusi. Panduan ini memberikan panduan dan panduan pengujian umum yang khusus untuk injeksi kesalahan dan rekayasa kekacauan.

Definisi

Istilah Devinisi
Ketersediaan Jumlah waktu beban kerja aplikasi berjalan dalam keadaan sehat tanpa waktu henti yang signifikan.
Rekayasa kekacauan Praktek menundukkan aplikasi dan layanan pada tekanan dan kegagalan dunia nyata. Tujuan dari rekayasa kekacauan adalah untuk membangun dan memvalidasi ketahanan terhadap kondisi yang tidak dapat diandalkan dan dependensi yang hilang.
Injeksi kesalahan Tindakan memperkenalkan kesalahan ke sistem untuk menguji ketahanan sistem.
Pemulihan Sinonim untuk ketahanan.
Ketahanan Kemampuan beban kerja aplikasi untuk menahan dan memulihkan dari mode kegagalan.

Strategi desain utama

Pengujian sangat penting untuk memastikan bahwa beban kerja Anda memenuhi target keandalan dan dapat menangani kegagalan dengan baik. Injeksi kesalahan adalah jenis pengujian yang dengan sengaja memperkenalkan kesalahan atau tekanan ke dalam sistem Anda untuk mensimulasikan skenario dunia nyata. Dengan menggunakan teknik injeksi kesalahan dan rekayasa kekacauan, Anda dapat secara proaktif menemukan dan memperbaiki masalah sebelum memengaruhi lingkungan produksi Anda. Bagian ini memberikan panduan umum tentang pengujian, injeksi kesalahan, dan rekayasa kekacauan untuk beban kerja Anda.

Panduan pengujian umum

Lakukan pengujian secara rutin untuk memvalidasi ambang batas, target, dan asumsi yang ada. Saat terjadi perubahan besar dalam beban kerja Anda, jalankan pengujian rutin. Lakukan sebagian besar pengujian di lingkungan pengujian dan pementasan. Ini juga bermanfaat untuk menjalankan subset pengujian terhadap sistem produksi.

Otomatiskan pengujian untuk membantu memastikan cakupan pengujian dan reproduktifitas yang konsisten. Otomatiskan tugas pengujian umum dan integrasikan ke dalam proses build Anda. Perangkat lunak pengujian manual membosankan dan rentan terhadap kesalahan, tetapi Anda dapat melakukan pengujian eksplorasi manual. Untuk kasus di mana Anda perlu mengembangkan pengujian otomatis, gunakan pengujian manual untuk menentukan ruang lingkup pengujian yang akan dikembangkan.

Mengadopsi pendekatan pengujian pergeseran kiri untuk melakukan pengujian ketahanan dan ketersediaan di awal siklus pengembangan.

Sesuaikan format dokumentasi sederhana, sehingga mudah bagi semua orang untuk memahami proses dan hasil setiap tes reguler.

Bagikan hasil yang didokumentasikan dengan tim yang sesuai, seperti tim operasional, kepemimpinan teknologi, pemangku kepentingan bisnis, dan pemangku kepentingan pemulihan bencana. Hasilnya harus menginformasikan penyempurnaan target keandalan, seperti tujuan tingkat layanan (SLO), perjanjian tingkat layanan (SLA), tujuan waktu pemulihan (RTO), dan tujuan titik pemulihan (RPO).

Buat irama pengujian rutin untuk cadangan Anda. Pulihkan data ke sistem terisolasi untuk membantu memastikan bahwa cadangan valid dan pemulihan berfungsi.

Dokumentasikan dan bagikan metrik waktu pemulihan dengan pemangku kepentingan pemulihan bencana Anda untuk memastikan bahwa ekspektasi pemulihan sesuai.

Gunakan prosedur pengujian penyebaran standar industri untuk membantu memastikan bahwa Anda memiliki proses penerapan yang otomatis, dapat diprediksi, dan efisien.

Uji kemampuan beban kerja Anda untuk menahan kegagalan sementara. Untuk informasi selengkapnya, lihat Rekomendasi untuk menangani kesalahan sementara.

Uji bagaimana beban kerja Anda menangani kegagalan dalam layanan dependen atau dependensi lainnya dengan menggunakan injeksi kesalahan.

Uji rencana pemulihan bencana Anda untuk menanggapi kegagalan bencana dan insiden besar lainnya.

Uji kemampuan beban kerja Anda untuk menurun dengan anggun dan meminimalkan radius ledakan kerusakan komponen dengan menggunakan injeksi kesalahan.

Manfaatkan pemadaman yang direncanakan dan tidak direncanakan

Saat beban kerja Anda offline karena pemeliharaan terencana atau pemadaman yang tidak direncanakan, Anda memiliki kesempatan unik untuk melakukan pengujian dan meningkatkan pemahaman Anda tentang beban kerja Anda. Bagian berikut memberikan rekomendasi untuk setiap skenario.

Pemeliharaan terencana

Ketika Anda telah merencanakan jendela pemeliharaan untuk pembaruan atau patch, Anda dapat menguji komponen dan alur yang tidak terlibat dalam pekerjaan pemeliharaan. Lakukan pengujian tanpa potensi risiko menurunkan beban kerja secara tak terduga atau menonaktifkannya sama sekali. Jika Anda memiliki cukup waktu selama jendela pemeliharaan, Anda juga dapat menguji komponen dan alur yang terlibat dalam pemeliharaan setelah pekerjaan pemeliharaan selesai.

Pemadaman yang tidak direncanakan

Gunakan setiap insiden pemadaman sebagai kesempatan untuk mempelajari selengkapnya tentang beban kerja Anda dan meningkatkan ketahanannya dengan mengikuti langkah-langkah berikut, diurutkan berdasarkan prioritas:

  1. Dapatkan kembali beban kerja online untuk pengguna Anda. Anda mungkin perlu melakukan solusi untuk masalah tersebut, menyelesaikan masalah, atau memulai proses pemulihan.

  2. Tentukan akar penyebab pemadaman dan atasi. Jika Anda dapat memperbaiki akar penyebab sebagai bagian dari penyelidikan, dokumentasikan akar penyebab dan tindakan yang Anda ambil untuk memperbaikinya. Jika masalah tersebut mengharuskan mengambil jendela pemeliharaan lain nanti, pastikan bahwa tindakan mitigasi Anda dapat menangani beban yang diharapkan dengan mengujinya secara menyeluruh. Pastikan Anda telah menyiapkan pemantauan yang memadai untuk menutupi langkah-langkah mitigasi Anda.

  3. Jika ada, cari masalah yang sama, atau kelemahan konfigurasi yang mungkin terpengaruh oleh masalah serupa, di semua komponen dalam beban kerja Anda. Gunakan kesempatan ini untuk secara proaktif menangani komponen tersebut. Konsultasikan riwayat insiden Anda untuk mendeteksi pola masalah serupa di seluruh beban kerja Anda.

  4. Gunakan temuan Anda untuk meningkatkan strategi pengujian Anda. Pastikan Anda telah berhasil mengatasi akar penyebab dan masalah serupa dengan menguji kegagalan yang sama secara langsung.

Panduan teknik injeksi kesalahan dan kekacauan

Pengujian injeksi kesalahan mengikuti prinsip-prinsip rekayasa kekacauan dengan menyoroti kemampuan beban kerja untuk bereaksi terhadap kegagalan komponen. Lakukan pengujian injeksi kesalahan di lingkungan praproduksi dan produksi. Terapkan informasi yang Anda pelajari dari melakukan analisis mode kegagalan untuk memastikan bahwa Anda hanya menguji kesalahan yang Anda prioritaskan dan bahwa Anda memiliki strategi mitigasi yang mengatasi kesalahan.

Pedoman utama rekayasa kekacauan adalah:

  • Bersikaplah proaktif. Jangan menunggu kegagalan terjadi. Cobalah untuk mengantisipasi kegagalan dengan melakukan eksperimen kekacauan untuk menemukan dan memperbaiki masalah sebelum memengaruhi lingkungan produksi Anda.

  • Rangkul kegagalan. Terima dan belajar dari kegagalan yang terjadi di sistem Anda. Lihat kegagalan sebagai bagian alami dari sistem yang kompleks dan gunakan sebagai peluang untuk mempelajari dan meningkatkan keandalan sistem Anda.

  • Hancurkan sistem. Sengaja menyuntikkan kesalahan atau stres ke dalam sistem Anda untuk menguji ketahanannya. Simulasikan kegagalan atau gangguan dunia nyata untuk menguji dan meningkatkan kemampuan pemulihan beban kerja Anda.

  • Bangun kekebalan. Gunakan eksperimen rekayasa kekacauan untuk meningkatkan kemampuan beban kerja Anda untuk mencegah dan memulihkan dari kegagalan.

Rekayasa kekacauan adalah bagian integral dari budaya tim beban kerja dan praktik yang berkelanjutan, bukan upaya taktis jangka pendek sebagai respons terhadap satu pemadaman. Ikuti metode standar ini saat Anda merancang eksperimen kekacauan Anda:

  1. Mulailah dengan hipotesis. Setiap eksperimen harus memiliki tujuan yang jelas, seperti menguji kemampuan aliran untuk menahan hilangnya komponen tertentu.

  2. Mengukur perilaku dasar. Pastikan Anda memiliki metrik keandalan dan performa yang konsisten untuk alur dan komponen yang terlibat dalam eksperimen untuk dibandingkan dengan status yang terdegradasi saat menjalankan eksperimen Anda.

  3. Suntikkan kesalahan atau kesalahan. Eksperimen harus dengan sengaja menargetkan komponen tertentu yang dapat dipulihkan dengan cepat, dan Anda harus memiliki ekspektasi yang tepat tentang efek yang akan ditimbulkan oleh injeksi kesalahan untuk membantu mengontrol radius ledakan percobaan.

  4. Pantau perilaku yang dihasilkan. Kumpulkan telemetri tentang komponen aliran individu dan perilaku aliran ujung ke ujung yang ditargetkan eksperimen untuk memahami efek kesalahan dengan benar. Bandingkan metrik yang Anda kumpulkan dengan metrik dasar untuk gambaran lengkap hasil injeksi kesalahan.

  5. Dokumentasikan proses dan pengamatan. Menyimpan catatan terperinci eksperimen Anda akan menginformasikan keputusan di masa mendatang tentang desain beban kerja, memastikan bahwa Anda mengatasi kesenjangan yang telah terungkap dari waktu ke waktu.

  6. Identifikasi dan tindak lanjuti hasilnya. Rencanakan langkah-langkah remediasi yang dapat ditambahkan ke backlog beban kerja Anda sebagai peningkatan. Pastikan bahwa rencana peningkatan desain ditinjau dan diuji di lingkungan nonproduksi sesuai dengan proses yang sama dengan penyebaran lainnya.

Validasi proses, pilihan arsitektur, dan kode Anda secara berkala untuk mendeteksi hutang teknis dengan cepat, mengintegrasikan teknologi baru, dan beradaptasi dengan perubahan persyaratan.

Saat Anda melakukan eksperimen injeksi kesalahan, Anda:

  • Konfirmasikan bahwa pemantauan sudah ada dan pemberitahuan telah disiapkan.

  • Validasi proses penugasan individu yang bertanggung jawab langsung (DRI) untuk mengambil alih kepemilikan atas suatu insiden.

  • Pastikan dokumentasi dan proses investigasi Anda diperbarui.

Integrasikan rekomendasi dan pertimbangan berikut untuk mengoptimalkan strategi pengujian kekacauan Anda:

  • Tantang asumsi sistem. Dengan pengujian, Anda mencoba meningkatkan ketahanan beban kerja dan strategi desain beban kerja Anda. Carilah peluang untuk menyuntikkan kesalahan ke dalam komponen dan alur yang Anda anggap dapat diandalkan berdasarkan pengalaman masa lalu. Mereka mungkin tidak dapat diandalkan dalam beban kerja baru Anda.

  • Validasi perubahan. Tanpa pengujian menyeluruh, termasuk pengujian injeksi kesalahan, Anda mungkin memiliki gambaran yang tidak lengkap tentang beban kerja Anda setelah perubahan dilakukan. Misalnya, Anda mungkin memperkenalkan dependensi baru yang tidak langsung terlihat.

  • Gunakan buffer SLA. Batasi pengujian kekacauan agar tetap berada dalam SLA Anda dan hindari potensi efek samping dari pemadaman. Target pemulihan alur dan komponen Anda membantu menentukan cakupan pengujian Anda.

  • Tetapkan anggaran kesalahan sebagai investasi dalam kekacauan dan injeksi kesalahan. Anggaran kesalahan Anda adalah perbedaan antara mencapai 100% SLO dan mencapai SLO yang disepakati.

  • Hentikan eksperimen jika melampaui cakupan. Hasil yang tidak diketahui adalah hasil yang diharapkan dari eksperimen kekacauan. Berusahalah untuk mencapai keseimbangan antara mengumpulkan data hasil yang substansial dan memengaruhi pengguna produksi sesedikit mungkin.

  • Bekerja sama dengan tim pengembangan untuk memastikan relevansi kegagalan yang disuntikkan. Gunakan insiden atau masalah masa lalu sebagai panduan. Periksa dependensi dan evaluasi hasilnya saat Anda menghapus dependensi tersebut.

  • Identifikasi dan dokumentasikan dependensi yang sebelumnya tidak ditemukan antara berbagai komponen dalam beban kerja Anda yang terungkap melalui pengujian kekacauan.

  • Sesuaikan rencana pemulihan seperlunya untuk memperhitungkan dependensi yang ditemukan selama pengujian kekacauan.

  • Gunakan hasil dari eksperimen dan pengujian Anda sebagai dasar untuk eksperimen dan pengujian baru. Saat perilaku tak terduga muncul, pengujian baru mungkin menargetkan perilaku tersebut secara langsung dan memberi Anda kesempatan untuk merancang strategi remediasi untuk perilaku tersebut.

Pengorbanan: Pengujian injeksi kesalahan dalam produksi dapat mengganggu dan berpotensi menyebabkan waktu henti. Bersikaplah transparan dengan pemangku kepentingan tentang kemungkinan ini dan pastikan bahwa Anda memiliki perlindungan untuk mengakhiri eksperimen dan rencana pengembalian untuk membalikkan kegagalan yang Anda perkenalkan dengan cepat.

Power Platform Fasilitasi

Anda dapat menggunakan hasil statis untuk Power Automate mengembalikan hasil tetap guna menguji beban kerja Anda.

Power Apps Test Engine (pratinjau) adalah Power Platform komponen CLI yang dapat Anda gunakan untuk menguji aplikasi kanvas mandiri Power Apps.

Azure Test Plans adalah solusi manajemen pengujian berbasis browser yang mudah digunakan yang menyediakan semua kemampuan yang diperlukan untuk pengujian manual terencana, pengujian penerimaan pengguna, pengujian eksplorasi, dan mengumpulkan umpan balik dari pemangku kepentingan.

Jika beban kerja Anda menyertakan sumber daya Azure, Anda dapat menggunakan Azure Chaos Studio, layanan terkelola yang menggunakan rekayasa kekacauan untuk membantu Anda mengukur, memahami, dan meningkatkan ketahanan aplikasi cloud dan layanan Anda.

Jika beban kerja Anda menyertakan agen Microsoft Copilot Studio , Anda dapat menggunakan Power CAT Copilot Studio Kit untuk mengonfigurasi agen dan pengujian. Dengan menjalankan pengujian individual terhadap Copilot Studio API (Direct Line), respons agen dievaluasi terhadap hasil yang diharapkan.

Daftar periksa keandalan

Lihat rangkaian lengkap rekomendasi.