近來對資訊系統功能與客戶的需求逐漸高漲,加以技術的精進,在此時機,Google 提供越來越多的網路應用系統,也就是眾所皆知並使用的網路「服務」。並在 2008 年初宣布於台灣啟動「雲端運算」學術計畫。但何謂「雲端運算」呢?這個聽來帶點浪漫色彩的科技名詞,已席捲各大媒體版面。
整體來說,「雲端」其實是泛指「網路」。以一般工程師在繪製網路圖時,常以一朵雲來代表「網路」示意。而所謂「運算」,就是要交給電腦處理的分析、計算、統計。因此,「雲端運算」用白話文講,就是「網路運算」。舉凡運用網路溝通多台電腦的「運算」工作,或是透過網路連線取得由遠端主機提供的「服務」等,都可以算是一種「雲端運算」。但是,只怕很少人能夠聽明白這朵「雲」代表著什麼玄機,以及究竟要做什麼「運算」。
其實「雲端運算」的概念也不算新,其本質大抵承襲自「分散式運算」(Distributed Computing)以及「網格運算」(Grid Computing)這兩位老前輩。在進一步窺探雲中的奧秘之前,先讓我們先了解其源頭。所謂「分散式運算」,顧名思義,就是將大型工作區分成小塊後,分別交由眾多電腦各自進行運算再彙整結果,以完成單一電腦無力勝任的工作。最著名的例子莫過於 1999 年啟動的「SETI@home 計畫」。該計畫利用超過 500 萬名參與者的個人電腦空閒時間,進行分析無線電訊號的運算,以期能找出外星生物。
而「網格運算」則是分散式運算加以延伸的一支。主要特點在於將各種不同平台、架構、等級的電腦透過分散式運算的方式做整合運用。所謂的「網格」指的則是以公開的基準處理分散各處的資料。由此觀之,「雲端運算」與「網格運算」並沒有顯著的不同。的確,兩者都是分散式運算的延伸,唯獨「網格運算」著眼於整合眾多異構平台,而 「雲端運算」則強調在本地端資源有限的情況下,利用網路取得遠方的運算資源。
問題來了,若說只要是透過網路線接上「雲端」並利用遠端資源就可以稱做「雲端運算」,那麼上 Gmail 收發信件與利用 BitTorrent 之類的 P2P 技術取得資料,豈不都可算是「雲端運算」?但是,這兩者在本質上有著明顯的不同,究竟何者才能算是「正港」的「雲端運算」呢?
目前的應用系統,不外乎使用網路當作媒介,主要系統還是建置在遠端,亦既所謂的伺服器,眾所皆知的使用技術不外乎 Microsoft .Net & SUN Java。伺服器提供「服務」,使用者連上伺服器使用上面的「服務」(應用系統),這算是達到「雲端」的定義嗎?總有些人把所謂的「雲端運算」混淆了。引述知名分析公司 Gartner 的分類方式,將「雲端運算」區分為兩大類,分別為「雲端服務」(Cloud Computing Services)與「雲端科技」(Cloud Computing Technologies)。Gartner 指出,「雲端服務」專注在於藉由網路連線,從遠端取得服務。例如提供使用者安裝和使用各種不同作業系統的 Amazon EC2 服務。這類型的雲端計算可以視為「軟體即服務」(SaaS, Software as a Service)概念的後繼。利用這些服務,使用者甚至能只用手機完成許多過去只能在個人電腦上完成的工作。
而「雲端科技」則是著眼於利用「虛擬化」以及「自動化」等技術來創造和普及電腦中的各種運算資源。Gartner 認為,這種類型可以視為傳統資料中心(Data Center)的延伸,且不需要經由第三方提供外部資源,便可套用在整個公司的內部系統上。所以,根據 Gartner 的定義,Google 所謂的「雲端運算」,包含「iGoogle」、「Google Calendar」等,雖然也有運用到「雲端科技」,但是大抵上其模式則是屬於「雲端服務」的範疇。
因此,「雲端運算」的威力不僅僅是提供使用者更妥善的「服務」而已。就企業而言,內部資料繁雜,且資料量大,需要大量的「運算」來做企業需求的應用時,「雲端運算」能夠有效的降低大型主機的成本與風險。目前有許多組織參與 Hadoop(由 Google 雲端架構得到啟發而開始的開放原始碼計畫)的研究開發,並以 Hadoop 做為雲端運算的平台。
資通電腦也為客戶建置 Hadoop 平台,做為後端資料的「運算」,替客戶解決需要大型主機才能處理的繁雜資料分析與報表服務。 而在大家熱情擁抱雲彩之前,「雲端運算」是不是可能有未見的隱憂呢?無論如何,整合眾多電腦的資源,使之通力合作以完成更龐大的作業,是未來發展的必然趨勢。正如趨勢科技董事長張明正所說:「下一個 20 年資安業會怎麼走我不知道,但未來的 3、5 年「雲端運算」勢必是重點技術!」
參考:黃重憲 / 臺灣大學電機資訊學院資訊工程系 淺談雲端運算 (Cloud Computing)