博客

3关键考虑负载测试在迁移到云上

日期:2020年6月16日

记者鲍勃Reselman,软件开发188金宝搏官网登录app人员和技术

迁移到云计算的价值主张是引人注目。你不需要员工的部门系统工程师和管理员提供和维护公司的基础设施。相反,基础设施已被抽象的服务提供者,从而允许一个小团队使用自动化扩展或收缩计算环境,以满足需求。当计算资源的成本,您只付消费。没有开CFO接近绝望的边缘比一屋子的充分利用硬件占用公司的财务资源,生产没有回报。

因此,对于云计算,不喜欢什么?并不多。迁移到云计算的增长或大或小的公司之一。到2024年,Gartner项目,超过45%的支出系统基础设施,基础设施软件和业务流程外包将从传统到云的解决方案。188金宝搏官网登录app

坏消息是,迁移到云计算的成功不会发生的魔法。它不是简单地编写一些脚本,在月底付账单。许多问题需要解决在本地环境中仍然突出在云中,特别是当涉及到应用程序的性能。将应用程序迁移到云计算带来了新的问题,除了那些通常在本地环境中发现。然而,仅仅因为有问题,这并不一定意味着云迁移是一个坏主意。有很多好处提供迁移到云上,贵公司明智的计划。关键是要了解相关的问题,使用一个坚实的计划,地址,特别是负载测试

以下部分描述的三个关键问题解决时你打算负载测试您的应用程序迁移到云上。

1。确保你的测试计划匹配您的迁移模式

有五个云迁移的模式。你可以rehost应用程序基础设施即服务(IaaS)平台上。这包括使用云计算提供原始虚拟服务器和网络功能。工作需要由完成配置操作系统设置网络配置。然后,一旦创建了基础设施,你添加应用程序和数据。

下一个方法是重构应用程序的平台即服务(PaaS)部署。rehost模式相似,除了与PaaS操作系统已经安装有更多的典型应用包括在内,如SSH、数据库和web服务器。

你可以修改应用程序使用IaaS或PaaS部署。修改后的模式意味着你更新代码在给定的环境中工作。修改也可以涉及安全的工作方式的改变或IP地址是如何分配的。

重建因素意味着你做出相当大的改变应用程序使其工作在一个特定的PaaS。例如,创建一个全新的应用程序,利用原生云实现特定的功能。

同样地,可以有取代模式,导致建立一个全新的方法来应用程序的架构,因为它提供功能给用户。使用替代模式的一个例子是当你从一个应用程序使用vm或容器保持Tomcat实例,MySQL和RabbitMQ安装到serverless方法(和serverless功能、数据库和消息传递系统原生云提供商)。

当然,每种方法都有其边界和后果。因此,负载测试根据该方法的方法会有所不同。考虑一下:当你重新承载应用程序的时候,负载测试会更注重整体环境。你有足够的网络带宽吗?你的虚拟机配置有足够的cpu、内存和磁盘支持负载?

当你用serverless方法代替基于服务器的体系结构,负载测试需要关注应用程序的性能在访问点,而不是内部器官的基础设施。你有控制代码和数据中心地区。你没有控制CPU或内存分配,这是由服务提供者;因此,关注应用程序的行为。

测试成本时间和金钱。有一个清晰的理解的五种迁移模式是在玩会帮助你明智地利用公司的资源。

2。解决云计算弹性的神话

弹性特性允许云服务自动增减计算产能,以满足当前的需要。这是一个好消息,客户只支付他们所使用的资源。坏消息是,弹性的概念创造了一个神话。的神话,一旦供应技术的感官阈值被满足,新服务器将神奇地化险为夷。当然,供应技术可能检测到灾难。但问题是,额外的虚拟机正在旋转的时候,它可能是太迟了。一个复杂的虚拟机需要10到15分钟可以启动并运行。容器可以启动更快,但仍需要时间。关键是要避免灾难发生之前。公司生活和死亡在容量规划理解需求的兴衰。 Instead of relying on elasticity automation to ensure that infrastructure capacity meets consumption needs, they anticipate demand and spin up accordingly. For example, Netflix understands that peak usage hours are during movie viewing time between 6 and 10 PM. As a result, they spin up nodes beforehand to meet the demand of these mission-critical hours, using well-defined provisioning templates.

