当前位置:  开发笔记 > 编程语言 > 正文

Google App Engine和Google Compute Engine有什么区别?

如何解决《GoogleAppEngine和GoogleComputeEngine有什么区别?》经验,为你挑选了8个好方法。

我想知道App Engine和Compute Engine之间有什么区别.任何人都可以向我解释这个区别吗?



1> Andrei Volgi..:

App Engine是一种平台即服务.这意味着您只需部署代码,平台即可为您完成其他任务.例如,如果您的应用程序变得非常成功,App Engine将自动创建更多实例来处理增加的卷.

阅读有关App Engine的更多信息

计算引擎是基础架构即服务.您必须创建和配置自己的虚拟机实例.它为您提供了更大的灵活性,并且通常比App Engine的成本低得多.缺点是您必须自己管理您的应用程序和虚拟机.

了解有关计算引擎的更多信息

如有必要,您可以混合App Engine和Compute Engine.它们都可以与Google云端平台的其他部分配合使用.

编辑(2016年5月):

一个更重要的区别:如果没有请求进入,在App Engine上运行的项目可以缩小到零实例.这在开发阶段非常有用,因为您可以持续数周而无需超过实时小时的慷慨免费配额.灵活的运行时(即"受管VM")需要至少一个实例不断运行.

编辑(2017年4月):

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

与App Engine最大的区别在于功能的价格是每100毫秒,而App Engine的实例仅在15分钟不活动后关闭.另一个优点是Cloud Functions立即执行,而对App Engine的调用可能需要一个新实例 - 冷启动新实例可能需要几秒或更长时间(取决于运行时和代码).

这使得云功能成为(a)罕见呼叫的理想选择 - 不需要保留实例以防万一发生,(b)快速改变实例经常旋转和关闭的负载,以及可能更多的用例.

阅读有关云功能的更多信息


App Engine提供您无法获得GCE的自动化水平(即便利性).在使用GAE的5年中,我从未必须安装,修补或配置任何软件,复制磁盘等.它还提供相对强大的负载和容量管理 - 根据需要自动启动和关闭实例.总的来说,这些功能允许Google在几小时内收取更多费用,许多公司和个人开发者都乐于支付这笔费用,因为GAE节省了大量时间,可以更好地用于改进自己的应用程序或以其他方式赚钱.
谷歌还提供另一项服务:Container Engine,专注于码头工人和集装箱管理(kubernetes).
如果我想通过Docker部署,使用GAE和GCE之间有什么区别(除了定价)?
快速评论“另一个优势是云功能可以立即执行”。从现实生活中的经验来看,它们具有冷启动的相同缺点,这会使冷启动只需一个简单的sum(a,b){return a + b}需要几分钟
嗨,Volgin,您能详细说明"计算引擎"的成本远低于App Engine的原因.谢谢

2> Mostafiz Rah..:

基本区别在于Google App Engine(GAE)是平台即服务(PaaS),而Google Compute Engine(GCE)是基础架构即服务(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之间的边界.


托管虚拟机现在称为App Engine灵活环境

3> Moshe Shaham..:

简单地说:计算引擎为您提供了一个您完全控制/负责的服务器.您可以直接访问操作系统,并安装所需的所有软件,通常是Web服务器,数据库等...

在app引擎中,您不管理任何底层软件的操作系统.你只上传代码(Java,PHP,Python或Go)和瞧 - 它只是运行...

App Engine的节省吨头痛的,尤其是对于没有经验的人,但它有2周显著的缺点:1,更昂贵的(但它确实有它的计算引擎不无配额),你有较少的控制2,因此有些事情是只是不可能的,或者只能以一种特定的方式实现(例如保存和写入文件).


"它只是运行",你认真吗?我认为我不是唯一一个在将代码调整到GAE时遇到麻烦的人,当谈到文件上传或后台进程时
您可以通过Docker将VM部署到GAE,以便管理操作系统等.https://cloud.google.com/appengine/docs/managed-vms/

4> strangetimes..:

或者使其更简单(因为有时我们无法区分GAE标准和GAE Flex):

计算引擎类似于虚拟PC,例如,您可以在其中部署小型网站+数据库.您可以管理所有内容,包括控制已安装的磁盘驱 如果您部署网站,则负责设置DNS等.

Google App Engine(标准版)就像一个只读沙盒文件夹,您可以在其中上传要执行的代码,而不用担心其余部分(是:只读 - 为您安装了一组固定的库,您无法部署第三方图书馆随意).DNS /子域等更容易映射.

谷歌应用引擎(灵活)实际上就像一个完整的文件系统(不仅仅是一个锁定的文件夹),你有比标准引擎更多的功能,例如你有读/写权限,(但与计算引擎相比较少) ).在GAE标准中,您为您安装了一组固定的库,您无法随意部署第三方库.在Flexible环境中,您可以安装应用程序所依赖的任何库,包括自定义构建环境(例如Python 3).

