关注网络与数据安全

忘记密码
“游侠安全网”创建了网络安全从业者QQ大群(群号:389710688) ,欢迎各位同仁加入!有其它问题,请联系站长“网路游侠”,QQ:55984512


腾讯陈军:腾讯云平台与技术实践分享

2011-05-22 20:52 推荐: 浏览: 88字号:

摘要:   [第三届中国云计算大会]2011年最受瞩目的IT业界盛会——第三届中国云计算大会于2011年5月18-20日在北京国家会议中心隆重举行。本次大会由中国电子学会主办,中国电子学会云计算专家委员会、中国云计算技术与产业联盟承办,CSDN网站、《程序员》杂志和电...

  [第三届中国云计算大会]2011年最受瞩目的IT业界盛会——第三届中国云计算大会于2011年5月18-20日在北京国家会议中心隆重举行。本次大会由中国电子学会主办,中国电子学会云计算专家委员会、中国云计算技术与产业联盟承办,CSDN网站、《程序员》杂志和电子工业出版社协办。

  5月20日,在第三节云计算大会分论坛二“云计算平台与应用实践”中,腾讯网络平台部技术总监陈军带来了主题为《腾讯云平台与技术实践》精彩演讲。

  以下是陈军的演讲实录:

  我是腾讯的陈军,我加入腾讯之前在硅谷工作了十几年,我要讲的就是开发平台与腾讯海量业务面对的挑战,重点讲几个比较有意思的话题,网络方面,集群任务调度、分布式同步,还有云存储和数据中心运维,因为腾讯做的东西很多。时间关系,就挑一些重点来讲。

  去年12月份腾讯和360事件之后,腾讯就做了一个策略的转变,就是要打造开放平台。目前朋友社区和Qzone平台已经向第三方开放。目的就是营造一个良好的互联网生态圈,带动互联网产业链的发展。这样就可以让一些小公司、创业公司可以借助腾讯这个平台来服务亿万用户。

  这里有一个比较成功的例子,昆仑这家公司游戏放在Qzone运行,目前可以做到一个月收入分成超过800万。这有两个例子,这个注册数字是900多万,日活跃数字是800多万,openpl的日调用达到700多万。

  腾讯海量业务带来了很大的挑战,涵盖了几乎所有互联网业务,有几亿用户,有海量的相片、博客,每天以亿计划的相片上传,就需要腾讯提供PB级的存储,存储方面每天增量都达到TB级。

  这些需求有突发性,每次长的假期,五一、国情黄金周之后,网友大量的上传,比如说在深圳上传的照片,怎么让他在北京的朋友及时看到,这带来很大的挑战,中国三网之间互联互通也是一个瓶颈。电信内部可能带宽够,电信到网通之间可能带宽不够了,这都需要腾讯有一个比较好的基础架构来解决。

  云计算在腾讯来讲,业务部门对外提供的就是SaaS的模式,当客户提供QQ邮箱和Qzone的时候,他们用的就是一个软件服务形式提供。腾讯内部的基础架构部门会开发PaaS和IaaS的架构提供给业务部门,现在有了这个开放平台之后,IaaS和PaaS也向第三方提供的,他们在朋友社区和Qzone的应用也用了腾讯提供的IaaS和PaaS的架构。

  面对这些挑战,腾讯就是持续不断的扩容,因为需求不断的增加。扩容有两条思路,一是Scale Up,升级到更强大的机器,甚至小型机;二是Scale Out,使用更多的服务器,腾讯用的绝大部分服务器,还是普通的PC服务器,小型机用的非常少。这就要求我们软件设计方面需要比较好的扩展性。以Google、Facebook的实践来看,云计算基本上是廉价的硬件开发功能强大,比较智能、比较复杂的软件来实现可靠性和高可用性。不是说通过购买更加昂贵的小型机来实现高可靠高可用。目前腾讯服务器数量达到6位数。

  下面讲一下云网络,这个是传统数据中心网络拓扑,思科以前一直提倡这样的网络拓扑,三层,最下面是接入层,中间是分布层,上面是核心层。这样做的问题就是可能有很多接入层的交换机接到分布层,很多的分布层接到核心层。如果服务器连到同一接入层有1G的带宽,如果连接到不同接入层交换机的及其带宽小于1G。这种架构造成的问题是什么呢,程序员写程序的时候要考虑这个服务器在的是连接同一个接入层,还是不同层的交换机。如果程序在一个机架上运行,带宽可以1G,如果跨机架就会跨不同层的交换机,带宽就是只有几十兆了,写程序的时候要考虑到哪些不同的接入层,这些开发出来的程序不容易自由迁移,动态部署,因为网络拓扑已经反映里面。如果不能做动态部署,资源利用率就比较低。因为它的应用不可能一天24小时都可以有很高的请求。

  我们要做的就是扁平化的网络拓扑,用CLOS Network来部署。50年代就有一个计算机科学家提出来,第一级128台,每台下行40个1G端口,上行40个。第二级4台,每台下行128个10G端口与1级相连。集群内5120台服务器,任何两台都有1G带宽。这样程序员在写分布式应用的时候就不需要考虑这个程序在哪些层运行,因为任何通讯都有1G的带宽。

  腾讯很多应用之间都有交互,不谈动态部署,就算是静态部署,这个应用固定在某台服务器运行,不会做自动迁移,腾讯有很多不同的业务,很多业务都有手机的版本,微博和Qzone,游戏等等,还有服务器端的,在线的。很多应用都涉及到QQ好友关系链,不同应用之间交互很多。当他们有很多交互的时候,采用这种拓扑,都要提供足够的带宽给他们,提供交互。在上面运行的结果就会避免拥塞。

  这种拓扑结构是Google是2008年做的,三级CLOS Network。

  第一级,512台,每台下行40个1G端口,下行40个,每64台一个分区。总共会有8个分区。

  第二级,这个核心交换机往下至少有128个10G端口,下行为64个10G,上行64个,每四台一个分区。

  第三级,16台,每台下行32个10G端口。

  集群内20480台服务器,任何两台都有1G带宽。

  为什么把集群做的那么大,腾讯以前做的非常碎片化,几百台服务器,集群互相之间不能互相利用,利用率高的没有办法利用利用率低的服务器,有的吃不饱,有的没有资源给他,做成这样就希望做一个比较大的资源池。资源池做的大了,应用跑的多了,波峰波谷的机会就比较大了,把他们放在一起就通过消峰填谷来解决。

  集群任务调度系统,它有两个作用。一是任务与资源匹配,提高资源利用率,静态部署的业务都有生命周期,比如说开心农场,前两年很火,现在下坡了,前两年给几千台服务器都不够,下坡的时候只要给几百台服务器就可以了。下坡的时候怎么把这些资源收回来,最好不需要人工,让它自动调度,它负载低的时候,自动把服务器分给其他应用。可以提高资源利用率,我们目标是把资源利用率提高到80%。二是调度系统要监控任务的执行,执行自动容错,进程崩溃的时候,它可以自动把这个进程拉起,宕机的时候,重新找一台机器,把宕机上面的应用在新的机器上重新运行。除了高端容错,还要实现自动化运维,让运维人员压力降低很多。

  开发这样一个系统之后,这个任务就不是静态部署了,写分布式应用的程序员,写的时候不需要考虑这个程序在哪些机器上运行,这些机器上带宽有多少,这个模式就变成他写的应用是提供给集群,至于这个应用在哪个集群上应用,是集群调度器的任务。做到这个,就可以做到服务器符用,提高资源利用率。

  Hadoop,很多互联网公司都用到Hadoop,Hadoop有的数据挖掘跑几十分钟,有的跑几分钟就完成了,你可能还要等几十分钟跑完那个,然后再提交你几分钟的任务,目前Hadoop还是类似于50年代批处理的模式,还不是分时共享的系统。我们开发这个集群任务调度系统,希望

联系站长租广告位!

中国首席信息安全官