我想知道App Engine和Compute Engine之间有什么区别。任何人都可以向我解释这个区别吗?
App Engine是一种平台即服务。这意味着您只需部署代码,平台即可为您完成其他任务。例如,如果您的应用程序变得非常成功,App Engine将自动创建更多实例来处理增加的卷。
计算引擎是基础架构即服务。您必须创建和配置自己的虚拟机实例。它为您提供了更大的灵活性,并且通常比App Engine的成本低得多。缺点是您必须自己管理您的应用程序和虚拟机。
Read more about Compute Engine
如有必要,您可以混合App Engine和Compute Engine。它们都与Google Cloud Platform的其他部分配合得很好。
编辑(2016年5月):
一个更重要的区别:如果没有请求进入,在App Engine上运行的项目可以缩小到零实例。这在开发阶段非常有用,因为您可以持续数周而无需超过实时小时的慷慨免费配额。灵活的运行时(即“受管VM”)需要至少一个实例不断运行。
编辑(2017年4月):
云功能(目前处于测试阶段)是抽象方面的App Engine的下一级别 - 没有实例!它允许开发人员部署一小部分代码,这些代码可以响应不同的事件而执行,这些事件可能包括HTTP请求,云存储中的更改等。
与App Engine最大的区别在于功能的价格是每100毫秒,而App Engine的实例仅在15分钟不活动后关闭。另一个优点是Cloud Functions立即执行,而对App Engine的调用可能需要一个新实例 - 冷启动新实例可能需要几秒或更长时间(取决于运行时和代码)。
这使得云功能成为(a)罕见呼叫的理想选择 - 不需要保留实例以防万一发生,(b)快速改变实例经常旋转和关闭的负载,以及可能更多的用例。
基本的区别是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中,您必须使用Load Balancer手动配置基础架构以处理可伸缩性。
GAE和GCE都是Google Cloud Platform的一部分。
更新:2014年3月,Google在App Engine下宣布了一项名为Managed Virtual Machine的新服务。托管虚拟机为应用程序引擎应用程序提供了比应用程序平台,CPU和内存选项更多的灵活性。与GCE一样,您可以在这些VM中为应用程序引擎应用程序创建自定义运行时环境。实际上,App Engine的托管虚拟机在一定程度上模糊了IAAS和PAAS之间的边界。
简单地说:计算引擎为您提供了一个您完全控制/负责的服务器。您可以直接访问操作系统,并安装所需的所有软件,通常是Web服务器,数据库等...
在app引擎中,您不管理任何底层软件的操作系统。你只上传代码(Java,PHP,Python或Go)和瞧 - 它只是运行...
应用程序引擎可以节省大量的头痛,特别是对于没有经验的人来说,但它有两个明显的缺点:1。更昂贵(但它确实有一个免费配额计算引擎没有)2。你控制较少,因此某些事情不是可能的,或者只能以一种特定的方式实现(例如保存和写入文件)。
或者使其更简单(因为有时我们无法区分GAE标准和GAE Flex):
计算引擎类似于虚拟PC,例如,您可以在其中部署小型网站+数据库。您可以管理所有内容,包括控制已安装的磁盘驱如果您部署网站,则负责设置DNS等。
Google App Engine(标准版)就像一个只读沙盒文件夹,您可以在其中上传要执行的代码,而不用担心其余部分(是:只读 - 为您安装了一组固定的库,您无法部署第三方图书馆随意)。 DNS /子域等更容易映射。
谷歌应用引擎(灵活)实际上就像一个完整的文件系统(不仅仅是一个锁定的文件夹),你的功能比标准引擎更强大,例如您具有读/写权限(但与计算引擎相比较少)。在GAE标准中,您为您安装了一组固定的库,您无法随意部署第三方库。在Flexible环境中,您可以安装应用程序所依赖的任何库,包括自定义构建环境(例如Python 3)。
尽管GAE标准处理起来非常麻烦(尽管Google让它听起来很简单),但是当它处于压力之下时,它的扩展性非常好。这很麻烦,因为您需要测试并确保与锁定环境的兼容性,并确保您使用的任何第三方库不使用您不知道哪些可能无法在GAE标准上运行的其他第三方库。在实践中设置它需要更长的时间,但对于简单部署而言,从长远来看可能会更有价值。
除了上面的App Engine与计算引擎注释之外,此处的列表还包括与Google Kubernete Engine的比较以及基于从小到大的各种应用程序的经验的一些注释。有关更多要点,请参阅Google Cloud Platform文档,页面Choosing an App Engine Environment上的App Engine Standard和Flex功能的高级描述。有关App Engine和Kubernetes部署的另一个比较,请参阅Daz Wilkin App Engine Flex or Kubernetes Engine的帖子。
App Engine标准版
优点
缺点
App Engine Flex
优点
缺点
谷歌Kubernetes引擎
优点
缺点
计算引擎
优点
缺点
App Engine使开发人员能够控制Google Compute Engine核心,并为Google Compute Engine数据处理应用程序提供面向Web的前端。
另一方面,Compute Engine为您的虚拟机提供直接和完整的操作系统管理。要展示您的应用程序,您将需要资源,而Google云端存储非常适合存储您的资产和数据,无论它们用于何种用途。您可以通过全球托管获得快速数据访问。可靠性保证在99.95%的正常运行时间内,Google还提供备份和恢复数据的功能,不管您信不信,存储是无限的。
您可以使用Google云端存储管理资产,存储,检索,显示和删除资产。您还可以快速读取和写入保存在云存储中的平面数据表。 Google Cloud阵容中的下一个是BigQuery。使用BigQuery,您可以在几秒钟内分析大量数据,我们正在谈论数百万条记录。通过简单的UI或Representational State Transfer或REST接口处理访问。
正如您可能怀疑的那样,数据存储不是问题,并且可以扩展到数百TB。 BigQuery可以通过许多客户端库访问,包括Java,.NET,Python,Go,Ruby,PHP和Javascript。可以使用类似SQL的语法NoSQL,可以通过这些客户端库或Web用户界面访问。最后,我们来谈谈Google云平台数据库选项,Cloud SQL和Cloud Datastore。
有一个主要的区别。 Cloud SQL用于关系数据库,主要是MySQL,而Cloud Datastore用于使用noSQL的非关系数据库。使用Cloud SQL,您可以选择在美国,欧洲或亚洲托管,每个数据库实例具有100 GB的存储空间和16 GB的RAM。
Cloud Datastore每月最多可提供50 K读/写指令,每月也可存储1 GB数据。但是,如果超过这些配额,则需要付费。 App Engine还可以与其他鲜为人知,更具针对性的Google云平台成员合作,包括用于创建API后端的Cloud Endpoints,用于数据分析和趋势预测的Google Prediction API,或用于多语言输出的Google Translate API。
虽然您可以单独使用App Engine,但当您考虑到其Google云平台平台服务能够轻松高效地工作时,它可能会飙升。
如前所述,Google Compute Engine(GCE)是基础架构即服务(IaaS),而Google App Engine(GAE)是平台即服务(PaaS)。您可以查看下图以更好的方式理解差异(取自here并更好地解释) -
Google Compute Engine GCE是Google Cloud Platform(GCP)提供的一项重要服务,因为大多数GCP服务在管理层下使用GCE实例(VM)(不确定哪一个没有)。这包括App Engine,云功能,Kubernetes引擎(早期容器引擎),Cloud SQL等.GCE实例是那里最可定制的单元,因此只应在您的应用程序无法在任何其他GCP服务上运行时使用。大多数时候,人们使用GCE将其Pre-Prem应用程序转移到GCP,因为它只需要很少的更改。之后,他们可以选择将其他GCP服务用于其应用的单独组件。
Google App Engine GAE是GCP提供的第一项服务(在Google进入云业务之前很久)。它从0到无限制实例自动缩放(它在下面使用GCE)。它有2种口味的标准环境和灵活的环境。
标准环境非常快,当没有人使用你的应用程序时可以缩小到0实例,在几秒钟内可以放大和缩小,并且有专门的Google服务和库用于缓存,身份验证等。标准环境的警告是它非常严格因为它在沙箱中运行。您必须仅为特定编程语言使用托管运行时。最近添加的是Node.js(8.x)和Python 3.x.较旧的运行时可用于Go,PHP,Python 2.7,Java等。
灵活环境更加开放,因为它允许您使用自定义运行时,因为它使用docker容器。因此,如果运行时在提供的运行时中不可用,则始终可以为执行环境创建自己的dockerfile。需要注意的是,它需要至少运行一个实例,即使没有人正在使用你的应用程序,加上向上和向下扩展需要几分钟。
不要将GAE flexible与Kubernetes Engine混淆,因为后者使用实际的Kubernetes并提供更多的自定义和功能。当您需要无状态容器并且您的应用程序仅依赖HTTP或HTTPS协议时,GAE Flex非常有用。对于其他协议,Kubernetes Engine(GKE)或GCE是您唯一的选择。检查my other answer以获得更好的解释。
我将以对我有意义的方式解释它:
随着您的深入,您会失去一些灵活性,但您并不担心不必要的技术方面。您还需要支付更多费用,但您可以节省支持服务的时间和成本(IT部分):其他人(谷歌)正在为您做这件事。