在GCE上部署云应用技巧及优劣势比较

简介:

云应用开发者应该仔细选择IaaS平台。为了帮助你做出正确的选择,下面是对在GCE上部署云应用的利弊分析。

在GCE上部署云应用技巧及优劣势比较

云应用开发者应该在选择一个用于开发和部署云应用的基础架构即服务(IaaS)平台之前做好功课。选择错误的平台可能会导致不可预测的定价和计费模式,限制开发语言,限制操作系统的选择,几乎无法帮助客户履行合规性要求,并无法提供足够的安全性。

让我们来看看在一个比较流行的IaaS平台:谷歌计算引擎(GCE)上开发和部署云应用的的优缺点。GCE提供运行在谷歌管理的数据中心里的虚拟机(VM)。它让外部的企业和软件开发人员在谷歌的全球基础架构上运行他们自己的软件。那些用于Gmail,地图和其他谷歌应用的硬件和软件栈,现在也用来托管GCE的虚拟机。GCE采用Linux基于内核的VM虚拟化管理软件(KVM)。它支持多种Linux发布版本和Windows。

Google App Engine(GAE)是在2008年发布,而GCE则是在2012年6月宣布推出。GCE以及GAE被视为Google Cloud Platform中最重要的两个服务,谷歌云平台是在2012年5月推出并在2013年5月全面启用。

GCE的特点

现今,与GCE有关的用例常常包括了计算密集型应用,如视频转码和渲染,基因组测序,聚类,机器学习和分析,解决的问题与大数据系统差别不大。

虽然GAE为开发者提供了一个“现成”的开发和部署环境,但GCE仍然也是一个“自己动手”的环境。客户可以创建自己的实例然后进行管理,包括虚拟机上运行的软件。GCE提供各种工具,让你可以与GCE的实例交互和管理。例如,你可以启动和停止实例,附加磁盘存储和配置网络访问。大部分这些事情GAE会在应用需要时自动做好。

要开始使用GCE的时候,你首先需要在开发者控制台,与GCE交互的三种工具之一(一个基于Web的用户界面)中创建一个GCE项目。一个项目是关于你正在开发的应用程序信息的集合,它充当你的计算引擎的容器。磁盘,防火墙,网络和虚拟机都会关连(并包含)在一个单独的项目中。

用户可以使用开发者控制台,加上GCloud,一个用来管理实例和资源的命令行接口,或GCE API(一个RESTful的接口)与GCE实例和资源交互。

GCE提供几种机器类型的支持。每一种机器类型提供了预定义的配置选项集合,例如虚拟CPU的数量及虚拟RAM的容量。机器类型包括:

  • 标准--内存和处理能力的平衡组合
  • 高内存--相对于处理能力来说更高内存容量的选项
  • 高CPU--相对于存储容量来说更高处理能力的选项
  • 共享型--更便宜,更小的配置

GCE支持GAE使用的托管虚拟机环境在可配置的GCE虚拟机上运行GAE应用。此功能为GAE开发者提供了更多的灵活性,通过提供更多的操作系统选择,更多的语言运行时间选择,以及更多的CPU和内存选项来运行GAE应用。GAE会自动为开发人员管理GCE创建的VM。

GCE为你提供了可抢占的实例,可以用比平常更低的价格创建和运行GCE实例。但GCE可以终止一个可抢占的实例并拿走部分或全部的资源,如果这个资源正被其他某些价格较高的(不可抢占的)实例所需的时候。GCE的可抢占实例数量是有限的,所以在高峰使用期要创建一个可抢占的实例也许不大可能成功。

一个GCE VM的基础软件包括了操作系统(及其他系统软件)和应用软件,这个基础软件通常被称为镜像。GCE支持数个标准的镜像(其他IaaS平台,例如AWS也一样)。但是你可以创建自己的自定义镜像,可以从头开始或是修改某个标准镜像。开发者通常有自己想用的操作系统,开发语言运行环境等等。他们可以直接将这些软件包含到他们的镜像中。

GCE支持几种开发人员可以选择的存储系统。[2] 磁盘持久化存储是用于块存储的主要存储机制,一般被选为存储文件系统数据的存储机制。它还提供了针对非结构化数据的谷歌云存储,Cloud Datastore,一个NoSQL数据库和CloudSQL,一个MySQL的存储解决方案。

