百度BAE的NFS功能有点蛋疼

2013-07-26

百度云LOGO

为帮助开发者提高应用兼容性、降低迁移成本,百度BAE于近期提供了NFS分布式读写功能,BAE执行环境会截获所有开启分布式读写功能的应用,将写至应用目录下的数据实时发布至集群其他所有机器上,下次请求时不管请求落到哪台机器,都可读取。尽管NFS功能一定程度上解决了本地I/O的写问题,但是我认为,这个功能太鸡肋了,不足如下:

第一、支持不完善。开启NFS功能后,一些程序依旧无法运行。我曾尝试在BAE环境下安装轻量级论坛程序Xiuno,但是安装时会报500错误;另外,在上传原版WordPress程序后,安装过程中会出现错误而导致安装终止,即便通过其他方法安装成功,附件依然不能上传。此外,有网友称,开启NFS功能后,BAE中的文件既可以上传也可以删除,但文件夹只能创建而不能删除,也算是一个BUG吧。

第二、性能不高。根据NFS的原理,所有上传的文件会被同步到集群中的其他服务器,一份数据也就会被复制成若干份存储。且不论数据是否有必要保存多份,一旦服务器负载过高,该功能是否会影响I/O读写性能,实在难说。

第三、不适合规模应用。正因为性能不高,耗费资源巨大,所以官方为NFS系统设计了近乎苛刻的读写限制。官方的配额限制规定,每分钟写操作次数不超过50,数据量不超过10MB;每天写操作次数不超过500,数据量不超过100MB。如此一来,用BAE跑个博客还行,要是跑个论坛,人家都不用攻击你,只上传几个附件就让论坛玩完了。另外,对于上规模的应用,不断上传的文件势必会导致代码空间空间的不断膨胀,BAE的可扩展性难以保障。

第四、不容易管理。大家知道,BAE是通过SVN或者Git来管理代码空间的。而通过HTTP方式上传的文件不属于SVN/Git的一部分,所以就不能通过SVN/Git将文件导出。一旦将来需要将应用从BAE转移出去,或者对上传数据进行备份,都将是一件很麻烦的事情。

第五、安全问题。新浪SAE不支持本地I/O写的原因之一就是安全问题,支持本地I/O写操作后,一旦程序出现漏洞,攻击者可以将可执行代码上传到代码空间从而获取更高权限,这比禁止写操作危害要大得多。

第六、不利于和BAE其他服务配合使用,不能充分发挥Paas云计算的优越性。支持NFS功能的百度BAE无异于一台虚拟主机,人们完全没必要去修改现成的程序来支持百度云缓存、云存储等其他云服务。如此一来,不仅不利于程序性能的提升,也不能充分发挥BAE相较于虚拟主机的优点,还会给BAE执行环境带来不必要的负载。

与其花大力气支持NFS,倒不如学习下新浪SAE,巧妙利用wrappers来使用BAE的其他服务。如此一来,不仅大大减少了程序移植所带来的麻烦,而且很大程度上提高了系统性能。当然,新浪SAE的wrappers设计并非完美无缺,其采用的是加协议头的方式(如加上”saemc://”表示访问MemCache),这样就导致了我们必须手工修改程序中所有涉及地址的变量。

我更建议BAE采用文件夹映射的方式来使用wrappers服务。例如,我们可以指定/BaiduMemCahce/文件夹下的内容访问MemCache缓存,/BaiduStorage/文件夹对应某个设定好的云存储Bucket。如果这样的话,好多程序基本上就不用移植了,只要把临时文件夹对应于MemCache,公开持久化存储对应于BCS,私有持久化存储对应于NoSQL数据库,既完美解决了移植问题,也可以顺便提高程序性能,Paas云计算的优势就显露无疑了。当然,可以自定义文件夹映射就更好了!


除非特殊说明,本博客文章均为原创,转载请以链接形式标明博文地址。

本文链接地址: 百度BAE的NFS功能有点蛋疼

分类:互联网 | 标签: |
  1. Pingback: 浅谈PaaS(xAE)服务发展缓慢的原因 | 马文建的博客

  2. 我还是比较欣赏百度的BAE的,起码WP程序可以安装插件,安装主题什么的,新浪的wp程序插件都不能安装,而且新浪绑定域名那个访问速度真的很慢且不稳定。

    • 新浪SAE也可以安装插件、主题的,只不过一些插件受限而已。
      我刚开始也觉得SAE不支持I/O有点蛋疼,但习惯后,我发现动静内容分离其实是一种很好的设计,可扩展性、速度都比动静混合好。
      至于SAE的域名问题,这是个历史问题了。因为SAE没资格备案,所以只能给已经备案的域名绑定国内节点,未备案的只能是国外了。SAE在国内是多线,速度绝对爽歪歪。
      我也看好BAE,我曾提了几条意见,官方响应很快。而且无论是技术实力还是资金实力,都不是SAE所能比的。我觉得BAE发展势头比SAE要好,后来居上是迟早的事情。

      • 插件什么的其实还可以容忍,就是绑定域名后速度比之前用的服务器还慢,而且时不时就抽风连不上了。所以只好迁移到BAE上去了。
        百度在海外的速度远不如新浪,这点是必须得承认的事实。

        • 明白了。你的域名应该是没有备案,所以只能绑定SAE的海外节点吧。其实按政策,域名没备案也不能绑在BAE,绑定有风险。不能绑定是因为不能备案,而不能备案是因为各Paas没有牌照,好在工信部现在开始发牌照了,应该很快就会好起来的。

          • 不客气。原先是绑定在SAE的,很长时间以前的事情了。原先绑定的时候没有被取消,一直那么用着。要是更改IP就被取消的话,那CDN都不能使用了。
            BAE现在是只计费而不收费,就是免费的。具体标准请查看官方网站。

        • 俺不是百度的哦……好像是能直接安装了,但是程序安装的文件在后台不可见,我更倾向于svn/git上传。蛋疼不要紧,揉揉。嘿嘿!

  3. 挺早就知道了,不过这功能实在鸡肋,,文件军的留言一如既往的多,,最近在玩lol(英雄联盟),没什么心思捣鼓服务器了,,果真是玩物丧志~~

    • 玩游戏确实是比较浪费时间,一不注意半天时间就过去了。所以我现在基本不玩游戏了,太费时间了。不过话说,不玩游戏,慢慢也就和大部队脱离了,时间久了,连共同语言都不容易找到。
      适当玩玩有益身心健康,别过了就好。

    • 漏了,没有及时回复,抱歉。跑个稍微大点的论坛确实不行,但是中小型论坛足够了;要是每天上传500张图片,那论坛应该很大了。

      • 嗯嗯,那没事啊,不过我网站除了SEO和建站杂谈两个栏目大部分内容时转载的其他栏目都是自己原创的啊。。。。尤其是教程那栏,花了很多心血去写的