Monday, December 14, 2009

 

Sina App Engine试用体验

by Gowers, 11月 10th, 2009

之前一直梦想着Google App Engine(GAE)推出php的服务,可盼星星盼月亮,Google还是只支持Python和Java。这两天新浪推出了基于php的Sina App Engine(SAE)服务,着实让我开心了一把。费了点劲弄到了一个邀请码,注册进去体验了把先。


整 体的来说,使用SAE的体验和使用GAE的体验没什么两样,两者都需要下一个SDK包。通过SDK包,可以方便的建立项目、管理项目、上传项目,用过 GAE的童鞋上手一定会很容易。不过下载SAE SDK包的时候要注意下,新浪的人员先后出了两个开发包,老的开发包不含带Access Key功能,这个Key是在SAE的管理后台创建项目的时候创建的。没有Access Key,上传后的项目将不能被SAE匹对。所以下载SAE开发包的童鞋,注意要下载最新的版本,也同时提醒下新浪的童鞋,SDK开发包最好别多个版本到处 乱放,归类下吧。

SAE目前支持的运行环境不算特别友好,有一些比较常用的函数被禁止了。这可能会导致一些热门的php程序不能在SAE上跑起来,这其中就有大名鼎鼎的Wordpress。尽管新浪的童鞋有够费心,修改出了一套契合SAE的Wordpress,但恐怕这样的阉割版的Wordpress用起来不会特别的爽,尤其在Wordpress月经般更新的时候。

SAE 还禁用了Curl远程资源抓取,使用Curl只能抓取本地的东西,抓取远程url必须使用其提供的fetch_url作为替代,这估计是向GAE学的。所 以要想在SAE上弄一个twitter程序,得注意下咯。另外SAE也不支持常用的GD或者ImageMagik库,以及伪静态. htaccess等服务。

在这些缺点之外,我在测试的过程中还感觉SAE的稳定性和速度表现的没有想象的好(我的带宽是2M独享线路)。这可能与SAE正处于测试期有关,希望在正式版推出后,体验能稍微好一些。
sina app engine
SAE配额截图
当 然,SAE还是有一些可圈可点之处的,最大的亮点就是支持Cron Job,国内的虚拟主机通常都很吝啬的不开放这些服务,不过我还没来得及测试是否可以执行远程Cron Job。SAE也还提供一个9.9609375GB(如果我没算错的话)的数据库,这个数据库应该算不小了。要是这个库可以外部调用,以后买空间就可以用 SAE的数据库啦。流量方面,SAE支持10.546875G的写入数据量和105.46875G的读取数据量,可惜不知道是不是月流量。

环 境方面的基本上就上面这些了,再说说SAE提供的软服务。应用方面,SAE目前支持10个应用,每个应用可以创建10个版本。每个应用可以绑定独立的域 名,每个应用的分版本则提供二级域名。不知道能不能绑定cn域名。现在测试期内也没开放域名绑定功能,我反正是没找到绑定的指导。开发方面,SAE的开发 者可以邀请多个人参与自己的项目,自己也可以同时参与他人的项目。在时下协同开发流行的形势下,这应该算是标配了吧。最后就是一些基本的Log服务 了,SAE提供开发者更新以及程序动作的页面版Log记录。

来 个总结。总体上现阶段的SAE还没有我们预期的那么好,主要还是对基础环境的问题吧。除非SAE未来在环境上做的开放一点,否则那些想拿SAE做免费虚拟 主机的童鞋就歇歇吧,WP都运行不了,您就别指望太多了。我估计新浪也不可能把SAE环境放得太开,人家Google用Python和Java为GAE设 置了一个技术门槛,新浪的php可是臭大街了,开源程序也多。不然当一堆人都趴在SAE享受着免费空间玩儿博客,BBS程序的时候,新浪弄这玩意儿干嘛吃 呢?!

继续扒拉Sina App Engine(SAE)。这段时间SAE基本处在发现Bug和解决Bug的状态,单我个人应该就给他们找出了不少,我就不在这里再数落他们的Bug了。今天主要说几个大家可能比较关心的问题。


