隨著互聯網絡的深入,云計算對現有的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,降低軟件開發的成本。
對軟件開發人員及程序員職業產生影響
在云計算時代,軟件工程師需要密切關注所在行業的需求技術發展方向,需要技術轉型,研究互聯網經濟、研究移動互聯網、研究軟件服務的本質、研究服務的質量保障等等,并不斷創新。