云时代 软件开发应对新格局
云计算时代的来临已经是IT业发展的必然,其发展趋势是不会因个人意志而转移的。云计算不仅是一次技术的颠覆,更是一场商业革命。而软件以及软件开发作为IT行业的支柱,在云计算的时代浪潮下,更是具有了自己活力。
软件“无处不在”
在IT行业,软件扮演着越来越重要的角色。在工信部制定的《软件和信息技术服务业“十二五”发展规划》里明确规定,到2015年我国软件和信息技术服务业收入将突破4万亿元,占信息产业比重达到25%。近日,工信部网站公布的数据显示,我国软件和信息技术服务业持续稳中有落态势,全行业效益持续好转,人员和工资总额保持稳定。软件业实现利润2126亿元,同比增长25.5%。
软件被用于创建更加高效的世界,驾驭以云计算和移动互联网为基础的信息大爆炸的发生,与无数移动设备、物联设备实现通信,同时,软件还不断促进产品差异化,为全球市场提供服务。现在全球经济体的发展和创新越来越依赖软件的发展,无论是在系统工程领域,还是在其他科学研究领域,全球创新在很大程度上都是以软件的开发、变更和监控为基础的。
软件定义的网络、软件定义的存储、软件定义的数据中心等又再次把软件推到了风口浪尖。“软件重塑IT”已经成为可以和“云计算、大数据、物联网、智慧地球”等媲美的IT行业热门词汇。越来越多的企业更加注重自身软件和系统交付的能力,无处不在的软件成为实现创新发展的基石。
“服务多租赁化、平台可伸缩性,以及资源虚拟化”这是被大家普遍认可的云计算的特性,这些云计算特性主要是靠软件来实现。比如,资源的虚拟化,虚拟化的实现必须靠软件的变化来实现,否则,无限和有限的资源便无法实现无缝衔接。软件在云计算时代将更加普遍存在,其作用也会更加举足轻重。
“云”改变软件开发
企业的云应用正从SaaS向PaaS和IaaS方向发展。用户需要可以结合自身企业特点的开发、测试、在线部署等功能的软件产品。而这就对云计算时代的软件开发提出了新的要求,软件开发人员要在架构设计上具有新的思路,要让软件能够实现从私有云向公有云的无缝迁移。
云计算时代的软件是运行在云平台上,并具有在线租赁、可伸缩性、按需定制等特性的软件。云计算下的软件开发打破了软件开发商与用户的二元格局,第三方云计算中心的作用更加重要。云计算模式下的软件开发和运行环境基本上都是由云计算中心来架构的,这些资源按照开发者的要求进行配置。在开发者一端省去了硬件设施架构、运行环境调试等工作,只需一个浏览器和一些简单的工具就可以实施开发。开发完成之后的测试以及运行和维护也全部由云计算中心负责。
其次,云计算改变着软件的开发方式。随着平台的开放,开源、开放的软件开发社区越来越多。开源厂商是联系社区和商业应用的企业,类似这样的企业可以捕捉社区内最新的需求和技术动向,实现开源软件产品的商业化,同时以商业上的利润和方式推动社区的运营。要知道社区中除了“极客”,用户也在其中。与需求的近距离接触,带来最直接的效果就是使得软件开发周期大幅缩短。
第三,软件运行在数据中心里,而不是在用户的服务器和计算机上,这是云计算时代必备的特征。而且云时代的软件还需要应对用量的变化。从制作网络镜像手工增删资源,到系统和平台的自动伸缩性,这些都是云计算时代软件必须具备的特征。云时代的软件还需要能够实现个性化的定制。对于同一个软件的同一个版本,用户可以根据自己的需要做一定程度的定制,这就要求软件具有很稳定的基础结构。还有,云计算时代还会要求软件的快速开发。随着技术水平的提高,快速开发的水平越来越高,云计算的资源共享,以及标准的服务集成让快速开发变得更加有效。
最后,软件和服务之间的界限也变得更加模糊,服务模式发生了很大的改变。在云计算的驱动下,软件销售采用“打包”方式,应该是比较务实的方式。比如一个方案中既包括可以进行IaaS或PaaS的软件产品,还包括提供云计算咨询的服务产品。同时也会提供相应的培训课程。基于云计算的咨询和服务将会成为软件企业的一个利润增长点。
软件开发新需求
云计算时代的软件需要新的开发技术。开发人员需要使用云计算时代的软件开发技术去提高开发能力。云计算时代要求软件开发人员思考架构设计,甚至需要考量运维模式和商业模式。
云计算是在分布式计算、并行计算和网络计算的基础上,经过一系列的创新融合而形成的。从开发技术的角度来看,云计算平台以及云计算平台上的应用软件开发都是使用分布式并行编程技术的。分布式并行编程的关键技术有三方面:分布式并行数据处理技术,分布式文件系统,分布式数据库。
从程序的架构设计方面来看,开发人员需要在程序筹建过程中,就要思考哪些应用能够实现私有云、公有云以及混合云之间的互用。需要开发人员设计出一种能够在功能上满足当前业务需求,又能够适应用户需求发生变化或者能够在可以预见的未来适应环境变化的应用。
从商业模式方面来看,以前,软件都是依靠软件授权模式来销售,或者直接是免费的。但是在云计算时代,认真思考盈利模式对于软件开发人员来说是一个更大的挑战。一旦具有了清晰的商业模式,就会很快地实现软件的盈利。
结语
云计算无疑已受到极大的关注,云计算时代的到来让IT技术面对着不同的挑战。我们也可以看到云计算对IT行业的硬件模型、应用模型和用户体验等方面带来了革命性的影响。云计算开发技术的发展使得开发人员可以快速构建高可用的、可以几乎无限扩展的应用。
云计算的服务需要创新和发展。尽管云计算的分布并发编程和数据库技术还不够成熟,编程模式的开发框架和方法学体系也只是适用于较简单的海量数据高效处理,但是,云服务软件系统的开发技术,需要发展、积累和创新。云服务软件系统的开发技术将提高生产能力,满足开发更大规模、更复杂软件系统的社会需求。同时,科研界和产业界已经展开共同研究,国家“十二五”规划对软件开发和云计算的重视,同样也会推动云时代软件开发的发展。
软件正在推动着创新,软件的系统也变得越来越复杂。根据调查,成功创新的公司都实现了在整个生命周期中软件和系统交付的整合。软件作为IT系统的灵魂,不会随着IT技术的发展而减低其作用,更不会消逝。软件开发技术也会随着IT技术的发展而改变,并在这个改变中不断创新并焕发出新的活力,新的软件技术将会不断提高技术人员开发软件系统的能力。