Baru-baru ini Amazon S3 mengalami pemadaman besar di wilayah us-east-1. Sepertinya itu kemungkinan disebabkan oleh kesalahan pengejaan saat menjalankan buku pedoman perawatan di Ansible atau alat serupa. Anda dapat meletakkan pembungkus skrip shell di sekitar playbook yang memungkinkan agar terlihat seperti:
#!/bin/bash
/usr/bin/ansible-playbook "$@" --list-hosts --list-tasks
read -p "Are you sure? (y/n) " answer
test "$answer" = "y" || exit 0
exec /usr/bin/ansible-playbook "$@"
Tetapi apa beberapa cara lain yang Anda gunakan untuk meningkatkan keselamatan dan mengurangi kemungkinan kesalahan yang menyebabkan pemadaman besar bagi perusahaan Anda.
Jawaban:
Kami menggunakan pekerjaan dalam jenkins untuk memicu penyebaran. Ini memastikan bahwa tidak peduli siapa yang melakukan penyebaran, perintah yang mungkin dijalankan adalah sama. Bonus yang bagus adalah catatan build log ketika penyebaran dipicu, siapa yang memicu mereka dan apa yang sebenarnya terjadi selama penyebaran.
Ini tentu bukan hal yang mudah, tetapi ini merupakan peningkatan yang bagus dibandingkan menjalankan buku pedoman yang dimungkinkan dengan tangan.
Untuk perubahan yang lebih besar / berisiko, idealnya ini harus digabungkan dengan beberapa bentuk manajemen perubahan sehingga perubahan dilakukan hanya setelah orang / tim lain meninjau perubahan dan pendekatan perubahan untuk membantu mengidentifikasi dan menyelesaikan masalah potensial secara dini.
Selain itu, tidak ada salahnya untuk memiliki rekan setim yang memahami perubahan yang Anda buat hadir dan menonton saat Anda membuat perubahan besar sehingga mereka dapat mengawasi dan membantu mencegah kesalahan dalam pelaksanaan perubahan.
sumber
Kategori kesalahan
Ada dua cara untuk melihat faktor manusia yang menyebabkan masalah dan kecelakaan:
Yang pertama disebut pendekatan manusia , dan yang kedua sebagai pendekatan sistem .
Untuk menjelaskan kegagalan menggunakan pendekatan manusia, Anda akan mencari kegagalan dan menemukan penilaian orang yang tidak akurat, keputusan yang salah atau penilaian buruk.
Untuk menjelaskan kegagalan menggunakan pendekatan sistem, Anda tidak berusaha menemukan kesalahan orang. Alih-alih, temukan bagaimana penilaian dan tindakan orang masuk akal pada saat itu, mengingat keadaan yang melingkupinya.
Misalnya, Donald Berwick dari Institute for Healthcare Improvement (IHI) berpendapat bahwa meningkatkan keselamatan pasien memerlukan perubahan dalam desain sistem :
Menghapus kesalahan dari sistem
Cara terbaik untuk menemukan (dan memperbaiki) berbagai cara kegagalan terjadi setelah fakta, adalah mencari akar penyebab tanpa menyalahkan orang. Ini sering disebut "post-mortem yang tidak bersalah", dan Kode Etsy sebagai posting blog Craft memperluas konsep. Orang-orang di Etsy mempresentasikan dan menulis lebih banyak tentang itu di forum dan blog lain.
Untuk mencegah kesalahan sejak awal, beberapa sifat budaya adalah suatu keharusan. Prosedur dan berbagai artefak yang dibuat dalam sistem harus menguji bahwa menggunakannya oleh manusia sangat jelas dan jelas. Seringkali mereka yang menciptakan bukanlah mereka yang mengonsumsi, yang menyebabkan terputusnya koneksi dan kurangnya kejelasan. Sistem kemudian tidak aman untuk dioperasikan karena satu-satunya orang yang mengetahui semua asumsi adalah orang yang menciptakannya (dan tidak ada orang lain).
Langkah-langkah pengendalian yang efektif
Lakukan langkah-langkah kontrol yang efektif untuk menghentikan proses ketika kesalahan terjadi. Ini adalah pembuktian kesalahan. Langkah-langkah kontrol yang efektif adalah perubahan desain yang mencegah atau menghentikan proses melanjutkan ketika kesalahan telah terjadi dengan memperkenalkan kegagalan proses
Contoh:
Pada tahun 1896, Sakichi Toyoda menciptakan alat tenun listrik pertama Jepang yang disebut "alat tenun tenaga uap Toyoda." Perkembangan ini meningkatkan produktivitas hingga dua puluh kali, dan kualitas tekstil meningkat dan menyebabkan revolusi dalam industri tekstil di Jepang. Tapi inilah penemuan dan prinsip yang halus namun sangat penting:
Sakichi Toyoda menciptakan inovasi untuk Loom yang nantinya akan menjadi salah satu pilar dalam Toyota Production System (Lean). Pilar yang sekarang kita sebut Jidoka, kadang-kadang disebut "otomatisasi pintar dengan sentuhan manusia" atau "otomatisasi."
Sebagian besar, Andon (berhenti pada cacat pertama) dan Poka-Yoke (pemeriksaan kesalahan) kemudian perkembangan yang menemukan pengaruh mereka dari alat tenun.
Menghapus Kelemahan Titik Tunggal
Istilah kelemahan titik tunggal mengacu pada penciptaan redudansi dalam sistem sebagai pendekatan untuk meningkatkan keandalan sistem. Redundansi dibuat dengan meningkatkan jumlah sistem atau individu yang terlibat dalam proses. Memiliki lebih banyak sistem cadangan atau lebih banyak pemeriksaan (dua kali lipat, tiga kali lipat, atau lebih) meningkatkan kemungkinan proses akan berjalan dengan benar.
Salah satu contoh yang bagus untuk ini adalah "prinsip empat mata," yang berarti bahwa "semua keputusan dan transaksi bisnis memerlukan persetujuan dari CEO dan CFO. Karena CFO tidak melapor kepada CEO, ada mekanisme pengendalian independen yang berlaku" .
sumber: https://en.wikipedia.org/wiki/Two-man_rule
Jadikan Bahaya Jelas
Jika bahaya dibuat jelas, atau tidak mungkin dijangkau, manusia tidak dapat membuat kesalahan. Misalnya, kode warna adalah pendekatan umum untuk membuat kesalahan lebih jelas. Atau jika Anda memikirkan berbagai soket komputer yang hanya bisa dimasukkan satu arah dan bukan yang lain, dll.
Beberapa buku hebat membicarakan masalah ini, dan itu tidak akan menjadi jawaban yang bagus tanpa menyebutkannya:
sumber
Seperti yang dikatakan @bradim menggunakan alat CI / CD Anda untuk memulai penyebaran alih-alih perintah berbasis tangan biasanya merupakan langkah maju yang baik, seperti halnya menambahkan tes dalam pipa Anda yang benar-benar menguji skrip penempatan Anda pada lingkungan pementasan Anda (atau yang baru dibuat), di mana Anda dapat mengambil bug sebelumnya.
Saya juga akan menambahkan bahwa alih-alih memanggil skrip yang memungkinkan secara langsung, Anda juga dapat menambahkan alat seperti Ansible Tower ke alur Anda, yang akan memungkinkan Anda melacak perubahan yang telah berjalan lebih mudah, dan dapat memberi Anda langkah tambahan keamanan ke dalam mengalir.
sumber