場(chǎng)景一:痛苦的升級(jí)
三十六歲的吳桐坡是一個(gè)電商網(wǎng)站的首席技術(shù)官,最近有點(diǎn)頭疼:業(yè)務(wù)旺季就在眼前,現(xiàn)在的內(nèi)存、盤陣、操作系統(tǒng)和應(yīng)用平臺(tái)已經(jīng)有點(diǎn)扛不住。老板卻已發(fā)話,今年要基于用戶消費(fèi)行為的統(tǒng)計(jì)與分析,上線更多的新品類。唉,又要和部門里的兄弟們熬夜了。好在之前做了不少準(zhǔn)備工作,對(duì)這次升級(jí)的成本和問題心里大概有底。“但過去幾年,哪次硬件變更和軟件升級(jí)沒出過岔子?我怎么敢跟老板拍胸脯,說升級(jí)后的系統(tǒng)馬上能順利支持5000-6000次/秒的在線交易請(qǐng)求,而不影響任何業(yè)務(wù)?“
場(chǎng)景二:郁悶的IT
修養(yǎng)很好的俞年發(fā)火了,讓這位年屆不惑、掌控某跨國餐飲連鎖品牌的職業(yè)經(jīng)理人失控的原因很簡(jiǎn)單,當(dāng)他早上10點(diǎn)走進(jìn)辦公室,沒有看到昨天的運(yùn)營(yíng)報(bào)表——這讓他想起昨晚從一位消息靈通的分析師朋友處得知,競(jìng)爭(zhēng)品牌最近兩個(gè)月的營(yíng)業(yè)額大幅超過自家,這是什么原因?現(xiàn)在居然連頭一天的運(yùn)營(yíng)報(bào)表都沒正常出現(xiàn),IT部門干什么去了?被俞年召來猛K一頓的IT經(jīng)理任愿也很郁悶。“不知道為什么,頭天晚上從各個(gè)營(yíng)業(yè)點(diǎn)上傳來的原始數(shù)據(jù),未按正常流程進(jìn)行匹配和清洗,最終沒導(dǎo)入數(shù)據(jù)倉庫,導(dǎo)致今天早晨沒法生成報(bào)表,但老板也不至于這樣生氣吧?” 檢查數(shù)據(jù)集成進(jìn)程時(shí)發(fā)現(xiàn)原先僅需半小時(shí)的一個(gè)步驟用了近兩小時(shí),還是通不過,也找不出原因,郁悶…
場(chǎng)景三:抓狂的網(wǎng)購
二十九歲的白領(lǐng)史博妍與姐妹們一樣,緊張的工作節(jié)奏讓她無暇逛街,幸好還有網(wǎng)購。作為每月在網(wǎng)購過千元的重度用戶,怎能錯(cuò)過各大網(wǎng)店的春夏促銷?周末晚上,當(dāng)她打開瀏覽器,卻發(fā)現(xiàn)最鐘愛的網(wǎng)店卻無法訪問,頁面總是顯示“響應(yīng)超時(shí)”,而且怎么刷新也沒用。難道下周要穿著去年的衣服去拜訪客戶和“周末大轟趴”?這個(gè)假設(shè)讓她很抓狂,抓起了電話向網(wǎng)店客服投訴。數(shù)分鐘后,網(wǎng)店的數(shù)據(jù)庫管理員李易凌接到客服部門的排障需求,他能否在很短的時(shí)間里,從海量的Query記錄中,找出那條引發(fā)故障的Query?
那些年,他們一起追尋的創(chuàng)新
您一定能猜到上面的三個(gè)典型場(chǎng)景,就藏著SQL Server 2012研發(fā)團(tuán)隊(duì)所要解決的三個(gè)典型問題,而解決這三個(gè)問題的主要團(tuán)隊(duì)成員,就是微軟亞太研發(fā)集團(tuán)服務(wù)器與開發(fā)工具事業(yè)部的一群年輕工程師們——而解決上述三個(gè)問題的功能分別是Distributed Replay、SQL Server集成服務(wù)(SSIS)和擴(kuò)展事件(xEvent)。
正如微軟其他應(yīng)用于關(guān)鍵業(yè)務(wù)的產(chǎn)品,SQL Server 2012功能設(shè)計(jì)的來源主要有三類,即面向全球范圍內(nèi)的最終用戶與分析師的調(diào)研、全球技術(shù)支持服務(wù)部門的反饋,以及開發(fā)團(tuán)隊(duì)的前瞻性思考。
故事一:跨越七年的靈感
Distributed Replay、集成服務(wù)和擴(kuò)展事件也不例外,而其中從需求發(fā)掘、設(shè)計(jì)產(chǎn)生到功能實(shí)現(xiàn)時(shí)間跨度最大的,是Distributed Replay。而這一特性的靈感在2005年左右,幾乎同時(shí)出現(xiàn)在姚鋼和王清越的腦海里。
高級(jí)開發(fā)主管姚鋼現(xiàn)在已申請(qǐng)下Distributed Replay的專利,觸動(dòng)他的是做SQL Server技術(shù)支持的六年經(jīng)歷,“客戶經(jīng)常在升級(jí)硬件和軟件過程中碰到各種問題,尤其是新硬件和操作系統(tǒng)環(huán)境中,數(shù)據(jù)引擎性能的下降讓他們很是撓頭。是不是能有一個(gè)功能,讓客戶提前知道升級(jí)后,可能遇到的各種狀況?“
而當(dāng)時(shí)還在微軟總部從事SQL Server引擎性能優(yōu)化的王清越也在想,“如果能開發(fā)一個(gè)工具,讓客戶在多線程、高并發(fā)度的環(huán)境下,模擬實(shí)際應(yīng)用場(chǎng)景,從而實(shí)現(xiàn)在變更軟、硬件時(shí)預(yù)知這些變化對(duì)數(shù)據(jù)引擎性能的影響,不就能讓他們不再憂心升級(jí)后的變數(shù)么?“
于是,當(dāng)他們2008年加入SQL Server中國研發(fā)團(tuán)隊(duì)后,這個(gè)想法很自然地被提到了SQL Server 2012產(chǎn)品規(guī)劃中。
讓姚鋼和王清越印象尤為深刻的是,2010年10月功能基本開發(fā)完成后,一位遠(yuǎn)道而來的歐洲電子商務(wù)客戶提出,用他們的真實(shí)數(shù)據(jù)讓Distributed Replay模擬5000-6000次/秒在線交易請(qǐng)求的生產(chǎn)環(huán)境?開了幾個(gè)夜車后,兩周內(nèi)姚鋼和同事們順利實(shí)現(xiàn)了客戶需求——這讓項(xiàng)目組也很是欣慰,因?yàn)殡m然設(shè)計(jì)目標(biāo)就是實(shí)現(xiàn)每秒5000-6000次的負(fù)載模擬,但此前還未在實(shí)驗(yàn)室環(huán)境下得到過驗(yàn)證。
隨著SQL Server 2012的上市,國內(nèi)類似吳桐坡這樣需求的CTO們,將不用再為軟、硬件變更可能帶來的性能變化而煩惱了。