- Un artículo sobre la aleccionadora historia de una importante empresa global de servicios financieros, Knight Capital Group, que quebró en 45 minutos debido a un despliegue de software fallido.
- En 2012, Knight Capital Group era el mayor operador de acciones de EE. UU., con un volumen promedio diario de más de 3.3 mil millones de operaciones y más de 21 mil millones de dólares negociados cada día.
- La empresa actualizó SMARS, un router algorítmico automatizado de alta velocidad, mientras se preparaba para el lanzamiento del nuevo Retail Liquidity Program de la NYSE.
- Esta actualización buscaba reemplazar código antiguo sin uso llamado "Power Peg", que Knight no había utilizado durante 8 años.
- El nuevo código se desplegó manualmente en 8 servidores, pero por un error del técnico, el nuevo código no se copió en uno de ellos y se activó el antiguo código de Power Peg.
- La función Power Peg empezó a enrutar para ejecutar órdenes hijas sin rastrear la cantidad de acciones de las órdenes padre, lo que provocó un bucle infinito de órdenes.
- Cuando abrió el mercado, el sistema de Knight inundó el mercado con órdenes; algunas acciones subieron más del 10% de su valor y otras cayeron al reaccionar a operaciones erróneas.
- El sistema de Knight envió 97 correos electrónicos automáticos que hacían referencia a SMARS e identificaban el error como "Power Peg disabled", pero no estaban diseñados como alertas del sistema y no se revisaron de inmediato.
- Durante los primeros 45 minutos de negociación, el código Power Peg procesó 212 órdenes padre y 4 millones de operaciones sobre 154 acciones, manejando más de 397 millones de acciones.
- Knight Capital Group perdió 460 millones de dólares en 45 minutos, lo que la llevó a la quiebra. Reunieron el capital necesario para cubrir las pérdidas mediante una inversión de 400 millones de dólares de media docena de inversionistas.
- El artículo enfatiza la importancia de hacer que los despliegues sean completamente automatizados y repetibles para evitar fallas de esta magnitud, como parte de una estrategia de DevOps/Continuous Delivery.
- El autor sugiere que los lanzamientos de software deben ser un proceso repetible y confiable, y automatizarse tanto como sea posible para reducir el riesgo de error humano.
1 comentarios
Opiniones de Hacker News