跟GAE一样,GCE也利用了谷歌的海量网络资源。数据在GCE 虚拟机之间传输的速度比其他依赖互联网传输数据的云平台更快。使用GCE,你会获得一些默认的网络和防火墙功能——项目中的所有实例都连接于一个网络,而实例只能与项目之中的其他实例通信。但你可以配置额外的网络和防火墙功能。[3]

GCE也支持全球负载平衡,借由把传入请求分配于数个实例群和数个区域之间,从而可以实现最大的性能,吞吐量和可用性。

类似于GAE和AWS,GCE将世界划分为地区和区域。一个区域对应于一个物理数据中心,而一个地区则代表一个大的地理范围内数个区域的集合。目前GCE支持三个地区和八个区域。

GCE提供一个SLA保证每月99.95%的正常运行时间。AWS也提供相同的保证。

使用GCE的技巧

GAE和大多数用于开发和部署云应用的平台的利弊列表上主要有几点。虽然定价对每个云平台来说都是挑战,但GCE和AWS的定价和计费模式变化如此之频繁让我们很难给出定价方面的建议。在选择过程中,请了解每个候选平台的最新定价/计费模型。

优点:GCE的客户能够利用所有谷歌在云自动化方面的创新,这些创新已经在谷歌的高压环境下测试过了。

GCE使用谷歌的私有全球光纤网络(也就是谷歌基础架构的骨干)来连接数据中心里的虚拟机,这自然比任何其他的云平台更快,包括使用公共互联网的AWS。

GCE的标准计算实例与AWS相比成本较低,除非你愿意预先绑定支付AWS三年的预留实例。如果谷歌继续沿用摩尔定律的方式定价,那么绑定三年期的AWS 预留实例增加了未来的降价可能会抵消一些你预期省下的成本的风险。对于高内存高CPU的虚拟机来说,谷歌GCE和AWS定价的比较结果是比较复杂的——其中没几个有可比性的项目。

GCE的定价对小一点的企业来说是一大优点,因为它是以每分钟收费的,最低收费则是10分钟,而AWS是以小时收费,不足一小时按一小时计。

GCE能够让你把一个持久化读/写磁盘以只读的方式挂到一个虚拟机并将它连接到同一区域内的数百台VM。这允许你在短时间内将数据分发给大量的工作节点。AWS的客户仍在挣扎于寻找一种在大量的AWS实例之间分享数据和信息的方式。

GCE可以基于负载的增加或减少,在管理实例组内添加或删除虚拟机来自动执行负载平衡。这允许应用程序处理流量的增加和当资源需求较低时降低成本。然而,GCE的负载平衡没有那么自动,因为GCE需要用户指定自动调节的策略,并且它不能用于标准实例,只能在管理实例上使用。AWS的弹性负载均衡会执行类似的功能,但它需要预热(比如,配置负载均衡器使其在预期流量的范围内有适当级别的容量)。GCE允许地区之间的负载平衡并支持基于内容的路由,而这个亚马逊的EC2则做不到。

GCE会即时加密那些写入永久磁盘的数据,传输,然后将其以加密的格式存储。它已经完成了ISO 27001,SSAE-16,SOC 1,SOC 2,及SOC 3的认证。

GCE可以让你以非常具有成本效益的方式使用可抢占的虚拟机来运行大批量和计算的作业。

缺点:GCE仍在服务方面,地区(3比11),客户的数量,产品在存储,计算,数据库,网络和配置管理的广度落后于AWS。AWS的容量是排在它之后的最大的12个竞争对手加起来的五倍。AWS在云市场的占有率是28%;微软是10%而Google是5%(包括GAE和GCE)。

AWS支持多种操作系统,包括Amazon Linux、Red Hat Enterprise Linux、CentOS、Debian,SUSE Linux Enterprise Server、Ubuntu、Oracle Enterprise Linux、FreeBSD和Windows(2003 R2,2008,2008 R2,2012)。GCE支持CentOS,Red Hat Enterprise Linux,Debian,SUSE Linux Enterprise Server、Ubuntu和Windows Server 2008 R2。(对Windows的支持仍在Beta模式。)尽管AWS略胜一筹,但它并没有显著的优势。

GCE在合规方面远远落后于AWS。AWS的合规服务完胜GCE的合规服务。AWS可以帮助企业处理大部分他们可能需要满足的法规。GCE(和Google Cloud Platform)正在尽力赶上AWS的合规服务。

围绕GCE和谷歌云平台的服务数量与AWS和微软Azure相比是较小的。在Forrester的企业公有云平台报告中,作者列出28个重要的AWS服务,22个微软的云服务和只有6个谷歌云平台的服务,包括GAE,GCE,Google Cloud Storage、Google Cloud Datastore、Google Cloud SQL和BigQuery。

