在云中测试和开发项目的5个最佳实践

对于那些开始使用云计算服务的公司来说,应用程序测试和开发项目是一个很自然的起点。Forrester Research的James Staten将会为您讲述怎样判断你的项目是否适合云环境。

对于云计算来说,的确是存在着过分渲染的现象——尤其是在它可以为企业省钱方面。但是很不幸,宣传中为我们描绘的可以节约成本的愿景似乎并非事实真相。在进行无数的客户调查以后,结果清晰地展现在了Forrester面前,如果把所有企业作为一个整体来看,来自于云的正向的ROI(return on investment)并没有被实现,因为在具体应用的时候,云计算的优势大打折扣了。最终,这意味着在云中测试和开发新的应用程序是一个绝佳的方法,这可以增加业务的合理性,也可以保证应用程序,IaaS(Infrastructure as a service)解决方案,和IT运营防护与流程之间的兼容性。

IaaS(Infrastructure as a service)云计算的基本原理是那些平台提供一个标准化的,自动化的虚拟环境,让IT专业人员在较少人工干预的情况下更轻松地使用这个环境。公有云(逐渐也会包括私有云)平台要计算资源的消耗量,这推动了一种不同的消费形式——在这种情况下,节约成本可以通过尽量减少资源的消耗量来实现。这个关键性的概念对于理解和云计算有关的具体业务案例至关重要。

例如,如果你问一个测试实验室的经理,他们需要面对的挑战是什么,他们可能会抱怨开发者的要求太多,为他们安装和卸载测试环境“浪费”了大量的时间。但是,另一方面,对于那些开发者来说,在一个团队中,他们是最有生产力,最有创新性的一个群体,试问,面对这么多抱怨,他们怎么可能专心地工作呢?他们是否会告诉你(通常他们不会),他们认为,如果他们不使用IT运营部门提供的实验室的资源,而是直接到platform-as-a-service (PaaS) 或 IaaS(Infrastructure as a service)云上进行测试(在这种情况下,他们可以在几分钟内获得想要的资源,而且,只有当他们需要这些资源的时候,才需要为它们而付费),他们的生产力会得到提高呢?

当然,当一些开发者把他们的工作迁移到云中的时候,IT运营部门也许会担心他们正在把整个组织推向危险的边缘。我们不应该阻止在云中进行测试和开发,相反,我们应该鼓励这种使用方式,同时,我们要给予一定的指导。例如,建立一个实用的云使用策略,或者,可以考虑通过一个集中式的资源请求工具来规范开发者使用云的方式。

在这里,有一个十分重要的问题需要注意一下,那就是:并非所有的开发项目都适合在云中完成。要为IT运营团队和APM之间协作定义出最合适的规范,这需要花费一些时间。这是5个通用的最佳实践,可以以此作为出发点:

1,部署测试可以在一个标准的虚拟环境下进行。

IaaS(Infrastructure as a service)平台提供了服务器虚拟机和虚拟存储卷。PaaS(Platform as a service) 云提供了更高级的抽象——中间件或用于部署应用程序的目录。在大多数情况下,不会提供专用的物理资源。

2,测试环境要独立。

如果这个开发项目可以单独测试,也就是说它不需要和生产系统进行集成,那么它可以在云平台上进行测试。对于云平台来说,那些不消耗输出带宽的应用性价比是最高的。对于公司来说,它们的风险也更低,因为不需要打开防火墙上的某些端口。

3,那些生命周期小于12个月的项目。

大多数云平台都是按小时收费的,如果持续不断地使用12个月以上,它们比传统的托管方式的成本还要高。所以,对于这样的项目来说,在内部的虚拟实验环境下进行会更划算一些。这是一个基本的经验法则:如果你时常可以让使用公有云的费用趋近于0,那么你才是在有效地使用它。

4,那些不会给公司带来新的兼容性和管理风险的项目。

在你认为你可以保证这些项目的兼容性以前,不要把这些测试项目放到云中。

5,使用Web服务的多虚拟机应用程序。

公有云可以把客户的工作任务分配到多个标准的虚拟设备上,然后再通过IP协议和Web服务把它们连接起来。如果开发者想让应用程序组件彼此之间进行交互,不要指望着可以找到支持的协议——不是延迟无法接受,就是需要特定的网络配置或紧密耦合的组件。大多数的公有云都不支持多播协议,而且,集群化通常也比较困难。在你可以确保它们可以正常运行以前,不要把这样的应用程序放到云中。但是,基于现有的Web服务的交互可以正常地进行。

微信关注公众号“cncompute_com ”,为您奉上最新最热的计算头条资讯,干货满满。