Kecantikan dalam Istirahat: Menciptakan Sistem Tangguh Melalui Rekayasa Kekacauan

Pengarang: Laura McKinney
Tanggal Pembuatan: 2 April 2021
Tanggal Pembaruan: 1 Juli 2024
Anonim
Martial World 1741-1750
Video: Martial World 1741-1750

Isi


Sumber: pressureUA / iStockphoto

Bawa pulang:

Sistem modern harus mampu menangani kekacauan untuk menghindari downtime. Itulah mengapa lebih penting dari sebelumnya untuk menguji sistem secara menyeluruh dan memastikan ketahanannya.

Terlepas dari upaya terbesar kami untuk menghindarinya, insiden TI adalah bagian tak terhindarkan dari pekerjaan - dan berusaha untuk tetap di depan downtime yang berdampak pada bisnis hanya semakin rumit. Sistem saat ini sangat erat dan semakin kompleks, dan dengan lebih banyak bagian yang bergerak datang semakin banyak peluang untuk kesalahan.

Ini adalah salah satu alasan mengapa semakin banyak organisasi beralih ke layanan mikro untuk meningkatkan ketersediaan layanan dan ketahanan yang lebih baik terhadap kegagalan. Tetapi sementara ini adalah tempat yang bagus untuk melanggar aplikasi monolitik, mereka juga dapat berpotensi menambah risiko kegagalan - kecuali dirancang secara khusus dengan ketahanan dalam pikiran.


Mempersiapkan Kegagalan

Dengan sifat sistem distribusi terdistribusi yang kacau balau, layanan harus dikembangkan tidak hanya untuk mengantisipasi kegagalan, tetapi juga untuk pulih secara otomatis jika terjadi kegagalan. Ini berarti menghasut kegagalan secara teratur untuk memastikan sistem Anda dapat menangani kekacauan tanpa mengganggu layanan kepada pelanggan akhir. Dan untuk mencapai ini, Anda perlu kemampuan untuk mensimulasikan lalu lintas seperti produksi di lingkungan pengujian.

Tentu saja, itu adalah ide yang baik untuk menguji ketahanan sebelum perubahan membuatnya menjadi produksi. Jika Anda tidak melakukan ini, Anda tidak akan dapat memverifikasi bahwa layanan Anda dapat mendukung beban rata-rata dan puncak. Bahkan, taruhan teraman adalah memastikan produk Anda dapat menangani hingga dua kali jumlah puncak tanpa harus meningkatkannya.

Ketika datang ke pengujian ketahanan, alat yang tepat tidak boleh terlalu khawatir tentang bagaimana permintaan ditangani, hanya saja mereka memiliki dampak yang benar pada akhirnya. Ingatlah bahwa dalam kondisi tertentu, layanan input dapat gagal mengirimkan permintaan ke seluruh sistem tetapi tidak melaporkan kegagalannya. Jangan risiko masalah terbang di bawah radar pemantauan dengan memastikan bahwa validasi ujung ke ujung, pada kenyataannya, terjadi. (Untuk lebih lanjut, lihat Kegagalan Teknologi: Bisakah Kita Hidup Dengan Mereka?)


Langkah Selanjutnya

Setelah memahami bagaimana layanan berperilaku di bawah beban, saatnya untuk mulai memperkenalkan peristiwa kegagalan. Seperti halnya semua pengujian perangkat lunak, yang terbaik adalah memiliki alat otomatis yang memungkinkan Anda untuk dengan mudah dan cepat mereproduksi skenario, sehingga Anda dapat mengoordinasikan peristiwa kompleks yang berdampak pada berbagai teknologi infrastruktur. Dan di luar kemampuan untuk memverifikasi perbaikan dan perubahan pada layanan, ini memungkinkan Anda untuk menjalankan skenario kegagalan acak di lingkungan apa pun dan sesuai jadwal.

