- 2012年の世界的な大手金融サービス企業であるKnight Capital Groupの警鐘的な事例を扱った記事で、失敗したソフトウェアデプロイにより45分で破綻寸前に追い込まれたケース。
- 2012年当時、Knight Capital Groupは米国株の最大のトレーダーで、1日の平均取引件数は33億件超、毎日210億ドル超を取引していた。
- 同社はNYSEの新しいRetail Liquidity Programの開始に備え、自動化された高速アルゴリズムルーターであるSMARSを更新した。
- この更新は、Knightが8年間使っていなかった古い未使用コード「Power Peg」を置き換えるためのものだった。
- 新しいコードは8台のサーバーに手動で配布されたが、技術者のミスで1台のサーバーには新コードがコピーされず、古いPower Pegコードが有効化された。
- Power Peg機能が親注文に対する株式数を追跡しないまま子注文を実行するためのルーティングを開始し、注文の無限ループが発生した。
- 市場が開くと、Knightのシステムは注文で市場をあふれさせ、一部の株は価値が10%以上上昇し、他の株は誤った取引に反応して下落した。
- KnightのシステムはSMARSを参照し、エラーを「Power Peg無効化」と特定する97通の自動メールを送信したが、これはシステムアラートとして設計されておらず、すぐには確認されなかった。
- 取引開始後45分の間に、Power Pegコードは212件の親注文を処理し、154銘柄について400万件の取引を実行して、3億9700万株超を処理した。
- Knight Capital Groupは45分で4億6000万ドルの損失を出し、その結果として破綻した。彼らは6社の投資家からの4億ドルの出資を通じて、損失を補うために必要な資本を調達した。
- 記事は、このような大規模な失敗を避けるために、デプロイを完全に自動化し、再現可能にすることの重要性を強調しており、これはDevOps/Continuous Delivery計画の一部である。
- 著者は、ソフトウェアのリリースは再現可能で信頼できるプロセスであるべきであり、人為的ミスのリスクを減らすため、可能な限り自動化されるべきだと提案している。
1件のコメント
Hacker Newsの意見