视频:中国首届微博开发者大会陈理捷演讲

按住此条可拖动

科技 - 热门视频

正在加载...请稍等~

视频信息

0

发布时间:2010年11月16日23:24 来源:新浪科技

所属专辑:中国首届微博开发者大会

简介:

  新浪科技讯 11月16日下午消息,由新浪微博主办的中国首届微博开发者大会在北京举行,这是国内微博行业的首场技术盛宴。作为国内微博市场的绝对领军者,新浪微博将在此次大会上公布一系列针对开发者的扶持政策,以期与第三方开发者联手推动微博行业的整体发展。

  以下为陈理捷演讲实录:

  大家好,非常高兴有机会跟大家分享一下我们在SAE上开发高性能的微博应用。首先给大家简单介绍一下SAE是一个什么样的东西?第二部分讲一下对开发者能带来什么价值。第三个部分具体讲一下怎么在SAE上使用微博开发应用?

  首先SAE是Sina App Engine的缩写,是国内第一个共有的云计算平台。SAE是一个web应用和运行web的平台。我们的云平台采用的都是一些大家非常熟悉的技术,比如说PHP5、MySQL,还有定时任务、数据抓取服务和存储,当然最主要是我们针对微博写的。简单讲一下SAE现在的规模,SAE现在是需要邀请才能注册的,但是我们已经拥有了4000名用户。在微博广场上大概有30个以上的微博应用,实际上都是运行在SAE的。在微博广场里面微博工具分类里面的前10名里面,有7个是使用SAE。

  接下来我给大家讲一下SAE可以给我们开发者带来什么样的价值。第一个价值就是说我们可以给开发者带来一个门户级别的可靠性,其实我们要做好一个平台、做好一个应用,在它访问量大的时候是非常困难的,你得架构这些东西,而且要花工夫去优化。但是作为一个个人开发者或者是中小企业来做这些事情,在你前期可能精力不是投入于架构之上的,但是SAE可以为你带来门户级别的可靠性。首先硬件像新浪都有多年的采购经验,知道用哪些硬件比较好,所以不用考虑。架构我们是基于多年的经验,带垮是最好的机房,运维的话是多年运维团队,有直接运维品太。第二个价值就是更高的性能。我们是专门为web应用优化的环境和服务。比如说我们的数据库末端是分离的,背后可能还会有一些一组多丛,后面还会有一些IDC。另外就是高速缓存。像异步队列,如果我们有批量任务要执行的话,可以并到异步队列里面,这个不用自己架。另外就是客户端前列的访问控制,包括帮助大家压缩页面,做访问控制。给大家看几张图,这个是我们MySQL的叶面。这个是我们的Memcache的操作图面。这个是异步队列。第三个价值就是更快的开发速度,我们现在的web开发越来越快了,有一种开发就是全部是在线的,可以在线编码、调优、可以时时的看到日志,我们可以有多个版本同时存在,你可以通过鼠标确定把哪个版本作为最后的确定版本,把网站的访问倒过去。然后就是应用的向导,我们把访问的框架都可以导入进去。接下来给大家看几张图,这个是我们在线编码的界面,这个性能是相当好的,它可以做到函数的高量、补全,如果你对编辑器不是特别挑的话,还是很舒服的。这个是在线调优,可以非常清晰的把每一个函数的时间、内存占用的时间都给调出来了,可以清晰的看到每一个函数占用了多长时间。这个图非常直观,可以看到黄的、黑的和红的都是耗时间非常多的地方,我们知道80%的性能耗了20%的时间,这是非常有用的。

  接下来给大家讲一下在SAE如何开发微博应用。首先第一个就是申请帐号,因为我们现在的帐号不是直接注册的,大家需要进行帐号申请。这个在微博开放平台注册的时候有个附选框,大家可以了解一下想在微博开放平台上做哪些应用功能,我们简单了解之后就会给大家发邀请码。比如说文件操作,我们在SAE其实是没有本地文件操作的,因为我们是很多台机器,所以都是分布式存储。网络操作我们有两种方式,一种是TMPFS,我会给大家一个临时目录,可以把文件写在这个目录下面,但是这个文件是这次访问结束之后就会消失掉了。大家看一下代码的第一行就是在临时目录里面写的。第二个方法就是使用我们的Wrapper,可以使用系统文件进行所有的服务,第二个代码很简单的。

  接下来给大家讲一下数据抓取,因为SAE是不允许对外进行数据抓取的,但是你可以通过我们的服务进行抓取,非常简单,你只要利用SAE社区一个对象调用它的方法就可以了。接下来讲一下MySQL数据库,这里有几个需要注意的地方。第一个是我们的MySQL不允许外部进行连接,你从本地的客户端取得密码进行连接是不行的,因为这个是考虑到数据了安全。另外一个是Phpm的在线管理。最后就是如果大家要自己去连主库、从库,配置参数一定要用环境变量或者是常量,这个是MySQL非常简单的例子。这是我们的存储,其实它不是本地存储,是分布式网络的存储,所以一定要注意性能的消耗。这是存储的例子。关于前面这些东西有一个非常详细的文档,就是API的文档,大家如果有相关的疑问可以去访问这个地方。

  下面讲一下怎么在这个环境上做一些微博的应用,我给大家讲几个常用的应用场景。第一个是用户授权。我们微博里面是用OS授权,其实OS授权是两部分,不像普通的授权从上到下执行完了这个授权就完了,中间是有一个交互的。总体的授权是应用、微博接口、微博用户三方完成的。我接下来说一下,看起来比较复杂的过程中,我们怎么在SAE上做这个事。我们的接口会封装很多的参数大家可以直接的调用,但是如果你觉得这些参数不好用,也很简单,你也可以直接调微博的参数。关于授权大概就说这么多。

  接下来我说一下保存用户数据,我发现大家做应用的时候用户数据是很重要的。这个数据写的时候会用到很多,很多开发者都会直接把它存到表里面。但是实际上用户数据读取频繁,变动稀少,数据量较大,你可以完全不用建立数据表,因为我们的SAE接口里面都有。用户可能改昵称,用户的关系也可能会有新增的粉丝,你就必须指定一个过期时间。

  接下来给大家讲一个场景,就是批量的接口调用。各种特别耗时的操作,一般来讲不应该用同步的方式来做,比如说我们有一个微博的接口我们需要调用它一千次,这个时候如果我们用同步的方式我们会发现用户提交完了之后就在那儿等着了,所以一般我们都是采用异步队列来做,SAE就可以帮助用户做这个事情。最后要说的就是前端优化,SAE我们没有相关的控制提供给大家,但是我们有一个APP(英文),大家如果做过SAE开发就会知道,我们代码目录下面有一个叫做(英文)Yll,在这个里面可以指定各种各样的配置,告诉服务器是不是要缓存文件,这个对前端用户是非常有帮助的,我也建议大家去做。我也看到很多开发者把应用上线以后就觉得开发做完了,但是如果你不做优化的话,哪怕你写的非常好,但是你的时间很慢用户还是会觉得慢的,所以推荐大家还是要做前端优化。这是我跟大家分享的在SAE上怎么开发微博的应用。

  接下来跟大家分享一下我们规划中的一些新的服务。首先我们会提供一个更强大的云存储接口,允许大家往那边存数据,就是帮助大家存流量的运存储接口。第二个我们预计在明年应该会提供虚拟机的服务,这样的话大家可以完成两件事情,第一个是说话的网站可以实现无成本的迁移,第二个是大家以前一直要求的多种开发语言,你可以装这么一个环境,然后使用就可以了。第三部分是我们的CDN,这部分开放以后我觉得做Flash游戏的开发者会很高兴,可以帮大家省大量的钱。整个这些东西构成了新浪的云平台,这些东西不管是你自己的应用还是微博的网站都可以放到这个平台上。关于SAE更多的信息大家可以访问我们的网站,也可以通过微博跟我们进行交流,谢谢大家!

评论列表,正在加载中...