RDS(Relational Database Service)是一种即开即用、稳定可靠、可弹性伸缩的在线数据库服务,具有多重安全防护措施和完善的性能监控体系,并提供专业的数据库备份、恢复及优化方案,使用户能专注于应用开发和业务发展。褚霸在OSC源创会年终盛典上分享了阿里巴巴如何使用开源软件构建RDS关系型数据库服务的实践经验,会后,InfoQ专门采访了褚霸,与他共同探讨了阿里云RDS背后的技术挑战并听他讲述了他与开源的故事。

\u0026#xD;\u0026#xD;

InfoQ:在分布式系统中,如何保证数据的一致性是很多公司面临的挑战。阿里云RDS作为云数据库解决方案,是如何保证数据的一致性的?

\u0026#xD;\u0026#xD;

\u0026#xD;

褚霸:我们也是使用的MySQL的开源版本,所以在数据性一致性方面和其它公司遇到的问题实际上是一样的。我们遇到的问题,别人也会遇到。遇到问题不可怕,可怕的是没有那颗解决问题的心和解决问题的能力。首先,我们有非常强大的开源团队,他们对MySQL非常熟悉,有能力根据需要定制符合我们需求的数据库,这可能是最重要的,阿里巴巴在开源和基础设施方面投入大量的人力和财力,我认为这样的投入效果还是非常明显的。

\u0026#xD;\u0026#xD;

其次,当我们的可用性和数据安全性有冲突的时候,我们一定会牺牲可用性去保证数据安全,这是我们的理念。我们必须有这个理念,去保障数据的安全。在这个理念基础上,我们会去做各种优化。从最基础的开始,我们需要能够检测出主备不一致,所以我们做了一整套的检测机制,比如通过主备打快照的方式保证不影响用户正常使用。该机制来保证能够及时发现数据的不一致。接下来就需要解决不一致的问题,目前业界的解决方案也有很多,比如用主库覆盖掉备库,或者自动重搭备库一遍。这些方案虽然都能解决问题,我们也有用过,但是都特别慢,我们需要在一致性和性能间做一个平衡。现在我们会单独把不一致性的数据挑出来,专门通过增量的方式去解决不一致的这些数据。

\u0026#xD;

\u0026#xD;\u0026#xD;

InfoQ:阿里在开源技术的研究和贡献是非常大的,能否分享一下阿里在数据库这一块,使用和参与到开源社区的情况?

\u0026#xD;\u0026#xD;

\u0026#xD;

褚霸:我们的产品中大量使用到了开源软件,比如我们的数据通道就是用Erlang系统做的,在Erlang使用过程中我们踩过很多坑,当然也都把解决方案回馈给了社区。我们用Erlang做过很多的的模块,这些模块都和底层业务监控有关,和业务无关,属于基础设施,今天我们把这些代码开源,那社区就可以在我们的基础上使用,我们踩过的坑,不要让其它人再踩了,未来我们也将会开源更多的基础模块来回馈社区。

\u0026#xD;\u0026#xD;

除了代码之外,我们更多的会向社区分享我们的开源软件使用经验,因为在现在的开源世界里,大部分的代码贡献者都是草根,他们的代码质量不一定符合工业标准。有些代码在普通环境跑跑没有问题,但是在商业环境或者有严格性能要求的场景下,它不一定能用。所以我经常和团队的同学们讲,在使用开源软件前,一定要把它研究明白,把它当成一个白盒子使用。如果是黑盒子我们绝对不会用,一定要把软件研究明白,就像这个软件的代码是你写的,想改哪里就该改哪里,只有做到这一点,才能在产品中使用。因为一旦用到产品里面,实际上是没有回头路的,你必须往前走,你不能回撤。所以,我们的同学都锻炼出来了。我们有经验后,肯定需要把相关的经验、踩过的坑分享给同行者,分享给社区。比如我们每个月都会发布MySQL内核月报,报告最新的数据库趋势和我们线上的BUG如何被发现和修正的。

\u0026#xD;

\u0026#xD;\u0026#xD;

InfoQ:您刚才也提到了Erlang,阿里云在这门语言的使用上应该有丰富的经验,您能解释下为什么阿里云会选择这门语言吗?

\u0026#xD;\u0026#xD;

\u0026#xD;

褚霸: Erlang是爱立信开源的一门语言动态类型编程语言,最早是设计用来做交换机的。交换机有几个特点,第一个是软实时系统,打电话肯定不能有延迟。第二个是兼容性。在做交换机的时候并不知道要接哪个设备,更不知道设备对应的操作系统,所以在设计之初它就有一个好的兼容特性。第三个是稳定,从一开始Erlang就使用完全不同于其它语言的设计理念,在语言中又集成了一个完整的操作系统,它有自己的进程,所有的进程和我们现在讲的操作系统的进程一模一样,只不过Erlang的粒度更小。

