Coconote
AI notes
AI voice & video notes
Export note
Try for free
Rekayasa Chaos untuk Ketahanan Perangkat Lunak
Aug 16, 2024
Membangun Ketahanan Berkelanjutan dalam Siklus Hidup Pengiriman Perangkat Lunak dengan Rekayasa Chaos
Pendahuluan
Pembicara: Matt Schillersham
Peran: Manajer Pemasaran Produk di Harness
Fokus: Ketahanan berkelanjutan dalam pengiriman perangkat lunak melalui rekayasa chaos
Pengalaman: 20 tahun di berbagai industri termasuk tenaga nuklir, ritel, e-niaga, dan organisasi non-profit.
Keterlibatan Komunitas: Bagian dari Komunitas Sumber Terbuka Litmus Chaos, sponsor CNCF.
Mengapa Rekayasa Chaos?
Definisi
: Memahami bagaimana sistem bekerja dan bereaksi terhadap kegagalan.
Kutipan
: "Jika Anda tidak tahu mengapa itu bekerja saat itu bekerja, Anda tidak akan tahu bagaimana cara memperbaikinya saat rusak." – Andy Stanley
Tujuan
: Mempersiapkan kegagalan dan meningkatkan pemulihan sistem serta pengalaman pengguna.
Pentingnya Mekanisme Ketahanan
Dikembangkan dalam kode dan arsitektur untuk memfasilitasi pemulihan yang lancar.
Rekayasa chaos memvalidasi mekanisme ini sebelum insiden terjadi.
Mode Kegagalan Kubernetes Umum
Ketidakstabilan sistem
Kontensi sumber daya
Masalah penskalaan
Kesalahan konfigurasi
Keletihan sumber daya
Catatan
: Rekayasa chaos membantu menangani masalah ini secara proaktif.
Pengalaman Rekayasa Chaos
Contoh pengaturan eksperimen chaos melalui proyek Litmus Chaos.
Implementasi saat ini melibatkan file YAML deklaratif untuk mensimulasikan kegagalan dan mengevaluasi perilaku aplikasi.
Ketahanan Berkelanjutan
Tujuan
: Mengoptimalkan keandalan dan ketahanan dalam pengiriman perangkat lunak untuk meningkatkan pengalaman pelanggan.
Kolaborasi di antara SRE, insinyur QA, dan pengembang sangat penting.
Rincian Ketahanan Berkelanjutan
SREs
: Menggunakan rekayasa chaos pasca insiden untuk menganalisis dan menciptakan kembali kegagalan.
Insinyur QA
: Menjalankan eksperimen chaos di lingkungan uji untuk memvalidasi perbaikan.
Pengembang
: Mengintegrasikan pengujian chaos dalam pipeline CI/CD untuk menangkap masalah lebih awal.
Perspektif Tingkat Bisnis
Inovasi dalam pengiriman perangkat lunak sangat penting untuk keandalan dan ketahanan.
Fokus 2023: Kecepatan tinggi, efisiensi, biaya rendah, dan keandalan adalah esensial.
Biaya Pengembangan Perangkat Lunak
27 juta pengembang secara global, rata-rata gaji $100.000 (total gaji ~ $2.7 triliun).
Banyak pengembang menghabiskan kurang dari 3 jam sehari untuk coding karena berbagai beban yang mempengaruhi produktivitas.
Mengurangi Beban Pengembang
Potensi untuk meningkatkan anggaran pengembang dan kapabilitas dengan mengurangi beban.
Faktor yang menghambat produktivitas:
Rapat
Mengawasi penggelaran
Pengujian keamanan
Meningkatkan Keandalan dan Ketahanan
Bidang untuk Mengurangi Waktu
:
Waktu pembangunan perangkat lunak
Waktu penerapan perangkat lunak
Waktu perbaikan bug
Tantangan Debugging
Kelalaian dan ketergantungan yang tidak diuji berkontribusi pada waktu debugging yang lebih lama.
Biaya memperbaiki bug di produksi mahal; pencegahan melalui pengujian QA lebih efisien.
Pengembang Cloud Native
Fokus pada kontainer dan API meningkatkan kemungkinan kegagalan karena kompleksitas.
Pengujian chaos otomatis dalam pipeline dapat menangani masalah umum:
Keletihan sumber daya
Kesalahan konfigurasi
Stabilitas sistem
Injeksi Kesalahan dan Eksperimen Chaos
Kebutuhan
: Memperkenalkan kesalahan yang terkontrol untuk ketahanan yang lebih baik.
Penekanan pada pengujian chaos terus menerus untuk mempertahankan keandalan sistem.
Metrik Ketahanan Berkelanjutan
Mengukur ketahanan dengan skor ketahanan (tingkat keberhasilan eksperimen) dan liputan (jumlah tes yang dijalankan vs. total tes yang mungkin).
Kesimpulan
Pengambilan Utama
: Menekankan budaya eksperimen chaos dalam pengembangan daripada pendekatan game day yang reaktif.
Acara Komunitas
: Chaos Carnival pada tanggal 15 dan 16 Maret, acara virtual gratis.
Kontak: Matt Schillersham melalui email, Twitter, atau LinkedIn untuk pertanyaan.
📄
Full transcript