回答

246

App Engine是一个平台即服务。这意味着您只需部署您的代码,而平台为您执行其他任何操作。例如,如果您的应用程序非常成功,App Engine将自动创建更多实例来处理增加的音量。

Read more about App Engine

计算引擎是一个基础设施作为一种服务。您必须创建并配置您自己的虚拟机实例。它为您提供更大的灵活性,通常成本比App Engine低得多。缺点是你必须自己管理你的应用程序和虚拟机。

Read more about Compute Engine

您可以混合使用这两个App Engine和Compute Engine的,如果需要的话。他们都与Google Cloud Platform的其他部分很好地工作。

EDIT(2016 5月):

还有一个重要的区别:在App Engine上运行可以向下扩展至零种情况下,如果没有请求进来的项目,这是在开发阶段是非常有用的,你可以去几周没有超过实例小时的慷慨免费配额。灵活的运行时(即“托管VM”)需要至少一个实例不断运行。

编辑(2017年4月):

云功能(目前处于测试阶段)是App Engine的下一级抽象的方面 - 没有实例!它允许开发人员部署适合不同事件执行的一小段代码,这些代码可能包括HTTP请求,云存储中的更改等。

与App Engine最大的区别在于功能的价格是每100毫秒,而App Engine的实例仅在闲置15分钟后关闭。另一个优点是云功能立即执行,而对App Engine的调用可能需要一个新实例 - 而冷启动新实例可能需要几秒或更长时间(取决于运行时和代码)。 (a)罕见调用 - 不需要保存实例以防万一发生,(b)在实例经常旋转和关闭的情况下快速更改负载,以及可能更多的用例。

Read more about Cloud Functions

+4

如果我想通过Docker部署,使用GAE和GCE之间有什么区别(除了定价)? – FullStack

+1

嗨,Volgin,你能否详细说明为什么“计算引擎”的成本远低于App Engine的成本。谢谢 – fangzhzh

+12

App Engine提供了一种自动化水平(即便利性),您无法使用GCE。在使用GAE的5年中,我从来不需要安装,修补或配置任何软件,复制磁盘等。它还提供相对强大的负载和容量管理 - 根据需要自动启动和关闭实例。总的来说,这些功能使Google可以在几小时内收取更多费用,许多公司和个人开发人员都乐意支付这笔费用,因为GAE节省了大量时间,可以更好地改进自己的应用程序或以其他方式赚钱。 –

44

简单地说:计算引擎给你,你必须完全控制/责任的服务器。您可以直接访问操作系统,并安装所需的所有软件,通常是网络服务器,数据库等等。

在应用程序引擎中,您不管理任何操作系统底层软件。您只上传代码(Java,PHP,Python或Go),并且瞧 - 它只是运行...

应用程序引擎可以节省大量头痛,特别是对于没有经验的人员,但它有2个显着缺点: 1。更昂贵的(但它有一个免费的配额计算引擎不) 2.你有较少的控制,因此某些事情是不可能的,或者只能以一种特定的方式(例如保存和写入文件)。

+2

您可以通过Docker将虚拟机部署到GAE,以便管理操作系统等。https://cloud.google.com/appengine/docs/managed-vms/ – FullStack

+0

“它只是运行”,您认真吗?我认为我不是唯一一个将代码适配到GAE的问题,当涉及到文件上传或后台进程时 – emfi

57

基本区别在于Google App Engine (GAE)Platform as a Service (PaaS)Google Compute Engine (GCE)Infrastructure as a Service (IaaS)

要在GAE中运行您的应用程序,您只需编写代码并将其部署到GAE中即可,无需其他头痛。由于GAE具有完全可扩展性,因此在流量更高时它将自动获取更多实例,并在流量减少时自动减少实例。你将收取您真正使用的资源,我的意思是,你会被收取实例-小时传输的数据存储等真正使用你的应用程序。但是限制是,你可以仅在Python,PHP,Java,NodeJS,.NET,Ruby和** Go中创建你的应用程序。

另一方面,GCE以虚拟机的形式为您提供完整的基础结构。您可以完全控制这些VM的环境和运行时,因为您可以在那里编写或安装任何程序。实际上,GCE是虚拟使用Google数据中心的方式。在GCE中,您必须通过使用负载均衡器手动配置您的基础架构以处理可伸缩性

