淺談雲端運算新趨勢與Hadoop平台之崛起 - 產業趨勢 - 網管人NetAdmin

淺談雲端運算新趨勢與Hadoop平台之崛起 - 產業趨勢 - 網管人NetAdmin:

2010/6/25

了解基本來龍去脈

淺談雲端運算新趨勢與Hadoop平台之崛起

王耀聰
2010年被媒體喻為台灣的雲端元年,但每當談到雲端運算,不知大家是否心中仍存著諸多疑惑,冷眼觀看那不同廠商各說各話。底下就來細說從頭,先給大家一個關於雲端運算的正式定義、看看雲端的技術演進史,最後說明為何Hadoop這個處理海量資料的軟體平台會逐漸被國際資訊大廠所重視。
隨著網際網路的普及,各種連網裝置讓生活更加地便利。然而,隨著人們產生資訊的速度越來越快,數量愈來愈多,大量通訊不僅塞爆了實體的網路頻寬,無形中也正侵蝕著每個人大腦的資訊頻寬。為了解決資訊爆炸所造成的困擾,順應隨時隨地連網的趨勢,替企業達成精簡資訊成本的目標,一種嶄新的軟體服務模式與資訊架構革命正以撲天蓋地之姿席捲全球。

Google執行長施密特(Eric Schmidt)於2006年8月9日SES'06會議中首次使用「雲端運算(Cloud Computing)」來形容無所不在的網路服務。緊接著,Amazon更以Elastic Compute Cloud(簡稱EC2)命名其虛擬運算資源服務。而2007年10月8日,Google與IBM發布合作,擬與美國境內七所大學合作,教授如何處理海量資料的高速計算技術,從此引爆雲端運算的討論熱潮。

2008年時值全球金融風暴肆虐,多數人均擔心雲端運算只是一時的口號。但2009年4月24日,美國國家標準局(NIST)開始起草雲端運算的標準定義;於同年5月,歐巴馬政府更明白地在2010年度國會預算書上,指出雲端運算是重要施政重點。隨即,英國、日本、韓國等亦相繼宣布將建立政府雲端的計畫,作為振興經濟的強心針。

2010年被媒體喻為台灣的雲端元年,但每當談到雲端運算,不知大家是否心中仍存著諸多疑惑,冷眼觀看那不同廠商各說各話。底下就來細說從頭,先給大家一個關於雲端運算的正式定義、看看雲端的技術演進史,最後說明為何Hadoop這個處理海量資料的軟體平台會逐漸被國際資訊大廠所重視。

笑談雲端五四三 

漫畫裡的呆伯特對老闆突然丟來的奇怪問題,總能用簡單的一句話敷衍過關。那麼如果要用一句話簡單說明什麼是雲端運算,那該如何解釋呢?且讓作者贈送各位正經版與幽默版各一句來當作應對妙招,正經版可答道:「雲端運算就是隨時隨地運用各種裝置來存取想要的服務」,幽默版可笑曰:「雲端運算談的不外乎五四三(台語)啦∼」倘若有人反譏胡說八道,還有雲端口訣可以背得對方聽:「一個基本精神、兩個極端產業、三個服務模式、四個部署模型、五個基礎特徵」,這不恰恰就是五四三二一嘛?!關於這雲端口訣的五四三可不是隨便說說,真是取自美國國家標準局(NIST)的雲端標準定義。以下就來逐一說個明白。

五個基礎特徵 

所謂「五個基礎特徵」,包括隨需自助服務(On-demand Self-service)、隨時隨地用任何網路裝置存取(Broad Network Access)、多人共享資源池(Resource Pooling)、快速重新部署靈活度(Rapid Elasticity)以及被監控與量測的服務(Measured Service)。這五個基礎特徵的典型代表當然是Amazon Web Service。

專家們認為未來進入雲端運算的時代,每個系統管理員將不再須要擔憂採購硬體的時間與流程,而是改以租賃方式,動態地根據需求,自助啟動或關閉所負責的資訊服務,而這些服務都是透過各種網路裝置來存取。

此外,由於全球不同企業共享這些軟硬體甚至人力資源,從統計與機率上,若產業異質性高,便能有效地互補彼此尖峰使用的時間,間接降低不同企業的資訊成本。

為了達成動態調配共享資源的目的,雲端服務供應商必須具備快速重新部署的靈活度,好讓各種被釋放出來的資源能馬上被其他客戶使用。最後,任何雲端服務都涉及計價行為,因此所有服務必須能被監控與量測,以便統計租賃的帳單金額。

四個部署模型 

