MongoDB高级方案架构师:共同的理念促成与慕课网的合作
MongoDB是目前IT行业最流行的数据库之一,百度、腾讯、360、京东等大型互联网公司已经将MongoDB投入实际的生产环境。慕课网作为国内最 大的IT技能学习平台,凭借强大的行业优势,与MongoDB建立起独家内容合作,为MongoDB学习者奉上实用、干货、权威的技术大餐。近日,MongoDB高级方案架构师Matias Cascallares、TJ Tang接受了慕课网独家访谈,从MongoDB在中国的发展现状、缘何受到各大企业的青睐以及MongoDB新版本的发布,让你更全面、更深入的了解它!
访谈嘉宾:
Matias CascallaresMongoDB高级方案架构师
TJ TangMongoDB高级方案架构师
(左一:慕课网CEO陈志锋;左二:MongoDB高级方案架构师TJ Tang;左三:MongoDB高级方案架构师Matias Cascallares)
以下为访谈实录:
MongoDB在中国
慕课网:首先请二位谈谈MongoDB在中国的发展现状。
TJ Tang:MongoDB从2014年年初正式进入中国市场。在此之前是社区的一些自发的使用,即使这样,MongoDB目前在中国仍然是最流行的数据库之一。2014年官方的技术力量和业务代表开始进入中国市场,做了一些推广工作。
在社区的发展工作方面,目前全国各地建立了很多社区,比如北京、上海、深圳、重庆等城市。不久前就在北京做了一次官方活动,每年都会举行一次。
从用户的使用角度来讲,很多企业都在使用MongoDB,比如百度、360、京东、腾讯这些大型互联网企业;另外快的打车的关键业务也采用了MongoDB作为它的存储方案;在游戏上的使用就更多了。
从发展程度上看,MongoDB是目前最流行的NoSQL数据库。
为什么大企业都在用MongoDB
慕课网:您刚刚提到很多大企业都在使用MongoDB,那么为什么这些企业会选择MongoDB?它对企业和工程师有哪些好处?
Matias Cascallares:首先,MongoDB是一个非常灵活的数据库。像mysql,sqlserver,oracle这些传统数据库,它们的模式非常 固定,在开发之前设计好模式,一旦设计好模式以后修改很麻烦,这对敏捷式开发不是很方便。 而MongoDB的模式非常灵活,它不要求你建模式,你的程序怎么样写都可以,所以它的灵活性是程序员很喜欢的。
第二点就是MongoDB的文档模型。以前是关系模型,它跟文档模型最大的不同就是,关系模型要把所有东西分开到各个地方去放;而文档模型是把相关的东西放到一块,这样的话使用起来非常方便。
而且最重要的一点是,程序员是面向对象的思维方式,MongoDB是类似对象的结构,它是从对象到对象之间,没有思维转换,而不同于从对象到关系型转换,需要换一种思维去思考,比较复杂一点,这就是另外一点为什么程序员喜欢用MongoDB。
第三点就是,MongoDB用起来比较容易,接口非常方便,不像其他传统数据库要学习专门的SQL语言,MongoDB兼顾编程的接口。
最后,MongoDB与传统数据库的区别非常大的一点就是它的水平扩展性非常好。现在是大数据时代,大数据要求的性能非常高,因为它要求管理的数据量非 常大。Mysql或其他的关系型数据库一般是单机式的,也就是在一台机器上可以做的很好,但是一旦涉及到分布式内容,基本上没有很好的方案,而 MongoDB是一种分布式的数据库,它在设计的时候是分布在不同的机器上,同时并发进行,这样的话处理这个时代的大数据比较流行。
慕课网:MongoDB有哪些应用领域?
Matias Cascallares:从MongoDB的功能性、扩展性、高可用性上来讲,如果你需要这样的需求的话,MongoDB会非常适合,MongoDB分布 式数据可以做的很好。MongoDB地理空间能做的很好,目前移动应用非常流行,比如快的打车,他们就是以MongoDB作为核心技术,来找到附近几公里 内的出租车司机,还有其他一些手机应用,它会跟踪你的位置,需要知道你的位置,都可以用到MongoDB。
TJ Tang:我补充一下。从应用场景的角度来说的话,MongoDB还可以做分析型数据库,特别是需要把各种各样的数据源放到一起对已有数据做二次开发的时 候,因为MongoDB的文档模型非常灵活,可以利用其支持异构数据的特性让你从各个数据源集中到一个库里,然后在已有数据上提取更多的价值,这是它非常 擅长的地方。
另外一个像物联网,也是比较常用,物联网应用的特征就是并发率比较高,而MongoDB通过水平扩展的集群可以实现几万到几十万OPS每秒的写入性能。
还有在内容管理方面,举个例子,MongoDB的文档模型可以存储各类数据,多媒体、有接口、无接口,他可以存各种结构的接口数据,所以对各种各样的内容、产品,比如新闻、视频、音频等,都非常方便。
产品目录也是非常好的使用场景。比如京东就是用MongoDB,MongoDB文档模型非常灵活,它支持不同结构的数据,我们知道不同的产品它的属性有 很大的不同,在传统型数据库建模比较麻烦,像MongoDB的话,它可以把不一样结构的数据放到同一个集合,同一个表里面,由于它的这个特性,所以对电商 的支持也非常好。
MongoDB在完善
慕课网:MongoDB对技术语言的支持上目前存在哪些问题?
TJ Tang:目前正在解决的就是性能问题,我们需要更高的性能,在涉及到锁上面,大家对MongoDB有一些建议:我们之前的锁的颗粒比较粗放,是库级 的锁,这个问题在15年1月出来的新版本中,也就是2.8版本会降到非常细颗粒的文档级锁,改善这个问题。这样的话,对很多场景性能会有进一步的提升。很 多企业也都非常期待,这是关于锁的问题。
其他方面,比如高可用性,也是分布式有一些功能上的要求,需要更快速、更有效。比如复制集,现 在当一台机器出现故障的时候,另外一台机器起来的时候需要花几秒钟,几秒钟虽然很短暂,但是对某些严格的场景,还是太长了,这种切换过程当中还可能会出现 由于回滚而导致数据缺失的问题(缺失的数据会保存在文件内以供手动恢复),这种情况也会进一步改善。
慕课网:MongoDB未来会有哪些进一步的改善?
Matias Cascallares:接下来我们会针对几个问题。第一个是会增加更多的存储引擎,在2.8版本把存储引擎做成API的方式。之前只有一个存储引擎,存 储引擎是数据库下面底层的一个部分,跟文件系统打交道,如果把那个部分抽象出来以后,加入更能多存储方式,对不同的应用场景采用不同的存储引擎。
另外,对于大型的MongoDB集群。我们说MongoDB部署的话,很多时候不是一台、两台机器,往往都是上百台,稍微大点的都是几百台级别,我们希 望有工具更加有效的来管理集群,因为自己写脚本可能比较麻烦低效并容易出错,需要有工具非常界面化或者自动化的去管理,现在已经在做,接下来会是我们的侧 重点。
我们希望在一些其他的数据库功能上有所改善,比如我们在做高性能水平扩展的时候,我们牺牲了一些常用的数据库功能,比如事务,这 也是很多人要问的:我们很喜欢MongoDB,但是MongoDB不支持事务。针对这个问题,我们 把MongoDB做成跟传统数据库从功能上时完全平级的数据库。
慕课网:对于工程师来说,通过什么样的方式来学习MongoDB并且更好的应用到工作当中?
TJ Tang:MongoDB大部分的资料是英文,我们有一个中文社区,这个中文社区有几大模块,一个是博客;另外一个很关键的是我们在翻译中文的文档,已经 进行了一半。目前网上有很多资料,很多是过时的,针对的是MongoDB老的版本,会得到错误的信息,建议大家尽量看最新的文档;另外一点就是,中文社区 的用户组,MongoDB中文组在北京、上海……全国各地都有,大家可以去社区关注,之后跟社区的朋友在一起做线下活动,有什么问题可以互相学习。
另外可能很多人不知道,MongoDB提供的课程都是完全免费的,但是需要翻墙去看。目前我们在跟慕课网合作,考虑把内容放到中国来,让大家不用翻墙就可以访问得到。这其实是非常宝贵的资源,非常系统的从初级到中级再到高级,都有很好的课程。
最后就是,MongoDB有一个certification,就是官方认证,一年定期有几次,通过学习在线课程,考核后得到certification,这样有利于学习者得到非常好的学习过程。
MongoDB与慕课网合作
慕课网:为什么选择与慕课网合作?能否谈谈合作的初衷吗?
TJ Tang:慕课网在IT垂直教育方面做的非常不错,注册会员非常多,App下载已经有500万。另外一点,我们看到慕课网都是基于为用户服务的精神,没有收费课程,这一点跟我们MongoDB作为一个开源的社区理念是非常接近的,我们希望跟这样的平台加强合作。
慕课网:MongoDB中文社区在中文工程师群体中有哪些推广计划?
TJ Tang:我们在推广方面主要是线上和线下两个部分。线上的话我们希望跟国内的一些媒体、平台合作,比如慕课网,我们准备跟慕课网合作,大量推出网络教程,为大家提供更多的中文资源,来加速他们的学习过程。
我们也有自己的中文社区,上面有一些相关技术的博客,组织活动、中文的文档推出。
线下我们会在全国各地定期组织活动。有MongoDB爱好者主动承担起相关工作,在当地组织一些线下的交流商务活动, 我们作为官方会鼎力支持他们做这些活动,比如在适当的时候会派出官方人员参与,给他们提供纪念品, 或者以适当的方式支持他们的发展。
慕课网:我们也希望MongoDB跟慕课网有更深入的合作,让好的技术在中国更好的传播。
了解更多MongoDB课程,详情点击:
慕课网:慕课网()国内最大的IT技能学习平台,课程全部免费。现已布局PC、移动端,网站用户超过150万。签约超过 200位名企(BAT)资深开发工程师,全网独家上线超过5000节实战课程(前端开发、PHP、Android、iOS、Python、html、 Swift、云计算等)。
慕课网App是国内唯一被APP Store推为榜首的在线教育类应用。目前有Android和IOS两个版本,被200余个应用商店推荐,超过500万的下载使用,成为移动端IT学习首选利器。
慕课网目前已经淘宝懒懒交流会、阿里云、百度FIS前端团队、MongoDB等具有国际水准的技术团队建立了独家内容合作。
页:
[1]