返回 登录
0

【SDCC讲师专访】张成远:京东数据库架构变迁纵览

阅读1395

2016年11月18日-20日,由CSDN重磅打造的年终技术盛会,SDCC 2016中国软件开发者大会将在北京举行,大会面向国内外的中高端技术人员,聚焦最前沿技术及一线的实践经验,从而助力企业的技术升级和改造、全面提升技术人员的综合实力。会前我们有幸采访了架构演进专题的张成远老师:

图片描述

京东云资深架构师 张成远

张成远,京东云资深架构师,《Mariadb原理与实现》作者,开源项目speedy作者,毕业于东北大学,硕士阶段研究分布式数据库相关方向,2012年加入京东数据库研发团队,负责京东分布式数据库系统的架构与研发工作,主导了京东分布式数据库系统在公司的落地及大规模推广,擅长高性能服务器开发、分布式缓存/数据库/存储等大规模分布式系统架构。

CSDN:请先和大家介绍下您和目前所从事的工作以及关注哪些技术领域?

张成远:大家好,我是来自京东云的架构师张成远,目前主要是负责京东分布式数据库系统的架构及研发工作,个人比较关注的领域是分布式数据库/缓存/存储等分布式系统以及云计算相关技术。

CSDN:能否谈下您对架构的理解?以及您对于架构师是如何定义的?

张成远:我个人觉得架构本质上是支撑业务在一定时间内可以持续健康发展的一些规划,具体到相应的系统来说,就是要求系统的设计可以在一定阶段里满足业务需求。

架构师这个定义每个人有每个人的理解,我觉得有一些共性的东西,那就是都需要有扎实的技术基础以及较为广泛的知识面可以帮助团队少走弯路,可以很好地分析需求,很好地把控系统定位,控制好系统边界,从而让技术更好地支撑业务。

CSDN:您在2012年加入京东数据库研发团队,谈谈您为什么会选择加入京东?

张成远:京东一直是一个快速发展的公司,而2012年的时候整个公司规模还比较小,尤其是技术研发实力还比较薄弱,很多基础系统都不是很完善,有一些甚至是缺失的,在这个阶段加入这样一个快速成长的公司可以与公司一起成长,这对个人技术生涯是一个很好的锻炼和机会。

CSDN:您曾有一本技术著作《Mariadb原理与实现》,本书由浅入深地剖析了MariaDB,作为MySQL的一个重要源代码分支,能否请您谈谈MariaDB区别于MySQL的主要亮点功能?

张成远: MariaDB是基于MySQL开源版上创建的MySQL的分支,可以理解为MariaDB会比相应版本的MySQL多一些功能和特点,比如像线程池功能从MariaDB 5.1开始支持,而MySQL是从5.6的企业版才开始引入该功能,还有其它包括像多线程复制、查询优化等方面MariaDB都相比MySQL有一些改进,另外还提供了像虚拟列、动态列等功能,至于亮点我觉得除了功能以外MariaDB对继续保持MySQL的开源以及吸引更多人参与开发有着非常重要的意义。

CSDN:同时,写书是一种对自己知识系统很好的总结,从社区角度来说也非常有益于技术人的发展,而如何写出一本好书是大家需要面对的难题,对于写技术图书您有什么心得和体会可分享?

张成远:写书是一个很好的总结自己经验及知识的机会,可以重新审视自己的知识体系对自己也有很大的促进作用,同时将自己的一些理解与其他人分享本身也是一件很有意义的事情。要写一本好的技术书并不容易,不同的细分领域及难易程度等都会影响到受众的多少,动手之前可能需要考虑清楚读者的定位人群,这样对后续整本书结构的组织可能会有一定的帮助。

CSDN:在去年6月份,京东在GitHub上开源了用Go/C开发的一款高性能、分布式的Docker镜像存储系统——Speedy,能否请您介绍下Speedy一年多来的发展和变化?以及您的开源理念。

张成远:这个镜像存储系统是我们在做京东公有云容器解决方案的时候写的一个开源项目,当时主要是用来解决Docker的镜像存储问题,针对Docker镜像的特点做了一些定制优化,使其更适合用于存储镜像,Speedy的架构如图所示。

图片描述

开源以后到现在有四百多个star,有一些公司在生产环境使用了该系统做镜像存储并做进一步优化,但因为后期我个人精力主要聚焦在分布式数据库领域,所以未能很好地去推进这个项目的进一步演进,这一点上也是有所遗憾的。我个人觉得一个好的开源项目需要创建一个友好的互动社区,这对一个开源项目的健康发展是比较有利的。

CSDN:下面来聊一下京东的云数据库,请您先简单介绍一些京东云数据库服务。

张成远:京东云数据库分私有云数据库以及公有云数据库,私有云数据库是我们内部用于支撑商城等业务的,提供了包括自动化运维、服务高可用、数据高可靠等在内的一系列保障。

公有云数据库是我们内部技术的一个完整输出,将内部成熟的解决方案打包上云,为云端用户提供便捷的自动化的数据库服务,为企业用户节省大量的人力物力成本。

CSDN:京东云数据库的架构是怎么样的?

张成远:在资源利用率方面京东私有云数据库是采用物理机+容器的解决方案,公有云数据库当前主要是采用物虚机的方案,也有部分采用物理机的方案。在服务高可用方面提供了自动化的主从切换;在部署方面有统一的自动化上线系统;在SQL审核方面有自动化的检测及执行系统;在数据高可靠方面会将数据定期备份到公司的分布式存储系统;在监控方面有完善的监控体系可以实时监控机器服务,有任何异常都能及时发现并处理。

CSDN:众所周知,如今京东采用的是分布式数据库的系统,其核心技术及思路又是怎样的呢?

张成远:伴随着近一年多京东大规模去Oracle/SQLServer,目前几乎绝大多数重量级业务都完成了去Oracle/SQLServer,我们的解决方案是为这些业务提供了一套基于MySQL的中间件解决方案,完全兼容MySQL协议,使用的时候业务可以像使用原生的MySQL一样来使用这套系统,帮助业务透明地完成数据的拆分以及自动化扩容,为公司大规模去Oracle/SQLServer提供了很好的基础支持。

CSDN:最后,能否请您分享下京东数据库一些独到的实践经验?

张成远:其实数据库领域面临的问题都类似,无非就是更好地保证数据库的可靠性,更好地保证服务的可用性,而在更大规模数据量的时候会涉及到如何更好地做分布式解决方案等,另外在大规模使用时资源利用率也是一个需要考虑的问题,京东数据库也大量使用了容器化的解决方案,可以更充分地利用机器资源。

CSDN:在本次SDCC 2016·北京站的架构演进专题上,您分享的话题是?

张成远:我这次分享的主题是《京东分布式数据库的演进之路》,会重点介绍一下整个系统的发展演进历程以及在实践过程中积累的一些经验。

评论