尽管GAE标准处理起来非常麻烦(尽管Google让它听起来很简单),但是当它处于压力之下时,它的扩展性非常好.这很麻烦,因为您需要测试并确保与锁定环境的兼容性,并确保您使用的任何第三方库不使用您不知道哪些可能无法在GAE标准上运行的其他第三方库.在实践中设置它需要更长的时间,但对于简单部署而言,从长远来看可能会更有价值.



5> alexamies..:

除了上面的App Engine与计算引擎注释之外,此处的列表还包括与Google Kubernete Engine的比较以及基于从小到大的各种应用程序的经验的一些注释.有关更多要点,请参阅Google Cloud Platform文档,在页面上选择App Engine环境,对App Engine Standard和Flex中的功能进行高级描述.有关App Engine和Kubernetes部署的另一个比较,请参阅Daz Wilkin App Engine Flex或Kubernetes Engine的帖子.

App Engine标准版

优点

对于低流量应用而言,直接成本和维护应用的成本非常经济.

自动缩放很快.App Engine中的自动缩放基于轻量级实例类F1-F4.

版本管理和流量分割快速方便.这些功能本身内置于App Engine(标准版和Flex版)中.

最小的管理,开发人员只需关注他们的应用程序.与GKE一样,开发人员无需担心像GCE一样可靠地管理VM,也不需要像GKE一样了解集群.

访问数据存储区很快.首次发布App Engine时,运行时与Datastore位于同一位置.稍后,数据存储区被拆分为独立产品Cloud Datastore,但App Engine Standard与数据存储区共存的位置仍然存在.

支持访问Memcache.

App Engine沙箱非常安全.与GCE或其他虚拟机上的开发相比,您需要自己努力防止虚拟机在操作系统级别被接管,默认情况下,App Engine Standard沙箱相对安全.

缺点

通常比其他环境更受限制实例更小.虽然这有利于快速自动扩展,但许多应用程序可以从更大的实例中受益,例如GCE实例大小高达96个内核.

网络未与GCE集成

无法将App Engine置于Google Cloud Load Balancer之后.仅限于支持的运行时:Python 2.7,Java 7和8,Go 1.6-1.9和PHP 5.5.在Java中,有一些对Servlet的支持,但不支持完整的J2EE标准.

App Engine Flex

优点

可以使用自定义运行时

与GCE网络的本地集成

版本和流量管理方便,与标准相同

较大的实例大小可能更适合于大型复杂应用程序,尤其是可以使用大量内存的Java应用程序

缺点

网络集成并不完美 - 不与内部负载平衡器或共享虚拟私有云集成

访问托管的Memcache通常不可用

谷歌Kubernetes引擎

优点

与容器的本机集成允许自定义运行时和对集群配置的更大控制.

体现了许多使用虚拟机的最佳实践,例如不可变的运行时环境以及回滚到以前版本的简单能力

提供一致且可重复的部署框架

基于开放标准,特别是Kubernetes,用于云和本地之间的可移植性.

