SQL中国研发中心近况

嗯,我该说些什么好呢——这是一个漫长、有趣而又繁忙的一年。当然,与我最后一次发帖子时相比,很多事情已经发生了变化: 最开始只是出现在美国部分房产抵押市场上的金融危机,现在已经演变为一场世界性的经济危机。这场危机几乎影响到了所有经济领域中的所有人。 我们在世界各地都有了重要的政治进展,而绝不仅仅是在美国选举产生了一位新总统。 在离我们最近的领域,微软在PDC 2008上推出了Azure服务平台。考虑到它的广度和深度,这是对软件+服务世界的一次无比有力的推进。虽然Azure平台仍处于早期阶段,但这标志着一个转变的开始。这场转变将从根本上影响到微软公司的几乎所有产品,乃至整个软件产业。 在我们SQL Server部门,我们也度过了非常繁忙和富有成效的一年。我们继续朝着完全数据平台的愿景迈出强有力的进展。我们发布了SQL Server 2008,它代表着向我们的使命迈出了一大步——一个服务于所有数据的平台,涵盖从出生到存档的整个生命周期。我们在世界各地举行了产品发布活动,包括2008年11月在中国北京举办的TechEd大会。在那次大会上SQL Server部门的副总裁Ted Kummert在主题演讲中启动了产品发布。整个行业对此的反应都非常积极,包括客户、合作伙伴、来自世界各地的分析家和新闻等。我们期待着未来几年市场上的强劲势头。通过密切参与SQL Server 2008规划,我个人也非常高兴地看到这有力地证明了我们的核心愿景和价值主张,以及我们软件开发的质量。 在SQL Server中国研发中心这里,我们也度过了繁忙的一年,主要埋头于SQL Server 2008和其他数据平台组件的发布工作中。现在整个团队正紧张地工作于SQL Server下一个版本的规划。除了研发工作,我们也通过各种渠道努力与中国本地客户和合作伙伴建立联系:通过我们的SQL Server中文论坛;通过TechEd等活动——我们在TechEd 2008上发表了几次演说,并主持了SQL Server在中国的第一次Ask the Experts活动;通过与MVP、客户、合作伙伴的紧密合作等。通过查看SQL中国研发中心团队博客上团队成员自己的帖子,你可以看到我们更多的工作。 为SQL Server这样复杂的系统级产品建设一个世界一流的开发团队是一个具有挑战性的过程,需要时间和耐心。但是,随着我们在若干方面有系统,有条理地进行着,我非常高兴地看到我们正在为实现这一目标所取得的进展。随着在这个征途中不断取得进展,我期待着和大家更多的交流经验和共同学习。 再见! 孙博凯 点击这里查看英文原文

2

关于团队文化