GAE和GCE都是Google Cloud Platform的一部分。

更新:在2014年3月谷歌宣布在App Engine下的新服务名为托管虚拟机。托管虚拟机为应用程序引擎应用程序提供了比应用程序平台,CPU和内存选项更多的灵活性。像GCE一样,您可以在这些虚拟机中为应用程序引擎应用程序创建自定义运行时环境。实际上App Engine的管理虚拟机在一定程度上模糊了IAAS和PAAS之间的边界。

+1

在最后一段中混合了G * AE *和G * CE *吗? – ojrask

+0

是的,我错误地写了GCE作为GAE。感谢您指出。现在已经纠正了。 –

+1

从他们的文档中,您可以通过Docker将VM部署到GAE。 https://cloud.google.com/appengine/docs/managed-vms/ – FullStack

7

App Engine使开发人员能够控制Google Compute Engine核心,并为Google Compute Engine数据处理应用程序提供面向Web的前端。

另一方面,计算引擎提供了直接和完整的虚拟机操作系统管理。为了呈现您的应用,您将需要资源,并且Google Cloud Storage非常适合存储您的资产和数据,无论它们用于何种应用。您可以通过全球托管获得快速的数据访问。可靠性保证在99.95%的正常运行时间,而且Google还提供备份和恢复数据的能力,并且信不信由你,存储是无限的。

您可以使用Google云端存储管理您的资产,存储,检索,显示和删除它们。您还可以快速读取和写入保存在云存储中的平面数据表。 Google Cloud阵容中的下一个是BigQuery。使用BigQuery,您可以分析海量数据,我们在几秒钟内就可以交谈数百万条记录。访问是通过一个简单的用户界面或具象状态传输或REST界面来处理的。

正如您可能会怀疑的那样,数据存储不是问题,可扩展到数百TB。 BigQuery可通过大量客户端库访问,包括Java,.NET,Python,Go,Ruby,PHP和Javascript。可以通过这些客户端库或通过Web用户界面访问称为NoSQL的类似SQL的语法。最后,让我们谈谈Google Cloud平台数据库选项,云端SQL和云数据存储。

有一个主要的区别。云SQL适用于关系数据库,主要是MySQL,而云数据存储适用于使用noSQL的非关系​​数据库。借助Cloud SQL,您可以选择在美国,欧洲或亚洲托管,存储容量为100 GB,每个数据库实例的RAM为16 GB。

云数据存储可免费获得,每月最多存储50 K读/写指令,每月存储1 GB数据。但是,如果您超过这些配额,则会收取费用。 App Engine还可以与谷歌云平台上其他鲜为人知的更有针对性的成员合作,包括用于创建API后端的Cloud Endpoints,用于数据分析和趋势预测的Google Prediction API或用于多语言输出的Google Translate API。

虽然您可以自行为App Engine做相当数量的工作,但当您将其Google云平台服务与其他Google云平台服务一起轻松高效地进行工作时,潜力可能会很大。

11

或者使它更简单(因为有时我们不能GAE标准和GAE的Flex区分):

的Compute Engine类似于一个虚拟PC,在那里你会部署一个小网站+数据库,例如。您管理所有内容,包括控制已安装的磁盘驱动器。如果您部署网站,则需要负责设置DNS等。

Google App Engine(标准)就像是一个只读的沙盒文件夹,您可以在其中上传代码以执行并不必担心其余(是:只读)。 DNS/Sub-domains等非常容易映射。

Google App Engine(Flexible)实际上就像一个完整的文件系统(不仅仅是一个锁定的文件夹),其中你比标准引擎有更多的权力。你有读/写权限(但与计算引擎相比较少)。在GAE标准中,您为您安装了一组固定的库,您不能随意部署第三方库。在灵活的环境中,您可以安装应用程序依赖的任何库,包括自定义构建环境(如Python 3)。尽管Google标准听起来很简单(尽管谷歌听起来很简单),但它在承受压力时能很好地扩展。这很麻烦,因为您需要测试并确保与锁定环境的兼容性,并确保您使用的任何第三方库不使用任何其他您不知道的第三方库,这些库可能不适用于GAE标准。在实践中设置它需要更长的时间,但对于简单部署而言,长期运行可能会更有价值。