在这个信息化的时代,几乎所有的开发工作都不可避免的和数据打交道,尤其是云计算和大数据时代的到来,传统数据库的性能已难以满足海量数据的实时交易查询需求,在性能和成本的双重压力之下,云计算下的数据库需要寻找突破之路。
4月21号在北京开幕的QCon全球软件开发大会上,作为网易的资深开发工程师和蜂巢数据库服务负责人,郭忆同与会的数千名开发者分享了网易蜂巢在云数据库方面的实践,以及网易蜂巢为开发者打造稳定可靠、简单易用的在线数据库服务所做的努力。
随着网易蜂巢、云信、七鱼云客服、视频云等一系列云计算产品的上线,网易已然成为国内云计算市场不容忽视的力量。从面向网易新闻、云音乐、考拉海购能产品的私有云,到为“中顺易”、“浙大网新”等企业服务的公有云,再到以蜂巢为代表的全面公有云时代,网易的云计算格局已悄然成形。
据郭忆介绍:“网易云计算平台整体规划由三层组成,位于最底层的是由物理机器、硬盘以及网络设备组成的物理硬件层,在非云环境,我们的程序是直接运行在这层之上的。在云环境下,我们基于物理设备,分别构建了云主机、云硬盘和云网络,组建了IaaS层,分别帮助我们实现计算、存储和网络的资源虚拟化和管理功能。要完全实现一个面向开发者的云计算平台,仅有IaaS还是做不到的,基于IaaS之上,我们构建了强大的PaaS和CaaS服务,具体又分为应用管理类服务和数据存储类服务,我们今天要重点介绍的云数据库就属于后者。”
网易数据库团队基于10年的数据库开发和运维经验,设计研发的云数据库服务具备高可用、高可靠、高性能、高智能、在线扩展等多个特性,特别是网易基于 MySQL Replication自主研发的同步复制功能,彻底解决了MySQL主从节点切换丢数据的难题,实现了完全不丢数据的秒级故障切换。
MySQL 是目前业界最为流行的开源数据库,尤其是在互联网公司应用非常广泛,这与MySQL的简单易用有非常重要的关系。复制是体现这一优点的最重要的特性之一,通过复制就可以快速的搭建一个有着主备关系的实例,实现数据库高可用和读写分离。但是MySQL复制并不是想象中那么完美,原生异步复制因为主机事务更新日志是在事务提交之后再发送给从节点的,一旦主机宕机,可能存在部分主机上已经提交的事务日志没有发送给从机,造成数据不一致的问题。郭忆称,网易设计研发的同步复制技术,调整了事务提交和发送事务更新日志到从机的顺序,确保所有在主机提交的事务都首先将更新日志发送给了从机节点,这样就确保了主机宕机后,主从数据完全一致。同时,通过Binary log group commit技术可以解决同步复制造成的性能下降的问题,通过并行复制技术,解决主从复制落后延迟的问题,确保数据库可以实现实时故障切换。
虽然高可用技术看似完美,但是对用户来说,一则存在切换代价的问题,二则切换并不能解决所有的问题,例如某个SQL因为索引设计不合理造成的执行时间很长,这并不能通过主从切换来解决。 “通过对线上数据库的统,,80%的故障实际上都可以提前预知从而避免,所以我们需要云数据库拥有提前预知风险,更加智能的能力。为此,我们推出了数据库健康检查服务,针对数据库提出21项健康检查指标,覆盖索引、容量规划、用户访问、服务安全、参数配置以及主从复制,定期对数据库进行全面体检,提前将风险扼杀在摇篮中。” 郭忆强调说。
在此次 QCon大会上,开发者们对云计算表现出了极高的关注度,而早期的云数据库产品只是提供了一个运行在云基础设施上的数据库进程,并没有真正解决开发者在实际使用过程中遇到的难题。郭忆的分享让不少开发者对云数据库有了新的认识,特别是网易蜂巢针对开发者打造的数据库健康检查功能, 彻底击中了开发者使用数据库的痛点,真正开启了“智能化”的数据库时代。