採用雲計算,系統越複雜,邊際成本越低;不採用雲計算,系統越複雜,邊際成本越高。 從這個意義上來說,採取雲計算,實質是在轉變生產方式。 文/姜奇平 現在許多行業或者服務都打著雲計算的旗號,但並不是所有的都是雲計算,去偽存真看雲計算,就是要抓住雲計算真正的內核, 雲計算實際有兩個重要方面,缺一不可,不可偏廢,一是集中計算,一是分散式運算, 雲計算是以特定方式融合二者的歷史產物。 忽視任何一點,都會有嚴重片面性。 現在許多「偽雲計算」,倒不一定是說了完全不沾邊的事情,而是把雲計算的某個側面,或歷史上的某個局部來源,誇大為雲計算的主流,而產生誤導。 為此,在這裡打算僅就雲計算最核心的內涵,進行一番辨析。 1)集中計算分幾種情況,與雲計算既有聯繫,又有區別: 第一種,也是最典型的集中計算是大型主機,如IBM的S/360。 相當多的人把雲計算說成是集中計算,這並不全面。 因為雲計算顯然不等於大型主機。 雲計算的應用,並不集中于大型主機內部,而是分散在集中計算和存儲的外部計算節點上。 第二種,是主從機結構,伺服器是主從機結構中的集中的一方,以後互聯網的WEB模式,就是主從機結構的一種。 主從機結構和WEB都不等於雲計算,這是因為,它們的控制權位於主機(伺服器);從機雖然分散存在,但沒有控制權,不是以使用者為中心的。 第三種是網格計算,網格計算本質上仍是集中計算。 它表面上雖然具有利用分佈計算資源的特徵,但由於要解決的是巨大而單一的計算問題,從應用角度看,並不是分散式的。 把雲計算理解為網格計算,顯然會漏算由節點方(應用方)提出任務這一點。 2)分散式運算,同樣與雲計算既有聯繫,又有區別: 第一種,WEB出現前的互聯網(WWW出現前的互聯網),如阿帕網,就是典型的分散式運算,並不需要伺服器作為計算中心。 僅有分散式運算,並不等於雲計算,因為雲計算還有集中存儲和計算的部分。 第二種,P2P,即無須經由伺服器,一台電腦與另一台電腦直接相聯。 其重要特點是對等,沒有主從之分。 在可管理的P2P模式下,雖然可以經過伺服器,但不同于主從機結構處,在於它也可以不通過伺服器,而主從機結構不通過伺服器是不可以的。 雲計算不同于P2P之處,在於它必須以集中計算和存儲作為分散式運算的互補方面。 第三種,協同計算,可以認為是P2P形式的推廣,從點對點,發展到群組協作,即時消息、SNS等,都可以是基於協同計算和平行計算的。 協同計算已非常接近雲計算,但仍有不同,例如SOA(面向服務架構)可以複用服務模組,但這可能只是發生于應用之間,必須將這些可複用資源移向獨立于應用的雲伺服器中,才算雲計算。 現有許多雲計算的定義,都往往偏向上述情況中的某一邊,因此顯得似是而非。 需提醒的是,業內人士談雲計算往往有特定語境,比如說雲計算建設要加強集中計算和分享。 結合具體所指,可能並沒有錯,因為它可能是指雲計算基礎設施或平臺本身建設,也可能是針對大企業的雲端業務。 但聽的人往往聽錯,以為這就是雲計算的全部,體會不到分散式運算和應用端的存在。 這就造成誤導和誤解。 這種情況並不可怕,消除誤解就會搞明白。 但還有一種情況就不同了。 一些大企業在搞雲計算時,以傳統的網格計算、主從機的舊理念,把雲計算納入排斥分散式運算的集中計算的軌道,那就屬於內行的傳統與保守了。 目前對於集成的理解,就有這種實際問題存在。 3)集中與分散的聯接 現有對雲計算的定義中,許多都忽略了兩個基本點之間的聯接方面的內涵。 實際上,二者的聯接,是雲計算的精髓所在。 這種內涵,也是從歷史中一步步發展出來的。 有幾個概念,值得特別注意: 第一,分享(或共用)。 現在所有的雲計算,都會提到分享。 這主要是指在雲中分享可複用的資源,也包括點對點之間的分享。 分享是與工業化格格不入的概念。 工業企業經濟是在排除分享的前提下建立起來的;可分享的東西,屬於政府用稅收提供的公共產品。 但在雲計算中,分享完全可以是市場行為。 之所以會這樣,是因為有兩種情況與工業經濟相比發生了變化,一是生產資料從物質和資本,變成了資料,從不可複用,變為可複用;二是出現了基礎業務與增值業務之間的交叉補貼,分享可以獲得回報(例如免費模式)。 這樣就造成集中的部分分享,而分散的部分回報。 其中,資料資源可複用性,正是雲計算中的集中,採用分享模式的基礎;而集中業務與分散業務之間的關聯,是分享可以成立的模式基礎。 第二,虛擬化。 虛擬化是雲計算的重要特徵。 工業生產方式是集中,農業生產方式是分散。 歷史上從來沒有解決好二者的矛盾。 虛擬化在協調二者關係上,走出了新路。 早在大型主機時代,虛擬化的思想就被提出了。 但那時並沒有端的應用可供施展。 到了雲計算中,虛擬化在雲的集中與端的分散之間,起到關鍵聯接作用。 實際是在技術上,把資本專用性的框框打破了。 在實體經濟中,要素具有剛性,難以自由流動,固定資產的投資,經常成為沉沒成本,造成巨大閒置和浪費。 在雲計算中,虛擬化實際上將要素的剛性,變為了柔性。 這對於應用端、增值端的邊際投入,固然沒有造成直接的改變,但對集中于雲端的可分享資源來說,卻是一種巨大的社會節約。 相當於從事同樣生產的固定成本(如初始固定投入)憑空節省了許多。 社會可以把固定成本轉化為可變成本,集中于必要的增值業務,為使用者創造更多價值。 第三,效用計算。 效用計算實際是租賃的概念。 由於資源可複用而生產要素可以虛擬化,在產權上帶來的一個合理變化,就是資源配置可以「變擁有為控制(使用)」,把擁有權與使用權分開,對生產要素不必擁有擁有權,而以租賃的方式,控制使用權即可。 在雲計算中,以這種方式,實現的是雲一方的擁有權與端一方的使用權的自然聯接。 這造成公有制與私有制之間一種奇妙混合:在雲的方面,基礎設施(I)、平臺(P)和軟體(S)——相當於工業時代的道路、廠房和設備——是「公有」的;在端的方面,增值業務和邊際投入是「私有」的,而「公」、「私」之間以一定比例分成 (如三七分成)。 第四,開放API(應用程式介面)。 人們在定義雲計算時,很少把API考慮進去。 實際上,在集中與分散之間,離開了API相聯,一切都變得不可行。 因此可以說,API是雲計算的關鍵——或者說,起到雲與端聯接作用的機制,是雲計算的關鍵。 在工業經濟條件下,API是不存在的。 即使在雲計算出現之前的互聯網經濟中,API也經常是封閉的或不起實質作用的。 例如在SOA中,共用模組並沒有獨立出來以API形式,由獨立協力廠商(象雲那樣)提供。 許多談論雲計算的人,都沒有把資源分享到雲端後,如何與終端計算聯接的問題,當作雲計算內涵的一個重要方面來認識。 我個人認為,雲計算從更深的意義上,是以提高效能(即報酬遞增)為目標取向的。 許多人僅僅從效率(包括節省成本)來談雲計算可以解決什麼問題,沒有充分到位。 可以倒著證偽一下,提高效率,也可以是報酬遞減,但那樣的話,雲(I、P、S)與非雲(實體基礎設施、廠房和設備)就沒有區別了。 可見不談效能,就無法把真正的區別總結出來。 真正的區別在於效能(效率的變化率,即「越...... 越......」):採用雲計算,系統越複雜,邊際成本越低;不採用雲計算,系統越複雜,邊際成本越高。 從這個意義上來說,採取雲計算,實質是在轉變生產方式。