在切入正题之前,就让浸泡在数据海洋里的我们,看几个并不陌生的场景吧。
场景一:痛苦的升级
三十六岁的吴桐坡是一个电商网站的首席技术官,最近有点头疼:业务旺季就在眼前,现在的内存、盘阵、操作系统和应用平台已经有点扛不住。老板却已发话,今年要基于用户消费行为的统计与分析,上线更多的新品类。唉,又要和部门里的兄弟们熬夜了。好在之前做了不少准备工作,对这次升级的成本和问题心里大概有底。“但过去几年,哪次硬件变更和软件升级没出过岔子?我怎么敢跟老板拍胸脯,说升级后的系统马上能顺利支持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位博士),但毕竟和专业做商业智能的独立软件公司动辄上千人的开发团队相比,并不具备人数优势,重要的是认清自身优势,从简单的业务开始,最终拥有端到端产品的发言权。
韩露明则坦言,团队刚建立时,年轻工程师们学习、掌握新技术和新事物的速度非常快;但当时各方面的确都还稚嫩,而这三、四年的磨练和砥砺已为承担更关键任务打下坚实基础。“当然,从技术积累的角度看,是没有止境的。未来,拥有更多‘主人翁’精神的我们,会走得更远。”
不过,这一切在服务器与开发工具事业部中国研发团队的管理层看来,还有许多方面需要加倍努力,并已开始着手新的发展规划。孙博凯认为,“云计算正在重塑经济发展和商业竞争的格局,作为微软在中国推进云战略、云实践、云创新的核心部门,无论是全球产品、服务的研发,还是协助本地客户、合作伙伴利用云计算成功转型,我们中国研发团队都将扮演更重要的角色,任重而道远。”
转载于:https://www.cnblogs.com/javaitpx/archive/2012/12/06/2804624.html
本文链接:https://my.lmcjl.com/post/11912.html
4 评论