天天看点

阿里云数据库专家田英鹤:云数据库系统容灾架构设计和实战

8月30-31日20:00-21:30,一场别开生面的技术大会—— “蚂蚁金服&阿里云在线金融技术峰会”将在线举办。本次将聚焦数据库、应用架构、移动开发、机器学习等热门领域,帮助金融业技术开发者深入解析互联网应用的前沿应用与技术实践。

来自阿里云的技术专家田英鹤(花名:喜乐) ,将在本次峰会中为大家带来《云数据库系统容灾架构设计和实战》的分享,下面是议题详情,供大家参考。

议题名称:《云数据库系统容灾架构设计和实战》

议题简介: 本次演讲向大家介绍云数据库的高可用容灾方案设计。在各种架构,部署条件下,如何最大程度的保证系统的连续性及数据可靠性。主要包括实例健康检测方法,参数配置,实例故障切换方案及机房容灾方案。通常来讲,数据库的高性能及高可靠往往不可兼得,在实例的ha配置策略上,对于高可用优先和高可靠优先两种方案前提下,如何进行数据库配置及如何制定高可用切换方案。

在双节点架构的高可用配置下,如何保证数据连续可服务及性能;在可靠性配置下,系统如何优先保证数据的可靠和一致性。在三数据节点部署条件下,如何能够更好的保证数据的可用性及可靠性。在机房容灾上主要介绍双机房及三机房的跨机房部署条件下,单个机房或网络故障后可以有哪些数据库的容灾方案。对于以上的容灾场景,也会特别的提到阿里云数据库技术组在这方面所做的工作和努力。

听众收益:

1)了解常见的数据库容灾方案,熟悉原理后更好的设计应用系统的容灾方案

2)收获客户端配置建议,能够更好的理解和减少数据库切换对应用带来的影响

关于分享者: 田英鹤(花名:喜乐),阿里云数据库技术专家,主要从事阿里云数据库服务系统的架构设计及研发。该系统目前支撑了公有云逾万级实例每日逾万次的日常自动化运维服务,设计的数据库高可用系统支持了mysql,pgsql,mssql等逾万级线上实例7*24小时不间断服务。对云计算,大规模并发系统有7年以上的系统架构设计及研发经验。

<b>以下为本次采访内容:</b>

<b>云栖社区:请介绍下你及相关工作经历。</b>

喜乐:我是2010年硕士毕业后加入阿里巴巴淘宝网,在运营支撑部工作,主要负责淘宝网服务中心,智能机器人搜索引擎相关工作,2013年加入阿里云数据库技术组,主要负责数据库管控服务系统的开发和项目管理工作。

<b>云栖社区:能否分享下阿里云数据库服务系统的架构演变过程,以及所遇到的挑战。</b>

喜乐:数据库服务系统从2013年支撑数千实例级别到2016年支撑数以万计的实例,从支撑mysql、sqlserver引擎到支持redis,mongo,pgsql/ppas,petadata等引擎,的确从系统架构上,从数据库多种结构上变化很大,对原系统进行了大规模的功能拆分及服务化,从原来仅支持自动化运维任务到目前资源管理,监控,全自动上下线主机,迁移,计费等产品功能日渐丰富。

当然,中间也遇到很多挑战,比如如何支持多机型,支持多种引擎,存储架构,我们将众多引擎的共性及差异性逐渐分离,抽象,使得接入新引擎成本更低,将基础代码,方法维护得更加健壮,使得整个服务系统更加顺滑,可监控,出现问题可及时修复。当然,最大的困难就在于在人力不大幅增加的条件下,如何在快速响应新业务的同时,对现有管控进行深度的优化,重构,使得我们跑的快,跑的稳。

<b>云栖社区:高可用性是云数据库首要解决的问题,在架构设计上你们是如何设计的?对设计中遇到的技术难点都是如何解决的?</b>

<b>喜乐:</b>云计算条件下要同时管理数以万计的数据库,架构上我们在原来数据库基础运维经验的背景下,通过参考和借鉴集团和行业内其他厂商和资深专家的过往经验,再结合我们自己开发条件,逐步完善起来的。

设计中对不同引擎,不同数据库的策略是各不相同的,我们的优势是系统开发同学和各数据库内核同学都在一个大团队下,所以难点攻关上,我们团队的管控服务同学和内核同学通力合作,共同克服了一个个工程问题,也通过在线上不断的实践,总结,再实践一步一步走过来的。

<b>云栖社区:你是如何在云数据库高性能和高可靠之间进行平衡的?</b>

<b>喜乐:</b>首先,成本,性能,数据可用性,可靠性对不同应用要求是不一样的,即使是金融行业的应用由于使用场景,业务不同,那么也会对这些点要求不同,那么我们充分考虑各种需求,给应用提供了更多的选择及建议,使得应用在各项指标间寻找到一个平衡点,都能找到适合自己的数据库部署结构及高可用策略。这个能力我们认为在市场中是很必要的。

<b>云栖社区:据了解,阿里云数据库系统目前支撑了公有云7w+实例每日2w+次的日常自动化运维服务,设计的数据库高可用系统支持了mysql,pgsql,mssql等7w+线上实例7*24小时不间断服务,因此在云数据库健康检测上,是否有什么检查机制?</b>

<b>喜乐:</b>我们对检查策略及实际的检测结果做了更加细致的区分,除了常见的进程crash,宕机,网络中断,对数据库卡慢的情况,也通过内核改造,提供内部运行数据,结合主机数据进行实时分析和计算,来决定是否需要failover,这样可以给用户和应用提供更好的用户体验。当前,我们也还在不断的完善和改进,这是一个不断深入的过程。

<b>云栖社区:你认为优秀的云数据库架构设计应包含哪些要素?</b>

<b>喜乐:</b>架构上应该提供更加灵活的部署方式,配置方式及高可用策略,同时也要提供专家级的建议,在架构决策上给用户提供尽可能价格合理,性能匹配,容量合适的云数据库基础设置,稳定性,性能,成本,体验四个方面应该是衡量一个云数据库产品架构最重要的几个方面。

<b>云栖社区:在本次技术峰会上,分享这个议题主要是基于什么考虑?另外,你认为什么样的听众适合听这个分享?</b>

<b>喜乐:</b>对数据库有基本的运维或者使用经验,想了解数据库架构设计,特别是数据库容灾设计的同行。

<b>云栖社区:生活中,你还会做哪些有意义的事?</b>

<b></b>

<b>喜乐:</b>关注失学儿童及教育,希望能够尽一些绵薄之力。