1 poin oleh GN⁺ 2023-09-11 | 1 komentar | Bagikan ke WhatsApp
  • Artikel yang membahas kisah peringatan dari Knight Capital Group, sebuah perusahaan jasa keuangan global besar, pada 2012; sebuah contoh perusahaan bangkrut hanya dalam 45 menit akibat deployment perangkat lunak yang gagal.
  • Pada 2012, Knight Capital Group adalah trader saham AS terbesar, dengan volume perdagangan harian rata-rata lebih dari 3,3 miliar transaksi dan memperdagangkan lebih dari 21 miliar dolar AS setiap hari.
  • Perusahaan tersebut memperbarui SMARS, router algoritmik berkecepatan tinggi otomatis, saat bersiap meluncurkan Retail Liquidity Program baru dari NYSE.
  • Pembaruan ini dimaksudkan untuk menggantikan kode lama yang tidak terpakai bernama "Power Peg", yang sudah tidak digunakan Knight selama 8 tahun.
  • Kode baru dideploy secara manual ke 8 server, tetapi karena kesalahan teknisi, kode baru tidak disalin ke satu server sehingga kode lama Power Peg aktif kembali.
  • Fitur Power Peg mulai melakukan routing untuk mengeksekusi child order tanpa melacak jumlah saham untuk parent order, sehingga memicu loop order tanpa akhir.
  • Saat pasar dibuka, sistem Knight membanjiri pasar dengan order; sebagian saham naik lebih dari 10% dari nilainya, sementara saham lain turun akibat bereaksi terhadap perdagangan yang keliru.
  • Sistem Knight mengirim 97 pesan email otomatis yang merujuk ke SMARS dan mengidentifikasi kesalahan sebagai "Power Peg disabled", tetapi pesan-pesan ini tidak dirancang sebagai peringatan sistem dan tidak segera diperiksa.
  • Selama 45 menit pertama perdagangan, kode Power Peg memproses 212 parent order dan menangani 4 juta transaksi untuk 154 saham, dengan total lebih dari 397 juta saham diperdagangkan.
  • Knight Capital Group mencatat kerugian 460 juta dolar AS dalam 45 menit, yang membuatnya bangkrut. Mereka mengumpulkan modal yang diperlukan untuk menutup kerugian melalui investasi 400 juta dolar AS dari setengah lusin investor.
  • Artikel ini menekankan pentingnya membuat deployment sepenuhnya otomatis dan dapat diulang untuk menghindari kegagalan besar semacam ini, sebagai bagian dari rencana DevOps/Continuous Delivery.
  • Penulis menyarankan bahwa rilis perangkat lunak harus menjadi proses yang dapat diulang dan andal, serta sebisa mungkin diotomatisasi untuk mengurangi risiko kesalahan manusia.

1 komentar

 
GN⁺ 2023-09-11
Komentar Hacker News
  • Deployment otomatis mungkin tidak mencegah masalah, dan bahkan bisa memperbesar masalah karena kode yang tidak kompatibel.
  • Sistem perdagangan otomatis harus memiliki kill switch bawaan, dan ini harus diuji secara berkala untuk memastikan fungsinya.
  • Sistem continuous deployment mungkin tidak mampu memblokir bug ini, yaitu kesalahan logika yang berujung pada kegagalan fatal.
  • Istilah "menjadi Knight Capital" dikenal dalam keuangan kuantitatif untuk menggambarkan tindakan mengambil jalan pintas pada sistem penting lalu menghadapi akibatnya.
  • Perdagangan frekuensi tinggi adalah contoh ekstrem dari sesuatu yang bisa dengan cepat berjalan sangat salah.
  • Untuk sistem yang menangani volume penjualan besar, penting untuk memiliki proses manual, langkah rollback, dan feature flag guna mengurangi risiko.
  • Insiden Knight Capital terjadi karena mengabaikan sistem SCRAM otomatis yang menghentikan semua transaksi atau memberi peringatan untuk intervensi manual.
  • Adanya dead code di codebase selama 8 tahun menunjukkan adanya risiko, yang menandakan kurangnya upaya pemeliharaan aktif.
  • Jika konfigurasi dan biner di-rollout secara bersamaan, masalah seperti ini mungkin bisa dicegah.
  • Menggunakan kembali flag lama adalah kesalahan besar, dan menekankan pentingnya praktik yang tepat dalam deployment.