在上一篇关于SQL Server中国研发团队的文章中,我提出“文化”是团队建设中领导层面临的最重要的挑战之一。我们如何确保团队伴随着“正确的”文化而成长?究竟什么才是“正确的”文化呢?在这篇文章中,我想比较深入地探讨这个问题。 让我们首先从“文化”这个词的定义谈起。韦氏词典将“文化”定义为:主条目:culture  读音:[‘kʌlʧə]功能:名词词源:Middle English,cultivated land,cultivation,from Anglo-French,from Latin cultura,from cultus, past participle 综合的人类知识、信仰和行为的一种模式,这种模式取决于学习能力和传播给下一代的能力 b:一个种族、宗教或社会团体的习惯信仰、社会形态和物质特征 c:一个机构或组织特征性的一套共同的态度、价值观、目标和实践  d:与一个特定领域、经济活动或社会特征相关联的一套价值观、约定或社会习俗。 如此说来,文化是指共同的态度、价值观、目标和行为。每个组织都有一种文化,无论这种文化是刻意培养出来的还是自然演化而来的,或是这二者的结合。有时候,一个组织会很明确地用语言描述出他们希望培养的价值观和文化属性。但是,大多数人都无法理解甚至不记得一个组织“强制”的文化应该是什么,这一点并不让人惊奇。我们每个人都伴随着某种文化背景成长,但估计很少有人会说,他们是通过阅读一份文档中的价值观描述而获得这种文化倾向的。多数人都是通过日常生活汲取文化营养,包括每日体验、行为、反应、正面或负面的反馈和累积,并且从接触到的不同的社会角色像我们的长辈、上司及同事感受文化影响。随着时间的推移,这些价值观念和行为模式就根植在我们的脑海中,我们自己也成为 “已有文化”的一部分,并开始向组织内的其它人传播这种文化。 研究显示,无论是个人抑或团体、组织,一旦染上某种文化就很难改变或“去除”。同时,就长期影响而言,要区分成功的组织和平均或低于平均水平的组织,“文化”元素是一个更可靠和更重要的衡量因素,其可靠性和重要性远远超过商业策略、一项具体的技术或流程优势,甚至超过特定的领导力优势,不论这种领导力是如何有魅力或富有远见的。恕我直言,这就是为什么让一个团队伴随着“正确的”文化起步是如此重要,不论每个组织如何定义“正确的”文化。 对一个像SQL Server中国研发团队这样的组织而言,显然很多“正确的”文化是遵循我们位于雷德蒙的“母团队”而来的。当然,这是在中国,我们会理解和适应以使我们自己的本地特色融入到文化中。但一些本质特征仍然是从雷德蒙的母团队中继承而来的,正是这些特征界定了我们是谁,以及我们的行为特征。那么,这些所谓的“SQL Server文化”是哪些呢?很难为这个积累多年的文化给出准确定义或归结为几个关键点,但我尝试在这里列出几点我认为是SQL团队文化的核心: 系统文化 我们是一个系统的团队。我们创建关键业务平台软件,数以万计的组织利用我们的软件建立和运行关键业务应用,而这些应用又被全世界范围内的数万人群使用,一天24小时,一年365天地不间断应用。我们开发的软件有着数年的生命周期,实际上往往是几十年。任何错误或弱点,无论它存在于我们的设计阶段、实现阶段或流程、方法学中,都可能而且肯定会被表现出来。所以对人的素质要求门槛很高!在这种环境下要取得成功,我们需要一种专业级工程师的思维(见下文)。业余选手不适合! IC文化 建设关键性系统软件是需要数年时间来学习的。我们常常在招聘工程师时告诉他们,尤其是对那些刚从大学毕业的人们,甚至要3到4年后他们才能真正在岗位上完全发挥生产力!虽然这听起来有点夸大,事实上是真的如此。工程师要学会客户需求的是什么,如何将其转变为一个产品或功能,什么是好的设计与坏的设计(或伟大的设计),如何权衡利弊,如何有效地撰写强大、安全、可靠、高可扩展性、高性能的代码,而且要易于维护和易于获得领域内的支持,要以有效的方式与团队一起工作,所有这些是需要数年之久才能学会的。这是一个由聪明的新的毕业生转变为专业级工程师的过程,这中间不存在任何捷径。 那么什么是IC呢?IC是微软术语,指个体贡献者(Individual Contributor,简称IC),与领导或经理相对应。在我们这样依赖高度技术技巧与知识的事业中,我们要非常重视个体贡献者。如果每一个聪明的工程师都打算在自己四年职业生涯后停止做开发而仅做管理工作,我们是无法建立像SQL Server这样的产品的。我常常列举这个统计数字:微软全球范围内有几十个或许数百个副总裁,但只有14个院士(我们很幸运,有2个院士在SQL Server)。我的意思并非是说副总裁不重要,但在微软,当然在SQL Server部门也绝对如此,我们非常重视那些愿意将整个职业生涯贡献给技术开发的人。在某种意义上说,比尔盖茨就是一个终极IC,当然他有下属,但他的主要角色是公司的首席软件架构师,帮助把握公司的未来技术方向。在微软,无论怎样强调IC角色和深厚技术知识的重要性都不过分。 事实上,我相信这一点是基础的基础,以至于我此刻想谈得远一点,而并非仅指SQL Server、微软或任何特定的公司。在我亚太区的旅行中,许多人表达了这样的信念或希望:亚太地区作为一个整体(尤其是几个特定国家如中国和印度)在世界经济体系中应该越来越多地承担起技术领导地位。显然,亚太地区有着丰富的人才,为这种可能提供了必要的条件。不过在我看来,同样毫无疑问的是,如果亚太地区真的要做到这点,即由在这里的实验室和公司主导长期的产品线和产业创新,就必须要创造一种重视深度技术成就的文化。在目前的环境下,当我和大学生们谈起他们的职业抱负时,10个里面就有8个想在毕业的几年内成为管理人员。说实在的,我们无法期望在这样的基础上建立下一代的技术领导地位。我认为就整个亚太区生态系统而言,而不仅仅是指某一特定公司或团体,建立一种重视深厚技术知识和IC的文化是势在必行的。 创新文化 数据库产业是一个成熟的一个产业:30多年的历史,每年全球超过200亿美元的年收入,人们很容易认为在这个阶段创新不再是这个产业驱动性的力量了。这样想就大错特错了!在之前的文章从数据库到全面的数据平台,我描述了该领域面临的前所未有广度和深度的挑战。为了应付这些挑战,创新必须是我们基因中的一个核心价值观,否则我们将很快没落。创新是可大可小的,技术上的创新或流程上的创新,但创新必须是深入到每个员工的日常生活和呼吸中的价值观。SQL Server有着创新的传统,甚至从根本上改变了这个成熟的产业,包括领先的易用性和自动化管理、在核心平台上集成BI功能、显著的简化开发者体验等。今天,我们继续着这一传统,在下一版本的SQL Server中有着许多突破性的创新如实体数据模型等。我们绝对需要在未来发展中继续注重创新。 聚焦客户 在今天这种超级紧迫的环境中,很容易仅仅关注竞争对手而忘记了客户。但至关重要的一点是,只有服务好你的客户才能击败竞争对手,而不是相反。聚焦客户,这不是某一个特殊部门或角色的工作。当然,公司肯定设有专门面向客户的部门,像我们的客户支持服务(Customer Support Services,简称CSS)和其他各种领域的组织。但聚焦客户是组织中每个人工作的重要职责。无论你是一个开发者、测试者、项目经理、架构师、甚至管理人员,不知道客户最终想要的是什么,你不可能做好你的工作!没有比失去与客户的联系更容易在行业里落后的了。在我们的团队中,每一个成员都有一项强制性的工作,那就是花一部分时间在客户上,不论是通过新闻组、论坛还是参加客户会议,或其他各种方式。 做正确的事 我可以继续讨论一些SQL Server和微软重视的其它价值观,例如尊重多样性、开放性、诚实但尊重、接受大挑战等,虽然这些都是非常棒的价值观,我们的确非常重视,但如果你什么都谈了,那就等于什么都没谈。所以我想以一个简要的价值观来总结,我称之为“做正确的事”。这听起来可能有点蠢,但这却是我们在SQL Server团队赖以为生的价值观。无论工作内容是关于顾客的,关于产品的,或是一个内部问题,这是指导我们日常工作的座右铭。我想举几个例子说明。我敢肯定,每个SQL Server客户直到今天都还记得Slammer蠕虫病毒。这一事件彻底改变了我们SQL Server团队的软件开发方式。当蠕虫病毒来袭时,我们其实刚刚通过一轮安全压力测试并发布了SQL Server的SP3,SP3实际上修补了蠕虫病毒所利用的漏洞。然而,一旦事情发生了,问题不再是我们是否已经发布了补丁。我们必须帮助客户备份系统,尽快地以安全的方式恢复系统运行。就短期而言,SQL Server团队费了很大力气给出工具和指导方针,帮助顾客恢复自己的系统。但我看到的是我们努力所带来的长期变化,我们开发过程的变化、我们备灾的变化、我们整个安全方针的变化。在过去几年中,这些努力的结果已经证明了自己,SQL Server已经证明自己是市场上最安全的产品之一。这意味着我们将不会再有弱点或漏洞吗?显然,答案是否定的。然而,我们可以说的是,我们每天都在努力着,努力使这种事件发生的可能性尽可能降低;而且如果这样的事件再次发生,我们已经在时刻准备着响应。 我想举的另一个例子是SQL Server 2005中的数据库镜像(Database Mirroring,简称DBM)功能。DBM是该版本中最重要和最受欢迎的功能之一,显然我们面临着压力要发布该功能。然而,快临近SQL Server…

