我想知道App Engine和Pro之间的区别是什么?计算引擎是。有人可以向我解释一下这个区别吗?
答案 0 :(得分:368)
App Engine 是一种平台即服务。这意味着您只需部署代码,平台即可为您完成其他任务。例如,如果您的应用程序变得非常成功,App Engine将自动创建更多实例来处理增加的数量。
计算引擎是基础架构即服务。您必须创建和配置自己的虚拟机实例。它为您提供了更大的灵活性,并且通常比App Engine的成本低得多。缺点是您必须自己管理您的应用程序和虚拟机。
Read more about Compute Engine
如有必要,您可以同时混合App Engine和Compute Engine。它们都适用于Google Cloud Platform的其他部分。
编辑(2016年5月):
一个更重要的区别:如果没有请求进入,在App Engine上运行的项目可以缩小到零实例。这在开发阶段非常有用,因为您可以持续数周而无需超过实例的慷慨免费配额 - 小时。灵活的运行时(即“托管的虚拟机”)需要至少一个实例不断运行。
编辑(2017年4月):
云功能(目前处于测试阶段)在抽象方面是App Engine的下一级别 - 没有实例!它允许开发人员部署一小部分代码,这些代码可以响应不同的事件而执行,这些事件可能包括HTTP请求,云存储中的更改等。
App Engine的最大区别在于功能的价格是每100毫秒,而App Engine的实例仅在15分钟不活动后关闭。另一个优点是Cloud Functions立即执行,而对App Engine的调用可能需要一个新实例 - 冷启动新实例可能需要几秒或更长时间(取决于运行时和代码)。
这使得Cloud Functions非常适合(a)罕见的调用 - 不需要保存实例以防万一发生,(b)快速更改实例经常旋转和关闭的负载,以及可能更多的用例。 / p>
答案 1 :(得分:74)
基本区别在于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以虚拟机的形式为您提供完整的基础架构。您可以完全控制这些虚拟机'环境和运行时,因为您可以在那里编写或安装任何程序。实际上,GCE是虚拟使用Google数据中心的方式。在GCE中,您必须使用 Load Balancer 手动配置基础架构以处理可伸缩性。
GAE和GCE都是Google Cloud Platform的一部分。
更新:2014年3月,Google在App Engine下宣布了一项名为托管虚拟机的新服务。托管虚拟机为应用程序引擎应用程序提供了比应用程序平台,CPU和内存选项更多的灵活性。与GCE一样,您可以在这些VM中为应用程序引擎应用程序创建自定义运行时环境。实际上,App Engine的托管虚拟机在一定程度上模糊了IAAS和PAAS之间的边界。
答案 2 :(得分:50)
简单地说:计算引擎为您提供了一个您完全控制/负责的服务器。您可以直接访问操作系统,并安装所需的所有软件,通常是Web服务器,数据库等......
在应用引擎中,您无法管理任何底层软件的操作系统。你只上传代码(Java,PHP,Python或Go)并且瞧 - 它只是运行......
App引擎可以避免大量头痛,特别是对于没有经验的人,但它有两个明显的缺点: 1.更贵(但确实有一个免费的配额,计算引擎没有) 2.你控制较少,因此某些事情是不可能的,或者只能以一种特定的方式实现(例如保存和写入文件)。
答案 3 :(得分:22)
或者使其更简单(因为有时我们无法区分GAE标准和GAE Flex):
计算引擎类似于虚拟PC,例如,您可以在其中部署小型网站+数据库。您可以管理所有内容,包括控制已安装的磁盘驱如果您部署网站,则需要设置DNS等。
Google App Engine(标准版)就像一个只读的沙盒文件夹,您可以在其中上传要执行的代码,而不用担心其余的(是:只读 - 有一个修复的为您安装的一组库,您无法随意部署第三方库)。 DNS /子域等更容易映射。
Google App Engine(灵活)实际上就像是一个完整的文件系统(不仅仅是一个锁定的文件夹),在这里您拥有比标准引擎更强大的功能,例如:您具有读/写权限(但与计算引擎相比较少)。在GAE标准中,您为您安装了一组固定的库,您无法随意部署第三方库。在Flexible环境中,您可以安装应用程序所依赖的任何库,包括自定义构建环境(例如Python 3)。
尽管GAE标准处理起来非常麻烦(虽然Google让它听起来很简单)但是当它面临压力时,它的扩展性非常好。这很麻烦,因为您需要测试并确保与锁定环境的兼容性,并确保您使用的任何第三方库不使用您不知道哪些可能无法在GAE标准上运行的其他第三方库。在实践中设置它需要更长的时间,但在长时间内进行简单部署可能会更有价值。
答案 4 :(得分:22)
除了上面的App Engine与计算引擎注释之外,此处的列表还包括与Google Kubernete Engine的比较以及基于从小到大的各种应用程序的经验的一些注释。有关更多要点,请参阅Google Cloud Platform文档,在Choosing an App Engine Environment页面上对App Engine标准版和Flex版中的功能进行高级描述。有关App Engine和Kubernetes部署的另一个比较,请参阅Daz Wilkin的帖子App Engine Flex or Kubernetes Engine。
App Engine标准
赞成
缺点
App Engine Flex
赞成
缺点
Google Kubernetes Engine
赞成
缺点
计算引擎
赞成
缺点
答案 5 :(得分:10)
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云平台平台服务的轻松高效工作能力时,它可能会飙升。
答案 6 :(得分:6)
正如已经说明的那样,Google Compute Engine(GCE)是基础架构即服务(IaaS),而Google App Engine(GAE)是平台即服务(PaaS)。您可以检查下图,以更好地理解差异(来自here,并作了更好的解释)-
Google Compute Engine
GCE是Google Cloud Platform(GCP)提供的一项重要服务,因为大多数GCP服务都在管理层下面使用GCE实例(VM)(不确定哪个不这样做)。其中包括App Engine,Cloud Functions,Kubernetes Engine(早期容器引擎),Cloud SQL等。GCE实例是其中最可自定义的单元,因此仅当您的应用程序无法在任何其他GCP服务上运行时才应使用。人们大多数时候都使用GCE将其本地应用程序转移到GCP,因为它需要的更改很少。以后,他们可以选择将其他GCP服务用于其应用程序的单独组件。
Google App Engine
GAE是GCP提供的第一项服务(早在Google进入云业务之前)。它会自动从0缩放到无限实例(在下面使用GCE)。它具有2种口味:标准环境和灵活环境。
Standard Environment确实非常快,当没有人使用您的应用程序时,它可以缩减为0个实例,可以在数秒之内扩展和缩减,并且具有专用于Google的服务和库来进行缓存,身份验证等。Standard Environment的警告在于限制非常严格,因为它在沙箱中运行。您只需要对特定的编程语言使用托管运行时。最近添加的是Node.js(8.x)和Python3.x。较早的运行时适用于Go,PHP,Python 2.7,Java等。
Flexible Environment更开放,因为它允许您使用自定义运行时,因为它使用docker容器。因此,如果您的运行时在提供的运行时中不可用,则始终可以为执行环境创建自己的dockerfile。需要注意的是,即使没有人使用您的应用程序,它也需要至少运行1个实例,并且放大和缩小需要几分钟。
不要将GAE flexible与Kubernetes Engine混淆,因为后者使用了实际的Kubernetes,并提供了更多的自定义和功能。当您需要无状态容器且应用程序仅依赖HTTP或HTTPS协议时,GAE Flex很有用。对于其他协议,Kubernetes Engine(GKE)或GCE是您的唯一选择。检查my other answer以获得更好的解释。
答案 7 :(得分:4)
答案 8 :(得分:2)
如果您熟悉其他受欢迎的服务:
Google Compute Engine-> AWS EC2
Google App Engine-> Heroku或AWS Elastic Beanstalk
Google云功能-> AWS Lambda函数
答案 9 :(得分:0)
我将以一种对我有意义的方式进行解释:
PaaS(计算引擎):如果您是自己动手或拥有IT团队,并且只想在具有特定操作系统的云上租用一台计算机(例如, linux),您可以使用Compute Engine。您必须自己做所有事情。
SaaS(App引擎):如果您(例如)是python程序员,并且想在云上租用预配置的计算机,而该计算机上装有运行Web服务器的Linux以及带有必要模块和一些插件以与其他外部服务集成的最新python 3,请使用App Engine。
微服务(云函数):如果您想编写一堆可以完成特定工作的API(函数),则可以使用Google Cloud Functions。您只需关注那些特定的功能,剩下的工作便会完成,以将您的功能公开为微服务。
随着深入,您会失去一些灵活性,但是您不必担心不必要的技术方面。您还可以支付更多费用,但可以节省支持服务(IT部门)的时间和成本:其他人(google)可以为您完成这项工作。
答案 10 :(得分:0)
托管在云中的虚拟机(VM)。在云之前,这些通常称为虚拟专用服务器(VPS)。您可以使用与物理服务器相同的方式来使用这些物理服务器,在该物理服务器中,您可以安装和配置操作系统,安装应用程序,安装数据库,使操作系统保持最新状态,等等。这称为基础架构-即服务(IaaS)。
当在数据中心的VM或服务器上运行现有应用程序并希望轻松将其迁移到GCP时,VM最有用。
App Engine托管并运行您的代码,而无需您处理操作系统,网络以及您必须通过物理服务器或VM管理的许多其他事情。将其视为运行时,可以自动部署,版本化和扩展您的应用程序。这就是所谓的平台即服务(PaaS)。
如果要自动部署和自动缩放应用程序,App Engine最有用。除非您的应用程序需要自定义操作系统配置,否则App Engine通常比手工配置和管理VM更具优势。