曾幾何時,那些耳熟能詳的程式英雄的名字漸漸地離我們遠去。 隨著Windows和Internet時代的來臨,個人的力量變得越來越渺小。 正當我們開始堅信單打獨鬥的時代一去不復返的時候,雲計算橫空出世了。 它強大的計算能力、存儲能力和簡單高效的程式設計介面,使得一位程式師能夠輕鬆地操控成千上萬台電腦,而不必考慮太多的細節。 雲計算時代,仿佛又讓我們感覺到個人英雄時代伸手可及。
程式英雄時代的衰落
WPS作者求伯君、KV殺毒軟體作者王江民、五筆字型作者王永民、中文之星作者王志東、UDDOS作者鮑岳橋和簡晶、CCDOS作者吳曉軍、自然碼作者周志農、CCED作者朱崇君...... 每一個名字都代表一個奇跡!
三歲因小兒麻痹症而落下終身殘疾,三十八歲才接觸電腦的王江民,在1996年帶著他無師自通編寫的KV6殺毒軟體來到中關村,一周就賺了150萬。 一年後,KV殺毒軟體佔據了通用軟體40%以上的市場份額。 一夜之間,王江民成為中關村最受人景仰的軟體英雄--程式英雄們的故事,曾經是多麼輝煌!
然而,隨著Internet大浪潮席捲而來,程式英雄們開始隱身幕後。 雖然一部分程式英雄成功轉型,鮑岳橋和簡晶創辦了聯眾,王志東創辦了新浪,雷軍創辦了卓越...... 但誰都清楚,他們是創辦者,是管理者,不再是署在他們網站「封面」上的作者了。 從那時起,除了一些小軟體外(其中不乏成功案例,如NetAnts等),已經很少有人能夠與某個知名軟體劃等號了。
日漸沉重的Winux時代
隨著IT從DOS時代向Windows時代過渡,軟體系統開始變得越來越複雜,程式開發變成了軟體工程。 軟體除了開發過程外,還有運作過程、維護過程。 首先,需要進行問題分析,形成軟體需求規約,再進行需求分析,生成功能規約。 然後,要進行概要設計和詳細設計。 接著,實現活動把設計結果轉換為可執行檔程式碼。 軟體研製的分工越來越細,有的人做資料庫訪問層,有的人做業務邏輯層,有的人做使用者介面層;軟體發展的整個過程,都有不斷確認的活動,保證最終產品滿足使用者的要求;軟體部署後,還有維護活動,包括使用過程中的擴充、修改與完善。 伴隨以上過程,還有管理過程、支援過程、培訓過程等。
不僅軟體發展和運維過程越來越複雜,軟體的規模也越來越大。 我們從Windows程式碼數就可以看出端倪:Windows 95是1500萬行,Windows 98是1800萬行,Windows 2000是2000萬行,Windows XP是3500萬行,而Windows Vista則高達5000萬行。 雖然比爾@蓋茨經常在公眾面前懷念只有幾十KB的BASIC語言,Windows還是不可避免地變得越來越臃腫。
由於坊間流傳安迪-比爾定理,即比爾要拿走Intel CEO安迪所給的(What Andy gives, Bill takes away)。 公眾於是懷疑是不是微軟有意為之呢? 我以為不是。 來看看以簡潔為美的Linux就知道了。 Linux各個版本源碼的程式碼數如圖1所示。 可以看出,Linux也是越來越龐大。 在這一點上,Windows和Linux倒是有幾分相象呢,不妨將之稱作Winux,就像當年的Wintel一樣。
圖1 Linux各個版本源碼行數
由於代碼量巨大,軟體越來越不可能單靠個人的力量就能完成。 例如,Windows 2000開發團隊有900位開發人員,還配有1800位測試人員。 同時,又由於軟體系統極其龐大,出現各種Bug的可能性大增,給維護工作帶來巨大的挑戰。 例如,Windows XP迄今已經打了上千個補丁。 每一個補丁都需要耗費大量人力。 所以說,在Winux時代,軟體業的個人英雄是很難出現的。
雲計算時代程式英雄重現
2006年8月,剛從大學畢業的史蒂維@克里弗敦,發現人們有把照片變成Flash短片的需求,於是架了幾台伺服器,創辦了一家名為Animoto的小公司。 當時,Animoto網站每天只有5000位訪客。 然而,2008年4月,Facebook向其社區熱情推薦了Animoto,使得在短短的3天裡,就有75萬人到Animoto網站註冊。 Animoto網站頓時不堪重負,變得慢如蝸牛,惡評鋪天蓋地而來。 要扭轉乾坤,必需增容100倍以上。 這對既沒有資本又沒有增容技術能力的年輕人來說簡直是災難。 在這個緊要關頭,史蒂維的大學同學建議使用亞馬遜提供的計算資源租用服務。 從此之後,Animoto不再需要購買任何新的設備,有多少流量,就租用多少亞馬遜的計算能力。 用多少,付多少錢,既節省了成本,又獲得了可以無限擴展的計算能力。 如今這群年輕人已經賺了大錢。
亞馬遜提供的這種計算資源租用服務就稱為雲計算。 亞馬遜研發了彈性計算雲EC2和簡單存儲服務S3為企業提供計算和存儲服務。 在誕生不到兩年的時間內,就有44萬程式師在亞馬遜上註冊,開發各種各樣的應用。
除了亞馬遜外,Google、IBM、微軟和Yahoo等大公司都建有雲計算平臺。 雲計算領域的眾多成功公司還包括VMware、Salesforce、Facebook、YouTube等。 Google搜尋引擎就建立于分佈在200多個網站、超過100萬台的伺服器的雲計算平臺之上。 Google的一系列成功應用,包括Google地球、地圖、Gmail、Docs、Wave等也同樣使用了這些基礎設施。 Google還提供了Google App Engine程式設計環境,供程式師們開發各種應用。 微軟于2008年10月推出了Windows Azure作業系統。 Azure是繼Windows取代DOS之後,微軟的又一次顛覆性轉型。 Azure的底層是微軟全球基礎服務系統,由遍佈全球的第四代資料中心構成。 目前,微軟已經配置了200多個集裝箱式資料中心,伺服器數量超過50萬台。 微軟最新推出的Visual Studio 2010支援非常方便地開發雲計算應用。
以前我們畫網狀圖時,用「一朵雲」來代替網路。 現在,雲計算之所以稱作「雲」,就是因為其計算設施不在本地而在網路中。 雲計算是網路寬頻化發展的必然結果,它是一種商業計算模型,將計算任務分佈在大量電腦構成的資源池上,使使用者能夠按需獲取計算力、存儲空間和資訊服務。 雲計算的核心是可以自我維護和管理的虛擬計算資源池,通常由一些大型伺服器集群構成。
有了雲計算平臺,程式師就可以動態申請所需資源,來支撐各種應用程式的運轉,而無需為煩瑣的細節煩惱。 雲計算使程式師能夠更加專注于自己的業務,有利於提高效率、降低成本和實現技術創新。 這一點,我們可以從一組間接的資料推斷出來。 iTunes、Facebook和Myspace都是面向特定應用領域、支援二次開發的公共平臺。 在2009年前18周,因金融風暴的影響,開發應用的程式師數量明顯下降,而應用程式數量反而大增(如圖2所示)。 之所以如此,就是因為有了Facebook這樣的支撐平臺,程式師需要考慮的問題大大簡化,工作效率大為提高。
圖2 iTunes、Facebook和Myspace的應用程式數量增長
依託亞馬遜的雲計算平臺,有許許多多不擁有計算資源的公司取得了成功。 例如,99designs是一個大規模的設計交易平臺,目前已經收到超過53,000位設計師提供的多達300萬件設計作品;Livemocha是一家線上的語言學習網站,提供超過25種語言的學習,並已經擁有了超過300萬使用者 ;Monografias是拉丁美洲的一個資料分享網站,每天有200萬位訪客;著名的互聯網排名網站Alexa在亞馬遜雲計算平臺上存儲了超過1200萬個數據物件,每天要提供超過500萬次查詢。
在我國,雲計算已經掀起了IT企業轉型熱潮。 中國電信與EMC合作,在上海構建了一個擁有2PB存儲空間的雲存儲平臺,稱為e雲。 e雲是安全的線上備份服務,可保護資料不受檔損壞、意外刪除、硬體問題等災難的影響。 然而,已建的雲計算資料中心基本上是以私有雲的形式存在的,外界無法訪問其服務。 目前,對國內程式師而言,要麼可以用外幣信用卡購買國外的雲計算服務,要麼還需要等待一小段時間才能用上雲計算服務。 使用國外的雲計算服務,除了支付上的困難外,還有網路存取速度的障礙--除非你的網站主要面向國外。 可以預見,國內的雲計算平臺供應商將主要是中國移動、中國電信和中國聯通三家運營商。 當前,中國移動已經建成1000台伺服器、5000個CPU核心、3000TB存儲規模的「大雲」試驗平臺。 2010年5月21日,中國移動在第二屆中國雲計算大會上發佈了「大雲」1.0版本,已實現分散式檔案系統、分散式海量資料倉儲、分散式運算框架、集群管理、雲存儲系統、彈性計算系統、並行資料採礦工具等關鍵功能。 中國移動已經發放了一些試用帳號,相信很快將開放出來給公眾使用。
由於眾多新技術的運用和規模效應,在性能價格比上雲計算相對傳統計算模式能夠驚人地提升5-40倍。 目前眾多的企業開始佈局雲計算,百度、阿裡巴巴、瑞星、微軟、天雲科技、廣達電腦、訊鳥等公司都在大規模招聘雲計算研發人才。 廣達電腦居然一次性招聘700位雲計算人才。 而目前真正接觸過雲計算研發的人實在是太少了,所以許多招聘崗位都在虛位以待。 對於程式師而言,如果能夠實現向雲計算轉型,是一個提升自身含金量的絕佳機會。
(責任編輯:蒙遺善)