SAE之流不能安装原生wordpress的直接原因是不支持写入。因为不支持写入,导致安装时的配置文件没法创建,运行时模板、数据的缓存文件没法生成。其他通用的应用程序不能运行也有类似的原因:像编辑模板这样的简单的操作也没法在SAE上做,因为模板通常以文件形式保存,编辑后模板无法写回文件导致无法保存。再以流行的smarty模板引擎为例,渲染模板时会先检查有没有模板缓存,如果没有就先创建,这也需要写入文件权限。至于常见的软件中内置的一键升级、应用商店、模板商店等功能也都因为无法创建文件而瘫痪。
如果要将原生程序移植到SAE上,需要做许多功能的删减,临时文件类(文件缓存)的需求,SAE提供了wrapper封装,可以通过改代码支持;但对于需要持久化存储的程序类文件需求即使改代码也无法支持,像应用商店、模板商店、一键升级、一键打补丁等功能都不行。内置商店这种功能是应用开发商的重要盈利渠道,不支持这些功能也让开发商们对开发SAE平台版本兴趣索然。反正我本人曾经雄心勃勃想兼容SAE平台,后来发现处处受限,解决问题会增加成本,却带不来收益,果断放弃。
=======================================================
不支持写入的坏处说完了,下面是给SAE官方的赠品:
我作为外行瞎猜不支持写入的技术原因,可能是分布式系统如果要支持写入,在文件同步、一致性、性能方面都面临一些挑战。
但根本原因还是产品经理对这个问题的严重性重视不够:技术方面有问题但并非不可解决。如果我是SAE的产品经理,我一定要支持文件写入,这一点不容妥协!但是在其他方面都可以做出一些让步,比如:写入可以慢一些没关系,一致性在极短时间内不能保证也没有关系,写入方式受限也没有关系。
我是这样想的:
像SAE这种互联网基础服务提供商打一个比方就像发电厂,他发明了一个新的电流传输技术,在价格等方面有一大堆优点。唯一一个缺点就是,入户电压是1000V的(打比方),导致用户所有现有的电器都不能直接用,如果要用,需要电器支持1000V的输入电压。有实力的工厂,可以专门改造设备使兼容接入,一般的普通用户就没有这么大的能力了,只能寄希望于电器厂商生产1000V版本的电器。而海尔、长虹们呢?不愿意专门开发这个版本,因为每个型号都多一个版本的话,在仓储、物流、营销、研发、售后、配件方面都带来额外的成本,但是1000V的用户又很少,即便开发了也不会带来太高的额外收益。所以呢,一直也没有重量级的厂商支持。偶尔有一些小厂发布了1000V版本、但用户担心一旦电厂倒闭,一屋子的1000V电器变成废铁,所以销售情况也很惨淡,后续更没有厂商愿意生产1000V版本。
门槛高所以用户少,用户少所以厂商少,厂商少所以用户更少,一个完美的死循环。
以上我虚构的1000V发电厂面临的困境就是SAE的现状,一言以蔽之:叫好不叫座。
要解决发电厂的困境很简单,简而言之:兼容!在入户时给用户赠送智能变压器、转换器、插排。这样用户原来的电视、电脑、电冰箱等不需要额外改装就能接入。如果未来有新的支持1000V的电器出现,通过专用插排也可以兼容。这样用户转换的成本就降低了,一夜之间所有家庭都成为1000V电的潜在用户。
要解决SAE困境也很简单:也是兼容!只要一兼容,潜在用户数一下子就多了几个数量级。否则,任你SAE优点再多,不能用,等于零。不兼容有两个致命的问题:
1 通用软件都无法直接使用:阉割版在功能、升级上都有先天缺陷,不堪大用。要用SAE几乎只能自己开发。这一条就将没有开发能力的许多小团队、个人创业者挡在门外了。
2 用户平台风险高:如果创业团队选择SAE作为服务商就意味着很大的风险。如果SAE如果在内容审核问题上有失误有可能整个业务都被停掉(这不是危言耸听,新浪读书就曾被停掉);还有一些创业团队被SAE主动封账号。不管哪一种原因,一旦有事因为系统不兼容(深度依赖SAE的服务),就算买了其他IDC的服务,系统仍然是无法运行的。只能等SAE恢复,或者紧急转系统至普通的服务器架构。
那么,如何兼容呢?
以文件写入为例,无非就是牺牲一些性能做同步工作,是完全可以做到的。考虑大多数程序都是读多写少,在写入时牺牲一点性能,对程序的整体性能的影响微乎其微。
再以MySQL为例,SAE的mysql连接时不需要什么用户名之类的,直接一new SaeMysql();就可以了。但为了兼容可以仍然接受传入参数,但不管传入什么仍以当前实例的固定账号完成数据库的连接,和正常的php连mysql一样。
另外,SAE强制以SVN方式的部署代码我猜测也是基于一致性的考虑,可以在保留SVN方式的基础上,增加一种FTP方式。
药方开出来了,具体实施就是技术问题了,新浪牛人一大堆,技术问题永远有办法解决。最终的目的是:
绝大多数网站,只要站长愿意,都可以一行代码不改平滑迁移至SAE平台;什么时候想换用其他平台,也可以无痛的平滑迁出,没有后顾之忧。
我表面上是SAE黑,其实是真爱,我说完了。