成人午夜淫片100集 I 亚洲小视频在线观看,com I 一级片特级片 I 丁香五月欧美成人 I 男插女网站 I 手机看片日韩国产 I 欧美96在线 | 欧 I 黄色影片在线看 I 久久精美日产二线三线 I 久久一级精品视频 I 亚洲福利视 I 免播放器亚洲 I 欧美日韩精品电影 I 性做久久久久久久 I 国产超碰人人 I 91porny九色视频 I 日韩电影中文,亚洲精品乱码 I 亚洲男女视频 I 黄色av一区二区 I 美女国产视频 I 91日韩精品一区二区三区 I 蜜桃臀av网站 I 99久久久99久久国产片鸭王 I 色吧亚洲日本 I 日本高清www色视频 I aa黄色片 I 91激情视频在线 I 麻豆综合在线

  1. 首頁(yè) > 綜合百科 > 程序員一不小心 45分鐘搞死一家上市公司

程序員一不小心 45分鐘搞死一家上市公司

如果有人告訴你,45分鐘就能搞垮一家大公司,你可能會(huì)覺(jué)得有點(diǎn)荒謬。但工程師Doug Seven卻真的親歷過(guò)這樣的事情。

8年前,因?yàn)橐淮问〉牟渴穑琄nightCapitalGroup在僅僅45分鐘內(nèi)就遭到了4.6億美元的虧損。

這是一個(gè)真實(shí)的故事。

盡管Doug Seven并不是事件的參與者,但他在后來(lái)的會(huì)議中不斷提及DevOps、代碼配置和持續(xù)交付的主題,希望讓開(kāi)發(fā)人員意識(shí)到部署的重要性。

究竟是怎么回事?Doug Seven在博客中分享了這個(gè)故事。

故事背景

這個(gè)故事的主角是一家名為KnightCapitalGroup的美國(guó)全球金融服務(wù)公司,它從事做市、電子執(zhí)行、機(jī)構(gòu)銷售和交易。

2012年,Knight是美國(guó)最大的股票交易商,在紐約證交所和納斯達(dá)克的市場(chǎng)份額約為17%。Knight電子交易集團(tuán)(ETG)平均每日交易量超過(guò)33億筆,每日交易額超過(guò)210億美元。

種種數(shù)據(jù)表明,當(dāng)時(shí)公司的運(yùn)營(yíng)和財(cái)務(wù)狀況非常優(yōu)秀。

2012年7月31日,Knight擁有約3.65億美元的資產(chǎn)。

當(dāng)時(shí),紐約證交所正計(jì)劃于2012年8月1日推出一項(xiàng)新的零售流動(dòng)性計(jì)劃。

為了準(zhǔn)備這次活動(dòng),Knight更新了他們的路由器SMARS。這個(gè)路由器負(fù)責(zé)將訂單發(fā)送到市場(chǎng)上執(zhí)行。SMARS的核心功能之一是接收Knight交易平臺(tái)其他組件的訂單(父訂單),然后發(fā)送一個(gè)或多個(gè)子訂單執(zhí)行。

換言之,SMARS將從交易平臺(tái)收到大量訂單,并將它們分成多個(gè)較小的訂單,以便找到股票數(shù)量相匹配的買家或者賣家。父訂單越大,生成的子訂單越多。

在SMARS中,有一段老舊的代碼,名為“PowerPeg”,它已經(jīng)8年沒(méi)被用到過(guò)了,而此次更新的目的正是要換掉這段代碼。

更新的代碼重新調(diào)整了用于激活Power Peg功能的舊標(biāo)志的功能。

代碼經(jīng)過(guò)了徹底的測(cè)試,并且還進(jìn)行了一系列的驗(yàn)證。所有的一切都看起來(lái)很完美,找不到出錯(cuò)的理由。

死灰復(fù)燃的舊代碼

2012年7月27日至2012年7月31日期間,Knight的開(kāi)發(fā)人員每天手動(dòng)將新的軟件部署到公司的8臺(tái)服務(wù)器上。這就是SEC文件中關(guān)于手動(dòng)部署過(guò)程的內(nèi)容。如果SEC文件中有關(guān)于部署的內(nèi)容,那么就可能出現(xiàn)了嚴(yán)重的錯(cuò)誤。