GCE缺乏广泛的地理分布。GCE只有三个地区(美国,欧洲和亚洲)和三个可用区域。而AWS,有着11个地区和超过20个的可用性区域。如果你需要一个具有广泛的地理多样性的静态网站并不介意为此付费,又或者你需要托管的大量数据,例如视频或文件下载,建议你使用AWS EC2和AWS S3。


本文作者:佚名

来源:51CTO

相关文章
【上云基础系列-02】企业推荐!必学必会的上云标准架构(弹性架构)
本文介绍上云标准弹性架构,针对企业业务发展需求,推荐使用多服务器的弹性架构而非单体架构。方案包含负载均衡、NAT网关、云服务器ECS、云数据库RDS等组件,确保业务的负载分担、冗余备份及平滑扩展。通过统一公网暴露面管理和VPC网络设计,保障架构的稳定性、安全性和可扩展性。该架构适用于中小企业上云,避免性能瓶颈和迭代升级困难,支持业务持续发展。更多内容可参考下方演进说明总览。
多云网络部署存在挑战,F5分布式云应用简化方案解读
多云网络部署存在挑战,F5分布式云应用简化方案解读
97 0
作为开发者在云上会建设怎样的世界?
随着技术圈新技术的“层出不穷”,尤其是云计算的兴起为技术开发者们创造了前所未有的机遇,让大家能够通过云服务建设出一个个令人惊叹的应用,而且随着技术的不断发展,云服务已经深入到了我们工作和生活的各个角落,从简单的数据存储到复杂的机器学习任务,云服务提供了一个强大且易于扩展的平台,让我们可以实现那些曾经只能幻想的创意。那么本文就来分享一下聚焦于开发者在阿里云云上建设世界的经历,探讨在云服务中遇到的挑战以及如何克服这些挑战。
72 6
作为开发者在云上会建设怎样的世界?
构建高效稳定的云基础设施:最佳实践与案例分析
【5月更文挑战第31天】本文旨在探讨如何通过采纳现代云基础设施的最佳实践,构建一个高效且稳定的运维环境。文章将详细讨论云计算资源管理、自动化工具的应用、持续集成/持续部署(CI/CD)流程的优化以及监控和日志分析的重要性。通过对具体案例的分析,我们展示了这些策略如何在实际环境中提升系统的可靠性和性能,同时减少潜在的风险和成本。
《阿里云云原生 Serverless 案例集》——典型案例——互联网服务-wolai
《阿里云云原生 Serverless 案例集》——典型案例——互联网服务-wolai
356 0
一文搞懂传统单节点网站的 Serverless 上云
阿里云函数计算 FC 是事件驱动的全托管计算服务,真正的无需去考虑服务器的运维管理,只需要完成开发的代码进行上传,函数计算会通过角色策略去规划计算资源,弹性的方式执行函数,最后高效的执行部署。优雅!
一文搞懂传统单节点网站的 Serverless 上云
3D实时云渲染系统搭建部署建设方案
依托于3D实时云渲染技术,目前这类平台对于很多设计或者影视特效公司来说,效率得到了极大的提升。在一些影视特效、动漫、设计、unity模型等领域,需要将设计好的模型呈现出来立体的效果,以前是在电脑上,利用本地设备性能去执行这项工作。而随着5G和云服务的发展,使用**云端服务器**来完成这些工作,可以大大提高其工作效率。
1177 0
3D实时云渲染系统搭建部署建设方案
浅谈云原生模式下的建站系统应用设计
互联网自诞生之初,信息发布与浏览就是其基本使命之一。而网站做为信息的载体,因其兼具标准化与个性化的特性,至今仍被企业做为在网络上展示形象、发布内容的首选媒介。如今云原生技术及其应用渐成行业标准,在此趋势之下,“建站”这一公认的“古典互联网”行业该如何调整自身架构设计以满足企业信息发布者对于工具的便捷性、安全性以及网站随时随地可以访问的要求呢?
375 0
浅谈云原生模式下的建站系统应用设计
云服务平台的架构及优势(下)
软件架构是一个包含各种组件的软件系统结构,这些组件包括但不限于:接口服务,应用服务,数据库服务,缓存服务,消息服务,日志服务,存储服务,网络及通讯服务等等, 它们彼此存在关联或和平台环境存在关联。系统架构设计的目标和目的就是协调和解决这些组件的边界相关点。
2165 1