2018年双十一刚过,阿里云数据库发布RDS for SQL Server AlwaysOn集群版,这是业界除微软云SQL Database外,首家云计算公司基于SQL Server最新AlwaysOn核心技术实现的数据库集群版,并且是经过双十一检验的商业化版本。
全形态的产品集合
纵观整个RDS for SQL Server的产品迭代图,AlwaysOn集群版的上线标志这SQL Server数据库在阿里云RDS平台的全面覆盖,阿里云数据库实现了针对企业客户不同阶段的产品体系的匹配。
基础版针对可用性要求不高的业务,并且成本是首要关注选项的客户,如初创企业,是最优选择。WEB版价格甚至比自建还要低,却能获得RDS的运维管理等多项服务,性价比最高。
随着业务的发展,关键业务的可用性要求变高,甚至要求7X24小时的不间断服务,RDS for SQL Server 高可用版基于微软Mirror技术实现,满足此类业务需求。此外,针对企业级客户特性,在高可用版中开放了大量高级特性,如复制模式设置,用户可以根据需求设置主备节点复制模式可实现业务的高可靠或者高性能。此外高可用版本支持Linked Server,实现在RDS中访问其他RDS甚至自建数据库。特别地,在高可用版本中,开放了变更数据捕获(CDC,Change Data Capture)技术,客户可根据CDC提供的能力,同步数据库的变化,实现数据复制到其他实例。高可用版满足了企业客户主流业务需求。
随着业务的急速发展,系统负载不停增加,企业就对数据库的横向扩展能力提出了要求,RDS for SQL Server集群版就是为了满足此类苛刻要求而推出的。AlwaysOn集群版不但提供了高可用版的所有特性,而且还实现了数据库能力的横向扩展,客户可简单的通过购买只读实例,就可以实现扩容数据库读能力,最少可扩容到原主实例的七倍读能力。此外,客户可通过增加一个独立的只读实例,专门提供一个特定业务的查询服务,比如专给数据智能部门提供数据分析服务。
RDS for SQL Server AlwaysOn集群的只读实例支持独立选择规格,同时默认和主实例采用异步数据复制方式兼顾了性能和性价比,当然客户可自定义为同步方式,从而实现三个节点的数据同步一致性,对数据提供最大的安全保护。注意,我们支持最多可设置1个只读节点和主实例之间的复制模式为同步复制,并且建议该只读节点的规格要和主实例规格保持一致,否则会影响主实例的写入性能。
如何购买阿里云数据库RDS for SQL Server AlwaysON集群版
要购买AlwaysON集群版,在RDS购买页面选择SQL Server后,选择“2017企业集群版”,然后选择对应规格后购买,生产出来的就是AlwaysON集群版的主实例,包括Primary主节点和一个用作保障高可用的Secondary备节点,主备节点之间是数据复制默认是同步模式,客户也可基于实际情况选择性能优先设置为异步复制模式。
RDS for SQL Server AlwaysON集群版是基于2017版本的,官方兼容以前版本,实际使用情况可兼容到2008r2版本。这也说明要使用AlwaysON集群版,客户必须购买2017企业版SQL Server,若客户之前是低版本则需要升级。 RDS将会短期内提供从RDS低版本升级到2017企业版的工具。在购买完主实例后,客户可以在主实例的管控界面购买只读实例,最多可购买七个只读实例。另外只读实例提供了通用型实例规格,最大16核64G内存规格,具有很高的性价比,可以将更多的读请求放到只读实例,实现成本的最优化搭配。
RDS for SQL Server AlwaysOn集群版的核心技术
AlwaysOn是原生支持High Availability和Disaster Recovery的技术,本身又分为Failover Cluster Instances(后续简称FCI)和Availability Groups(后续简称AG),下面的图是FCI和AG的基础架构,其中FCI和常规版本的AG都依赖Windows Server Failover Clustering(后续简称WSFC),不同点是FCI是Share Storage而AG是Share Nothing,FCI是实例级别同步而AG是DB级别
阿里云数据库设计AlwaysON集群版,鉴于扩展性和稳定性要求我们选择的是AG技术方案,同时我们更近一步在实现上去除了WSFC(如下图所示),替代于阿里自研的HA监控系统,实现了集群依赖元素最少设计,根除WSFC和AD证书带来的稳定性问题。同时由于灵活的节点配置,新架构下可方便实现在不同可用区、甚至未来在不同地域独立部署只读节点,可以在数据库层实现原生的两地三中心架构。在数据可靠性方面,2017版本中引入了REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT参数,可实现主备节点的强制同步,确保数据不丢。
RDS for SQL Server AlwaysOn 集群版的案例
2018年双十一中,三只松鼠利用最新版的RDS for SQL Server AlwaysON集群版顺利支撑了原来50倍业务压力的增长。
结合于RDS for SQL Server AlwaysON集群版的灵活价格,三只松鼠双十一架构采用了如图的2+3模式,其中主实例的主备节点通过临时开启异步复制以获得最大性能,三个只读实例全部异步复制实现性能最大化。将所有的与写无关读全部引流到只读实例1和只读实例2,顺利支撑了50倍业务压力增长。另外将业务BI分析查询放到专门的只读实例3,将高峰期的流量干扰降低到最小,并且只读实例3规格按需使用,极大的节省了成本。
阿里云数据库RDS for SQL Server AlwaysOn 集群版商业化发布,除微软外在业界实属首家,它与 Azure SQL Database遥想呼应,将SQL Server强大的AlwaysON技术能力带到云上,为企业级客户的发展提供了全栈的产品支持。