新浪云计算高级技术经理丛磊:NoSQL在SAE中的应用

时至今日,“Big data”(大数据)时代的来临已经毋庸置疑,尤其是在电信、金融等行业,几乎已经到了“数据就是业务本身”的地步。这种趋势已经让很多相信数据之力量的企业做出改变。恰逢此时,为了让更多的人了解和使用分析大数据,CSDN独家承办的大数据技术大会于今日在北京中旅大厦召开。本次大会汇集Hadoop、NoSQL、数据分析与挖掘、数据仓库、商业智能以及开源云计算架构等诸多热点话题。包括百度、淘宝、新浪等业界知名专家与参会者齐聚一堂,共同探讨大数据浪潮下的行业应对法则以及大数据时代的抉择。

新浪云计算高级技术经理丛磊

新浪云计算高级技术经理丛磊表示2011年新浪SAE平台注册用户已达50000,应用超过100000,日均PV达到1亿,活跃开发者达到10000名。

丛磊还介绍了新浪自己开发的的KVDB,KVDB用来支持公有云计算平台上的海量key-value存储。KV DB支持的存储容量很大,对每个用户支持100G的存储空间,可支持1000000000条记录,用户可以用KV DB存放简单数据,如好友关系等。KVDB具备存储引擎可替换、任意模块水平扩展、支持读写分离、支持前缀查找、支持secondary index、支持认证、支持重平衡和无缝迁移等优势。

以下为文字实录

大家好,很高兴在这里跟大家分享关于SAE在NoSQL上一个话题。如果大家对SAE有一些看法,和意见,也可以关注新浪官方微博。另外,SAEJava平台,已经在内测了,大家有兴趣也可以通过官方微博去申请测试渠道,加入我们测试,大家一起来提高SAE。今天先简单向大家汇报一下SAE发展,这张图就是SAE发展的一个,相对于一个里程碑,从09年8月份SAE云计算小组成立,当时还非常小只有几个人,09年11月份SAE发布了一个版本,到今年正好2年,到2010年SAE发布一个重量级云存储产品微盘。今年5月份也有很大的事开放注册,目前任何人去使用SAE不需要什么邀请码,审批流程,只要有新浪帐号就可以使用。

现在SAE开通了支付,SAE也划归为新浪云计算,还有一些第三方站点,互联网的咨询类站点也跑到SAE上。那么,在SAE产品主要有计算类服务,存储类服务,还有一个是云应用商店跟云服务商店CDN。关于云应用商店和云服务商店,应用商店大家都听说过,比如App Store,但是我们所知道App Store要不就是基于苹果IOS,要不就是Android上的,SAE如果做并不是OS,我们OS是互联网,互联网上的App Store,你现在在SAE上只需要花30秒时间就可以开通一个自己的团购网站,可以开通一个论坛,相册网站,维基百科类网站,做互联网上App Store。

反过来说什么是服务商店?我们作为一个开发者,你开发的东西并不一定都有界面,有的人开发东西,比如我是苹果语言开发商,我开发这个东西非常有价值但并没有界面,这种东西你开发者是想把他的API卖给用户的,这个时候实际上可以借助SAE分装商店,进行整个统计,日志,报表流程,你把你API架构在其上面进行销售,这是一个服务的概念。

来看一下现在SAE发展的三个指标,一个是注册用户,目前SAE注册用户大部分都是开发者,虽然数目不多,但是质量很高。尤其目前SAE做开发者认证,如果大家使用SAE的话应该听说过,任何一个人只要通过了开发者的认真都可以获取到相当多的云,相当于SAE给真正开发者免费的钱让他在SAE上开发应用。另外一个应用数,应用数目前是10万,日均PV不止1亿,应该有好几个亿。

我们也看了一下SAE上面跑的这些应用和服务来讲可靠不可靠?这是Q3的一个宕机时长45分钟,宕机次数4次,总体时间56.05。看一下活跃开发者1万多名,刚才提到开发者认证,实际上SAE还是将更多的精力关注在能够创造价值核心开发者上面,这主要是指外部开发者,包括移动互联网领域。当然还有SAE跟PHP官方合作,如果大家是爱好者登录PHP,目前PHP在大陆唯一官方网站就是SAE提供的,这说明二者之间合作也在加强,这块我们跟官方合作也会加强。

最后一个是应用商店,都有哪些应用,这块就是一个列表,不多说了,weibo,HDwik,团购等等。从这一页开始今天关于技术类的话题,我们今天题目是在HCE上MySQL,我今天先讲SQL,我个人从06年毕业之后,07年就开始做云计算方面开发。当时我们是看着亚马逊长大的一批人,亚马逊认为SQL不重要,这里是指亚马逊云计算,因为他觉得他可以推出自己的产品,这个产品是叫HDB,他的目的,我不知道他的目的,一个目的因为他想推出自己的HDB,另外因为SQL不具备可扩展性,也不具备其他云计算的特性,他想把用户导向导入到SQL里面去,后来尝试是失败的,亚马逊被迫推出RDS。

换句话说你妄想用自己一个NoSQL去改变开发者对MySQL的习惯,只要你的NoSQL,你需要用户去改代码,有实际成本,那么NoSQL就不会完全替代SQL作用。所以SAE从09年推出的时候,一定要支持SQL,那么怎么来支持MySQL呢?我们在云计算上做MySQL最重要的问题就是隔离性问题,因为使用MySQL人水平不一样,我们在HCE上确实有一些开发者,连索引都不知道是什么,就建了几千几亿的表。我们做公有云计算,如果这样的人特别多势必影响到我们分布式数据库服务,实际上SQL,或者MySQL对SAE来讲最大挑战就是隔离性。如何一个人好的坏的,黑客也好,他的烂使用不应该影响到其他人的使用,怎么做到?就是通过虚拟机来做这个事。

现在虚拟机技术,应该说还是比较成熟。比如我可以把VCPO绑定到VPO上,当然网络隔离大家都能做,实际磁盘IO隔离有一些虚拟化也可以做到,我就一个虚拟机起一个SQL,用户A需要SQL就成立一个虚拟机来实现,这种方案还是不错的。最重要一个问题,这个方案成本太大了,SAE很穷,没有钱,冲不起。我举个例子,现在在SAE从目前虚拟化来说,一个物理机最多也就3万台,3万多台需要1千台物理机。我告诉大家一个秘密,SAE到目前也没有1千台物理机,这个成本对SAE是不可承担的,我们一定要减少成本来做隔离。

怎么减少成本?一个虚拟机一个SQL不行,我就多个SQL一个虚拟机,大家不同instance也是可以,我们之前也讨论过,其实这个方案实施起来也有最大一个问题,维护起来特别麻烦。你想想那么多端口,都有自己的主和从,如果用管理人员来管理就会疯掉,可能开发人员还好,开发人员开发东西很少,但是管理人员运维成本非常大,SAE怎么来做,SAE提出一个很疯狂观念,让所有用户跑到一个SQL里面行不行,貌似是一个很不好的任务,但是SAE自己研发一套产品来实现这个技术,就是RDC,是国内唯一面对公有云,就是让所有用户,或者说一部分用户跑在一个instance,而不互相影响。