2

在微软开发软件的几个重要专业

过去几个月,我先后在中国数家知名大学举行了讲座,并会见了多位致力于数据平台研究的学术领头人和学生。我还在一些业界会议上发言,与用户、合作伙伴、分析师和其他同行会面。这些会议涉及了多个议题,例如,日新月异的科技发展趋势,异地分布式软件开发,以及亚洲的蓬勃发展。但有一个议题似乎得到了最大的关注——微软是如何组织和进行产品开发的?我想这很自然,微软是全球最成功的软件公司之一,而亚洲软件行业正经历其自身的飞速发展,因此业内人士迫切地希望了解我们过去20多年的经验也就在情理之中了。 “微软是如何组织和进行产品开发”其实是一个很大的题目。在微软内部我们有一个卓越软件工程团队,主要为员工提供为期数日的课程,内容涉及微软软件开发方法概述、工程系统、组织架构、最佳实施办法,以及用以保证产品质量、可靠性及安全性的内部工具和技术等等。这并不意味着我们的体系已经十全十美,但我们的确积累了很多知识和经验可以与大家分享。实际上,我们也在以适当的方式与全球(包括亚洲)同行分享这些成功。 因为这是一个大题目,我想在这篇文章里着重介绍我们工程系统中的一个方面,即我们研发团队的核心专业和每个专业在产品开发中所扮演的角色。因为我相信微软在这一方面的做法不同于我们的同行(即使在美国也是如此),尤其在中国,目前业界还没有充分理解这些核心专业及其所扮演的角色。 微软的工程体系一直由三个核心专业组成:开发(Development)、测试(Test)和项目管理(Program Management),英文简称分别为Dev、Test和PM。在此,我将以另一个顺序作简单介绍: PM 提及软件专业时,大多数人都马上想到Dev。但是对我来说,一切则从项目管理开始。在微软,PM意味着很多事情,对我而言,这个角色主要意味两件事: 了解用户的需求,并将其转换为用于开发的功能说明(Functional Specification)。这是一切的开始,如果我们无法理解用户,我们就不能开发出合适的产品。 协调Dev和Test,将最初的功能说明转变成真正的产品。 我发现很多人,特别是在中国,一听到PM就认为这是Project Management。事实上,这仅是PM工作的一部分(上述第2点)。PM真正的技能在于倾听用户并从他们的角度理解问题,然后设计出解决问题的方案。这并不意味着简单地为用户提供他们所需要的,而是在真正理解需求后设计最好的解决方案,即使这是连用户自己都从未想到的解决方案。常言道,如果我们一味地遵循用户的要求而只是去找寻一匹更快的马匹,那么汽车永远也不会诞生。 Dev 三个专业中,Dev可能总是人们知道得最多的。他们负责实际设计和开发软件产品。Dev 的主要工作是实现PM制定的功能说明。在系统级的、关键任务级的软件世界里,这个实现应该极为可靠、安全、 便于管理、 可以扩展和高性能。Dev的设计和功能实现应经得起时间的考验,并在未来版本中得到重用。 Test 外界对微软测试工程师存在许多误解,内部有时也存在这个问题。多年前我刚进入微软时,我(愉快而)惊奇地发现在微软Tester的人数几乎和Developer同样多。在我之前服务的公司,测试人员要少很多(当然产品的质量会相对薄弱),因此在微软工作了一段时间后,我才真正了解测试专业的本质。在微软,我们何时可以发布产品并不取决于我们何时完成产品的设计和实现,而是取决于我们何时能完成产品测试。因为我们所发布的每个产品,尤其是系统类型的软件,必须通过一个极高的质量标准。测试专业的确是一个非常复杂的领域,一个Test必须花好几年时间才能掌握悟我们所应用的测试种类——单元测试、功能测试、集成测试、压力和远距测试、性能测试、安全性测试,以及本地化测试等。我们在测试中运且用的一整套工具和技术的复杂性令人印象深刻——自动测试套件,自动测试生成工具,自动检测故障分析工具,自动安全模糊测试和基于状态机的测试。  以上三个核心工程专业就像一张3条腿的凳子——一个也不能少,并且需要一个合适的工程组织保持其平衡。没有一方可以凌驾于其他任何一方,否则这个组织就无法与客户需求保持一致,或者无法在产品质量上下足功夫。这 3个专业类似政府部门间的制衡机制,这套机制确保了我们能理解客户需要,设计高品质产品,同时每个发布的产品都在各方面满足顾客的期望。  这里需要强调的是,我们一直在招募这三个领域最优秀的人才,他们的招聘条件同样严格,只是每个领域的技能和关注方面有所差异。PM通常热衷与客户一起构思应该设计什么样的产品,然后与Dev和Test同事协作完成所需要的产品。Dev对设计高品质软件更富有激情——产品应是革新的、简单的、可靠的、安全的、可扩展的、高性能的并能经受起时间考验。Test则爱好,在我们向客户发布产品前,竭尽所能找寻出软件中所存在的所有问题和漏洞。 我们的面试官有一项非常重要任务,就是找出应聘人员的才能和激情所在,然后引导他们向那个方向发展。当然,在个人职业生涯中激情和才华可能发生改变,员工个人也可能因为从事的工作领域不同而有所改变——我本人就曾是从Dev转为PM。这是很自然的,我们实际上也鼓励这种做法以构建更好的队伍。 其他领域 除了以上三个历来被视为微软“核心”的专业,另外几个专业也变得日益重要。例如,使产品使用更自然、直观的用户体验专家(User Experience,简称UX)。良好的用户使用体验能让人爱上一件产品,反之则甚至可以让用户不愿去触碰它。用户体验无疑对为终端用户设计的产品至关重要,同时对我们的开发人员、 I T专业人士以及信息工作者而言也是如此。 当我们进入“软件+服务”的时代,各种与构架、开发和运行极大型基础设施的领域变得越来越重要。需要重申的是,这些曾经只存在MSN和Live 等网络产品开发过程的专业,现在对所有产品组都变得日益关键,因为他们正逐步将产品融入这个“软件+服务”的新模式。 很多应聘人员问我在微软什么样的角色更适合他们,以及如何发展他们的职业。我能想到的最好建议是在他们真正热衷的一个技术或角色上下功夫。正如我刚才说过,我们对所有专业同等对待,一个均衡的组织需要在各个领域上都有突出人才。尽管不同专业需要不同专业技能和爱好的人才,但所有专业都存在创新和有所作为的机会。所有领域都提供了技术晋升和管理晋升的阶梯。事实上,如果你留意微软高层管理人员会发现他们中有从各种领域脱颖而出的 —— 他们的共同点是热爱他们所从事的工作。 我希望本次讨论对那些对此感兴趣的人有帮助,如果你有问题请随时在这篇文章之后留言。 下次再聊 — 再见! Prakash (孙博凯)   * 您可以阅读本文在Prakash个人博客上的英文原文或者在微软服务器与开发工具事业部博客上的中文原始翻译。


