Apa itu Chaos Monkey? Rekayasa kekacauan menjelaskan

Dipelopori dari Netflix selama peralihannya dari mendistribusikan DVD ke membangun sistem cloud terdistribusi untuk streaming video, Chaos Monkey memperkenalkan prinsip teknik yang telah dianut oleh organisasi pengembangan perangkat lunak dari segala bentuk dan ukuran: yaitu, dengan sengaja merusak sistem Anda. bisa belajar membuatnya lebih tangguh.

Menurut postingan blog Netflix asli tentang topik tersebut, yang diterbitkan pada Juli 2011 oleh Yury Izrailevsky, direktur infrastruktur cloud dan sistem saat itu, dan Ariel Tseitlin, direktur solusi cloud di perusahaan streaming, Chaos Monkey dirancang untuk menonaktifkan instance produksi secara acak di infrastruktur Amazon Web Services-nya, sehingga mengungkap kelemahan yang dapat dihilangkan oleh teknisi Netflix dengan membangun mekanisme pemulihan otomatis yang lebih baik.

Nama yang menarik ini berasal dari "gagasan melepaskan monyet liar dengan senjata di pusat data Anda (atau wilayah cloud) untuk menembak mati secara acak dan mengunyah kabel - sementara kami terus melayani pelanggan tanpa gangguan," entri blog tersebut negara bagian.

Dalam praktiknya, ini akan melibatkan aplikasi sederhana “memilih sebuah instance secara acak dari setiap cluster, dan di beberapa titik selama jam kerja, mematikannya tanpa peringatan. Itu akan melakukan ini setiap hari kerja, ”seperti yang dijelaskan oleh mantan insinyur Netflix Nora Jones dan Casey Rosenthal dalam buku komprehensif mereka tentang topik, Chaos Engineering , yang diterbitkan oleh O'Reilly Media.

Idenya adalah bahwa dengan mempelajari di mana titik terlemah Anda, para insinyur dapat mengatur pemicu otomatis untuk memerangi sebuah masalah, menyelamatkan mereka dari panggilan di tengah malam jika terjadi kesalahan. Chaos Monkey sejak itu berkembang menjadi berbagai prinsip chaos, di bawah bendera chaos engineering.

Chaos Monkey di Netflix

Chaos Monkey tumbuh dari upaya rekayasa di Netflix sekitar tahun 2010, ketika Greg Orzell - sekarang bekerja di GitHub milik Microsoft - ditugaskan untuk membangun ketahanan ke dalam arsitektur berbasis cloud baru milik perusahaan.

“Cara saya berpikir tentang Chaos Monkey bukanlah prestasi besar di bidang teknik,” kata Orzell. “Nilai yang dihasilkannya adalah perubahan pola pikir yang sangat penting pada saat kami beralih dari pengiriman DVD ke streaming melalui internet.”

Di masa-masa awal, teknisi Netflix memperkenalkan berbagai macam pemadaman dan masalah ke dalam sistem menggunakan alat sumber terbuka "Simian Army", masing-masing memperhitungkan jenis kegagalan tertentu, dimulai dengan Chaos Monkey yang mengambil klaster AWS.

Pasukan asli (sekarang sebagian besar sudah pensiun demi alat baru) termasuk orang-orang seperti Latency Monkey, yang akan menyebabkan penundaan buatan ke lapisan komunikasi server-klien RESTful, dan Doctor Monkey, yang akan memanfaatkan pemeriksaan kesehatan yang dijalankan pada setiap contoh. , serta memantau tanda-tanda kesehatan eksternal lainnya (mis. beban CPU) untuk mendeteksi kejadian tidak sehat dan menghapusnya dari layanan jika diperlukan.

Chaos Kong membawa Chaos Monkey ke level berikutnya dengan menyimulasikan pemadaman ke seluruh zona ketersediaan AWS. “Sangat jarang Wilayah AWS menjadi tidak tersedia, tetapi itu benar-benar terjadi,” tulis sebuah posting blog Netflix dari tahun 2015. 

"Dengan menjalankan eksperimen secara rutin yang mensimulasikan pemadaman Regional, kami dapat mengidentifikasi kelemahan sistemik lebih awal dan memperbaikinya," lanjut postingan tersebut. “Saat US-EAST-1 benar-benar tidak tersedia, sistem kami sudah cukup kuat untuk menangani kegagalan lalu lintas.”

Seperti yang dijelaskan Jones dan Rosenthal dalam buku mereka, membiarkan Chaos Kong lepas pada infrastruktur adalah "urusan kecil dengan 'ruang perang' yang dipasang untuk memantau semua aspek layanan streaming, dan itu berlangsung berjam-jam.”

Dua tahun kemudian, pada Juli 2017, Netflix memperkenalkan ChAP, Chaos Automation Platform, yang “menginterogasi pipeline penerapan untuk layanan yang ditentukan pengguna. Ia kemudian meluncurkan kelompok percobaan dan kontrol dari layanan itu, dan mengarahkan sejumlah kecil lalu lintas ke masing-masing, "tulis posting blog itu.

Prinsip rekayasa chaos

Praktik dasar Chaos Monkey telah berkembang dengan cepat, dengan penyebaran yang semakin besar melalui Chaos Kong, ke apa yang kemudian diformalkan sebagai rekayasa kekacauan. Netflix tidak membangun tim teknik kekacauan formal sendiri hingga tahun 2015. Tim tersebut dikepalai oleh Bruce Wong, sekarang direktur teknik di Stitch Fix.

