我想知道App Engine和amp之间有什么区别;计算引擎。谁能给我解释一下其中的区别?
应用程序引擎是一个平台即服务。这意味着您只需部署代码,平台就会为您完成其他所有工作。例如,如果你的应用变得非常成功,应用引擎会自动创建更多的实例来处理增加的容量。
阅读更多关于应用程序引擎
计算引擎是一个基础设施即服务。您必须创建并配置自己的虚拟机实例。它给你更多的灵活性,通常成本比App Engine低得多。缺点是你必须自己管理你的应用程序和虚拟机。
阅读更多关于计算引擎
如果需要,你可以混合应用程序引擎和计算引擎。它们都能很好地与谷歌云平台的其他部分一起工作。
编辑(2016年5月):
一个更重要的区别是:如果没有请求进入,在App Engine上运行的项目可以缩小到零实例。这在开发阶段是非常有用的,因为您可以在不超过慷慨的免费实例小时配额的情况下工作数周。灵活的运行时(即“托管虚拟机”)需要至少一个实例持续运行。
编辑(2017年4月):
云计算功能(目前处于测试版)是在抽象方面比App Engine更高的级别-没有实例!它允许开发人员部署一小段代码,以响应不同的事件,其中可能包括HTTP请求、云存储中的更改等。
App Engine最大的不同在于功能是以100毫秒为单位定价的,而App Engine的实例只会在不活动15分钟后关闭。另一个优点是云函数立即执行,而调用应用程序引擎可能需要一个新的实例-冷启动一个新实例可能需要几秒钟或更长的时间(取决于运行时和你的代码)。
这使得云函数非常适合(a)很少的调用——不需要为了以防发生什么事情而保持一个实例是活的,(b)在实例经常旋转和关闭的情况下快速改变负载,以及可能的更多用例。
阅读更多关于云函数
简单地说:计算引擎给你一个服务器,你可以完全控制/负责。你可以直接访问操作系统,安装你想要的所有软件,通常是web服务器、数据库等……
在应用引擎中,你不需要管理任何底层软件的操作系统。你只需要上传代码(Java, PHP, Python或Go),瞧——它就会运行……
基本的区别是谷歌应用引擎(GAE)是平台即服务(PaaS),而谷歌计算引擎(GCE)是基础设施即服务(IaaS)。
要在GAE中运行应用程序,只需要编写代码并将其部署到GAE中,没有其他麻烦。由于GAE是完全可伸缩的,因此当流量增加时,它将自动获取更多实例,当流量减少时,它将减少实例。你将为你真正使用的资源收费,我的意思是,你将为你的应用程序真正使用的Instance-Hours, 传输数据, 存储等收费。但是限制是,你只能在Python, PHP, Java, NodeJS, .NET, Ruby和**Go中创建你的应用。
另一方面,GCE以虚拟机的形式为你提供了完整的基础设施。您可以完全控制这些虚拟机的环境和运行时,因为您可以在其中编写或安装任何程序。实际上,GCE是虚拟使用谷歌数据中心的方式。在GCE中,你必须手动配置你的基础设施来使用负载均衡器来处理可伸缩性。
GAE和GCE都是谷歌云平台的一部分。
2014年3月,谷歌宣布在应用引擎下推出名为托管虚拟机的新服务。托管虚拟机在应用平台、CPU和内存选项上为应用引擎应用程序提供了更多的灵活性。像GCE一样,您可以在这些虚拟机中为应用程序引擎应用程序创建自定义运行时环境。实际上,App Engine的托管虚拟机在一定程度上模糊了IAAS和PAAS之间的界限。
应用程序引擎为开发人员提供了控制谷歌计算引擎核心的能力,以及为谷歌计算引擎数据处理应用程序提供面向web的前端。
另一方面,计算引擎提供直接和完整的虚拟机操作系统管理。要呈现你的应用程序,你需要资源,而谷歌云存储是存储你的资产和数据的理想选择,无论它们是用来做什么。通过在全球各地托管,您可以快速访问数据。可靠性在99.95%的正常运行时间得到保证,谷歌还提供了备份和恢复数据的能力,信不信由你,存储是无限的。
您可以使用谷歌云存储管理您的资产,存储,检索,显示和删除它们。您还可以快速读写保存在云存储中的平面数据表。谷歌云阵容中的下一个是BigQuery。使用BigQuery,你可以在几秒钟内分析大量数据,我们说的是数百万条记录。访问是通过直接的UI或具象状态传输或REST接口来处理的。
正如您可能怀疑的那样,数据存储不是问题,而且可以扩展到数百TB。BigQuery可以通过一系列客户端库访问,包括Java、。net、Python、Go、Ruby、PHP和Javascript的客户端库。可以通过这些客户端库或web用户界面访问类似sql的语法NoSQL。最后,让我们谈谈谷歌云平台数据库选项,云SQL和云数据存储。
这里有一个主要的区别。云SQL适用于关系数据库,主要是MySQL,而云数据存储适用于使用noSQL的非关系数据库。使用Cloud SQL,您可以选择在美国、欧洲或亚洲托管,每个数据库实例有100gb的存储空间和16gb的RAM。
云数据存储免费提供每月最多50 K的读/写指令和每月存储1 GB的数据。但是,如果您超过了这些配额,就需要支付费用。App Engine还可以与谷歌云平台的其他不太知名、更有目标的成员合作,包括用于创建API后端的云端点,用于数据分析和趋势预测的谷歌预测API,或用于多语言输出的谷歌翻译API。
虽然你可以用App Engine自己做相当多的事情,但当你考虑到它能够轻松高效地与其他谷歌云平台服务一起工作时,它的潜力就会飙升。
或者让它更简单(因为有时我们无法区分GAE Standard和GAE Flex):
计算引擎类似于一个虚拟PC,例如,你可以在其中部署一个小型网站+数据库。您可以管理所有内容,包括对已安装磁盘驱动器的控制。如果你部署一个网站,你要负责设置DNS等。
谷歌应用程序引擎(标准)就像一个只读的沙箱文件夹,你可以在其中上传要执行的代码,而不用担心其他(是的:只读-有一组固定的库为你安装,你不能随意部署第三方库)。DNS /子域等更容易映射。
谷歌应用引擎(灵活)实际上就像一个完整的文件系统(不仅仅是一个锁定的文件夹),在这里您拥有比标准引擎更大的能力,例如,您有读/写权限,(但与计算引擎相比较少)。在GAE标准中,您已经为您安装了一组固定的库,并且您不能随意部署第三方库。在Flexible环境中,你可以安装你的应用所依赖的任何库,包括自定义构建环境(比如Python 3)。
尽管GAE Standard处理起来非常麻烦(尽管谷歌使它听起来很简单),但在压力下它的伸缩性非常好。这很麻烦,因为您需要测试并确保与锁定环境的兼容性,并确保您使用的任何第三方库不会使用您不知道的可能无法在GAE标准上工作的任何其他第三方库。在实践中需要更长的时间来设置它,但从长期来看,简单的部署可能会更有回报。
除了上面的应用程序引擎与计算引擎的注释之外,这里还包括与谷歌Kubernete引擎的比较,以及一些基于从小到大的广泛应用的经验的注释。欲了解更多要点,请参阅选择应用程序引擎环境页上谷歌云平台文档对应用程序引擎标准和Flex功能的高级描述。关于应用引擎和Kubernetes部署的另一个比较,请参阅Daz Wilkin 应用引擎Flex或Kubernetes引擎的帖子。
应用引擎标准
优点
缺点
App Engine Flex
谷歌Kubernetes引擎
计算引擎
谷歌计算引擎(GCE)是基础设施即服务(IaaS),而谷歌应用程序引擎(GAE)是平台即服务(PaaS)。你可以检查下面的图表,以更好的方式理解差异(取自并更好地解释在这里) -
标准环境非常快,当没有人使用你的应用程序时,可以缩小到0个实例,在几秒钟内扩大和缩小,并有专用的谷歌服务和库用于缓存,身份验证等。标准环境的警告是,它是非常限制性的,因为它运行在沙箱中。您必须仅针对特定的编程语言使用托管运行时。最近添加的是Node.js (8.x)和Python 3.x。旧的运行时可用于Go, PHP, Python 2.7, Java等。
Flexible Environment更加开放,因为它允许您在使用docker容器时使用自定义运行时。因此,如果您的运行时在提供的运行时中不可用,您总是可以为执行环境创建自己的dockerfile。需要注意的是,它要求至少有一个实例在运行,即使没有人在使用你的应用,再加上放大和缩小需要几分钟。
不要将GAE flexible与Kubernetes Engine混淆,因为后者使用了实际的Kubernetes,并提供了更多的自定义和特性。当您需要无状态容器并且应用程序仅依赖HTTP或HTTPS协议时,GAE Flex非常有用。对于其他协议,Kubernetes Engine (GKE)或GCE是您唯一的选择。查看我的另一个答案以获得更好的解释。
我会用一种对我来说有意义的方式来解释:
计算引擎:如果你是一个自己动手的人或有一个IT团队,你只是想在云上租一台具有特定操作系统(例如linux)的计算机,你就选择计算引擎。你什么事都得自己做。
/strong>:如果你是(例如)一个python程序员,你想在云上租一台预先配置好的计算机,它有运行的web服务器的Linux和最新的python 3,以及必要的模块和一些插件,以与其他外部服务集成,你选择应用程序引擎。
无服务器容器(云运行):如果你想部署本地设置环境的确切映像(例如:python 3.7+flask+sklearn),但你不想处理服务器,扩展等。在本地机器上(通过docker)创建一个容器,然后将其部署到谷歌Run。
无服务器微服务(云函数):如果你想写一堆api(函数)来做特定的工作,你去谷歌云函数。你只需专注于那些特定的功能,其余的工作(服务器、维护、扩展等)都是为你完成的,以便将你的功能公开为微服务。
随着深入,你会失去一些灵活性,但你不必担心不必要的技术方面。你也多花了一点,但你节省了时间和成本(IT部分):其他人(谷歌)正在为你做这件事。
如果你不想关心负载平衡、伸缩性等,将你的应用程序分割成一堆“无状态”的web服务是至关重要的,这些服务将任何持久化的内容写入单独的存储(数据库或blob存储)。然后你会发现云运行和云函数是多么棒。
就我个人而言,我发现谷歌Cloud Run是一个很棒的解决方案,在开发中绝对自由(只要是无状态的),将其作为web服务公开,docker您的解决方案,与Cloud Run一起部署。让谷歌成为你的IT和DevOps,你不需要关心扩展和维护。
我已经尝试了所有其他的选择,每一个都适合不同的目的,但谷歌运行只是棒极了。对我来说,它是真正的无服务器,而不会失去开发的灵活性。
托管在云中的虚拟机(vm)。在云技术出现之前,这些服务器通常被称为虚拟专用服务器(VPS)。您可以像使用物理服务器一样使用这些服务器,在其中安装和配置操作系统,安装应用程序,安装数据库,保持操作系统的最新状态,等等。这被称为基础设施即服务(IaaS)。
当您在数据中心的VM或服务器上运行现有应用程序,并希望轻松地将其迁移到GCP时,VM最有用。
App Engine托管并运行你的代码,而不需要你处理操作系统、网络,以及许多你必须在物理服务器或VM上管理的其他事情。可以把它看作一个运行时,它可以自动部署、版本化和扩展应用程序。这被称为平台即服务(PaaS)。
当你想要自动部署和自动扩展你的应用程序时,App Engine是最有用的。除非应用程序需要自定义操作系统配置,否则App Engine通常比手动配置和管理虚拟机更有优势。
如果你熟悉其他流行的服务:
谷歌计算引擎-> AWS EC2
谷歌应用程序引擎-> Heroku或AWS弹性豆茎
谷歌云函数-> AWS Lambda函数
App Engine是一个虚拟服务器。 计算引擎-它就像一个完整的服务器。