揭开 SQL 数据库服务开发的面纱

几年前,SQL 团队发布了基于 SQL Server 的 Azure SQL 数据库办事。为了实现“云优先”的方针,我们破费了大量时间和精神来改良 SQL Server 的开辟模式。颠末几年的勤奋,新的开辟模式不单使我们实现了 Azure SQL 数据库办事的快速迭代开辟,而且协助我们改良了 SQL Server 的开辟和更新效率。本文将带你走进 SQL团队的开辟模式黑幕,回首在过去几年中 SQL 开辟模式的变化,以及领会新的开辟模式若何协助我们改良 SQL Server 的开辟、发布以及更新的流程。

揭开 SQL 数据库服务开发的面纱 1

在晚年的 SQL Server 开辟过程中,我们利用雷同瀑布模子的开辟流程来同步分歧开辟团队之间的工作。每个产物周期都破费了大量的时间进行规划和文档工作:项目司理写需求文档,开辟团队写设想文档,测试团队写测试文档。在开辟的过程中,又需要大量的时间进行功能之间的整合测试。因而,SQL Server 的发布周期一般在3年摆布以至更长。

在 SQL Server 发布之后,用户往往又需要几个月以至几年的时间来进行测试和升级,而且利用新版本中的新功能。在这种环境下,新功能从设想开辟到真正使用到用户的出产情况中需要几年的时间。这要求我们在设想新功能时具有很是强的前瞻性。不然新功能在投入利用之前就可能被市场合裁减了。

Azure SQL 数据库作为一款云办事,要求我们大大缩短新功能从设想开辟到投入利用的时间。产物团队为了实现这一方针,在开辟流程中进行了几项比力大的改动:

改良编译和测试的主动化流程。操纵Azure 所供给的高扩展性,我们将整个编译测试流程迁徙到云端,并在上千台办事器上分布运转,从而将整个流程的时间从几周缩短到平均几小时。

针对SQL 供给的很是普遍的各类功能,我们在产物的全体架构长进行了改良,把整个架构分化为若干个微办事。如许个个开辟团队能够别离对分歧的功能进行独立的开辟,大大缩短了集成以及集成测试所需的时间。

采用愈加切确的增量的体例进行开辟,新功能会在每月预览版中发布,并不竭进行改良。

这些开辟流程上的改良使得产物团队能够更快速的推出新功能。与保守的 3 到 5 年的发布周期比拟,在最新版本的 SQL Server 2017 中,我们仅利用了 16 个月就实现了从 Windows 到 Linux 的跨平台的迁徙和开辟。

在 SQL Server 2017 的开辟过程中,产物团队每个月会发布一个新的预览版给用户用于晚期的测试。因而,我们能够在新功能开辟的过程中就获得大量的用户反馈。开辟团队能够基于这些反馈来修复发觉的问题,以及改良功能设想。在 SQL Server 2017 正式发布时,绝大部门功能都曾经在用户实在出产情况中颠末了好几轮的频频测试和验证。

在旧的开辟模式中,若是一个功能没有赶上当前版本的末班车,就要期待三年后新版本的发布。因而每次正式发布前夜总会有一些功能带有已知问题挤进了发布。在新的开辟模式中,我们实现了完成即发布。若是一个功能在发布前夜发觉问题,那么我们能够有充沛的时间修复问题,然后鄙人个月的发布中再插手这个功能。

[amazon_link asins=’0735679428,150930200X,B01MXTVOE3,148422082X,1509307036,1430229616,1430243953,1983833959,1484221427|148422082X,150930701X,1484236149,0735679428,1509307036,1849680809,1430243953,B01MXTVOE3,150930200X|B01MXTVOE3,1983833959,1509308059,1509307036,0735679428,150930701X,3836240637,150930200X,1118859138|B01MXTVOE3,2746071681,B00L6KJ78E,0735679428,1509307036,1533008205,B07CR5WZXJ,1983833959,B07B263ZVP|B01MXTVOE3,148422082X,1983833959,B00BOAB7N4,0735679428,150930200X,1532934130|B00BOAB7N4,B07D5J97JV,1532934130,B01MXTVOE3,1533008205,B01J89I7PI,1983833959,B00L92061G,1532914725|B01MXTVOE3,B07B263ZVP,1983833959,B01FFFP2P2,1509307036,B00JUUZVN2,B00BOAB7N4,B01J89I7PI,1484236149′ template=’ProductCarousel’ store=’jhrs-20|lamps06-21|lamps0c-21|lamps0e-21|loveca07-20|lamps03-21|lamps05-21′ marketplace=’US|UK|DE|FR|CA|IT|ES’ link_id=’16ffebd2-5ca5-11e8-addd-471c3b230c4f’]

