CSDN首页>

【OSTC2015 现场】王涛:NoSQL数据库在中国的开源分析与实践

发表于2015-04-02 10:26| 次阅读| 来源CSDN| 0 条评论| 作者CSDN CODE

摘要:2015年3月28日,由全球最大的中文IT社区 CSDN 主办的“开源技术大会·2015”在北京丽亭华苑酒店召开。SequoiaDB巨杉数据库联合创始人兼CTO为我们讲解了NoSQL数据库在中国的开源分析与实践。

2015年3月28日,由全球最大的中文IT社区 CSDN 主办的“开源技术大会·2015” (Open Source Technology Conference 2015,简称OSTC 2015)在北京丽亭华苑酒店召开。本次大会以“社区胜于代码”(Community Over Code)为主题,邀请到了来自全国各地30多位开源业界资深人士发表主题演讲,数十个开源社区现场互动,到场的开源软件开发者、贡献者和开源爱好者总计近1000人。


王涛:谢谢大家,今天我实际上并不是说跟大家要来分享一个特别的技术,比如说我们这个产品具体是什么东西,而是说今天我想跟大家讲一下我们作为一个开源的数据库、开源的产品,我们在做开源的过程当中都做了些什么东西,有些什么样的想法跟经验。

先自我介绍一下,我叫王涛,之前我是在IBM的DB2的实验室,后来从2012年开始我们做NoSQL数据库,在大概去年12月的时候我们正式宣布了开源,所以到现在也大概差不多四五个月了,据我们所知在国内之前确实真正运营做一个开源的产品的并不是特别多,所以今天我在这儿也希望把我这方面的经验跟大家分享一下。

今天我想从三个方面来跟大家谈一谈,第一是开源的大数据,因为我们做的东西毕竟也是NoSQL数据库大数据相关,也说一下在大数据这一块开源是个什么样子。第二,我会说一下我们SequoiaDB做开源的分享,最后我会说一下怎么样用云服务推动开源的社区,因为云是比较新型的东西,传统做开源没有什么云的东西,现在我们有这种手段,怎么用这种手段来推进我们做开源的事情。

首先,介绍一下在开源的大数据产品,这一块之前我们在春节的时候,今年春节我们去硅谷的Hadoop大会做了一个参展,我们作为唯一的一个中国厂商在那边摆了一个展台,听了一下在国际上大家对大数据(的发展见解),回顾一下2014年做的一些东西,展望一线2015年对大数据怎么发展。首先参会的很多企业都是来自互联网企业,还有很多开源的项目,和我们传统的大会有区别,一般的IT大会都是像IBM、微软为主,这次我们大会上看到了很多都是以开源的产品厂商为主,这些厂商在唱主角。

其中Hadoop在座的诸位都知道了,Cloudera CTO演讲时提到,Hadoop今后会越来越灵活,跟更多的产品对接,而不是一个信息孤岛,自己跟自己玩,也是能跟更多的产品灵活地结合到一起。

特邀嘉宾:我现在接着讲一下,我们在春节期间在硅谷参加了大数据行业大会,在大会上我们也做了其中的一个代表,感受了很多的一些见闻,下面我代替涛哥讲一下,其中Spark是2013年3月份得到了广泛的支持。

王涛:刚才讲到Spark,Spark这位帅哥叫做马佩大师,他是2013年去读博士,不知道在座的各位是不是有比他更年轻一点的,他是Spark的创始人,他认为Spark在今后会增加很多的功能,包括它的流水线,像包括它的的SparkSQL的特性,所以他认为在大数据这一块从Spark看起来主要是以增强功能为主。

而接下来是在这个大会上另外一堆唱主角的厂商,是以开源的心情分布式数据库为主,这个数据库分为两大类,第一个是NoSQL数据库,另外一类是SQLDB,因为大数据不是一个传统的东西。大家想一想在过去几十年前还没有数据库的时候,大家要存一些数据,是存到文件系统里面做一些你要增加数据、减数据,在系统文件里,后来大家这么来做性能、功能上都有一些问题,所以才有数据库。因此现在的大数据Hadoop现在主要是依赖这个,这个是大数据的早期阶段。在经过它继续发展的时候,必然会经理到大家要把这个数据有结构地存储起来,也就是说它后台可能会有越来越多的新型的数据库,接下来会把新一代的数据库越来越多地推介到大数据的家族里面,这个也是Cloudera在这次大上注重强调的一点,这是一个发展的方向。