Prinsip-prinsip chaos engineering telah disusun secara resmi oleh beberapa penulis asli Chaos Monkey, yang mendefinisikan praktik tersebut sebagai: "Disiplin bereksperimen pada sistem untuk membangun kepercayaan pada kemampuan sistem untuk menahan kondisi turbulen dalam produksi."

Dalam praktiknya, ini berbentuk proses empat langkah:

  1. Mendefinisikan "kondisi mapan" dari sistem untuk menetapkan dasar untuk perilaku normal.
  2. Hipotesiskan bahwa kondisi mapan ini akan berlanjut pada kelompok kontrol dan kelompok eksperimen.
  3. Memperkenalkan variabel yang mencerminkan peristiwa dunia nyata seperti server yang mogok, hard drive yang tidak berfungsi, atau koneksi jaringan yang terputus.
  4. Cobalah untuk menyangkal hipotesis dengan mencari perbedaan antara kelompok kontrol dan kelompok eksperimen.

Jika kondisi mapan sulit untuk diganggu, Anda memiliki sistem yang kuat; jika ada kelemahan maka Anda memiliki sesuatu untuk diperbaiki.

"Dalam lima tahun sejak 'The Principles' diterbitkan, kami telah melihat chaos engineering berkembang untuk memenuhi tantangan baru dalam industri baru," Jones dan Rosenthal mengamati. “Prinsip dan dasar praktik pasti akan terus berkembang seiring dengan meluasnya adopsi melalui industri perangkat lunak dan menjadi vertikal baru.”

Rekayasa kekacauan dengan Chaos Monkey

Untuk menjalankan versi open source dari Chaos Monkey, sistem Anda harus memenuhi serangkaian prasyarat tertentu, seperti yang dijelaskan di GitHub.

Chaos Monkey tidak berjalan sebagai layanan, jadi Anda harus menyiapkan tugas cron seperti yang dijelaskan di halaman GitHub, yang kemudian memanggil Chaos Monkey sekali pada hari kerja untuk membuat jadwal penghentian.

Untuk menggunakan versi Chaos Monkey ini, Anda harus menggunakan platform pengiriman berkelanjutan dan sumber terbuka milik Netflix, Spinnaker, yang dapat membatasi kemampuan organisasi tertentu untuk mengadopsi metode ini. Chaos Monkey juga membutuhkan database yang kompatibel dengan MySQL, versi 5.6 atau yang lebih baru.

Pemilik layanan menyetel konfigurasi Chaos Monkey mereka melalui Spinnaker. Chaos Monkey bekerja melalui Spinnaker untuk mendapatkan informasi tentang bagaimana layanan diterapkan dan menghentikan instance - mesin virtual atau container - secara acak pada frekuensi dan jadwal yang Anda tentukan.

Tentu saja, menerapkan Chaos Monkey hanyalah awal dari tugas yang sulit dan kompleks untuk menyelesaikan masalah ketahanan sistem. Chaos Monkey hanya mengungkap kelemahan dalam sistem; Terserah pengembang atau tim teknik sistem untuk mengidentifikasi penyebabnya dan memberikan solusi.

“Perkakas itu sendiri tidak mahal, tetapi investasi yang harus Anda lakukan untuk bereaksi terhadap perkakas tersebut adalah,” seperti yang dikatakan Orzell. Berkomitmen pada rekayasa chaos juga membutuhkan peralihan sumber daya dari membangun fitur baru ke memperkuat ketahanan. “Setiap bisnis berada pada titik yang berbeda pada spektrum itu dan mereka masing-masing harus memutuskan berapa banyak yang harus dial up atau down di ruang itu,” tambahnya.

Jones dan Rosenthal mengatakan bahwa pada masa-masa awal, insinyur Netflix "menerima banyak tekanan balik dari lembaga keuangan khususnya".

Meskipun taruhannya lebih tinggi untuk bank, mereka masih mengalami pemadaman, jadi dengan menerapkan "strategi proaktif seperti rekayasa chaos secara hati-hati untuk memahami risiko guna mencegah hasil yang besar dan tidak terkendali", banyak dari organisasi tersebut mengubah pola pikir mereka, dengan Capital One sebagai langkah awal adopter, seperti yang dijelaskan di buku.

Sumber daya rekayasa kekacauan

Sekali lagi, buku terbaru dan definitif tentang topik ini adalah Chaos Engineering oleh mantan insinyur Netflix Nora Jones dan Casey Rosenthal, diterbitkan pada bulan April 2020, yang didasarkan pada banyak karya para penulis tersebut, dan lainnya, yang disusun dalam buku 2017 Chaos Engineering . Untuk gambaran yang lebih praktis, lihat Teknik Kekacauan Pembelajaran Russ Miles .

Netflix menyediakan banyak sumber daya tentang topik di GitHub, termasuk tutorial, banyak dokumentasi, penghitung kesalahan, pemeriksa pemadaman listrik, dan alat dekripsi.

Gremlin - penyedia alat komersial untuk menjalankan eksperimen rekayasa chaos - menawarkan kumpulan sumber dayanya sendiri yang lengkap, yang tersedia secara gratis online dan dalam format PDF. Perusahaan juga mendukung berbagai upaya komunitas termasuk Chaos Conf dan saluran Slack.

O'Reilly juga memiliki banyak sumber daya, termasuk daftar putar buku dan video yang berguna tentang topik ini.