- 2012년 글로벌 주요 금융 서비스 회사인 Knight Capital Group의 경고적인 이야기를 다룬 기사, 실패한 소프트웨어 배포로 인해 45분 만에 파산한 사례.
- 2012년 Knight Capital Group는 미국 주식의 최대 거래자로, 평균 일일 거래량이 33억 건 이상이며, 매일 210억 달러 이상을 거래했다.
- 회사는 NYSE의 새로운 Retail Liquidity Program 출시를 준비하면서 자동화된 고속 알고리즘 라우터인 SMARS를 업데이트했다.
- 이 업데이트는 Knight가 8년 동안 사용하지 않았던 "Power Peg"라는 오래된 미사용 코드를 대체하려는 것이었다.
- 새로운 코드는 8개의 서버에 수동으로 배포되었지만, 기술자의 실수로 한 서버에는 새 코드가 복사되지 않아 오래된 Power Peg 코드가 활성화되었다.
- Power Peg 기능이 부모 주문에 대한 주식 수를 추적하지 않고 자식 주문을 실행하기 위해 라우팅을 시작하면서 주문의 무한 루프가 발생했다.
- 시장이 열리자 Knight의 시스템이 주문으로 시장을 범람시켜, 일부 주식은 그 가치의 10% 이상 증가하고, 다른 주식은 잘못된 거래에 반응하여 감소했다.
- Knight의 시스템은 SMARS를 참조하고 오류를 "Power Peg 비활성화"로 식별하는 97개의 자동 이메일 메시지를 보냈지만, 이들은 시스템 알림으로 설계되지 않았고 즉시 확인되지 않았다.
- 거래 시작 45분 동안, Power Peg 코드는 212개의 부모 주문을 처리하고, 154개의 주식에 대해 4백만 건의 거래를 처리하여 3억 9700만 주식 이상을 처리했다.
- Knight Capital Group는 45분 만에 4억 6000만 달러의 손실을 보고, 이로 인해 파산했다. 그들은 반 다 dozen 투자자들로부터 4억 달러의 투자를 통해 손실을 보전하는 데 필요한 자본을 모았다.
- 기사는 이러한 대형 실패를 피하기 위해 배포를 완전히 자동화하고 반복 가능하게 만드는 것의 중요성을 강조하며, 이는 DevOps/Continuous Delivery 계획의 일부이다.
- 저자는 소프트웨어 출시는 반복 가능하고 신뢰할 수 있는 과정이어야 하며, 가능한 한 자동화되어야 인간의 오류 위험을 줄일 수 있다고 제안한다.