第一个问题,SAE究竟要干什么?从SAE推出至今,新浪方面一直很低调,新浪内部不少部门更是不知情。如此的态度为SAE披上了一层朦胧的面纱,让人看不清新浪推出SAE的真正意图。不过从SAE目前仅有的一些简短介绍,我们还是能看出一些端倪。介绍中这么描述,SAE着眼解决新浪公司内部的资源冗余问题,为公司内部大量的web应用提供可靠的运行平台。这说明,SAE有一部分的目的是为了满足新浪自身的需求。但除了新浪内部的需求,有理由相信这还可能涉及到新浪的SNS、微博等的开放计划,SAE将成为这些开放计划的第三方APP应用的托管平台。

从 介绍中,我们还能很直观的看到SAE的另一个目的,就是要做 “分布式web应用开发运行的服务平台”。不了解开发的听起来会有点云里雾里,通俗起来说,就是整个应用程序放在不同的服务器上,特定的服务器或服务器群 专职负责数据层、中间层、客户层中的一个特定的功能,并通过一定的方式交换数据,实现各程序间的通信。提供服务自然涉及到是否收费的问题。关于这 点,SAE介绍中这样描述“SAE采用预充值方式,所付即所用,所付仅所用,Web服务的一切损耗均提供报表查询和账单汇总,让用户一目了然”,这已经在 暗示SAE未来的收费计划。

至于在SAE这两个目的中,新浪更倚重哪个还不得而知。目前从字面上看,分布式web应用开发运行的服务平台应该是最终目的。不过如果将来SAE在收费服务这块做得不好,只要项目不下马,SAE作为新浪开放计划的第三方APP应用托管平台的功能就更为重要了。

第二个问题,为什么要选择PHP?这点上,有朋友认为SAE选择PHP是为了规避与成熟的Google App Engine(GAE) 的竞争。我求证了下SAE的童鞋,他们否认了这样的说法。他们表示选择PHP主要基于两方面的因素,一是PHP在中国是主流的Web语言,程序员比较多, 入门也比较简便,便于SAE的前期市场拓展;再就是SAE的开发团队对PHP内核理解比较深刻,从规避技术风险角度,优先上PHP也比较稳妥。SAE童鞋 还表示,在未来SAE也会逐渐增加对语言的支持,目前Java版本已经被列入开发计划。相信当SAE支持更多种语言的时候,它的吸引力会更大

第 三个问题,SAE能够当免费虚拟主机使么?答案是肯定的。不管SAE将来收费计划怎么弄,应当会提供免费服务,SAE的童鞋对此也表示肯定。免费版的 SAE应该会在在各种配额上和收费版的有所不同,这些配额应该是流量和存储量方面的限制。如果想使用更多,那就得乖乖升级成收费版了。

不 过提醒下想把SAE当免费虚拟主机的童鞋,SAE由于采用了分布式结构,同时对运行环境进行了限制,不是随便一程序都能正常跑起来的。尤其当您的程序涉及 到上传、远程调用、数据库调用、图片库、数据缓存、文件写入等功能的时候,基本上都需要按照SAE的规范对程序进行修改。这要求您至少有点写代码或者改代 码的功底,不然建议您还是折腾虚拟主机去吧。

除 了这些,在SAE上也不是所有程序都能架设的,毕竟服务器是在国内,一些违背国情的程序,比如twitter类的可能会被封锁。好的是,SAE仅仅会封锁 掉对应的应用,不会封锁您的整个账户。当然您要是自己和朋友小范围的使用,不大规模传播,应该问题也不大。另外,如果您想在SAE上使用独立域名,建议您 先把域名备案,不然有被SAE随时咔嚓的风险。

最后一个问题,什么时候正式对外开放?这个问题SAE团队的童鞋表示不清楚,我就更不知道了。现在SAE处于Alpha阶段,这个阶段主要是完善Bug。接下来还有Beta阶段,估计在Beta版之后才会正式对外开放,让我们一同期待吧。

Labels:


Comments: Post a Comment



<< Home

This page is powered by Blogger. Isn't yours?