接下来还有一些厂商发表了一些看法,包括VISA等等这些厂商都发表了自己大数据这一块做的展望,其中有几点。第一点灵活性非常重要,对于这种用户来说,大数据怎么能够跟已有系统越来越灵活地对接,这是第一个最重要的。第二个,就是它的安全性,因为现在大数据的系统已经越来越成为企业的相对比较核心的系统,可能很多领导每天都在看报表,可能有些运维营销的团队,经常需要把这些分析的数据拿过来做营销的处理,当这种系统出现故障以后,就不会像几年前一样只能用大数据,这是一个玩炮的性质,如果出了问题,可能会成为一个让他们业务受到影响的一个问题了,所以大家对数据的安全性也是一个非常重要的考虑。

大数据技术在之前可能很多人都对开源还抱着一个怀疑的态度,至少我们看到在三五年前一说开源,大家说这个东西到底行不行,但是经过大数据的这一波,它已经成为一个主流,并且主要玩家都是开源的玩家,这一波已经能够成为一个主流的趋势。

接下来我再大概分享一下我们开源的经验,首先是互联网拥抱开源,这个开源的东西刚才也说了,在几年前并不是所有人都特别接受它,但是开源首先是从互联网开始被非常广泛地应用了。我们看一下在国内有哪几家企业在做,首先阿里巴巴,阿里巴巴我对它印象最深的是它在MySQL方面的贡献,它做了很多代码成功反馈到社区,这块阿里巴巴对MySQL的改造和大规模部署上做出了很多贡献。第二腾讯,腾讯在斯巴达Hadoop大会上是一个挺放光彩的企业,因为它在Hadoop上部署了全球最大的紧群,是八千点节点,这件事让很多老外或者他们自己都非常地惊讶,这种开源的东西已经在阿里,或者腾讯里面经过非常大规模的应用。第三个华为,华为它也是一个非常注重使用开源技术的一个厂商,比如说我们知道它的PostgrSQL,它把一些东西回馈给社区,它也在Hadoop、Spark上做了很多的开发工作。据我所知,华为应该是全球第四或者第五大Hadoop的贡献者,我不知道这个数字准不准确,这是我听说的。

除了几大厂商,我们也看到在互联网界已经有越来越多的独立的贡献者成为开源系统里面一个主流,比如说像Spark,我们看到可能一小半的开发者至少是中国人在优先列表里面我们经常能漫谈中国的名字出现,怎么样修正、怎么样提交,现在国内不少中国人在开源的事情上已经走得越来越远了。

我们来看一下传统企业对待开源是什么态度,在过去传统企业对待开源还是打一个问号的,三年前并不能够真正地接受开源,为什么呢?几个原因。第一,以前的开源的产品,功能上确实还不够完善,很多东西如果你说我要用这个开源产品的话,不管在安装上、运维上、使用上可能都会有各种各样的问题。第二,很多企业很多企业有自己固定的采购流程,只有当企业首先使用到了开源的东西,觉得这个功能好才会反过来促进这个流程,但当时确实很多流程制约着开源的东西。第三,这也是非常核心的一块,就是使用开源技术必须要有一个非常强力的团队来支撑它,仅仅把软件装上去用是远远不够的,像现在的Hadoop刚才为什么说Cloudera它认为Hadoop非常灵活呢,很多厂商觉得Hadoop是一个好东西,用起来就会有问题,真正把这个产品投入到生产,除了能用以外还面临着其他的问题,包括运维,如果出了问题我怎么去维护,像Cloudera动辄就七八个,甚至十几个各种模块,原来的运维团队可能有20个人能维护不同的产品,现在这20个人,你要让他把另外20个产品都看下来就有点强人所难了。如果让开源技术能够真正进入传统企业市场,技术支持也是必不可少的一关。

现在我们看到最近这几年,传统行业正在逐渐地被很多互联网影响,甚至包括传统的金融行业,比如说互联网金融、电子化这些都在做这些东西。那么现在你看开源正逐渐地被传统的企业所接受,主要也是有几个原因。第一,企业的业务已经真的开始越来越复杂了,传统的软件融合起来非常困难,虽然现在一些厂商说你就买我的吧,买了以后什么都给你搞定了,企业也会有一个疑问,我在这个上面绑死了,有些东西我想灵活一些,我想跟其他东西对接就会有一些问题。开源的好处就是能够让你做更灵活的控制化。第二,从成本来看大家都理解,不用说了,肯定开源的便宜。第三,开源社区的建立,怎么样进行一个技术支持的问题,因为现在越来越多的开源社区,像CSDN是一个平台,做更多的事情能够帮助企业更简化地来使用我们的开源的东西。

我们SequoiaDB作为一个数据库为什么要做开源?我们是国内第一款开源的NoSQL的数据库,我们希望能成为开源的领先者,让更多的人来了解、理解开源,开源是一种未来软件的趋势,我们希望这种趋势能够尽快越来越多地蔓延到各种企业里面。