Kejadian kegagalan yang bermakna sangat tergantung pada tata letak layanan Anda, dan Anda dapat merumuskannya dengan mengajukan pertanyaan spesifik yang relevan bagi Anda. Sebagai contoh, apa dampaknya bagi orang yang menggunakan front-end ketika database menjadi tidak terjangkau untuk periode waktu tertentu? Bisakah pengguna itu masih menavigasi UI web? Bisakah mereka masih mengeluarkan pembaruan untuk informasi mereka, dan akankah pembaruan itu diproses dengan benar ketika database menjadi dapat dijangkau kembali?

Jika Anda menjalankan beberapa layanan microser, Anda dapat menanyakan apakah akan ada pemadaman global jika ada layanan individual yang mogok. Atau jika Anda memiliki mekanisme antrian untuk menyangga komunikasi antar layanan, apa yang terjadi ketika layanan konsumen (atau layanan) berhenti bekerja? Apakah pengguna masih dapat bekerja dengan aplikasi Anda? Dan diberi beban rata-rata, berapa lama yang Anda miliki sebelum antrian meluap dan Anda mulai kehilangan s?

Tanpa Bug, Tanpa Stres - Panduan Langkah Demi Langkah Anda untuk Membuat Perangkat Lunak yang Mengubah Hidup Tanpa Menghancurkan Kehidupan Anda

Anda tidak dapat meningkatkan keterampilan pemrograman Anda ketika tidak ada yang peduli dengan kualitas perangkat lunak.

Setelah menetapkan beberapa pertanyaan kunci tentang infrastruktur Anda, Anda dapat mulai membuat daftar berbagai cara untuk mensimulasikan kegagalan tersebut. Mungkin cukup untuk menghentikan layanan tertentu atau server database. Anda mungkin ingin memblokir utas layanan untuk mensimulasikan dead-lock, sementara wadahnya masih responsif dan berjalan. Anda mungkin memutuskan untuk memperkenalkan aturan di jaringan Anda untuk memblokir lalu lintas antara layanan tertentu. Di lingkungan Linux, Anda dapat menggunakan alat-alat seperti c tc ’untuk meniru situasi jaringan seperti latensi tinggi, turun, rusak atau digandakan paket. (Penting untuk melibatkan pengguna dalam pengujian. Baca selengkapnya dalam 4 Alasan Mengapa Pengguna Akhir Perlu Berpartisipasi dalam Pengujian Sebelum UAT.)

Belajar dan Meningkatkan Melalui Latihan

Salah satu aspek yang paling berharga dalam membuat skenario kegagalan adalah bahwa mereka dapat mengekspos semua cara potensial yang dapat membuat sistem gagal, sehingga mengukir jalan menuju logika penyembuhan diri. Tim Anda akan melalui langkah-langkah untuk memulihkan layanan secara manual - omong-omong, untuk memastikan mereka dapat melakukan ini dalam SLA. Otomatisasi proses pemulihan ini dapat dikerjakan, tetapi sementara itu, Anda bisa tenang mengetahui tim Anda telah melalui proses mendapatkan layanan kembali ke jalurnya. Dengan membuat skenario kegagalan secara acak dan teratur dan tidak mengungkapkan rincian lengkap proses, Anda juga dapat memasukkan penemuan dan diagnosa ke latihan - yang, bagaimanapun, merupakan bagian penting dari SLA.

Pada intinya, rekayasa kekacauan mengambil kompleksitas sistem sebagai yang diberikan, mengujinya dengan mensimulasikan kondisi baru dan aneh, dan mengamati bagaimana sistem merespons. Ini adalah tim rekayasa data yang perlu mendesain ulang dan mengkonfigurasi ulang sistem untuk mencapai ketahanan yang lebih tinggi. Ada begitu banyak peluang untuk mempelajari hal-hal baru dan berguna. Misalnya, Anda mungkin menemukan contoh di mana layanan tidak mendapatkan pembaruan ketika layanan hilir telah berubah, atau area di mana pemantauan tidak ada sama sekali. Tidak ada kekurangan cara menarik untuk membuat produk Anda lebih tangguh dan kuat!