新年

已经很久没发表新的文章了,这是因为随着SQL Server中国研发中心各项工作的推进,我们一直处于紧张兴奋的状态。然而,新年总是一个总结过去、迎接未来的好时机。评估过去的成绩,可以使你迅速准备好迎接新一年的挑战。当然,还要为新的一年许诺一些决心!因此,我想在这里把这些事都简要地做一遍。 当我回首在中国的这几个月,想到我们已经取得的成绩时,感觉真的很奇妙。仿佛是昨天才和家人一起搬到中国来似的(实际上我们是8月1日搬来的)。短短几个月中,我们已经取得了很大进展,确立了现在SQL Server中国研发中心的地位;明确地阐述了我们是谁(我们的身份),我们追求的目标(我们的使命),我们为什么来中国,以及我们的前进道路-即我们打算如何实现这一使命;我们已经与广大的对SQL Server中国研发中心感兴趣的人建立了沟通渠道,他们包括客户、合作伙伴、学生、教员,以及业界同行;我们招聘到了一些亚太地区非常优秀的、对数据平台领域感兴趣的人才;在若干不同的技术前沿,我们继续成功地执行着我们对产品交付的承诺。同时,无论是作为个人还是作为一个团队,我们都在知识和技能方面不断成长,加速赶上,准备承担未来更大的挑战。最后要说的是,在完成这些成就的过程中,我们体验到了无限的乐趣! 前方的道路既富有挑战性又令人兴奋。在即将到来的一年里,我们将看到SQL Server下一个版本SQL Server 2008的上市。在努力准备上市工作的同时,我们作为SQL Server团队的一部分——中国团队,依然面临着一些艰辛工作。很重要一点是,要牢记在心等待我们的奖励是什么——是发布一个很棒的产品,这个产品有着用户迫不及待上手的新功能特色,以及用户有权期望的高品质。事实上,在过去几个月中,我们已经发布了一些CTP版本,客户对它们的初步反应非常积极。我们已经迫不及待地想要看到新版本的SQL Server将对市场产生的影响。当然,等到SQL Server 2008发布后,我们还要继续开发新的版本。实际上,后续版本的早期规划工作已经在进行中了。对我们中国团队来说特别令人兴奋的是,随着我们逐步增强自己的实力,在下一个版本中我们将担任更重要的角色,在后续的其它新版本中也是如此。另外,SQL Server中国研发团队的部分人员也在致力于Windows操作系统下一版本中部分组件的研发,通过这样的工作,团队体验到了完整地负责一个项目或组件,并为世界各地数以亿计的顾客提供新版本意味着什么。这可不是一件容易的事,尤其是对我们这样一个平台级的产品来说,但正是这样才富有挑战性和令人激动不已。 展望未来,我们面临的是一个重要而令人兴奋的一年。我们要发布SQL Server 2008,继续建设我们的中国团队,在技术上加速赶上,并随时准备在下一个版本中发挥更大的作用。当我看到我们正在建设的这个团队的质量,工作所涉及到的技术的宽广度,以及我们对团队远景和长期承诺的投入力度,我毫不怀疑我们正在日益接近目标,即建立一个亚太地区顶级的数据平台研发中心。 每个新年总会许诺一些决心,今年也不例外  就像大多数人一样,我也定下一些决心,虽然个人事情应该保密,但其中一项似乎适合在此与大家分享:经常地更新本博客! 祝新年快乐,身体健康! Prakash(孙博凯)