开源对于SequoiaDB的帮助,首先开源了以后,能够让这个产品带来更多的关注度和影响度,能够让它提升。开源是新兴软件的一种国际标准的商业化模式,开源是一种对于市场化非常有效的促进手段,能够让更多的人了解你的软件。另外,开源能够更重要的是推动软件的进步,能够促使更多的人一起来使用、来提高这个软件,所以我们对待开源来讲,我们一个态度是因为开源能够带给一个产品正面的作用。

在开源前,比如说如果要是在座的各位想要经营一个开源的项目都需要做些什么?尤其是开源前的准备非常重要,在我们看起来有两个事情是最需要考虑的。第一是要建立这个开源社区,要规划开源社区,如果你要是比如说大家做一个开源产品,如果仅仅是把这个代码放到GitHub上面谁也不知道今后会发生什么,在这个之前一定需要有一个方法能够把用户给凝聚起来,能够有一套整体的机制互相促进,能够清楚我们的产品能够带给开源的用户些什么?并且我们能够怎么样从开源的社区里面得到什么回报,一个双赢。第二是开源之后对于产品的保护,如果仅仅是把一个软件放到一个网上去,让别人随便来用,这是一个不负责的行为,让所有的人可以下载来用,别人把你的软件盗取了怎么办?你这个东西有可能会有所有的人怎么能够证明这个软件是你的?你怎么今后来维护它?我们跟很多其他的开源数据库一样,我们选择了一个协议,这个协议相对来讲保护得会比较严格一点。

之后开源取得的成果,我们从2014年12月开源到现在已经四五个月了,在这几月,我们在SequoiaDB的数量也达到了将近两百,对比其他的开源的产品,他们的数量在同样的时间内还是不如我们的。社区跟开源相辅相成,这块讲到了社区怎么样和开源能够互相促进,首先开源能够推动更多的人来了解你的产品,这个了解产品相当于增加了社区的活跃度,而社区反过来能够推动人来参与这个项目,而这个参与也是分成几个方面,不是说我只写了代码可以参与,包括代码的贡献者、稳当的贡献者和在座的各位使用者,大家如果要是希望能够帮助某一个开源的产品的话,除了比如说大家提交代码可以写文档以外,大家使用这个产品也是很好的方法方式。

第三就是云服务怎么样降低大家的进入门槛,现在的云服务我可以在网上直接通过点击鼠标直接拿到这个服务了,通过这个服务可以进行一个简单的应用,可以简单地来体验这个产品,所以我们认为云服务应该是一个开源软件未来的一个非常有效的手段,能够让更多的人来自由地体验它。

我们来看一下如何能够搭建一个有活力的社区,大家在想社区的时候可能第一个反应都是说我要搭一个论坛,或者说我要搭一个BBS,光有一个论坛是不够的,社区是一个能够把人聚拢起来的广义的机制,能够黏住用户。我们就要说在建立社区的时候一定要想办法给社区带来双赢,一方面社区运营者对用户带来价值,另一方面用户能够对这个社区的运营者带来价值,只有产生双赢的循环,这个社区才是稳定的。我们首先能够给用户带来什么价值?从我们自己来讲,我们提供一个产品,我们能够第一帮助用户使用好这个产品。第二我们能够帮用户做一些规划,或者做一些顾问形式的东西,在论坛里面,或者BBS里面,如果大家有什么问题我们可以参与讨论,建立这么一个新的系统有什么建议,我们可以提供建议。而用户带给我们的价值也同样是让我们的产品更加完善,所以这本身就是一种双赢。第三就是维护社区的方法,大家要搭建一个社区有什么手段?肯定包括论坛、QQ群、 邮件列表,建立一个让大家能够互相讨论的地方,创建一个让大家能够互相分享经验的地方,包括论坛、博客之类的,并且能够跟社区的用户进行互动,不能说大家只来分享我在旁边看着,坐山观虎斗肯定不行,一定要有方法能够跟大家进行互动,通过微信群、QQ群、论坛,甚至一些线下活动都可以。最后我们要提供一种很便捷的方式来使用我们的产品,比如说应出一些教程,写一些文档,写一些博客。

这是我对刚才的演讲一个总结了,希望能够通过我们这类基础软件开源,以实际的行动支持中国开源的事业,让更多的人来了解这个开源。

接下来我最后一个部分就是想要说一下云服务,怎么样通过云服务,对我们来讲一个SequoiaDB数据库的云服务怎么样促进我们的社区,云服务的优势是什么?为什么要使用云服务?它的比较明显的优势是敏捷、易用,大家可以通过这个云服务快速地部署体验一个环境,而不是说我要先花一个小时的时间,或者几分钟的时间去下载这个产品做编译,采集器材做部署,而是点一点鼠标直接就部署好了。第二就是要应用,不需要让用户自己来维护,并且可以做到一个弹性的扩张,如果这个系统出现容量不够、或者运算资源不够,能够自动地运算。

