应用程序基于云技术的开发及测试目前正日益普及,越来越多的企业开始公布其基于公共云或是私有云的计算计划。云技术开发通常包括整合开发环境,应用程序开发周期管理组件(例如测试及质量管理、源代码及配置管理和持续提交请求工具等)以及应用安全性测试部分。
尽管技术人员和开发人员在以云技术为基础的开发方面已经很有经验,并坚信这类技术对开发环境的益处显而易见——例如节约成本并可让产品更快投入市场——但他们同样提出警告,称其中存在无数挑战及意外状况。
云技术在开发中究竟能普及到何种程度目前尚不明朗。但业内人士给出的分析结果表明,这一普及度无疑是在上升当中。在2011年2月的研究报告中,Gartner公司表示那些参加了该公司专题研讨会的客户们普遍认为,云计算项目对他们而言“越来越具有吸引力”,并打算以此来加强开发能力及优化现有的自定义网页应用程序维护手段。
“我更多地看到了其原型及并行分支的发展情况,但其在负载及性能测试领域的巨大塑造空间也极具前景,”Eric Knipp说,他是Gartner公司的首席分析师。
如果大家正在首次寻求云技术开发的起步方式,那么下面所列出的九项建议涵盖了那些大家可能面临的种种障碍,并指出如何从已经走过这段坎坷道路的成功开发商那里学到应对这些问题的方案。
云开发难题一:云技术并不总像“真实世界”那样简单
开发人员可能会发现他们在开发产品时,将其配置复制到云平台上是个很难操作的过程。例如,对于一个利用云技术开发,并打算在完成后基于本地主机运行的应用程序来说,大家可能需要对所有关于本地与云服务器端不同运行环境的遗留问题进行检测,而没法简单地将配置复制一下就指望能够解决问题。Knipp说:“这意味着开发人员可能不得不耗费更多的精力来寻找一款合适的测试工具来对自己的产品进行检测及核对。”
服务器虚拟化技术可以在这方面帮上忙,Knipp说道,而开发人员可以利用到目前市场上已经存在的、用以解决复数化/并行类开发问题的产品。就拿iTKO公司来说吧,它出品了一款名为Lisa的软件套装,帮助企业将自己开发的应用程序真正应用到云中。
那些习惯于在非云环境下开发程序的开发人员也可能会遇到麻烦,比如他们正打算在本地主机上制作一款将运行于云环境下的应用程序。举例来说,Greg Taylor,他在俄亥俄州建立了一套音乐教育协会网上登记申请系统,没想到,为了这样一款简单的应用,他却不得不深入了解数据库结构及用户们与他所制作的程序的交互过程。
这个应用程序所处理的内容是全州范围内各音乐学院的艺术表演登记,使用MySQL数据库作为后端,并利用Alpha软件公司出品的Alpha Five 10.5来制作前端。“我过去一直在使用FileMaker Pro,这款产品对于数据库结构方面的要求一向是非常宽松的,”Taylor说。“就算是设计本身很糟糕,仍然能够获得不错的成功工作效率。
但基于MySQL的开发工作迫使Taylor将其预案系统组织起来,以便网页应用程序能够发挥出最佳的性能表现。每当需要添加更多区域都依靠返回表格结构来实现是非常耗时的,因为它涉及到不同开发工具之间的切换作业。这时就可以利用Navicat来应对MySQL,而Alpha Five则用来处理网页页面的实际设计,他说。由前一款工具负责创建数据库主体结构,后一款工具为用户提供互动页面,以便输入及编辑数据库中的各项信息。
“这可能并不是关于开发人员费尽心思来改变既有数据库的问题,”Taylor说道。“一般来说开发人员可以利用Alpha Five轻松地制作用户访问的网页。但对于我来说,我需要同时开发数据库和网页,这样一来我必须要谨慎安排开发计划,因为开发工具之间的切换是非常实际的问题。”
为了避免这种长期存在的切换问题,Taylor不得不改变了自己的数据库开发方式:“通过制作一幅清晰的ERD(即实体关系图),我将开发流程变得更为直观,这对网页应用程序制作是非常有益的,并使我的整体开发时间大大缩短。”
在某些情况下,云环境下的开发工具在使用时也是很类似于本地开发的——至少类似于一些过时的本地开发方式。Jeff Hensley,DaVita公司(一家在肾透析方面非常权威的专业医护公司)人力资源信息部门的高级分析师,对于开发人员们需要在云开发环境中用到命令行工具,XML以及SQL表示极为惊讶。“这些陈旧的开发工具让我感觉回到了DOS时代,”他同时对未来做出了预计,认为古董级的开发方式会导致程序制作周期大大延长。