据小编了解,对于那些刚开始使用云计算服务的公司而言,应用程序测试和开发项目是一个很好的起点。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服务的交互可以正常地进行。
如果对于新的应用程序和服务来说,加快推向市场的时间是头等大事的话,那么,符合上述条件的测试和开发项目可以让开发者有更大的灵活性,同时,也可以通过业务调整来降低使用云平台的费用。它的收费方式也比较合理,因为它把长期的投资和必要的运营成本变成了更加高效,更加灵活的运营成本投资。它也可以减少对内部的实验资源的需求,这样的话,已经分配的预算可以用来做一些更有意义的事情,当然,这主要取决于这个企业的开发项目的规模和这些项目是否适合放到云中。