1

从数据库到全面的数据平台

去年我在香港出席了微软技术大会TechED 2007。我和Ron Jacobs为闭幕式做了主题演讲,我们着重介绍了在微软应用平台开发中涌现的新一波技术创新浪潮。当然,我谈到了数据平台这一部分,我很欣喜地为来宾们简要介绍了即将随SQL Server 2008上市的很多创新(SQL Server 2008按计划将在今年发布)。在后续的文章中,我们将进一步探讨SQL Server 2008,但如果你有兴趣了解更多或想现在就体验一下的话,可以点击该链接开始。 除了在技术大会上发言外,我们还会见了香港当地媒体,并向他们简要介绍了SQL Server产品的未来发展方向。我们也会见了该地区的一些贵宾客户——了解它们在微软平台上进行的最新项目,以及他们需要哪些类型的帮助。我们总是能从类似会谈中学到很多。 对我来说,这趟旅行最有意义的方面却可能是我在香港大学(HKU)和香港科技大学(HKUST)举行的两次题为“从数据库到全面的数据平台”的演讲。两所学校的师生们正在一个我们现在宽泛地称作“数据平台”的领域从事研究工作,我们进行了交流——并从产业的角度来看待一些变革,这些变革我们认为是传统“数据库”领域的一个历史性转变。 现代数据库作为一个研究领域已经存在40年了。从早期的层次和网状模型,到Codd所开创的关系模型,再到不同领域的许多创新,包括事务处理、隔离级别、访问方式、声明式查询语言与查询处理、游标、API,等等,数据库技术为构建可靠的企业级关键任务应用提供了基础功能,这些应用在很大程度上带动了今日的“信息经济”。由此,当今日一个普通的大学生想到“数据库”时,他们的印象可能是一个成熟的、甚至有点陈旧的研究领域,其中所有令人兴奋的难题很多年前就已经解决了,剩下的工作无非是一些渐进式的改良——为即将结束的领域画上最后一个句号。 这样的看法大错特错了。 在过去几年中,几种发展趋势的强劲融合——技术趋势、用户和商业趋势、应用趋势——使得数据库领域出现了从未有过的重新界定和扩展,数据库在它的悠长历史上从未有如此多令人兴奋的问题等待解决。 让我们简要地回顾一下这些趋势: 技术趋势:大家都熟悉摩尔定律——处理能力每18个月翻一番,早期体现为不断增长的主频,现在体现为多核。事实上,该趋势在硬盘存储容量(以及价格)中表现更为惊人。举个例子,每G硬盘的价格已从1980年的40,000美元/G下降至今天的约0.5美元/G!!!内存和闪存的容量以指数增长的同时,价格下降曲线则更为陡峭。另外,各种设备在激增——移动电话、掌上电脑、游戏设备、GPS设备等等——所有这些设备都在以一个惊人的速率产生、存储、处理和发送/接收/同步数据。当然,还有无所不在的互联网,它不仅使得新型应用成为可能,也改变了对已有应用特征的期望——还有很多这样的例子,都是在瞬间发生的变化。 用户和商业趋势:有了上述技术发展的支持,涉及数据、信息的用户与商业模式发生了巨大的变化。首先,有了一个彻底的数据爆炸,新生成数据的总量正在按指数规模增长,其中大部分是电子式生成的。(是否注意到,您的硬盘无论多么庞大始终没有多少剩余空间?)。电子邮件、文档、数码照片、音乐、视频、传感器上生成的流数据、卫星图像,都是这个伟大数据爆炸的一部分。问题并不仅仅是存储这些数据——用户和商家希望能从中获取价值——能够搜索、共享、同步、分析、可视化和操纵这些数据,从而让它变成有用的信息——一种“任何时间、任何地点处理你的数据”的想法。而这一切得到满足的同时,我们需要确保数据是安全的,隐私是受到保护的,所有外部和内部监管法规正在实施着。 应用趋势:首先出现的是批处理(Batch Processing)——基本上是一个对存在数百年的人工处理的自动化。紧随其后的是OLTP (Online Transaction Processing,联机事务处理)。在许多情况下,OLTP改变了商业的经营方式,以前需要很多时间才能完成的工作,现在瞬间可得。OLTP的体系结构和底层平台技术经历了几代更迭交替,但其核心概念并未变化。随着公司从这些OLTP系统中积累越来越多的数据,他们发现了一个获得重大竞争优势的机会,他们可以分析这些数据,更好地了解他们的客户。这就诞生了商务智能(Business Intelligence,BI),它包括数据仓库、在线分析处理(Online Analytical Processing,OLAP)、报表、数据挖掘等技术。今天,我们生活在一个Web 2.0的世界,应用通过各种终端展现(富客户端、浏览器、设备、笔记本/台式机……),数据无缝地从各种数据源汇集到一起,并提供了多种丰富的服务,包括查询、检索、分析(日益增长的实时分析)、报表、可视化,等等。同时,它们还运行在具有前所未有的伸缩性、可靠性和安全性的级别上。 一个全面的数据平台 上述变化趋势正在驱动着我们的领域进行根本性的变革——从仅仅“数据库”,到我们现在所称的“全面的数据平台”。该平台建立在数据库概念的基础上,并在如下三个不同维度上进行了扩展: 所有数据:长期以来,数据库都可以存储和操纵文本、数字,但这对一个数据平台来说是不够的。一个全面的数据平台必须能够处理所有类型的数据——包括文本、XML、对象、文档、文件、来自传感器网络的流数据,以及任何用户自定义数据。同时它必须能为每种数据类型提供更适合的服务——存储、索引、查询等。 所有层面:数据库只能运行在“服务器”上的日子一去不返了 。今天,一个全面的数据平台必须要在各个硬件层面上提供数据服务——电话和移动设备、笔记本电脑、台式机、服务器、服务器场,直至最终天文级别的巨大设施。同时,它必须为跨越这些层次的数据和应用提供无缝的互操作性。 所有服务:对数据的服务不再限于存储、查询、备份、恢复和其他少数几个动作。一个全面的数据平台必须提供广泛范围的服务,在涵盖上述服务同时,还包括搜索、缓存、同步、分析、挖掘、集成、报表、可视化、安全、审计、归档……等等。简而言之,它必须能服务于数据的整个生命周期,从产生到归档。 在后续的文章中我们将探讨到更多的细节,这里简明扼要地概括一下我们所称“全面的数据平台”,它所涵盖的范围是:一个可以在所有不同硬件层面上处理所有类型数据,并提供所有与数据相关的服务的平台。与此同时它需要在一些关键的维度上保持一致性——例如数据模型、安全模型、管理模型、数据访问接口、开发工具等。毋庸置疑的是,它还需要同时保证高性能、快速提供解决方案、低的TCO(总拥有成本)。很简单,不是吗?J 我们的机遇 我希望通过以上讨论,你能够了解数据平台领域正面临着前所未有的创新机遇。在现代数据库的历史上,从未有过如此宽泛的技术挑战,一个如此广阔的画布等待绘制。如果你是一个在校大学生——就像我在香港见到的那些聪明头脑一样——这对你来说是一个前所未有的机遇。等待解决的问题范围是如此庞大和多样化,而不仅仅是针对“数据库”专业。几乎计算机科学的任何一个方面,在这个领域里都可以找到有趣的问题——计算机体系结构、网络、编程语言、数据挖掘、XML、搜索、可视化、Web规模计算、语义Web——专业名单可以拉得很长很长。数据库一直是一个让人全心投入的领域,在该领域花费几十年时间的人并不罕见,事实上他们整个职业生涯都在该领域中度过。如果你选择投身该领域的话,现在正是时机。毕竟,我们生活在一个信息时代——这是我们的时代。 下次再聊 加油! Prakash (孙博凯)

