当前位置: 首页 > 科技观察

如何为您的应用程序选择最合适的云平台

时间:2023-03-14 09:00:52 科技观察

亚马逊可能在速度和成本方面比Azure或谷歌有优势,但反之亦然——实际情况取决于我们具体的工作负载类型。我们如何为自己的应用选择最合适的云平台匹配方案?这个问题正困扰着越来越多的企业IT部门,要找到确切的答案并不容易。通常,实际的选择取决于应用程序中数据的敏感程度。但在其他情况下,公共云与私有云的考虑也很重要。同时,业务目标和速度或价格是否需要优化,也会极大地影响最终决策。当然,性能和成本都不好衡量,我们也没有办法跨不同的云环境做直观的比较。在今天的文章中,我们将联合使用CliQr测试方法,帮助客户在三个流行的云选项——AmazonWebServices、MicrosoftAzure和GoogleCloudPlatform中做出考量并找到最合适的示例应用程序和示例方案合集.备注作为企业级云管理平台,CliQrCloudCenter的作用是进行以下一系列的黑盒测试。下面提到的各种应用都是使用CliQr的应用配置机制建模的,通过单一的常量模式在不同的云平台上配置多个应用层。除了提供治理(即谁负责哪些应用程序去哪里)和计量(即特定实施成本)功能外,CliQrCloudCenter还包括一个黑盒基准测试功能,旨在将每个应用程序部署到目标云中,使用JMeter提供为其加载并绘制数据吞吐量图表(即每秒事务数),用于本次测试评估的每个云的每小时使用成本。这里的结果不一定符合对特定云解决方案的普遍看法。相反,这部分结果的目的是回答“哪种云适合一个应用程序”这个问题。随着时间的推移,微小的差异可能会对单个应用程序产生巨大的后续影响,此处提供的结果不应直接推广到其他场景。应用程序本系列测试将使用以下应用程序。PetClinic:这个SpringFrameworkJava示例应用程序是一个三层Web应用程序,它使用单个Nginx虚拟机作为负载均衡器,两个Tomcat虚拟机作为应用程序服务器,以及一个MySQL虚拟机作为数据库。此应用程序中的所有虚拟机均使用CentOS6。它的数据库服务器连接到一组2GB的块存储卷。OpenCart:这个流行的开源LAMP堆栈存储软件包使用单个Apache虚拟机作为Web服务器,使用MySQL虚拟机作为数据库。两组虚拟机都配置为运行Ubuntu12.04。与PetClinic类似,数据库服务器连接到一组2GB的块存储卷。BlogEngine:使用单个虚拟机来实现这套用IIS和MicrosoftSQLServer构建的.Net博客平台。在这个组合中,我们已经有了三种不同的操作系统,三种不同的编程语言,三种不同的应用层组合,这让我们的视野更加广阔。实例类型对不同的云选项进行基准测试很困难,因为很难对不同类型的实例进行直接的一对一比较。显然,任何测试实例类型组合的努力都会导致一些有争议的结论。在本实验中,我们使用以下配置。供应商实例CPU内存Googlen1-standard-227.5Googlen1-standard-4415Googlen1-standard-8830Googlen1-standard-161660Amazonm4.large28Amazonm4.xlarge416Amazonm4.2xlarge832Amazonm4.4xlarge1664MicrosoftMedium(A2)23.5MicrosoftLarge(A3))47MicrosoftUltra-large(A4)814这里的目标是比较不同云解决方案的CPU和内存配置水平。其中Google和Amazon实例基本上可以直接一对一比较,而Azure实例类型只比较CPU资源。测试过程在每次测试中,CliQr基准测试工具会将完整的应用程序部署到待测试的云环境中,创建一个额外的虚拟机来托管JMeter客户端,执行交付的JMeter脚本,并测量事务吞吐量。***关闭所有虚拟机。PetClinic中的JMeter脚本提供5000个事务,OpenCart6000和BlogEngine7000。特定测试中的所有虚拟机都使用相同的实例类型。例如,Google对PetClinic的n1-standard-4测试需要使用n1-standard-4实例类型作为负载生成器、负载均衡器、两台Tomcat服务器和数据库服务器。这种方法简化了测试过程,但在实际场景中,人们通常在测试工作中通过排列来对特定应用层中的实例大小区间进行基准测试。每项测试都在同一周内五天中选定的一天进行。下表中显示的结果代表每个排列的平均交易吞吐量。PetClinic测试结果随着更多虚拟机被添加到工作负载中,我们发现PetClinic的总交易吞吐量高于样本中的其他测试应用程序。在这些测试中,Amazon始终具有更好的性能水平,其次是Google,而Azure排名第一。进一步查看相关数据,我们可以看到亚马逊在每个实例类型级别的使用成本也较低。在亚马逊的测试结果中,哪种实例类型最适合托管我们构建的应用程序?这取决于业务优先级的决定,是低成本还是高速。从上图可以明显看出,m4.xlarge实例类型的性能提升速度低于相应的成本提升速度。这意味着最好的性价比选项应该在m4.large和m4.xlarge之间(即亚马逊的双CPU或四CPU实例)。OpenCart测试结果您可能还注意到,OpenCart测试每秒产生的交易数量远低于PetClinic测试,这可能是由于前者的应用程序架构更简单。在比较不同的云环境时,OpenCart的结果更偏向于谷歌。这是不是因为二层应用对网络资源的要求较低,而亚马逊的主要优势恰恰在网络层面?或者,是因为谷歌云更擅长托管PHP应用程序,还是谷歌对Ubuntu系统的做法,或者还有其他深层次的原因?我们可能需要更详细的测试来揭开这些答案,但本次测试已经证明,不同的应用在不同的云环境下运行效果会带来极其显着的差异。BlogEngine测试结果BlogEngine的吞吐量与OpenCart测试基本持平,但本次测试使用的是微软技术方案,所以Azure在测试Java和LAMP应用时表现出一定的优势也就不足为奇了。最佳性价比平衡点基本在四到八CPU配置之间,超过四CPU配置后性能提升。我们在其他测试结果中也看到了类似的情况。结束语确定哪种云解决方案更适合运行应用程序是一项复杂的任务。在此类测试工作中,我们发现黑盒测试可以帮助您有效比较跨云和单个公有云内不同实例类型的性能和成本。如果我们包括其他私有云实现,如VMware、OpenStack或CloudStack,我们可以得出更明确的性价比比较结论。此外,我们还可以进一步扩展所使用的监控工具,例如Nagios、AppDynamics或NewRelic等——它们可以帮助我们了解Azure实例在低内存容量情况下的表现如何。在公有云对比工作中,CliQrCloudCenter为黑盒测试计划开了一个好头。必须强调的是,每个企业都有不同的关键指标作为优化的依据,而对标工具可以帮助大家更好地以一对一的方式获得比较结论,从而做出更明智的商业决策。原标题:Howtochoosethebestcloudforyourapp【.com独家翻译,合作站转载,转载请注明出处】