至於「四個部署模型」,指的是公用雲端(Public Cloud)、私有雲端(Private Cloud),以及不常聽到的社群雲端(Community Cloud)、混合雲端(Hybrid Cloud)。公用雲端顧名思義就是全球一起共用某個雲端服務廠商的資源池,多半適用於資料機敏性低的新創事業或中小企業;而私有雲端則是由企業自行建置共享資源池,所以任何資料機敏性高的產業都可能須要自行打造。

社群雲端係指由多個組織共享資源池,因此較合適具共享研究資料需求的學研單位合資建置;而混合雲端泛指混合了上述三種雲端型態,須基於標準或運用新技術來確保資料與應用程式在不同平台間的移植性。

三個服務模式 

關於「三個服務模式」,也可稱之為不同雲端服務商的市場區隔,分別為架構即服務(Infrastructure as a Service,IaaS)、平台即服務(Platform as a Service,PaaS)與軟體即服務(Software as a Service,SaaS)。Amazon EC2的服務就是典型的架構即服務,讓用戶可自行租賃所需的運算、儲存與網路資源。而Google App Engine則是典型的平台即服務,讓用戶可以在共通的平台上進行程式開發或軟體部署。

一般人常用的Yahoo、Gmail、Facebook等都算是軟體即服務的範疇,過去購買套裝軟體的模式,如今已逐漸典範轉移,改依需求變化,動態地變更租賃軟體服務的授權數量,用多少付多少。從企業經營成本面來看,過去採購硬體的固定成本,如今轉變成變動營運成本,在金流調度上將更有彈性。

兩個極端產業與一個基本精神 

口訣最後的「兩個極端產業,一個基本精神」,談的是未來雲端將持續往兩個極端發展,一邊是雲(資料中心)的產業供應鏈,一邊是端(行動裝置)的產業供應鏈。雲的發展將是地理集中而標準化,而端的發展將是位置變異而多元化。而雲端運算之所以能融入各行各業,憑藉的是「形成網路服務」這個基本精神。惟有形成服務,才有商業行為,方能串起供需鏈,進而促進經濟的永續發展。

回顧資通六十載 

談完雲端的五四三,相信各位已對雲端運算有比較清晰的概念。那麼雲端運算代表的是全新的技術嗎?其實不然,雲端運算只是軟體演化必然的趨勢,參透過去六十年資通產業的歷史教訓,才闢出一條新的道路。

回顧資通產業過去六十年的發展:1960年代運算主力是超級電腦,1970年代才有個人電腦誕生,1980年代制訂TCP/IP通訊協定,1990年初期因有GNU自由軟體基金會與Linus的努力,才產生第一次高速運算革命,讓個人電腦叢集(PC Cluster)以企鵝雄兵打敗超級電腦,大幅降低運算成本,平行運算(Parallel Computing)頓時蔚為顯學。

1990年代後期網路逐漸導入金融機構,所以分散式物件技術逐漸流行。演化至2000年初,SETI@Home尋找外星人計畫,向全球電腦用戶借螢幕保護的運算資源,開啟分散式運算(Distributed Computing)的新頁。隨即全球高速電腦中心起而效法分散式運算精神,提倡格網運算(Grid Computing),擬建立虛擬組織共享全球運算資源。

格網運算雖立意良善,卻因遲遲無法形成服務而難以進入產業應用。直至2006年Amazon推出Elastic Compute Cloud(EC2)才成功地建立隨需運算服務,開啟雲端運算的序曲。

歷經超級電腦、平行運算、分散運算與格網運算,雲端運算繼承了平行運算的叢集技術、融合了分散運算的容錯特性,發展出「資料中心即電腦(Data Center as a Computer)」的新思維。

有別於格網運算將資料搬到有空閒計算資源的思維,雲端運算強調把工作丟到資料所在主機去計算。由於資料集中儲存,使用者便能隨時存取,毋須擔心資料遺失,大幅降低資料搬運頻寬成本,甚至讓網路世代新人類輕鬆地在線上協同合作。

除此之外,由於行動裝置種類龐雜,未來雲端運算的發展勢將揚棄封閉技術,迎向開放共通標準的技術,如HTML、CSS等。隨著莫爾定律,CPU持續朝多核心,從撥接到FTTH、GPRS到WiMAX,頻寬亦不斷攀升。

在雲端的年代,資料中心才是電腦,瀏覽器才是新的作業系統,資訊人惟有不斷充實多核心、平行、分散式運算與網頁程式設計等技能,才有機會住進未來那朵大雲裡。

喜獲吉象過重山 

看完以上的趨勢分析,或許讀者不禁想問:「縱使知道雲端趨勢很重要,若想打造私有雲端,下一步該做什麼呢?總是得腳踏實地,而不是空口畫雲吧!」

