Teknologi ada di mana-mana. Bergantung pada seberapa tinggi pertaruhan industri Anda, kegagalan produk atau sistem teknologi dapat terjadi di mana saja antara sepenuhnya dapat diabaikan hingga akhir masa pakai seperti yang Anda ketahui.

Mainframe rumah sakit? Jenis penting. Ketahanan aplikasi Candy Crush di ponsel Anda? Mungkin sedikit lebih rendah pada daftar prioritas keseluruhan.

Dalam sistem jaringan terdistribusi, kegagalan tidak bisa dihindari. Mencegah bencana dimulai dengan desain keamanan yang kokoh dan kedap air. Selain itu, apa lagi yang bisa dilakukan?

Apa itu Rekayasa Kekacauan Netflix?

20 September 2015.

Semua hening di front Barat, ketika, tiba-tiba, beberapa server Amazon Web Services perusahaan penting mati tanpa sepatah kata pun.

Banyak perusahaan besar tidak dapat menyediakan kebutuhan pelanggan mereka selama beberapa jam. Netflix, bagaimanapun, kembali berdiri dalam hitungan menit. Bagaimana? Budaya internal perusahaan Netflix telah berevolusi untuk memasukkan banyak praktik "pemicu kegagalan" yang diterapkan secara real-time untuk mempersiapkan baik sistem maupun insinyur saat terjadi bencana.

instagram viewer

Pimpinan perusahaan dengan sengaja melakukan simulasi pemadaman server di bagian-bagian tertentu dari sistem untuk mempelajari dan mempersiapkan acara seperti ini. Ini membantu mereka mengidentifikasi lubang dalam sistem dan membangun redundansi yang memungkinkan layanan terus berlanjut tanpa gangguan, bahkan jika terjadi malfungsi besar seperti yang disebutkan sebelumnya.

Latihan "rekayasa kekacauan" yang disengaja ini memberi insinyur mereka cukup keunggulan kompetitif untuk melihat diri mereka sendiri melalui kegagalan, sebagian berkat infrastruktur pencegahan yang mereka bangun dengan acara kiamat semacam ini dalam pikiran.

Tidak ada orang lain yang siap ketika ombak besar menghantam. Sistem Netflix cukup kuat untuk berjuang sendiri. Kesimpulan? Dalang yang kacau ini mungkin sedang merencanakan sesuatu di sini.

Sengaja Memusnahkan Mereka yang Mencintaimu

"Chaos Engineering adalah disiplin bereksperimen pada sistem untuk membangun kepercayaan pada kemampuan sistem untuk menahan kondisi turbulen dalam produksi."

Prinsip-prinsip Manifesto Kekacauan

Inilah inti dari chaos engineering—pada intinya, "latihan kebakaran" yang diterapkan pada sistem selama jam kerja ketika ada mata dan tangan yang tersedia untuk mengatasi tantangan yang disajikan. Kemampuan sistem tertentu untuk mentolerir kegagalan diuji karena setiap kerentanan terekspos.

Dalam konteks aslinya tahun 2011, rekayasa kekacauan menyangkut departemen TI Netflix. Kepemimpinan mereka ingin menguji seberapa tangguh upaya tim ketika satu atau lebih komputer mereka sengaja dinonaktifkan. Kemunduran ini memungkinkan tim TI untuk mengidentifikasi kelemahan utama sebelum menjadi masalah di seluruh sistem dan dapat dieksploitasi dari luar.

Kegagalan nyata? Itu bisa mahal sekali, dan itu melampaui implikasi moneter. Bahkan periode waktu henti, tanpa ada jeda keamanan yang nyata, kemungkinan besar akan menghasilkan banyak peluang yang terlewatkan untuk memperoleh pendapatan. Mengapa menunggu keadaan darurat untuk membutakan Anda?

Monyet Di Balik Kegilaan

Beberapa perusahaan akan mengadopsi model "tim merah" yang mengadu tim pengembang dengan saudara-saudara mereka di seluruh lini departemen. Namun, contoh klasik yang dipasang Netflix menggunakan "Tentara Simian". Bot ini melakukan pekerjaan kotor untuk mereka secara adil dan sepenuhnya secara acak.

Gila? Bagi orang awam, mungkin. Dalam kata-kata penulis "Chaos Monkeys" Antonio Garcia Martinez:

"Bayangkan seekor monyet memasuki 'pusat data', 'peternakan' server yang menampung semua fungsi penting dari aktivitas online kami. Monyet itu secara acak merobek kabel dan menghancurkan perangkat. Tantangannya adalah merancang sistem informasi yang menjadi tanggung jawab mereka sehingga dapat bekerja terlepas dari monyet-monyet ini, yang tidak pernah diketahui siapa pun kapan mereka tiba dan apa yang akan mereka hancurkan."

Analogi yang penuh warna. Namun, tidak semua Simian kejam: Doctor Monkey memantau kinerja sistem, misalnya. Namun, ketika Chaos Kong mampir untuk berkunjung, semua taruhan dibatalkan; karakter ini akan menghapus seluruh zona ketersediaan AWS.

Terkait: Bagaimana Kerentanan Keamanan Dinilai?

Rekayasa Kekacauan dan Metode Ilmiah

Rekayasa kekacauan berfungsi sebagai sumber wawasan sistemik yang berharga bagi mereka yang melakukan eksperimen. Bukan hanya para pengembang yang diuji di sini; itu adalah sistem seperti yang ada secara mandiri, juga.