\u0026#xD;\u0026#xD;

Erlang的操作系统内部有自己的调度系统,它的调度系统比操作系统的还复杂。比如说有大量的内存管理,并且都非常精细。Erlang非常重要的一个特性就是可以做到调度公平、资源隔离,这个非常符合云计算的特点。因为云计算就是这样的,大家的资源一起分,这个理念和Erlang是一致的,所以用Erlang去做这件事就会非常的自然。还有就是Erlang支持热升级,它可以做到在线热升级。发现问题的时候,通过一个热升级包,就可以把最新的代码部署上去,整个进程不需要停止,用户不受影响,我们非常看中的Erlang的这个能力。

\u0026#xD;

\u0026#xD;\u0026#xD;

InfoQ:最近亚马逊推出了全新的数据库引擎Aurora,号称比MySQL快5倍,您怎么看这件事?

\u0026#xD;\u0026#xD;

\u0026#xD;

褚霸:软件是绕不开硬件的,MySQL出现的那个年代硬件条件比较差,当时服务器的内存和硬盘容量都比较小,而现在我们线上的服务器内存都比那个时候的硬盘容量还大好多倍,Aurora就是在这样的背景下推出的。

\u0026#xD;\u0026#xD;

现在SSD很廉价,整个圈子对数据的安全性以及数据库的性能要求也更高了,Aurora的设计理念其实和MySQL的设计理念是不一样的,它是基于现有的技术而设计的,时代在变,未来肯定也是这样的一个趋势(实际上刚刚发布不久的MySQL 5.7.5相比于5.6也有了大幅提升),所以我觉得这并不惊讶,阿里云也在向这方面努力,我们也在往前走,但是最重要的还是踏踏实实静下心来做。

\u0026#xD;

\u0026#xD;\u0026#xD;

InfoQ:您怎么看国内的开源趋势?您对开源社区有什么样的建议?

\u0026#xD;\u0026#xD;

\u0026#xD;

褚霸:我很早就开始玩开源,也是看到最近几年开源在国内的飞速发展。1999年的时候,在整个社区中,只有你会写一个TCP服务器,再开源出来,那就很牛了。如何再能做下优化,能够处理超过1024个连接,那就更牛了,这是那时候的水平,那个年代学的基本都是国外的科研技术。而今天,我们能够处理的连接数可能已经翻了100倍。我是在中国社区长大的,一路走来也看到国内社区也在茁壮成长,特别是最近几年,中国人贡献的项目越来越多,国产开源项目也越来越多,这个从开源中国发布的数据可以看到。

\u0026#xD;\u0026#xD;

开源是大的趋势,在某些方面开源软件已经主导创新,开源无处不在。我相信这个观念深入人心,趋势一定是不可逆的。我相信,开源会走得越来越快,而且今天任何一家公司,你不可能绕过开源技术而闭门造车。

\u0026#xD;\u0026#xD;

国内有很多开源项目,但是项目的质量并不高。我们去招聘的时候,很多人会把自己GitHub地址帖上去。我们上去一看,这个项目是两三年前做的,已经不再维护,并且还只是个简单的练习项目。所以说,做开源的初衷很重要,你是为了什么去做这个项目?为了面试?为了吹牛?个人认为开源最大的一个驱动力是解决真实的问题,而不是为了开源而开源。开源项目需要沉淀,需要静下心来持续跟进,把项目做深、做精。

\u0026#xD;

\u0026#xD;\u0026#xD;

采访嘉宾

\u0026#xD;\u0026#xD;

余锋(花名褚霸)是阿里巴巴核心系统技术专家,有超过15年的网络和底层系统开发经验,专注于高性能分布式服务器的研究和实现, 擅长构建大规模集群存储服务器。2012年7月23日,阿里巴巴宣布推淘宝等七大事业群,被马云称作“七剑”,组成集团CBBS大市场,余锋是在其中负责RDS数据库的资深专家。