國網中心自2008年1月成立雲端運算研究小組,於雲端萌芽期,僅能從有限的報導、技術白皮書與論文中得到下列幾個關鍵字:自由軟體、虛擬化、MapReduce、Xen、Hadoop。

若想打造私有雲端,可參考下圖中所列舉不同技術分層的自由軟體,來建置自己專屬的雲端服務。目前有專家學者警告企業導入雲端不該只是採購硬體或導入虛擬化。筆者認為這只是導入雲端第一個階段,後續將視各企業屬性不同而導入平台即服務與軟體即服務的相關技術。

▲建構私有雲端運散架構的自由軟體。


倘若讀者的企業需要架構即服務,擬導入虛擬層與控制層,這裡建議的自由軟體包括Xen、KVM、OpenNebula與Eucalyptus。若需要建置的是資料分析的平台服務,那接下來要介紹的Hadoop與美國資料探勘中心研發的Sector/Sphere都是首選。

本文最後要談的是Hadoop這個海量資料分析的軟體平台,它有何特殊呢?為何Google與IBM合作教授雲端課程會採用?為何Yahoo搜尋引擎、Facebook社交網站、Last.fm網路電台、Joost網路電視等均拿它來進行資料分析呢?

首先,倘若說Google是當今最能引導技術風潮的品牌,想必大家不得不同意。那麼Google的關鍵技術是什麼呢?

Google有三大關鍵技術:其一是Google File System,為了提升營運容錯率,Google重新設計了一套分散式檔案系統來存放全球的網頁內容、電子郵件、照片、影片等;其二是MapReduce演算法,Google宣稱多數的資料分析都可以靠此一演算法解決;其三是BigTable分散式資料庫,Google將存在Google File System中的資料,經過MapReduce運算後,轉換成巨大的資料表,這個資料表有別於傳統關聯式資料庫,僅存放成對的Key-Value。

因此,當下達一個查詢網頁或查詢信件的動作前,Google早已將所有網頁、信件進行拆解分類存進BigTable,查詢下達時只是從BigTable查Key等於關鍵字對應的所有Value罷了。

而當使用者與Google各種網頁服務互動時,那些Log又成為Google分析的對象,所以越多人點閱的連結,PageRank越高,排得越前面。使用者打過的每個E-mail位址,也都被自動存起來,成為下次自動填滿位址、查詢提醒的參考。因此,Google創辦人常謙卑地說雲的智慧(Wisdom of Cloud)來自於群眾的智慧(Wisdom of Crowds)。

然而,Google的三大關鍵技術沒有原始碼或軟體可讓其他企業安裝使用,好在Google分別公開了Google File Ssystem、MapReduce與Big的三篇論文,讓Hadoop這套軟體平台的創始人Doug Cutting能參考論文,重新實作Hadoop Distributed File System(HDFS)與MapReduce API。

Doug Cutting之後又間接地進入Yahoo,讓Yahoo的搜尋引擎加入Hadoop之後,如虎添翼。也因此,諸多過去無法分析的資料,如今有了Hadoop軟體平台後,都開始可以分析。

例如,電信業者可以分析手機在基地台漫遊的特性,提供更好的在地費率。信用卡業者可以每天定期分析各種信用貸款所產生的風險,動態調整信貸利率。便利超商能夠分析消費者的購買習慣,動態調整架上存貨數量。甚至新興產業,如生醫資訊、智慧電網等都可以運用Hadoop平台來進行資料探勘與趨勢預測。

假若企業有儲存海量資料的需求,有分析海量資料的需求,或者面臨資料庫過度龐大,正在尋求分散式資料庫或資料倉儲的技術,那Hadoop或許是一個已經過商業驗證的選擇。只要懂得駕馭Hadoop這隻大象,它將能駝著各位爬過一座又一座資料大山,幫忙理出隱藏在群眾中的邏輯。

<本文作者為國家高速網路與計算中心軟體技術組副組長。常戲稱自己的專長是『不學無術』,目前從事雲端運算基礎架構之研發,主要包含Hadoop雲端運算平台與Xen虛擬化叢集部署工具開發。國網中心任職七年,曾參與生態格網(感測網路)、視訊格網(多媒體串流)、捷運文湖線移動式無線管理單元開發(無線網路快速漫遊)。長期為自由軟體實驗室成員,並致力於整合自由軟體於校園教學環境為目標。2009年因身為企鵝龍與再生龍團隊成員,榮獲行政院科技貢獻獎。未來四年目標希望持續加強高速運算方面的專長,推動校園聯合雲端運算平台(Class Cloud)在科學研究方面的應用。>

'via Blog this'

留言