这是什么意思关于负载测试?

负载测试不是一个one-scenario-fits-all事业。相反,你需要看看所有方面的计算环境,相应的模拟。这意味着你有一个详细的了解配置遵循环境和条件发生的扩张和收缩。举个例子,如果你是支持使用峰值负载测试,确保您正在创建所需数量的虚拟用户模拟使用,确保计算环境提供根据用于生产什么。另外,确保你准确镜子低潮和流动的扩张和收缩。问题时,通常不会发生一切都是应该的。通常,事情出错当你上下过渡能力。

最后,如果你的公司是提供一些自动化,并依赖需求,确保您创建定义的阈值的情况下在知名的服务水平协议。别指望假设;当测试是基于事实的。如果你发现自动配置适合你,很好。知道负载测试,考虑弹性可有可无的存在任何方法。最好是打破一个预定义的计算环境和安全比容纳一个假定,抱歉。

3所示。谨慎行事和serverless功能

不喜欢关于serverless函数是什么?所有您需要做的是部署代码并将其连接到基础设施。不管10或一百万调用的代码。确保有能力来支持需求是服务提供者的责任。什么可能出错,你问?

函数sortKidsByAge(孩子){

的孩子。排序(函数(a, b) {

返回一个。年龄< b.age吗?1:1

})

}

上面显示的是一场一直在等待发生的事故。数组的排序函数,用JavaScript编写,可以将整个事件循环serverless函数写在节点。js戛然而止。当数组排序是小,问题仍然是隐蔽的。足够大的数组时(包含一百万项),这不是不寻常的在网络级应用程序中,所有其他活动在底层主机运行的节点。js应用程序阻塞直到排序完成。对性能的影响是不可否认的。不管功能服务器或serverless——代码将运行慢条斯理地当排序数组太大了。在serverless环境中,主机可能加大基础设施来缓解瓶颈。是的,服务提供者将增加更多的实例不正确的代码在幕后的缺点。这些实例将花费你从长远来看。最好的补救措施是为了解决代码。

结论是什么?绩效是行为,而不是环境。当负载测试,关键是测量尽可能应用程序行为的许多方面(如原因的凭许可证经营)。关于使用serverless函数应用程序性能的评价,这是一个好主意来收集的执行时间和内存使用给定的服务(参见无花果。1,@下文)。

图1:AWSλ提供关于内存使用的信息和功能持续时间

图1:AWSλ提供关于内存使用的信息和功能持续时间

图2:谷歌云功能持续时间报告功能

图2:谷歌云功能持续时间报告功能

通常,在serverless函数、CPU分配不是发布到消费者。所以,这方面可能不会用于测量。不过,底线是serverless函数可以导致代码级的性能问题。因此,您需要收集尽可能多的指标观察行为准确。

把它放在一起

迁移到云计算的时间,很少有组织翻译他们当前的架构在云实例。花时间来确定哪些模式迁移你计划——rehost、重构、修改、重建或替换,有助于确定工作范围相关的迁移和理解负载测试需要允许云实例承受预期使用。

也很重要当负载测试计划确保云实例可以向上和向下扩展,以满足作战需求所定义的服务水平协议(年代)。您的组织是否依赖推断弹性满足容量需求或采用更积极的方法使用脚本扩展相对于峰值使用参数和预定义的模板实例,所有的测试必须反映自动定量的范围。这意味着确保您的负载测试创建虚拟用户根据每个已定义的使用场景,每个云环境的规范旨在支持给定的使用场景测试计划的一部分。最后,作为云计算serverless功能变得更加普遍,需要额外的关注来测量被测试服务的行为。因为一个特性是serverless并不意味着它将自动配置为最佳性能。错误的代码是错误的,无论它在虚拟机中运行的应用程序或serverless函数。性能警惕是非常重要的!

有很多好处迁移到云上。你的公司可以节省的资金,因而会增加体积和它所提供的服务质量给用户。关键是要确保全面、先进的负载测试是迁移过程的一部分。

这篇文章最初发表在2018年4月,是最近更新的2021年7月。

鲍勃Reselman的形象LinkedIn

日期:2020年6月16日
Baidu
map