Sebelum membuang tong monyet ke atas meja, rekayasa kekacauan membutuhkan sedikit dasar untuk diletakkan.

  1. Anda harus terlebih dahulu mengidentifikasi apa yang Anda anggap sebagai keadaan "stabil", sehat, dan fungsional untuk sistem Anda. Ini akan menjadi "kontrol" yang Anda ukur terhadap hasil nyata apa pun.
  2. Mulailah berpikir tentang bagaimana keadaan ini akan diseimbangkan oleh gangguan kegagalan yang diatur. Rencanakan malware penyelidik Anda untuk hanya memengaruhi area sistem Anda yang terkendali dan terkendali.
  3. Perkenalkan "penyusup" dan biarkan sistem merespons.
  4. Amati dan tafsirkan setiap perbedaan antara sistem yang ada sekarang dan bagaimana perilakunya sebelumnya, saat dalam homeostasis. Tingkatkan "radius ledakan" Anda dari dampak hingga Anda mendeteksi kerentanan atau mencapai skala penuh, mana saja yang lebih dulu.

Idenya adalah bahwa semakin sulit untuk mengganggu sistem fungsional, semakin besar kepercayaan yang dapat Anda miliki dalam ketahanannya terhadap perubahan dan pemboman. Pendekatan ini menunjukkan bagaimana aspek yang berbeda dari sistem akan mengkompensasi kegagalan satu sama lain jika terjadi pemadaman.

"Karena tidak ada satu komponen pun yang dapat menjamin waktu aktif 100% (dan bahkan perangkat keras paling mahal pun akhirnya gagal), kami harus merancang arsitektur cloud di mana masing-masing komponen dapat gagal tanpa memengaruhi ketersediaan keseluruhan sistem."

Itu Netflix Blog

Terkadang, mempermainkan sistem dengan cara ini bahkan tidak berdampak pada pengalaman pelanggan. Di lain waktu, kelemahan keamanan yang parah akan terungkap. Sekarang, di Netflix khususnya, kontingensi yang dimaksudkan untuk menutupi kegagalan sistem di tingkat pengguna dibangun ke dalam fondasi sistem.

Terkait: Apa itu Eksploitasi Zero-Day?

Apakah Rekayasa Kekacauan Layak?

Jika Anda ingin memahami sistem yang kompleks — ganggu itu

— Farhan Thawar (@fnthawar) 26 Mei 2021

Kritikus akan mengatakan bahwa tidak ada game back-end yang layak untuk memengaruhi pengalaman pelanggan, meskipun hanya sebentar dan secara kebetulan. Namun, mereka yang mendukung rekayasa kekacauan akan membantah dengan fakta bahwa "pemadaman terencana" ini dimaksudkan untuk jauh lebih kecil daripada yang dialami AWS pada tahun 2015. Jika masalah kecil yang direncanakan menempatkan Anda pada posisi untuk mencegah masalah yang jauh lebih besar muncul dengan sendirinya, merencanakan insiden awal mungkin merupakan cara terbaik untuk bersiap. Lebih sedikit pengguna yang akan terpengaruh secara total. Matematika berhasil.

Dari sisi manusia, mentalitasnya adalah, sekarang, para insinyur yang mengalami server crash di depan mereka dan menanganinya secara kompeten akan lebih waspada di masa depan dan juga lebih siap secara intelektual untuk menangani apa pun yang datang cara. Sistem yang lebih kuat yang dihasilkan, dalam banyak kasus, berbicara untuk dirinya sendiri.

Lembah Silikon: Di Mana Mimpi Pergi untuk Mati

Mereka mengatakan bahwa jika Anda ingin menjadi besar, Anda harus rela membunuh kekasih Anda, atau, dalam hal ini, rela membiarkan orang lain membunuh mereka demi Anda. Ketika keamanan berada di garis depan sejak awal pengembangan, tim Anda kemungkinan besar akan berakhir dengan sesuatu yang tidak dapat ditembus dan aman untuk digunakan pelanggan secara bebas.

Mempermainkan pengalaman di tempat kerja membuat prospek kesuksesan dalam domain ini menarik; ketika hasil akhirnya adalah salah satu kualitas, semua orang bisa naik level. Netflix saya berjalan dengan baik, dan kami hanya memiliki orang gila di balik kekacauan untuk berterima kasih untuk itu.

Sekarang setelah Anda memiliki pemahaman yang kuat tentang rekayasa kekacauan, mengapa tidak memperluas pengetahuan Anda dengan metodologi pengembangan perangkat lunak lain? Agile adalah sistem luar biasa yang dapat Anda gabungkan untuk menyatukan tenaga kerja dan menghasilkan kode yang bersih dan efisien.

Surel
Apa Metodologi Pemrograman Agile?

Baik Anda melamar pekerjaan pemrograman atau menginginkan cara kerja yang lebih efisien, Anda harus tahu tentang Agile.

Baca Selanjutnya

Topik-topik yang berkaitan
  • Pemrograman
  • Pemrograman
Tentang Penulis
Emma Garofalo (25 Artikel Diterbitkan)

Emma Garofalo adalah seorang penulis yang saat ini tinggal di Pittsburgh, Pennsylvania. Ketika tidak bekerja keras di mejanya karena menginginkan hari esok yang lebih baik, dia biasanya dapat ditemukan di belakang kamera atau di dapur.

More From Emma Garofalo

Berlangganan newsletter kami

Bergabunglah dengan buletin kami untuk kiat teknologi, ulasan, ebook gratis, dan penawaran eksklusif!

Satu langkah lagi…!

Harap konfirmasi alamat email Anda di email yang baru saja kami kirimkan.

.