虽然在Google App Engine在最近一两年独领云计算PaaS领域的大旗,但是我在经过长时间对Google App Engine的学习和实践之后,发觉其现有的实现存在很多不足,而这些瑕疵有可能成为其的“阿基里斯之踵”,下面将具体分析App Engine在哪些方面存在问题。
主要集中在下面这三个方面:
设计之累
虽然App Engine在很多设计方面有其出彩和领先的地方,但是在App Engine中也采用有一些不恰当的Google式设计,虽然Google式设计对于类似Google搜索这样需要的海量计算和存储能力的应用而言是非常适用的,但是对于追求反应速度,而不是海量能力的PaaS平台而言,不是特别适宜,就像Google院士Jeff Dean在一次演讲所说的那样:“为了增量做设计,但不为无限做设计”,而在App Engine中,却为了一些不存在的Google式的需求作了Google式的设计,这方面的例子主要有两个:
虽然对于有些应用而言,一些设计的缺失并不会形象到其整体的表现,但是由于PaaS平台本身复杂性,使其设计上不得不小心谨慎,任何失当都会造成非常严重的后果,希望App Engine的工程师们,能够多多思量。
远离标准
对于普通用户而言,应用的通用性和迁移性是非常关键的,用户希望应用能够在外部的云中和企业的数据中心之间进行迁移,所以应用如果能基于标准的话,那将会非常有益处,就好像,像父亲这样中老年股民在选择炒股软件,他们所关心的不是功能是否强大,而是快捷键是否熟悉。而在非常关键的标准方面,App Engine在本来能所作为的Java版中并没有做的非常好,主要有下面两个问题:
虽然对标准没有很好地支持,对于那些专注于App Engine平台的程序员而言,他们并不会受到极大的影响,但是对于那些希望能将应用在AppEngine和企业数据中心之间进行迁移的用户而言,是极为关键的,因为这将显著地增加迁移的成本。
不够重视
虽然App Engine现在还在不断的开发中,但是由于其潜在的利润和Google其它业务相比低很多,所以相对于搜索、Andorid和Chrome相比,其开发进度和另一个产品Chrome OS一样较缓慢,到现在为止还处于类似公测的阶段。
总的来说,App Engine还存在很多不足,个人希望App Engine不要像Google Wave那样陨落,而是能继续健康的发展下去,也不想看到类似Max Ross这样资深工程师,也像Google Wave之父Lars Rasmussen那样黯然离开。在文章的接下来的部分,将讨论YunEngine的一些潜在优势。
虽然相对于App Engine而言,YunEngine起步晚了很多,但是YunEngine也有它一定的后发优势,就像当年Google并不是第一个做搜索的那样。下面其中最主要的三点:
为PaaS而设计
虽然YunEngine的后端也采用类似于BigTable的YunTable,但是由于YunTable在设计上考虑到反应速度的情况,而且在设计方面,我们有自主权,所以会让YunTable为更好支持PaaS平台而不断优化。
坚持标准
虽然在初期阶段,YunEngine并不会提供对很多标准的支持,但是在会确保不加入任何私有的API,这样能保证应用的迁移性。
极为专注
由于YunEngine对我而言,是一个核心的项目,我会尽全力把YunEngine给做好的,并且不断地优化。
最后,虽然在即将到来的公测期间,YunEngine还会存在很多Bug或者问题,但是只要经过这些关卡,我坚信YunEngine将会是超越Google App Engine的存在,就像《海贼王》中黑胡子所说的那样:“人的梦想是不会终结的!”。