可以使用Docker容器和Google Container Registry完成版本管理

缺点

交通分裂和管理是自己动手,可能利用Istio和Envoy

一些管理开销

一段时间可以提升Kubernetes概念,例如pod,部署,服务,入口和名称空间

需要暴露一些公共IP,除非使用私有群集,现在处于测试阶段,消除了这种需求,但您仍然需要提供对将运行kubectl命令的位置的访问.

监控集成并不完美

虽然Kubernetes Engine本身支持L3内部负载平衡,但L7内部负载平衡是自己动手,可能利用Envoy

计算引擎

优点

易于提升 - 无需增加Kubernetes或App Engine,只需重复使用您之前的经验.这可能是直接使用Compute Engine的主要原因.

完全控制 - 您可以直接利用许多计算引擎功能并安装最新的所有您喜欢的东西,以保持最前沿.

不需要公共IP.如果在公共IP上暴露任何内容,某些遗留软件可能难以锁定.

您可以利用容器优化的操作系统来运行Docker容器

缺点

虽然您可以重复使用来自各个地方的解决方案,包括Cloud Launcher,但大多数情况下都是自己动手,这对于提高可靠性和安全性可能具有挑战性.

更多管理开销.Compute Engine有许多管理工具,但他们不一定了解您如何部署应用程序,例如App Engine和Kubernetes Engine监控工具.

自动缩放基于GCE实例,可能比App Engine慢

趋势是在雪花GCE实例上安装软件,这可能需要一些维护工作



6> noob..:

如前所述,Google Compute Engine(GCE)是基础架构即服务(IaaS),而Google App Engine(GAE)是平台即服务(PaaS)。您可以检查下图,以更好地理解它们之间的区别(来自此处并作了更好的解释)-

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服务和库的缓存,身份验证等。因为它在沙盒中运行 您只需要对特定的编程语言使用托管运行时。最近添加的是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是您的唯一选择。检查我的其他答案以获得更好的解释。



7> Hassan Azimi..:

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云平台平台服务能够轻松高效地工作时,它可能会飙升.



8> Ali Khosro..:

我将以一种对我有意义的方式进行解释:

Compute Engine:如果您是自己动手或拥有IT团队,并且只想在具有特定OS(例如linux)的云上租用计算机,则可以使用Compute Engine。您必须自己做所有事情。

App Engine:例如,如果您是python程序员,并且想在云上租用预配置的计算机,该计算机具有运行Web服务器的Linux和具有必要模块以及与之集成的某些插件的最新python 3其他外部服务,则可以使用App Engine。

无服务器容器(云运行):如果您想部署本地安装环境的精确映像(例如:python 3.7 + flask + sklearn),但又不想处理服务器,扩展等,则创建一个容器在本地计算机上(通过docker),然后将其部署到Google Run。

无服务器微服务(云功能):如果您想编写一堆可以完成特定工作的API(功能),则可以使用Google云功能。您只需要关注那些特定的功能,就可以完成其余的工作(服务器,维护,扩展等),以便将功能公开为微服务。

当您深入研究时,会失去一些灵活性,但不必担心不必要的技术方面。您还可以支付更多,但可以节省时间和成本(IT部门):其他人(google)可以帮您实现。

如果您不想关心负载平衡,扩展等问题,将您的应用程序拆分为一堆“无状态” Web服务非常重要,该服务可将持久性内容写入单独的存储(数据库或Blob存储)中。然后您将发现Cloud Run和Cloud Functions多么出色。

我个人发现Google Cloud Run是一个很棒的解决方案,具有绝对的开发自由(只要是无状态的),可以将其作为Web服务公开,可以为您的解决方案提供泊坞窗,并通过Cloud Run进行部署。让google作为您的IT和DevOps,您无需关心扩展和维护。

我尝试了所有其他选项,每个选项都有不同的用途,但Google Run真棒。对我来说,这是真正的无服务器,同时又不会失去开发的灵活性。

推荐阅读
jerry613
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有