然而,在新代碼的部署過(guò)程中,Knight的一名技術(shù)人員忘記將新代碼復(fù)制到所有8臺(tái)SMARS計(jì)算機(jī)服務(wù)器中——他漏掉了其中一臺(tái)服務(wù)器,沒(méi)有第二個(gè)技術(shù)人員來(lái)審查這個(gè)部署。

Knight的所有人都沒(méi)有意識(shí)到,Power Peg代碼并沒(méi)有從第8個(gè)服務(wù)器上刪除,也沒(méi)有添加新的RLP代碼。Knight沒(méi)有書(shū)面流程要求這樣的審查。

2012年8月1日,在美國(guó)東部時(shí)間上午9:30,市場(chǎng)開(kāi)盤。Knight開(kāi)始代表客戶處理訂單。

具有正確SMARS部署的7臺(tái)服務(wù)器開(kāi)始正確處理這些訂單。然而,發(fā)送到第8臺(tái)服務(wù)器的命令觸發(fā)了可支持的重新利用標(biāo)志,并從死地中恢復(fù)了舊的Power Peg代碼。

殺手代碼如僵尸般的攻擊

Power Peg代碼用于在執(zhí)行子訂單時(shí),根據(jù)父訂單計(jì)算購(gòu)買或者出售的股份。Power Peg將指示系統(tǒng)在完成父訂單后停止傳送子訂單。

也就是說(shuō),Power Peg會(huì)跟蹤子訂單,并在父訂單完成后停止它們。

2005年,Knight將這種累計(jì)跟蹤功能移到了代碼執(zhí)行的早期階段,從而從Power Peg中刪除了計(jì)數(shù)跟蹤。

當(dāng)激活第8臺(tái)服務(wù)器上的Power Peg標(biāo)志時(shí),Power Peg功能開(kāi)始路由子訂單以供執(zhí)行。但由于沒(méi)有根據(jù)父訂單跟蹤共享量,造成了一個(gè)永無(wú)止境的循環(huán)。

地獄45分鐘

想象一下,如果你有一個(gè)系統(tǒng),它能夠向市場(chǎng)發(fā)送自動(dòng)化的、高速的訂單,且沒(méi)有任何跟蹤程序來(lái)檢查是否執(zhí)行了足夠的訂單,會(huì)發(fā)生什么?沒(méi)有比這更糟糕的事了。

上午9:30開(kāi)市時(shí),人們很快就知道出了問(wèn)題。到上午9點(diǎn)31分,華爾街的許多人都清楚發(fā)生了一些嚴(yán)重的事情。市場(chǎng)上充斥著非正常交易量的股票訂單。

到上午9點(diǎn)32分,華爾街的人們都在想,為什么訂單還沒(méi)有停下來(lái),為什么沒(méi)有人按下任何系統(tǒng)的關(guān)閉開(kāi)關(guān)?結(jié)果他們發(fā)現(xiàn),并沒(méi)有關(guān)閉開(kāi)關(guān)。

在交易的前45分鐘里,Knight的交易量占了總交易量的50%以上,這使得某些股票的市值上漲了10%以上。因此,其他股票因錯(cuò)誤的交易而貶值。

更糟糕的是,Knight的系統(tǒng)在當(dāng)天早些時(shí)候開(kāi)始自動(dòng)發(fā)送電子郵件。早在上午8:01,SMAR已經(jīng)處理了符合上市前交易條件的訂單。郵件消息引用SMARS,并將錯(cuò)誤識(shí)別為“Power Peg disabled”。

在上午8:01到9:30之間,Knight工作人員也收到了97封郵件。可惜的是,這些電子郵件不是作為系統(tǒng)警報(bào)設(shè)計(jì)的,因此沒(méi)有人立即查看它們。

在Knight經(jīng)歷的45分鐘內(nèi),他們嘗試了幾種反制措施,試圖阻止錯(cuò)誤的交易。由于沒(méi)有終止開(kāi)關(guān),所以他們只能在實(shí)時(shí)交易環(huán)境中嘗試診斷問(wèn)題。

每分鐘,系統(tǒng)上約有800萬(wàn)股股票被交易。他們無(wú)法確定是什么導(dǎo)致了錯(cuò)誤的命令,搜易從正確部署的服務(wù)器上卸載了新代碼。

換句話說(shuō),他們刪除了工作代碼,留下了損壞的代碼。

這更加放大了問(wèn)題。最開(kāi)始,僅在部署不正確的服務(wù)器上,額外的父命令激活了Power Peg代碼。現(xiàn)在,問(wèn)題蔓延到了所有服務(wù)器上。

