程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> 幕後故事:SQL Server 2012研發的那些人與事

幕後故事:SQL Server 2012研發的那些人與事

編輯:關於SqlServer

在切入正題之前,就讓浸泡在數據海洋裡的我們,看幾個並不陌生的場景吧。

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