随着互联网络的深入,云计算对现有的IT技术产生了深远的影响,软件开发模式由单机版向面向云计算转变。单机版的软件所使用的资源,是基于PC机的物理资源(如PC机的内存和硬盘);在云计算时代,这种开发模式完全改变,使用的资源不再受到物理资源的限制,内存的使用可以基于数据中心的服务器群,数据库可以通过互联网存储到远端的数据中心中。
软件开发工具发生变化
过去的程序员擅长C/C++/Java语言,对单一主机(PC机)进行应用开发,关注的计算资源是物理CPU的性能、内存的大小、硬盘的存储容量等。在云计算时代,互联网的语言成为云计算时代的主流开发语言工具。比如Python、Ruby on Rails、Java Script、QT等,这些语言提供了和互联网进行交互的便利手段;在进行云计算应用开发的时候,程序员更关注云计算架构下分布式的计算资源组成,比如这种应用是在哪个计算集群中完成、应用之间内部通讯的网络带宽、存储的分布式资源位置等等。
软件的设计架构与模型发生变化
网络和存储的融合使得软件获取资源的方式趋向“云”化。用户需要在任何时间、任何地点,通过任何设备、任何计算环境(操作系统)都能得到这种资源和服务,比如保险人员在用户家里签订保险合同,公司的老板在机场签署文件等等。所以,云计算的软件架构必须适应云计算提供服务以及云计算用户使用的应用场景。在经历了过去的单机版、C/S(Client-Server)架构、B/S(Browser-Server)架构,现在演变为Location-Awareness(位置感知)和User Application Context Awareness(用户应用感知)。
现在软件是并发式计算,多个计算的集群可以同时参与计算,现在比较流行的软件体系是Hadoop,目前在互联网的集群计算中得到广泛的应用。Hadoop是云计算架构下的软件设计模式,即集群并行计算,这种软件设计模式要求软件需要考虑分布式的资源处理,需要即时调配计算资源,并能够充分发挥多个计算节点的配合效率和性能。所以,在云计算时代,考虑的数据模型是“大数据”,又叫“大数据”时代。
软件商业价值发生变化
整个软件产业基本的商业价值发生了革命性的改变,软件正在从License到按服务收费的转变。IT业的本质载体是软件,硬件为软件提供平台。软件在云计算中发展成为服务的载体,这是一个很重要的变化。但这种变化对许多软件企业来说影响是巨大的,比如微软、谷歌等公司,都在快速地应对云计算时代对他们的传统技术和产品带来的挑战,并对生命线产品进行变革。同时,软件企业也看到了云计算时代蕴藏的机会,他们从卖产品License,变成了卖服务、卖广告,而产品本身成为服务的工具。
App Store(应用商店)兴起,赢利模式发生变化。包括谷歌、苹果以及国内奇虎360等公司都在开发App Store,采用云计算平台,公布自己的开发工具,并通过互联网与软件开发者销售软件,通过软件实现服务,在服务中获取利润,而用户通过互联网购买软件,获得相关的服务。
以往软件价值在于其技术本身,在云计算时代,其价值体现在服务的质量。一句话,代码不值钱了。现在软件的开发很多采用开源的方式,用户可以通过开源的代码,开发自己需要的服务。软件企业必须基于开源提供更好的服务。这就是为什么我们会看到IBM一直在推动 Linux的发展。使用开源方式,可以使软件企业关注用户的服务需求,可以通过用户的使用,修改软件存在的bug,降低软件开发的成本。
对软件开发人员及程序员职业产生影响
在云计算时代,软件工程师需要密切关注所在行业的需求技术发展方向,需要技术转型,研究互联网经济、研究移动互联网、研究软件服务的本质、研究服务的质量保障等等,并不断创新。