大數(shù)據(jù)里的中國(guó)智慧:SQL Server 2012研發(fā)的人與事
SQL Server 中國(guó)研發(fā)團(tuán)隊(duì) 2012 財(cái)年 Offsite
在切入正題之前,就讓浸泡在數(shù)據(jù)海洋里的我們,看幾個(gè)并不陌生的場(chǎng)景吧。
場(chǎng)景一:痛苦的升級(jí)
三十六歲的吳桐坡是一個(gè)電商網(wǎng)站的首席技術(shù)官,最近有點(diǎn)頭疼:業(yè)務(wù)旺季就在眼前,現(xiàn)在的內(nèi)存、盤(pán)陣、操作系統(tǒng)和應(yīng)用平臺(tái)已經(jīng)有點(diǎn)扛不住。老板卻已發(fā)話,今年要基于用戶消費(fèi)行為的統(tǒng)計(jì)與分析,上線更多的新品類。唉,又要和部門里的兄弟們熬夜了。好在之前做了不少準(zhǔn)備工作,對(duì)這次升級(jí)的成本和問(wèn)題心里大概有底。“但過(guò)去幾年,哪次硬件變更和軟件升級(jí)沒(méi)出過(guò)岔子?我怎么敢跟老板拍胸脯,說(shuō)升級(jí)后的系統(tǒng)馬上能順利支持5000-6000次/秒的在線交易請(qǐng)求,而不影響任何業(yè)務(wù)?”
場(chǎng)景二:郁悶的IT
修養(yǎng)很好的俞年發(fā)火了,讓這位年屆不惑、掌控某跨國(guó)餐飲連鎖品牌的職業(yè)經(jīng)理人失控的原因很簡(jiǎn)單,當(dāng)他早上10點(diǎn)走進(jìn)辦公室,沒(méi)有看到昨天的運(yùn)營(yíng)報(bào)表——這讓他想起昨晚從一位消息靈通的分析師朋友處得知,競(jìng)爭(zhēng)品牌最近兩個(gè)月的營(yíng)業(yè)額大幅超過(guò)自家,這是什么原因?現(xiàn)在居然連頭一天的運(yùn)營(yíng)報(bào)表都沒(méi)正常出現(xiàn),IT部門干什么去了?被俞年召來(lái)猛K一頓的IT經(jīng)理任愿也很郁悶。“不知道為什么,頭天晚上從各個(gè)營(yíng)業(yè)點(diǎn)上傳來(lái)的原始數(shù)據(jù),未按正常流程進(jìn)行匹配和清洗,最終沒(méi)導(dǎo)入數(shù)據(jù)倉(cāng)庫(kù),導(dǎo)致今天早晨沒(méi)法生成報(bào)表,但老板也不至于這樣生氣吧?” 檢查數(shù)據(jù)集成進(jìn)程時(shí)發(fā)現(xiàn)原先僅需半小時(shí)的一個(gè)步驟用了近兩小時(shí),還是通不過(guò),也找不出原因,郁悶…
場(chǎng)景三:抓狂的網(wǎng)購(gòu)
二十九歲的白領(lǐng)史博妍與姐妹們一樣,緊張的工作節(jié)奏讓她無(wú)暇逛街,幸好還有網(wǎng)購(gòu)。作為每月在網(wǎng)購(gòu)過(guò)千元的重度用戶,怎能錯(cuò)過(guò)各大網(wǎng)店的春夏促銷?周末晚上,當(dāng)她打開(kāi)瀏覽器,卻發(fā)現(xiàn)最鐘愛(ài)的網(wǎng)店卻無(wú)法訪問(wèn),頁(yè)面總是顯示“響應(yīng)超時(shí)”,而且怎么刷新也沒(méi)用。難道下周要穿著去年的衣服去拜訪客戶和“周末大轟趴”?這個(gè)假設(shè)讓她很抓狂,抓起了電話向網(wǎng)店客服投訴。數(shù)分鐘后,網(wǎng)店的數(shù)據(jù)庫(kù)管理員李易凌接到客服部門的排障需求,他能否在很短的時(shí)間里,從海量的Query記錄中,找出那條引發(fā)故障的Query?
那些年,他們一起追尋的創(chuàng)新
您一定能猜到上面的三個(gè)典型場(chǎng)景,就藏著SQL Server 2012研發(fā)團(tuán)隊(duì)所要解決的三個(gè)典型問(wèn)題,而解決這三個(gè)問(wèn)題的主要團(tuán)隊(duì)成員,就是微軟亞太研發(fā)集團(tuán)服務(wù)器與開(kāi)發(fā)工具事業(yè)部的一群年輕工程師們——而解決上述三個(gè)問(wèn)題的功能分別是Distributed Replay、SQL Server集成服務(wù)(SSIS)和擴(kuò)展事件(xEvent)。
正如微軟其他應(yīng)用于關(guān)鍵業(yè)務(wù)的產(chǎn)品,SQL Server 2012功能設(shè)計(jì)的來(lái)源主要有三類,即面向全球范圍內(nèi)的最終用戶與分析師的調(diào)研、全球技術(shù)支持服務(wù)部門的反饋,以及開(kāi)發(fā)團(tuán)隊(duì)的前瞻性思考。#p#
故事一:跨越七年的靈感
Distributed Replay、集成服務(wù)和擴(kuò)展事件也不例外,而其中從需求發(fā)掘、設(shè)計(jì)產(chǎn)生到功能實(shí)現(xiàn)時(shí)間跨度最大的,是Distributed Replay。而這一特性的靈感在2005年左右,幾乎同時(shí)出現(xiàn)在姚鋼和王清越的腦海里。
高級(jí)開(kāi)發(fā)主管姚鋼現(xiàn)在已申請(qǐng)下Distributed Replay的專利,觸動(dòng)他的是做SQL Server技術(shù)支持的六年經(jīng)歷,“客戶經(jīng)常在升級(jí)硬件和軟件過(guò)程中碰到各種問(wèn)題,尤其是新硬件和操作系統(tǒng)環(huán)境中,數(shù)據(jù)引擎性能的下降讓他們很是撓頭。是不是能有一個(gè)功能,讓客戶提前知道升級(jí)后,可能遇到的各種狀況?”
而當(dāng)時(shí)還在微軟總部從事SQL Server引擎性能優(yōu)化的王清越也在想,“如果能開(kāi)發(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中國(guó)研發(fā)團(tuán)隊(duì)后,這個(gè)想法很自然地被提到了SQL Server 2012產(chǎn)品規(guī)劃中。
讓姚鋼和王清越印象尤為深刻的是,2010年10月功能基本開(kāi)發(fā)完成后,一位遠(yuǎn)道而來(lái)的歐洲電子商務(wù)客戶提出,用他們的真實(shí)數(shù)據(jù)讓Distributed Replay模擬5000-6000次/秒在線交易請(qǐng)求的生產(chǎn)環(huán)境?開(kāi)了幾個(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)境下得到過(guò)驗(yàn)證。
隨著 SQL Server 2012的上市,國(guó)內(nèi)類似吳桐坡這樣需求的 CTO 們,將不用再為軟、硬件變更可能帶來(lái)的性能變化而煩惱了。
故事二:為了一致與可靠
SQL Server集成服務(wù)要解決的則是IT經(jīng)理們不得不面對(duì)的問(wèn)題 —— 如何在有限時(shí)間和資源前提下,保證“數(shù)據(jù)的一致性和可靠性“,不至于當(dāng)老板要看報(bào)告時(shí),卻交不出來(lái)。在集成服務(wù)的項(xiàng)目經(jīng)理卓偉雄看來(lái),幫助兩個(gè)重量級(jí)本地客戶解決類似問(wèn)題的經(jīng)歷是在產(chǎn)品開(kāi)發(fā)中最值得回味的,”這兩個(gè)客戶,一個(gè)來(lái)自保險(xiǎn)業(yè),一個(gè)來(lái)自連鎖餐飲業(yè)。他們處理數(shù)據(jù)的共同特征是,來(lái)自各個(gè)分支機(jī)構(gòu)的數(shù)據(jù)都在晚上運(yùn)行,而實(shí)際上每天晚上運(yùn)行SSIS包的時(shí)間窗口其實(shí)很短。在決策層第二天到辦公室之前,數(shù)據(jù)平臺(tái)要完成的事情有很多——首先是把數(shù)據(jù)從不同的來(lái)源取出,然后導(dǎo)入到數(shù)據(jù)倉(cāng)庫(kù)。從數(shù)據(jù)倉(cāng)庫(kù)到用戶能使用的報(bào)表,多維數(shù)據(jù)集等等時(shí)間的掌控很重要。而在SQL Server 2012之前,當(dāng)SSIS包在抓取、導(dǎo)入過(guò)程中出了問(wèn)題,管理員往往需要花費(fèi)數(shù)十分鐘乃至幾個(gè)小時(shí),逐一找出并解決SSIS包抓取失敗或延遲等問(wèn)題。如果問(wèn)題一多,第二天沒(méi)法交付報(bào)告就成了很自然的事。而現(xiàn)在,管理人只需要通過(guò)預(yù)先建立的故障排除和性能調(diào)優(yōu)功能,在SSIS包運(yùn)行過(guò)程中,便能自動(dòng)拿到最可能引發(fā)問(wèn)題的事件記錄,而用戶可以馬上把這些事件交給相關(guān)的技術(shù)部門去解決。”
讓測(cè)試開(kāi)發(fā)工程師吳曉晨記憶猶新的則是在最后測(cè)試階段,一個(gè)特殊的場(chǎng)景下運(yùn)行新功能時(shí),往往比平時(shí)慢2、3秒,但一位同事硬是堅(jiān)持三、四周解決了這個(gè)問(wèn)題,因?yàn)樗麄冇X(jué)得“如果每個(gè)客戶都節(jié)約幾秒鐘,那么全球來(lái)看就是一個(gè)了不得的大數(shù)字。”
故事三:DBA的黎明
擴(kuò)展事件的誕生,是為了幫助李易凌這樣的數(shù)據(jù)庫(kù)管理員們。當(dāng)碰到這樣的問(wèn)題,他可以首先將當(dāng)天的SQL Query(像場(chǎng)景三中的網(wǎng)店會(huì)有幾千種SQL Query)的響應(yīng)時(shí)間分組求平均值,然后按組排序以迅速找到花費(fèi)時(shí)間最長(zhǎng)的那一組Query,接著打開(kāi)這一組Query排序,便能找到花費(fèi)時(shí)間最長(zhǎng)、甚至是無(wú)法響應(yīng)的Query,從而迅速找到問(wèn)題根源并進(jìn)行排除。更為重要的是,輕量化的擴(kuò)展事件只需很小的服務(wù)器資源開(kāi)銷,就能抓取50GB的Trace包。
SQL Server 2012的發(fā)布,對(duì)負(fù)責(zé)擴(kuò)展事件的開(kāi)發(fā)主管徐進(jìn)、測(cè)試主管陳玉祥來(lái)說(shuō)同樣意義非凡——因?yàn)楸M管從SQL 7.0時(shí)代就有了SQL Profiler工具,但直到SQL Server 2012有了擴(kuò)展事件才高度滿足了數(shù)據(jù)庫(kù)管理員的大量真實(shí)需求。
微軟全球研發(fā)文化的中國(guó)實(shí)現(xiàn)
實(shí)際上,SQL Server中國(guó)研發(fā)團(tuán)隊(duì)在過(guò)去四年多的成長(zhǎng)歷程,只是微軟亞太研發(fā)集團(tuán)服務(wù)器與開(kāi)發(fā)工具事業(yè)部的一個(gè)縮影。
如果從頭梳理服務(wù)器與開(kāi)發(fā)工具事業(yè)部中國(guó)團(tuán)隊(duì)的起源,需要回到2004年,事業(yè)部高層認(rèn)識(shí)到兩個(gè)顯著變化,首先是一流軟件人才從集中在美國(guó)的少數(shù)城市,變成分散在世界各地,尤其是中國(guó)、印度等國(guó)家;其次,微軟合作伙伴和客戶的地域分布也日趨全球化。不管一個(gè)開(kāi)發(fā)團(tuán)隊(duì)多么聰明,當(dāng)他們總呆在同一個(gè)的地方時(shí),就很難理解全球性合作伙伴和當(dāng)?shù)乜蛻舻男枨蠛驮竿?。正是在這樣的背景下,事業(yè)部的高層決定在印度、中國(guó)和以色列建立并大力發(fā)展三個(gè)全球分布式研發(fā)中心。
作為SQL Server中國(guó)研發(fā)團(tuán)隊(duì)的創(chuàng)始人,現(xiàn)任服務(wù)器與開(kāi)發(fā)工具事業(yè)部中國(guó)團(tuán)隊(duì)總經(jīng)理的孫博凱2007年來(lái)到中國(guó)后,曾在博文中曾寫(xiě)到:“就長(zhǎng)期影響而言,要區(qū)分成功組織和平均或低于平均水平的組織,'文化’元素是一個(gè)更可靠和更重要的衡量因素,其可靠性和重要性遠(yuǎn)遠(yuǎn)超過(guò)商業(yè)策略、一項(xiàng)具體的技術(shù)或流程優(yōu)勢(shì),甚至超過(guò)特定的領(lǐng)導(dǎo)力優(yōu)勢(shì),不論這種領(lǐng)導(dǎo)力是如何有魅力或富有遠(yuǎn)見(jiàn)的。恕我直言,這就是為什么讓一個(gè)團(tuán)隊(duì)伴隨著’正確的’文化起步是如此重要,不論每個(gè)組織如何定義’正確的’文化。”正是出于這樣的洞察,孫博凱認(rèn)為如何將美國(guó)總部的系統(tǒng)文化、個(gè)人貢獻(xiàn)者文化、創(chuàng)新文化和聚焦客戶文化,根植到每個(gè)工程師的腦海中,是當(dāng)時(shí)團(tuán)隊(duì)初創(chuàng)期的首要任務(wù)。
從“童子軍”到成熟工程師
或許正是出于對(duì)團(tuán)隊(duì)文化的認(rèn)同,吳曉晨2008年從復(fù)旦計(jì)算機(jī)系畢業(yè)后,正式加入到SQL Server的研發(fā)團(tuán)隊(duì),成為一名集成服務(wù)的軟件測(cè)試開(kāi)發(fā)工程師,其中有一段時(shí)間,小組里測(cè)試主管職位空缺,而另三位測(cè)試工程師更享受做個(gè)人貢獻(xiàn)者的快樂(lè),他最終“半推半就“ 地承擔(dān)了“兼職測(cè)試主管”的一部分職責(zé) —— 說(shuō)是“半推”,因?yàn)榻M織結(jié)構(gòu)上的確需要一個(gè)測(cè)試主管、項(xiàng)目管理主管和開(kāi)發(fā)主管進(jìn)行日常溝通, 而當(dāng)時(shí)實(shí)在招不到合適的人;說(shuō)是“半就”,因?yàn)樗宄卣J(rèn)識(shí)到,在微軟這個(gè)高手如云的地方,自己的技術(shù)水平可謂中上,但還稱不得頂尖,故從個(gè)人的職業(yè)發(fā)展來(lái)看,這是個(gè)不錯(cuò)的機(jī)會(huì)。
做出決定之后就是咬咬牙干,但他先得學(xué)會(huì)“怎么說(shuō)話”。對(duì)他來(lái)說(shuō),最大的挑戰(zhàn)就是在項(xiàng)目溝通會(huì)上(時(shí)不時(shí)還得面對(duì)雷德蒙總部的牛人們)陳述觀點(diǎn)。一開(kāi)始,他緊張到“連開(kāi)口說(shuō)話”都不會(huì)。幸好,通過(guò)“馬克•波羅”計(jì)劃來(lái)上海的Siva Harinath(另一項(xiàng)目組的測(cè)試經(jīng)理),給了他許多意見(jiàn),而他也領(lǐng)悟到了不必迷信權(quán)威,而是“取其精華,去其糟粕”;同時(shí),部門經(jīng)理趙曉燕更給了許多鼓勵(lì)與安慰,讓他有勇氣和信心去發(fā)言 —— 了解微軟的都知道,在研發(fā)部門的內(nèi)部會(huì)議上,一旦你的思路稍有停頓,立馬就會(huì)被其他人打斷,甚至直接無(wú)視。就是這樣,吳曉晨逐漸從“最開(kāi)始連問(wèn)題都可能聽(tīng)不懂”的新人,歷練為敢于在牛人們面前侃侃而談的成熟工程師。當(dāng)然,他還沒(méi)有完全擺脫緊張,在最后一次項(xiàng)目評(píng)審電話會(huì)議上,當(dāng)他“一口氣講十幾分鐘”總結(jié)了測(cè)試小組的工作后,產(chǎn)品線總經(jīng)理夸獎(jiǎng)道“Great Job”,而他則緊張地沒(méi)聽(tīng)清楚,回了句“Sorry?”,頓時(shí),電話兩端爆發(fā)出哄堂大笑……
從優(yōu)秀到卓越
在將最優(yōu)秀的“原始人才“培養(yǎng)成專業(yè)工程師之外,孫博凱還花了大量時(shí)間招募業(yè)內(nèi)頂尖高手,2008年SAP趙曉燕和Oracle韓露明的加盟無(wú)疑讓SQL Server中國(guó)團(tuán)隊(duì)進(jìn)入了穩(wěn)健成長(zhǎng)期。
在趙曉燕看來(lái),加入微軟的原因一部分是出于好奇,對(duì)于一直在開(kāi)源世界里鉆研技術(shù)和產(chǎn)品的她來(lái)說(shuō),能到微軟內(nèi)部弄明白這個(gè)龐然大物究竟怎么運(yùn)作無(wú)疑具有相當(dāng)?shù)奈Γ匾氖悄軓牧汩_(kāi)始建立一支世界級(jí)的工程團(tuán)隊(duì),解決世界級(jí)的數(shù)據(jù)平臺(tái)問(wèn)題,比如她一直從事的商務(wù)智能,和令人興奮的集成服務(wù)新領(lǐng)域?;仡欉^(guò)去四年,她感嘆在外部看來(lái)大而遲緩的微軟,其實(shí)在每個(gè)具體的領(lǐng)域是以小搏大,反應(yīng)更加迅捷。以商業(yè)智能為例,微軟全球一共就200來(lái)人,雖然整體質(zhì)量很高(僅中國(guó)團(tuán)隊(duì)17個(gè)人里就有5位博士),但畢竟和專業(yè)做商業(yè)智能的獨(dú)立軟件公司動(dòng)輒上千人的開(kāi)發(fā)團(tuán)隊(duì)相比,并不具備人數(shù)優(yōu)勢(shì),重要的是認(rèn)清自身優(yōu)勢(shì),從簡(jiǎn)單的業(yè)務(wù)開(kāi)始,最終擁有端到端產(chǎn)品的發(fā)言權(quán)。
韓露明則坦言,團(tuán)隊(duì)剛建立時(shí),年輕工程師們學(xué)習(xí)、掌握新技術(shù)和新事物的速度非???但當(dāng)時(shí)各方面的確都還稚嫩,而這三、四年的磨練和砥礪已為承擔(dān)更關(guān)鍵任務(wù)打下堅(jiān)實(shí)基礎(chǔ)。“當(dāng)然,從技術(shù)積累的角度看,是沒(méi)有止境的。未來(lái),擁有更多‘主人翁’精神的我們,會(huì)走得更遠(yuǎn)。”
不過(guò),這一切在服務(wù)器與開(kāi)發(fā)工具事業(yè)部中國(guó)研發(fā)團(tuán)隊(duì)的管理層看來(lái),還有許多方面需要加倍努力,并已開(kāi)始著手新的發(fā)展規(guī)劃。孫博凱認(rèn)為,“云計(jì)算正在重塑經(jīng)濟(jì)發(fā)展和商業(yè)競(jìng)爭(zhēng)的格局,作為微軟在中國(guó)推進(jìn)云戰(zhàn)略、云實(shí)踐、云創(chuàng)新的核心部門,無(wú)論是全球產(chǎn)品、服務(wù)的研發(fā),還是協(xié)助本地客戶、合作伙伴利用云計(jì)算成功轉(zhuǎn)型,我們中國(guó)研發(fā)團(tuán)隊(duì)都將扮演更重要的角色,任重而道遠(yuǎn)。”