Google新发布的“网络应用引擎(App Engine)”能让开发者们利用Google那非常好的底层计算结构,进而将自己所研发出的网络应用服务完全“寄存”在Google之上。
Google的这一举措,进一步加剧了“平台即服务(Platform-as-a-Service,PaaS)”这一新兴领域的激烈竞争态势。而诸如“Google网络应用引擎”和“亚马逊网络服务(Amazon Web Services,AWS)”这一类新兴PaaS产品,正在颠覆着整个互联网计算领域的游戏规则。
我们每一个人,都在目睹这一场巨大的、根本性的变革 —— 正如Nick Carr在自己的新书《巨大的转换(The Big Switch)》当中所揭示的那样,底层计算能力和数据存储的外包,将如当年大型电网公司通过庞大的输电线路“消灭了”无数小型独立发电设施一样,彻底改变整个互联网世界的未来。
一、 什么是Google App Engine?
Google网络应用引擎(Google App Engine)是一款极具延展性和容错能力的互联网应用环境,能让第三方互联网开发者在Google的基础计算构架之上,运行自己所开发的互联网应用服务。
毫无疑问,当今天我们谈到在“大规模网格存储(Big Table-type storage)”的基础之上构建互联网尺度的应用服务时,Google是当之无愧的王者。
很显然,从很多方面看来,Google网络应用引擎都会与另一行业巨头亚马逊公司之前所推出的“亚马逊网络服务(AWS)”爆发激烈的竞争。但两个产品的实现方式还是有很大不同。
亚马逊AWS网络服务由多个独立的产品组成,其中包括了用于数据存储的S3 storage、提供托管服务的EC2 hosting以及提供数据库服务的SimpleDB。网络开发者们可以选择购买其中的一款或多款服务,将其融入到自己的产品当中。
而在Google网络应用引擎中,所有的类似服务都被捆绑整合在了一起,而开发者们只有“全是”或“全否”的选择。
从更高的层面看来,Google网络应用引擎是由5大部分组成的:
1. 核心的,极具容错能力和延展性的应用服务环境。这个核心应用环境的“稳定性极高,即便是在高负载和大容量数据规模时也是这样”。该应用环境的一个关键部分是“沙盒(Sandbox)”,它能将你所开发的网络应用服务隔离保护在一个安全空间中,让其“能够独立于任何硬件构架、操作系统和网络服务器的物理位置。”
2. 一个具备了代码库和模块的,专为Python编程语言所准备的运行环境。虽然现在这个运行框架还只支持Python语言,但实际上,Google App Engine的下层结构是独立于编程语言的。因此可以预见,在不久的未来将会有更多的编程语言得到支持。
3. 一个本地开发环境和软件开发工具包(SDK)。当你成功注册这项服务后,第一件要做的事情就是下载本地软件开发工具包。当成功安装之后,该SDK将会在你计算机上创建一个本地开发环境,以模拟Google网络应用引擎的运行环境。开发者们可以在这个模拟环境当中开发和调试自己的代码。
4. 用于应用服务管理、记录和监控的管理控制台。通过这个管理控制台,你可以知道自己的应用服务产品每一秒所吞吐的数据容量和消耗的CPU计算资源。
5. “超大网格模式(BigTable)”的分布式数据存储服务。在Google App Engine中,数据的存储不再依靠传统意义上的关系数据库,而采用了能够“按需增长”的分布式数据存储。