3

导言

大家好,我是Prakash Sundaresan, 目前领导着SQL Server中国研发中心。我的中文名字叫孙博凯。几个星期前我刚搬到中国来,这是我第二次搬到中国。在这里,我着手组建团队、加速增强研发力量、与本地客户和合作伙伴一起工作,可一开始时,我发现很多人都对同一个问题有很大兴趣,即SQL Server中国研发中心将在中国做些什么?这也是我开博的原因。我不仅将要谈谈SQL Server中国研发中心要做些什么,还将涉及更广泛的话题,包括:数据库领域正在进行的变革——从数据库到现代综合性的“数据平台”,本地区客户和合作伙伴基于微软数据库技术开发的一些有趣的应用,以及学生或其它准备在该领域开创事业的人们可能感兴趣的问题。还有诸如关于外国人在中国工作、全球化开发等相关的任何其他话题。 在我谈到上述内容之前,先做一下自我介绍。从我名字中可以猜测出来,我在印度出生和长大,至于我的中文名字是怎么来的,那是另一个故事了J。就像很多人一样,我在取得学士学位后去美国继续读研究生。我在威斯康星大学麦迪逊分校呆了几年时间,并获得硕士学位。在那个时候,麦迪逊有一个很强的数据库项目,由一些研究先驱如Dave Dewitt、Mike Carey等人主导。更重要的是,对于一个正在寻找研究助理奖学金的穷学生来说,这帮人可是有着大量的银子!于是,我对数据库和信息技术领域的职业激情就这样开始,并一直持续到今天。 毕业后,我去数字设备公司工作了一年,那些仍然记得它的人会亲昵地称之为DEC。我在位于旧金山的先进开发实验室与尊敬的Jim Gray博士、Tom Barclay等人一起工作。这是我第一次加入到产业界,一些细节我将留到以后再谈,但这绝对是一段不可思议的经历。我在这一年里受益匪浅!今天,我可以这么说,我职业生涯上取得的成就很大部分要归功于这一年的经历,归功于Jim的教导。我相信很多其它人也有同感。我们所有认识Jim的人都在期盼他的安全归来。 那一年只过了一半的时候,DEC将它的RDB产品线出售给了Oracle,从此,DEC不再有数据库团队了。所以一年之后,我去了Informix。那时,Informix正在俄勒冈州波特兰组建团队,致力于大规模并行数据库XPS的开发。我在那里渡过一段非常不错的时光,参与开发了最先进的并行数据库,并把它推向市场。我们取得了一些惊人的性能基准测试数据并赢得了一些大客户,直到今日我们还珍惜这一成就。但在此期间,Informix碰到了一些节外生枝的问题,比如收购illustra所带来的麻烦,公开与Oracle关于广告牌的不明智争执并陷入法律诉讼、以及一些财务上的失误(说得客气点)。我在Informix工作期间学到了一些宝贵的经验教训,不仅在软件工程方面,也学到了生活中什么是真正重要的。最后,我决定离开Informix去微软工作。微软在那时只有一个鲜为人知的产品——SQL Server windows版,但微软希望在数据库领域占据重要位置。 对我来说这是一段有趣的历程,直到今天依然有这种感觉。算一算,我在微软工作将近10年了,而且一直呆在SQL Server研发团队,简直就是个标准的“数据库脑袋”!回顾这些年,我在SQL Server组先后担当过各种不同的职位。开始时,我在SQL Server核心引擎开发团队工作,开发查询处理器并协助SQL Server 7.0的上市。如他们所说,这真是“美好的旧时光”——工作就是纯编码,那时多处理器正在市场出现, 我们设法让SQL Server的功能拓展在多处理器上。然后,我又担任了其它一些职位,从RDBMS性能的领导者,到管理查询执行小组,然后是领导WinFS项目的核心引擎改进(我想,这个话题肯定会再次出现——它似乎总是如此J)。 虽然我承担的职责越来越重要,内心却有一种日益增长的不安。我被要求领导并决定产品的未来发展方向,但我并不觉得我对客户的需求有着很好的理解,而我们产品最终正是为这些客户而开发的。为什么顾客或合作伙伴选择SQL Server而不选我们竞争对手的产品,或反之,为什么选择竞争对手的产品而不选SQL Server?对他们来说SQL Server哪些部分运作良好,而哪些还不够好?对那些开发者、数据库管理员或一般IT从业者来说,他们应用SQL Server,或者更广泛一点说,应用微软平台时,最大的不方便是什么?当然,我对此有一些总体了解,但脑子里并没有很清晰的图像。所以,我决定去了解他们。如何做呢?还有什么比去和客户工作一段时间更好的方法吗?我很幸运,在SQL Server团队内部有一个所谓的SQL客户咨询小组(SQL Customer Advisory Team,简称SQL CAT)。这个小组与我们的最高端客户一起工作,在体系架构和最佳实践方面协助他们,帮助他们成功地应用SQL Server,反过来这也帮助了我们的设计和参考。这个小组源于美国,但现在已经扩大到欧洲和亚洲。那时,他们正好在寻找亚洲事务负责人,于是,我加入该团队并调到上海,开始了我在中国的第一份工作。我在这个组呆了将近18个月,在这期间,我有幸同遍布亚太地区的超过20个客户一起工作,项目包括:在日本建设有史以来第一个基于SQL Server上的核心银行系统;在韩国建立有史以来第一个端到端的电信OSS系统;一些数据仓库、BI系统、大规模的OLTP系统、SAP系统,以及这两者之间的所有技术支持。这真是一段令人难以置信的学习经历。首先当然是学习我们的产品以及顾客如何使用它,但同时也是在了解我们客户本身、我们的领域、我们的合作伙伴,以及更广泛的,亚洲商业是如何进行的。 我想这就是我的第二个职业激情的发源,与亚洲的事业相连。当然,我在这里出生和长大,和亚洲有一种所谓的天然的“关联”。但我从未真正在这个地区工作过。我在印度长大那会儿,印度并不是所谓的“活力经济”时代。然而现在,正如任何近几年在亚洲呆过的人都会证实的那样,这里的空气中弥漫着一种与众不同的能量,在你下飞机和你的同行旅客准备下飞机的那一刻你就能感觉到,如果你知道我是在说什么!很明显,对中国、印度和整个地区而言,这是一个巨大变革的时代。如果人们可以罗列出我们这个时代前5名的全球现象,可能会有一些现象不太愉快,并困扰我们,比如全球变暖和地缘政治紧张等。但亚洲历史性的崛起绝对是积极的。当然,还有信息技术、互联网和其他技术创新对我们所有人生活和工作的影响。因此,就职业生涯方向而言,我有一个强烈的预感,我未来的一生很可能就是围绕着我们时代的这两大现象的交叉——信息科技与亚洲。 在SQL CAT组工作了18个月后,我返回了雷德蒙。这时,SQL Server组正在将精力从准备SQL Server 2005上市转移到下一个版本上。虽然SQL Server 2005已经被证明是市场最成功的一个SQL Server 版本, 而且的确是一个伟大的版本,但它从研发到上市花了很长时间。我们花费很大力气使我们的工作流程能跟上团队规模和业务规模的巨大增长。这段时间行业内也发生了很多变化,相比我们开始SQL Server 2005征程的五年前,很多东西已经不存在了。为了下一个十年的成长,又该是调整并且将船指到正确方向的时候了。在拥有了客户经验之后,我得到了一个难得的机会,担任SQL Server战略小组总监的职务,负责监督下一版本的规划,以及协助指导SQL Server产品及事业的长期规划。 这是一项伟大的工作,我全力以赴地在各个方面展开工作。我们规划着SQL Server 2008版本中应该包括哪些功能,关注前沿的版本发布的主题,完成每一主题下的客户应用方案,以及每个应用方案中独特的“改进”(相当于功能)。同时,我们完全重新设计了我们开发软件的方法,更侧重于首先确保这些改进是真正完整的、高品质的,然后再将它们加入到产品的主线中去。在某种程度上说,对我们这些改变的评判仍然在进行中。任何改变都是非常困难的,至少在初期。但迹象显示,至目前为止,我们所获取到的软件质量和可预测性的改善完全值得我们之前付出的那些努力和痛苦。 我们还努力完整回顾了我们的产品和技术策略。我不想公开讨论太多这次回顾的结果,但足以说明问题的是,我们对产品战略以及未来前进方向有了一个更清晰的理解。Paul Flessner,SQL…

3