随着软件开发周期加快,IT部门必须更迅速地测试基于云的应用。正确的工具和服务可以帮助加快这一步伐。
在云端部署软件的步伐正在加快。开发人员不再需要花费数月的修复大量bug和功能增强,而是可以在一个星期甚至一天内就推出新的云应用。但这种快速的转变需要在部署之前对应用程序进行快速的测试。谷歌计算引擎和微软的Azure提供了一些工具,以确保新的云应用可以按照预期的那样正常工作。
开发人员应该在一个可控的环境中尽可能复制生产环境来对云应用进行测试。对于本地应用的开发,要维护一个单独的等同于生产环境的测试环境的成本通常令人望而却步。但在云中,实施一个高度自动化管理的测试环境的边际成本却很低。
使用谷歌测试云应用
谷歌计算引擎以性能著称, 但其不断增长的编码、测试和部署的服务列表可能会大大减少对软件开发者的吸引力。这些服务和工具包括Google Deployment Manager、Cloud Trace、Cloud Monitoring和Cloud Security Scanner。
谷歌的Deployment Manager是一个模板驱动的服务,负责将资源部署到云中。使用该服务,云管理员可以定义一个拥有虚拟机、存储、负载平衡器和其他资源的测试环境。
测试云应用程序提供了收集性能数据的机会,和进行单元测试。在生产环境中,谷歌的Cloud Monitoring服务产生警报并显示到性能仪表板上。这也有利于对新的应用程序代码进行压力测试。对频繁执行的代码的任何小的修改可能会对总体性能产生显著的影响。然而,这些影响并不总是很明显,特别是对于分布式系统。通过性能测试,开发人员可以找出潜在的问题领域。
Google App Engine中的Cloud Traces服务负责收集远程过程调用App Engine服务的性能数据。这有助于定位长时间运行以及低效的运营。Cloud Security Scanner,也是针对Google App Engine,用以识别已知的漏洞,如跨站点脚本以及HTTPS和HTTP混合的内容传输。
微软的Azure测试云应用
微软的Azure也提供了云应用程序的测试和部署工具。比如说,Visual Studio Online,是一个软件开发平台,用于管理应用程序代码和跟踪开发人员任务。Visual Studio通过持续集成,规划和缺陷跟踪等工具来支持敏捷开发模式。
微软的Visual Studio Application Insights是一个新的预览版服务,将来有可能成为一个关键的云测试和监控服务。它允许开发人员和云管理员监测运行在Azure或其他平台上的 ASP.NET和Java应用。该服务还可以监控移动应用,如那些用于Android和iOS,以及Mac OS X和Windows应用。
微软的Azure Automation服务减少了人工的、重复的任务。该服务使用Windows PowerShell脚本,简化了与其他PowerShell应用程序的集成。使用DevOps的思想作为指导,外加一些图形创作工具,Azure Automation在处理云资源时提供一个高层次的抽象化。同Google Deployment Manager一样,Azure Automation也提供了一些工具可以帮助开发人员和云管理员在云中快速创建一致的测试环境。
除了微软和谷歌的服务,开发人员还可以使用众所周知的成熟的应用测试工具,如Jenkins。
当然,工具并不是云应用测试唯一需要的。明确定义的过程也是成功的关键。例如,开发人员应遵循标准的做法从代码库中提交和获取代码。测试管理员应该能够从代码库获取最新的代码并根据需要对其进行测试。
开发人员应该经常进行测试,尽早发现bug和性能问题。自动化同时还降低了测试的成本。使用云应用监控工具来减少分析结果所需的成本和时间,特别是大容量压力测试。
主流的云服务提供商时常发布新的服务。一些诸如代码管理和监控的工具分别面向开发人员和运营支持。然而,这两种类型的工具对于测试云应用都非常有用。随着谷歌和微软不断推出额外的服务,考虑他们如何能帮助你的组织简化测试操作,提高报告结果的内容和质量。