怎么样构建我的云服务平台?假如说我们要搭建一个简单的移动应用的话,在传统的方式都需要考虑些什么?首先是不是要考虑怎么样建数据中心?用什么语言?对接、开放,用传统的方式搭建一个应用是非常复杂的,这是一个比较经典的构建方式。我在前面需要构建一个应用的界面,中间要搭建一个界面,这边想办法用一个数据库,最后还要去找一个运营的地方,我们自己搭一个机房也好,还是搁到阿里云或者亚马逊上,云肯定是跑不了的。而作为一个云的服务,我们前端可以搭建一个页面,后面直接使用一个云的服务,可以很轻松地搭建出这么一套环境来,这一块实际上大家应该也不陌生,对于不同的运营的方式,一个对比,包括一个传统的运营,硬件、软件、DBA,然后由一个DBA团队去管理这个软件,再到应用的设计,如果是托管,你把数据库搁到了IDC里面,不用去管硬件了,但是你的软件、运维、应用开发都需要去管,如果使用一些云服务的东西,你就可以仅仅关注于你最上层的应用。对于大家各种使用者来说都会提供一个方便,这一块就是一个我们的云服务的一个注册的流程了,比较简单地过了一下,首先在一个网页里面要看到这样一个界面,然后在里面做一个注册,就能创建这么一个界面,这边有一个共享的数据库和个人的数据库,在个人数据库里面可以创建实例,创建完了之后有一个管理经验。

有兴趣的朋友可以来使用一下我们的云服务的产品,大概我今天就到这里,谢谢。 

提问环节

提问1:我想问一下你们对英文社区、全球社区是一个什么样的把关?还有一个问题,你们现在是提供一个云的数据库服务,大数据本身也有一个服务,你们怎么去应对全球化?

王涛:首先开源是一个全球的事情,我们为什么比如这次去参加北美的展会,我们希望能够把自己向全球做一个展示,这个并不是说我们开源是在国内去做,所以现在我们不管是社区还是我们的网站都有两个版本,有中文版和英文版,包括文档也都是两份,在现在这个阶段我们总体的目标还是国内大部分用户,在国际上会提供一些支持的服务,但是并不会在我们市场这一块有一个助推。

另外一个问题,现在可能阿里云、腾讯云都有很多数据库的用户,我们这边是一个首创,比如说像阿里云RDS服务是关心数据库,我们这边的一个云服务首先是基于文档类的微型数据库,它所使用的是和KV的还是有些区别的,我们现在也在跟阿里云、腾讯云有一些合作,这一块我们在不久的将来希望能够把它推进到某一个程度,让我们成为这些云服务厂商提供服务的一部分。

提问2:目前你们市场有成功的案例吗?包括你们的系统数据,测试的结果。

王涛:这块也是两个问题,第一块是我们的用户,首先我们公司是在2012年成立的,到现在三年,这部分肯定是有一些用户了。我们在开源之前主要针对的是传统行业的用户,包括银行、电信的运营商,比如说像工行、银联都是我们的用户,现在我们开源之后也有了不少的互联网的用户在使用我们的产品,这些用户从下载量来看,我们的下载量已经破万了,对于从开始到现在已经有超过万人的用户来下载我们的产品。 

第二个问题是性能这一块,这块首先从数据量来看,我们其中一个典型的部署再一个移动的场景里,每个小时的数据增量是300GB,总共加起来是近TB的一个量级,我们去年有一家德国的公司专门做测评的,帮我们和MongoDB和PostgreSQL做了一个对比,网上有一个链接,是链到一个大学的网站上。

提问3:我想开源会非常地艰难,如果你的开源软件是中文的,国内有人说是国产的?是好的吗?所以有很多软件开源以后假装成全英文的,这样就是出口转内销了,我不知道你们有没有面对过这样的状况?或者说有没有遇到过这样的疑问,你们是中国的?你们是国内的,那能好吗?遇到过这个问题没?

王涛:这个问题很有意思,这块真是一个阶段吧,刚开始时候确实跟您说的一样,我们做了一个东西,人家说哥几个行不行啊?这个东西最刚开始的时候我们面临的质疑声音挺多的,后来貌似这帮小子做了几年了还活着,貌似有戏,可以试试,我们至少最近没再听说过这种问题了,有可能这就是一个进步。

(以上为现场速记文稿,错误疏漏再所难免,欢迎批评指正)更多精彩内容,请查看大会直播专题: http://special.csdncms.csdn.net/OSTC2015/

0
0