褚霸:不要为了开源而开源相关推荐

  1. linux的fq软件github,曾经霸榜 GitHub:漂亮开源的 Linux 资源监视工具

    原标题:曾经霸榜 GitHub:漂亮开源的 Linux 资源监视工具 来自:Linux迷 https://www.linuxmi.com/bashtop-linux.html Bashtop是Linu ...

  2. 开源 非开源_开源为善

    开源 非开源 by Michael D. Johnson 迈克尔·约翰逊(Michael D.Johnson) 开源为善 (Open Source for Good) We've spent two ...

  3. 开源中国 开源世界2018_2018年最受欢迎的报道:法律问题和开源社区

    开源中国 开源世界2018 2018年,Opensource.com再次解决了开放源代码和法律的难题,其中阅读量最大的文章涉及从隐私到专利的主题. 2018年最具影响力的法律变化之一是<通用数据 ...

  4. 开源中国 开源世界2018_2018年教室中的开源激增

    开源中国 开源世界2018 确保学生成功的最佳方法是给予他们代理和访问可用的最佳工具的权限. 我们今年在Opensource.com上重点介绍了这些工具和实践,结果令人惊讶. 像往常一样,开源继续激发 ...

  5. 开源 非开源_在开源中吃我们自己的狗粮

    开源 非开源 上个月,在使用了免费开放源代码软件近二十年之后,我参加了我的第一次会议: SELF . 我什至在这里做了一个简短的演讲,对我们进行创造性工作的人们可用的开放源代码工具进行了高级概述( 如 ...

  6. vue新手开源_开源新手宣布:征集作家

    vue新手开源 宣布下一个每月主题: 开源新手 开源项目花样繁多. 作家,程序员,营销人员,开发人员,项目经理,社区经理...清单还在继续. 有许多才干和个性类型有助于建立开源项目和社区的协作过程. ...

  7. 开源 非开源_开源突破“舒适区”

    开源 非开源 开源的 招贤纳士 有关开源工作和职业的文章的集合 . 我将以开发人员的身份加入DigitalOcean ,在此我将与PHP社区紧密合作,以帮助创造令人惊奇的事物! 我对此感到非常兴奋,尤 ...

  8. 互联网 性能 开源_开源的互联网25年及未来

    互联网 性能 开源 始于1969年的ARPANET如今已成为今天我们所知的Internet. 今年3月12日标志着万维网的25年. 当...开始时 1989年3月,欧洲核子研究组织(CERN)的科学家 ...

  9. 开源 非开源_开源周中的女性

    开源 非开源 欢迎来到Opensource.com的"开源女性周" Opensource.com将从1月27日至2月7日重点介绍女性在开源方面的努力.我们将把我们的某些内容专门针对 ...

  10. 开源 非开源_打破开源中的怪胎刻板印象

    开源 非开源 我是科技行业的新手. 我没有计算机科学或工程学位. 我是从事贸易和培训的作家,因此在多年的自由职业和糟糕的办公室工作之后为Red Hat工作,确实是一个震惊. 也就是说,令人震惊. 纹身 ...

最新文章

  1. 字符串匹配算法 -- BM(Boyer-Moore) 和 KMP(Knuth-Morris-Pratt)详细设计及实现
  2. Zend Guard6.0使用教程——PHP代码加密
  3. QT各种版本第三方下载地址
  4. 记录一次StackOverflowError问题
  5. php 打印多维数组中的值,从多维数组php中提取值
  6. 调用GPU进行神经网络的训练 GPU环境的搭建
  7. dedesmc 手机端生成静态页
  8. 又见黑科技!量子薄膜传感器或推动VR设备变革
  9. yum install报错:Another app is currently holding the yum lock
  10. 三极管设计,理解饱和,线性区域和截止区
  11. Python获取最新省市区列表并绘制中国地图(含港澳台)
  12. WEB2.0是什么东东?[转]
  13. java验证用户名和密码_Java验证用户名和密码
  14. 5G无线关键技术 — 新型传输波形技术和先进编码与调制技术
  15. 关于Java方法的学习
  16. biu爱心html,biu爱心给你表情包 - biu爱心给你微信表情包 - biu爱心给你QQ表情包 - 发表情 fabiaoqing.com...
  17. QGIS基础:创建矢量数据(栅格矢量化)
  18. 浅析TVS管的分类及选型的注意事项
  19. cocos2dx渲染机制
  20. Volley简介(一)

热门文章

  1. MongoDB下载速度慢的解决办法
  2. CGAL几何库配置教程
  3. 电气simulink常用模块_自动化设备电气图纸常用元件符号
  4. Matlab深度学习——Matconvnet配置
  5. matlab学生信息按成绩排列,基于Matlab的学生成绩综合分析
  6. 【Java8】Function 讲解
  7. VMware安装Ubuntu教程
  8. 主流编解码器(H.264 AVC, H.265 HEVC, VP8, VP9)比较
  9. 高通手机 进入 高通9008模式
  10. .NET框架设计(1)