最后,他們終于停止了系統(tǒng),但此時(shí)已經(jīng)進(jìn)行了45分鐘的交易。

在開(kāi)盤的前45分鐘,市場(chǎng)收到并處理了212份父訂單。因此,SMARS向市場(chǎng)發(fā)送了數(shù)以百萬(wàn)計(jì)的子訂單,產(chǎn)生了400萬(wàn)筆交易,而其中154只股票的交易量超過(guò)了3.97億股。

這意味著,Knight資本集團(tuán)在45分鐘內(nèi)造成了4.6億美元的虧損。

然而,Knight只有3.65億美元的資產(chǎn)。

45分鐘后,美國(guó)股市最大的交易商、紐約證交所和納斯達(dá)克的主要做市商Knight破產(chǎn),4個(gè)月后被GetcoLLC收購(gòu)。

軟件發(fā)布必須可重復(fù)、可靠

所有開(kāi)發(fā)和運(yùn)營(yíng)團(tuán)隊(duì)都應(yīng)該從這次事件中吸取教訓(xùn)。僅僅構(gòu)建優(yōu)秀的軟件并對(duì)其進(jìn)行測(cè)試是不夠的,你還必須確保它被正確地交付給市場(chǎng),這樣你的客戶才能獲得你所交付的價(jià)值。

部署SMARS的工程師并不是此事唯一的責(zé)任人,Knight設(shè)置的流程和他們所面臨的風(fēng)險(xiǎn)并不匹配。此外,他們的流程天生就容易出錯(cuò)。

任何時(shí)候,如果你的部署過(guò)程依賴于人主動(dòng)閱讀和遵循說(shuō)明,那么都將面臨風(fēng)險(xiǎn)。人是會(huì)犯錯(cuò)的。錯(cuò)誤可能出現(xiàn)在指令中,也可能出現(xiàn)在指令的解釋中,或出現(xiàn)在指令的執(zhí)行中。

部署需要自動(dòng)化,并且可重復(fù),盡可能避免潛在的人為錯(cuò)誤。如果Knight實(shí)現(xiàn)了自動(dòng)化部署系統(tǒng),將配置、部署和測(cè)試全部自動(dòng)化,那么這次錯(cuò)誤本可以避免。

即使沒(méi)有實(shí)施完整的連續(xù)交付過(guò)程,你仍然需要遵守的幾個(gè)連續(xù)交付原則:

-軟件發(fā)布應(yīng)該是一個(gè)可重復(fù)、可靠的過(guò)程。

-盡可能地自動(dòng)化。

主站蜘蛛池模板: 老熟妻内射精品一区 | 日本午夜视频在线观看 | 婷婷五月综合色中文字幕 | 日韩毛片免费无码无毒视频观看 | 日韩欧美亚洲国产精品字幕久久久 | 乱无码伦视频在线观看 | 亚洲精品自产拍在线观看 | 色狠狠一区二区三区香蕉 | 日本少妇高潮喷水视频 | 超级碰97直线国产免费公开 | 黑人大群体交免费视频 | 四库影院永久国产精品 | 优优人体大尺大尺无毒不卡 | 亚洲日韩欧美在线成人 | 超碰成人人人做人人爽 | 亚洲色欲久久久久综合网 | 久久国内精品自在自线400部o | 日韩精品视频一区二区三区 | 亚洲乱亚洲乱妇24p 久久天天躁夜夜躁狠狠85 | 亚洲国产日韩在线人成蜜芽 | 四虎永久地址www成人 | 无码小电影在线观看网站免费 | 图片小说视频一区二区 | 欧美人与性囗牲恔配 | 乱子伦一区二区三区 | 国产普通话对白刺激 | 中国老太婆bb无套内射 | 人人澡人人妻人人爽人人蜜桃麻豆 | 播放男人添女人下边视频 | 2025最新免费电影 | 国产精品免费麻豆入口 | 无码一区二区三区av免费 | 人妻精品久久无码专区涩涩 | 国产真人性做爰久久网站 | 欧美亚洲日本国产其他 | 亚洲乱码日产精品bd在线看 | 亚洲国产成人无码影片在线播放 | 波多野结衣一区二区三区av免费 | 99热久久精里都是精品6 | 午夜影视污| 在线无码视频观看草草视频 |