在新的开辟模式中,我们在产物规划上也做出了改良。起首,我们所做的每一项工作,所添加的每一个新功能都需要有实在的客户需乞降反馈来支撑,以确保我们的工作能够最大化用户的好处。和以往追求大而全的体例分歧,对于每一个用户面对的问题或需求,产物架构师,项目司理和开辟司理会一路寻求一个能够在短期内实现的最简方案(我们称之为 MVP,Minimum Viable Product)。开辟团队先开辟并发布这个最简方案,以供用户测试并供给反馈,然后按照客户的反馈不竭的改良和迭代,直到功能最终成型。

为了实现云端的 Azure SQL 数据库办事的持续开辟和持续摆设,产物团队决定不再从 Azure SQL 数据库以及 SQL Server 中移除已有的功能。为了实现这一方针,我们添加了大量测试用例来测试产物的向后兼容性,以包管无缝升级。

在某些环境下,我们必必要在产物中进行一些改动而无法包管向后兼容。这种环境下,sql数据库sql数据库我们会自动提前联系收到影响的用户,协助用户理解新的改动,供给迁徙或替代方案,以包管用户能够成功的利用升级后的产物。

用户还能够通过节制数据库的兼容性级别(database compatibility level)来包管使用法式不受数据库升级的影响。在 SQL Server 和 Azure SQL 数据库中,和查询引擎相关的改良和新功能(例如自顺应查询处置等)在数据库兼容性级别升级之后才会生效,而其他新功能(例如图数据库等)则在数据库版本升级后即可利用。用户能够操纵这一特征来节制和避免数据库升级对查询效率机能的负面影响。用户还能够利用 Query Store 以及查询打算主动纠错等功能来降低数据库兼容性级别升级所带来的风险。

SQL 产物团队利用在产物中收集到的计量数据(Telemetry)来改善产质量量,包罗:

所有计量数据在利用之前都进行了平安性处置,以庇护用户隐私。Azure SQL 数据库办事每天会收集约 600TB 的计量数据。产物团队利用这些数据成立了大量的预警以及主动修复机制。这使得我们能够在没有任何 DBA 的环境下,办理和运转跨越两百万个 SQL 数据库。产物团队还监控和阐发所有的 crash dump 文件,并修复此中的问题。

数据驱动的质量办理也同时为 SQL Server 用户带来了益处。产物团队所发觉并修复的问题会主动摆设到 Azure SQL 数据库以及新版本的 SQL Server 中,而且为已有的 SQL Server 版本供给持续更新。整套主动机制协助我们更快的发觉并处理问题,并通过 SQL Server 的累积更新(CU)供给给现有的 SQL Server 客户。这改变了以往用户发觉问题后需要自行阐发,联系微软支撑团队演讲问题并期待产物团队供给处理方案的流程,大大优化了用户体验。DBA 能够通过摆设最新的累积更新来获得不变性和机能的提拔。

前面提到,在 SQL Server 的开辟过程中,我们操纵 Azure 所供给的高可扩展性,在上千台办事器上并交运转测试。这使得我们能够比以往更屡次的运转完整的测试集。而在测试中所发觉的问题,会和从 Azure SQL 数据库所收集的计量数据中发觉的问题一路被修复,并增量的摆设到所有的 Azure SQL 数据库中。利用这些新的机制,我们能够比以往更屡次的发布更新,并包管更新的质量能够满足客户出产情况的需求。

从 SQL Server 2017 起头,我们将每一个月发布一次累积更新(从第二年起头每季度一次)来取代原有的 Service Pack 系统。用户将不再需要期待 SP1 来完美出产情况中的 SQL Server 摆设。

通过在 Azure SQL 数据库的开辟和摆设中获取的经验,我们改良了并将持续改良整个 SQL 产物线的开辟和发布流程。 通过共享 Azure SQL 数据库和 SQL Server 的开辟模式,我们能够更快更好的发布新版本的 SQL Server 和对现有版本 SQL Server 进行更新。我们不断努力于为客户的数据办事供给最好的云端和当地平台。而对于开辟模式的不竭改良和立异将 SQL 数据平台的用户体验提拔到一个新的高度。

加入电报群

【江湖人士】(jhrs.com)原创文章,作者:江小编,如若转载,请注明出处:https://jhrs.com/2018/22649.html

扫码加入电报群,让你获得国外网赚一手信息。

文章标题:揭开 SQL 数据库服务开发的面纱

(0)
江小编的头像江小编
上一篇 2018-05-20 18:47
下一篇 2018-05-21 23:30

热门推荐

Leave a Reply

Sending

国外老牌便宜域名服务商Namecheap注册com域名大优惠,抢到就赚到,优惠码:NEWCOM698
$5.98/年
直达官网