【digitalhome 第103期1月號】
Web 2.0最終實現方式
你聽過雲端運算(Cloud Computing)嗎?這不是複雜又難以親近的自然科學,而是你我日常生活中都會用到的技術,舉例來說,Google能在1秒鐘內搜尋超過全球1億個網頁,用的就是這種技術。在標榜著Web 2.0的現代,以前的不可能,現在看起來一切都很合理。
無網路時代,電腦只是孤兒
大概在十年前,網路還不普及,即使有幸能與網際網路接軌,透過傳統電話數據機進行資訊交換,也會因為網路的工作內容有限造成阻礙。上網找資料?網站不夠多,也沒有Google這麼強大的搜尋引擎,跑圖書館反而是最實際的方法,使用最多的就只是電子郵件交換,加上電話連接網路的成本,也會讓你對使用時間長短「斤斤計較」。 而網路的不普及,也導致個人電腦使用主要是「單機運作」,文書處理、影像繪圖、科學計算全在一部電腦上獨立運作,因此個人電腦內硬體配備的好壞就變得非常重要。想要娛樂?在電腦看VCD(那時代還沒有DVD),遊戲就是單機版,要玩多人大富翁,你得聚集幾個朋友搬些椅子在電腦前,大家輪流透過同一組鍵盤滑鼠操作。在沒有網際網路連線的時代,組一台電腦都很昂貴,何況是組成一個簡單的區域網路更加不可能。
你知道終端機嗎?
讀完前面的段落,或許很多資深玩家會抗議怎麼漏掉了BBS站這個最重要的「網路應用」。BBS站又稱為「電子佈告欄」,主要是提供文字模式的訊息交換平台,申請BBS站的帳號後,你可以在佈告欄留言,或加入某個主題進行討論(有點類似現在的討論區),還可跟特定的網友用「站內信」交換意見,所有的工作只要用軟體連線到指定電腦,就可以開始作業,包括編輯文字訊息、接收站內信,都是在遠端主機中,這就是很簡單的終端機概念,資料不在你的電腦內,你只是用指令在操作遠端的電腦幫你做事情。千萬別小看這場景,它可具備了雲端運算的基本概念「運算的工作在遠端電腦進行,本機只是負責單純的操作」;只是以現在的眼光來看,用BBS來比喻雲端運算未免太小題大作,因為BBS的資料量很小,只是單純的文字字元,沒有複雜的圖形處理工作,或者龐大的數據運算需求,還不構成近代「雲端運算」的規模。
也許你體驗過雲端運算
隨著網路的發展快速,傳輸頻寬也越來越大,最慢的1M ADSL比起56K數據機都快上近20倍,網路能做的事情更多了。Google為大家做了網路無限可能的示範,你用過Gmail、Google Docs、Google Talk、iGoogle、Google Calendar等線上應用嗎?這就是雲端運算的基礎運用!瀏覽器連上指定的網站,就能開始編輯文件然後「線上」存檔,在公司沒寫完的稿子,回家還可以連上網路繼續寫;Google Spreadsheet圖形化的線上試算表,定義公式後填入數值,計算工作都是靠Google主機內的處理器;這些工作與我們使用的電腦性能無關,只有網路連接速度是問題。 其實上面的概念,昇陽在90年代末期就提出過「網路電腦」的構想,並且有實體產品問世,可惜的是當時沒有隨地寬頻,若得把工作交由遠端主機處理,再用網路回傳到本機的速度恐怕不是一般人所能接受。另一方面,一般用途的雲端運算,現在能成功的因素還包含介面設計的成功,以Google為例,Ajax設計的人性化介面,只要會在瀏覽器輸入網址就會使用。但昇陽的初期產品,需要用專屬的機器、作業系統,整個架構部署後所費不貲。
企業、科學用途的雲端運算
一般我們能接觸到的只是簡單的雲端運算應用,最複雜的程度也只到影片轉檔處理,YouTube應該算是以筆者能力用到最複雜的項目。自己的影片用網路傳遞給YouTube,然後透過他們的伺服器轉換影片成FLV格式,最後決定要不要公開分享。企業與科學用途的雲端運算,處理的項目通常是龐大的數據計算,例如生產排程工作,龐大的生產線加上一堆限制條件(可能是幾十萬條限制),需要在短時間內獲得結果,所以使用者介面變得不是重點,負責運算的機器是否快速又穩定比較重要。藉助雲端運算,企業只要在本地送出運算式,交由他處強大的超級電腦運算,經過高速計算後得到最佳解決。 商用雲端運算主要應用有線性規劃、統計分析,科學用途的最經典的應用就是生物科學,例如分析DNA結構、基因圖譜定序、解析癌症細胞等,用他處的高速主機協助,比自己單機運算還有效率。對於企業與科學研究而言,雲端運算的導入能大幅降低成本,不必購置昂貴的超級電腦,與負擔後續的維護成本加上設備折舊費用,只要把運算的原始資料交由市場上專業的處理公司,依照處理器耗費的資源或時間付費。
未來的資訊發展趨勢
雲端運算的出現,衝擊最大的就是傳統個人電腦市場,不管是硬體製造商或是作業系統開發者(尤其是個人用戶為主的微軟),未來只要準備一台有瀏覽器的設備,就能達成需要的一般性工作,何必每年升級電腦,或者跟隨廠商的腳步升級作業系統?雲端運算的模式,等於是把資訊產業慢慢傾向服務業的性質,工作平台由業者的網路平台提供,使用者的電腦變成只是溝通的工具、現代化的圖形終端機。 分散式系統、平行處理、大型主機等資訊科學理論,造就了現代的雲端運算,如何有效的分配運算效能,並節約能源是擁有雲端平台業者所需思考的議題,身為普通電腦使用者的我們,會因為網路頻寬提升在未來有更多功能可使用。或許等到光纖寬頻100M/100M網路達成的那天,會不會Maya、Photoshop這類大型的動畫、影像處理軟體,說不定不需發行實體光碟,只要賣給用戶網站的使用帳號,用戶在業者的線上平台作業,就能解決所有工作需求。
淺談雲端運算 (Cloud Computing)
作者:黃重憲 / 臺灣大學電機資訊學院資訊工程系
「雲端運算」=「網路」=「網路運算」。「雲端運算」不是「新技術」或「技術」。「雲端運算」是一種概念,代表的是利用網路使電腦能夠彼此合作或使服務更無遠弗屆。在實現「概念」的過程中,產生出相應的「技術」。
隨著Google在去年初宣布於台灣啟動「「雲端運算」學術計畫」,「「雲端運算」」這個聽來帶點浪漫色彩的科技名詞立時席捲各大媒體版面。眾多網路公司以及「網格運算」服務都搶搭順風車,聲稱他們的服務也屬於「「雲端運算」」。但是,只怕很少人能夠聽明白他們口中的這朵「雲」代表著什麼玄機,以及它究竟要做什麼「運算」。
所謂「雲端」其實就是泛指「網路」,名稱來自工程師在繪製示意圖時,常以一朵雲來代表「網路」。因此,「「雲端運算」」用白話文講就是「網路運算」。舉凡運用網路溝通多台電腦的運算工作,或是透過網路連線取得由遠端主機提供的服務等,都可以算是一種「「雲端運算」」。
所以說,「雲端運算」其實不是新技術,更嚴格的說,甚至不能算是「技術」。「雲端運算」是一種概念,代表的是利用網路使電腦能夠彼此合作或使服務更無遠弗屆。而在實現「概念」的過程中,才會產生出相應的「技術」。
「雲端運算」的概念事實上也不算新,其本質大抵承襲自「分散式運算」(Distributed Computing)以及「「網格運算」」(Grid Computing)這兩位老前輩。在進一步窺探雲中的奧秘之前,先讓我們來認識其源頭。
所謂「分散式運算」,顧名思義,就是將大型工作區分成小塊後,分別交由眾多電腦各自進行運算再彙整結果,以完成單一電腦無力勝任的工作。最著名的例子莫過於1999年啟動的「SETI@home計畫」。該計畫利用超過500萬名參與者的個人電腦的空閒時間進行分析無線電訊號的運算,以期能找出外星生物。
而「「網格運算」」則是分散式運算加以延伸的一支,其主要特點在於將各種不同平台、不同架構、不同等級的電腦透過分散式運算的方式做整合運用。所謂的「網格」指的則是以公開的基準處理分散各處的資料。
由此觀之,「雲端運算」與「網格運算」並沒有顯著的不同。的確,兩者都是分散式運算的延伸,唯獨「網格運算」著眼於整合眾多異構平台,而「雲端運算」則強調在本地端資源有限的情況下,利用網路取得遠方的運算資源。
問題來了,若說只要是透過網路線接上「雲端」並利用遠端資源就可以稱做「雲端運算」,那麼上Gmail收發信件與利用BitTorrent之類的P2P技術取得資料,豈不都可算是「雲端運算」?但是這兩者在本質上有著明顯的不同,究竟何者才能算是「正港」的「雲端運算」呢?
在「電腦世界」(Computer World)一篇標題為「雲端運算」的過度混淆」( Cloud computing hype spurs confusion) 的文章中,引述了知名分析公司Gartner的分類方式,將「雲端運算」區分為兩大類,分別為「雲端服務」(Cloud Computing Services)與「雲端科技」(Cloud Computing Technologies)。
Gartner指出,「雲端服務」專注在於藉由網路連線從遠端取得服務。例如提供使用者安裝和使用各種不同作業系統的Amazon EC2服務。這類型的雲端計算可以視為「軟體即服務」(SaaS, Software as a Service)概念的後繼。利用這些服務,使用者甚至可以只靠一支手機做到許多過去只能在個人電腦上完成的工作。
而「雲端科技」則是著眼於利用虛擬化以及自動化等技術來創造和普及電腦中的各種運算資源。Gartner認為,這種類型可以視為傳統資料中心(Data Center)的延伸,且不需要經由第三方提供外部資源便可套用在整個公司的內部系統上。
所以說,根據Gartner的定義,Google所謂的「雲端運算」,包含「iGoogle」、「Google Calendar」等,雖然也有運用到「雲端科技」的部分,但是大抵上其模式則是屬於「雲端服務」的範疇。
不讓Google、Yahoo!等網路公司專美於前,趨勢科技於2008年11月全球首創使用「雲端運算」技術進行防毒。使用者不需要再像過去那樣,將更新過的病毒碼下載到個人電腦中,而是在網路上即時偵測惡意程式。藉由「雲端運算」,使用者便可節省更新病毒碼所需的硬碟空間,而且也能一併解決病毒碼批次更新速度比不上新病毒產生速度的問題。此外,這種更為主動且即時的防禦方式更能夠有效防禦自2007年起大量激增的惡意網頁。
當然,「雲端運算」的威力不僅僅是提供使用者更妥善的服務而已,對企業而言,「雲端運算」能夠有效的降低成本與風險。由於雲端服務不需要將程式安裝在用戶的電腦中,對服務商而言,降低了商業程式邏輯被破解的風險。此外,過去常見到台灣公司必須先將在本地收集的資料傳回美國,經過美國工程師處理後再傳回台灣作業的情況,如此一來則需耗費大量的網路傳輸費用以及時間。利用「雲端運算」,位在世界各地的開發人員便能夠透過同一套平台更即時且密切的合作。iThome曾引述趨勢科技研究開發部專案經理楊覲寧的看法:「(「雲端運算」)不只是縮短資料傳輸時間,也加快了趨勢開發新產品的速度。」
然而,在熱情擁抱雲彩之前,先讓我們停下來想想在雲深不知處是否有什麼未見的隱憂。首先,將服務集中在雲端上便有「將雞蛋放在同一欄」的風險。比方說,在我用我個人電腦上的WORD程式寫這篇文章的過程中,假設WORD突然無法執行,我只要將文件檔案複製到其他裝有WORD的電腦上就可以繼續完成這篇文章。若我是利用雲端服務商提供的文字處理程式,一旦該供應商暫停服務,我能做的就只剩下潛心祈求我的檔案有被妥善保存並向客服人員抱怨。此外,使用者的行為、習慣、愛好等等,都將隨著雲端服務一同被服務商紀錄下來。換句話說,以往在個人電腦上被使用者視為隱私的部分,將會更直接地暴露在網路之上。
雖然「雲端運算」的發展態勢仍稍嫌模糊混沌,其在「網格運算」和分散式運算間的定位也是妾身未明。但無論如何,整合眾多電腦的資源使之通力合作以完成更龐大的作業,是未來發展的必然趨勢。正如趨勢科技董事長張明正所說:「下一個20年,資安業會怎麼走我不知道,但未來的3、5年,「雲端運算」勢必是重點技術!」