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

  1. SREs: Menggunakan rekayasa chaos pasca insiden untuk menganalisis dan menciptakan kembali kegagalan.
  2. Insinyur QA: Menjalankan eksperimen chaos di lingkungan uji untuk memvalidasi perbaikan.
  3. 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.