隨著互聯(lián)網(wǎng)絡(luò)的深入,云計算對現(xiàn)有的IT技術(shù)產(chǎn)生了深遠(yuǎn)的影響,軟件開發(fā)模式由單機(jī)版向面向云計算轉(zhuǎn)變。單機(jī)版的軟件所使用的資源,是基于PC機(jī)的物理資源(如PC機(jī)的內(nèi)存和硬盤);在云計算時代,這種開發(fā)模式完全改變,使用的資源不再受到物理資源的限制,內(nèi)存的使用可以基于數(shù)據(jù)中心的服務(wù)器群,數(shù)據(jù)庫可以通過互聯(lián)網(wǎng)存儲到遠(yuǎn)端的數(shù)據(jù)中心中。
軟件開發(fā)工具發(fā)生變化
過去的程序員擅長C/C++/Java語言,對單一主機(jī)(PC機(jī))進(jìn)行應(yīng)用開發(fā),關(guān)注的計算資源是物理CPU的性能、內(nèi)存的大小、硬盤的存儲容量等。在云計算時代,互聯(lián)網(wǎng)的語言成為云計算時代的主流開發(fā)語言工具。比如Python、Ruby on Rails、Java Script、QT等,這些語言提供了和互聯(lián)網(wǎng)進(jìn)行交互的便利手段;在進(jìn)行云計算應(yīng)用開發(fā)的時候,程序員更關(guān)注云計算架構(gòu)下分布式的計算資源組成,比如這種應(yīng)用是在哪個計算集群中完成、應(yīng)用之間內(nèi)部通訊的網(wǎng)絡(luò)帶寬、存儲的分布式資源位置等等。
軟件的設(shè)計架構(gòu)與模型發(fā)生變化
網(wǎng)絡(luò)和存儲的融合使得軟件獲取資源的方式趨向“云”化。用戶需要在任何時間、任何地點,通過任何設(shè)備、任何計算環(huán)境(操作系統(tǒng))都能得到這種資源和服務(wù),比如保險人員在用戶家里簽訂保險合同,公司的老板在機(jī)場簽署文件等等。所以,云計算的軟件架構(gòu)必須適應(yīng)云計算提供服務(wù)以及云計算用戶使用的應(yīng)用場景。在經(jīng)歷了過去的單機(jī)版、C/S(Client-Server)架構(gòu)、B/S(Browser-Server)架構(gòu),現(xiàn)在演變?yōu)長ocation-Awareness(位置感知)和User Application Context Awareness(用戶應(yīng)用感知)。
現(xiàn)在軟件是并發(fā)式計算,多個計算的集群可以同時參與計算,現(xiàn)在比較流行的軟件體系是Hadoop,目前在互聯(lián)網(wǎng)的集群計算中得到廣泛的應(yīng)用。Hadoop是云計算架構(gòu)下的軟件設(shè)計模式,即集群并行計算,這種軟件設(shè)計模式要求軟件需要考慮分布式的資源處理,需要即時調(diào)配計算資源,并能夠充分發(fā)揮多個計算節(jié)點的配合效率和性能。所以,在云計算時代,考慮的數(shù)據(jù)模型是“大數(shù)據(jù)”,又叫“大數(shù)據(jù)”時代。
軟件商業(yè)價值發(fā)生變化
整個軟件產(chǎn)業(yè)基本的商業(yè)價值發(fā)生了革命性的改變,軟件正在從License到按服務(wù)收費(fèi)的轉(zhuǎn)變。IT業(yè)的本質(zhì)載體是軟件,硬件為軟件提供平臺。軟件在云計算中發(fā)展成為服務(wù)的載體,這是一個很重要的變化。但這種變化對許多軟件企業(yè)來說影響是巨大的,比如微軟、谷歌等公司,都在快速地應(yīng)對云計算時代對他們的傳統(tǒng)技術(shù)和產(chǎn)品帶來的挑戰(zhàn),并對生命線產(chǎn)品進(jìn)行變革。同時,軟件企業(yè)也看到了云計算時代蘊(yùn)藏的機(jī)會,他們從賣產(chǎn)品License,變成了賣服務(wù)、賣廣告,而產(chǎn)品本身成為服務(wù)的工具。
App Store(應(yīng)用商店)興起,贏利模式發(fā)生變化。包括谷歌、蘋果以及國內(nèi)奇虎360等公司都在開發(fā)App Store,采用云計算平臺,公布自己的開發(fā)工具,并通過互聯(lián)網(wǎng)與軟件開發(fā)者銷售軟件,通過軟件實現(xiàn)服務(wù),在服務(wù)中獲取利潤,而用戶通過互聯(lián)網(wǎng)購買軟件,獲得相關(guān)的服務(wù)。
以往軟件價值在于其技術(shù)本身,在云計算時代,其價值體現(xiàn)在服務(wù)的質(zhì)量。一句話,代碼不值錢了。現(xiàn)在軟件的開發(fā)很多采用開源的方式,用戶可以通過開源的代碼,開發(fā)自己需要的服務(wù)。軟件企業(yè)必須基于開源提供更好的服務(wù)。這就是為什么我們會看到IBM一直在推動 Linux的發(fā)展。使用開源方式,可以使軟件企業(yè)關(guān)注用戶的服務(wù)需求,可以通過用戶的使用,修改軟件存在的bug,降低軟件開發(fā)的成本。
對軟件開發(fā)人員及程序員職業(yè)產(chǎn)生影響
在云計算時代,軟件工程師需要密切關(guān)注所在行業(yè)的需求技術(shù)發(fā)展方向,需要技術(shù)轉(zhuǎn)型,研究互聯(lián)網(wǎng)經(jīng)濟(jì)、研究移動互聯(lián)網(wǎng)、研究軟件服務(wù)的本質(zhì)、研究服務(wù)的質(zhì)量保障等等,并不斷創(chuàng)新。