wikimedia

雲端運算的最大目標,是要像水電等公共服務一樣,在任何時候打開水龍頭都有水,電器插上任何一個電源插座,就能立即運作。

對使用者而言,雲端運就算像是擁有取之不盡、用之不絕的運算資源,隨時能夠滿足使用者的需求,不需考慮使用人數的多寡,只要打開瀏覽器,有網路連線隨時就要能夠使用。

雲端服務供應商要達到這樣的境界,就必須擁有大量的運算資源,而且這些運算資源必須有辦法統合為一個共用資源池,才能夠依照使用者的需求,快迅靈活的調度資源,讓使用者覺得有用不完的運算資源,以及隨時隨地都可以取得運算服務。

雲端運算主要是立基於兩大關鍵技術來實現運算資源統合,分別是虛擬化(Virtualization)技術與分散式運算(Distributed Computing)技術。

虛擬化技術

虛擬化技術,是將伺服器、儲存空間等運算資源予以統合。一臺採用虛擬化技術的伺服器,可以創造出一個虛擬化的環境,同時執行好幾臺宛如實體伺服器一般的虛擬伺服器。透過虛擬化管理工具,在幾分鐘內就可以建立一臺虛擬伺服器,而其運算資源,如處理器速度、記憶體容量、硬碟儲存空間,則可任意配置。

對應用程式而言,虛擬伺服器的架構與功能就像是一臺一般的電腦,其實應用程式是分不清其差異的,因此當應用程式需要更多的運算資源時,立即提供一臺虛擬伺服器,就像是趕快安裝一臺實體伺服器一樣。然而,實體伺服器無法快速完成安裝,而虛擬伺服器則可在幾分鐘內就設定完成,對應用程式而言,幾乎不必為了擴充運算資源而中斷服務,看起來就像是有用不完的運算資源。

透過虛擬化技術,每一臺實體伺服器的運算資源都換成了許多虛擬伺服器,這些虛擬的運算資源可以統整在一起,任意分配運算等級不同的虛擬伺服器,因此運算資源的安排就不再受到實體伺服器的限制,只要使用者對於運算資源有需求,就能在幾分鐘內迅速配置好一臺與實體伺服器功能一模一樣的虛擬伺服器,而且,因為虛擬伺服器與實體伺服器的關係脫勾了,虛擬伺服器可以任意在不同的硬體設備之間遷移,因此即使虛擬伺服器所在的實體機器發生故障,虛擬伺服器亦可快速移到其他正常的硬體伺服器,因此使用者就不會感受到運算資源中斷,依然感受到運算資源是源源不絕的,而這也就代表服務供應商有靈活彈性的調度能力。因此,虛擬化可說是雲端運算基礎架構非常關鍵的技術。

分散式運算技術

分散式運算技術,則是利用網路將多臺電腦連結起來,透過管理機制來協調所有電腦之間的運作,以創造高效率的運算。

分散式運算的執行方式,可以把運算任務切割成多個小型的運算工作,再交給每一臺電腦去執行,最後再把所有執行結果組合起來,如此透過螞蟻雄兵的方式,以大量廉價的電腦創造出不輸大型主機的效能。

分散式運算架構亦符合雲端網路服務的特性,新一代的網路服務有許多互動式機制,這些可能都是由一個小程式來負責,它不需要什麼運算量即可處理,然而,當網站的使用人數是成千上萬時,或像是Facebook這樣有上億使用人口的巨型網站,就算只是一個「按讚」的簡單功能,然而每天無時無刻都有成千上萬的使用者在按讚,亦需要有龐大的運算量來應付。透過分散式運算架構,這樣的運算需求就可以快速分派給數千數萬臺伺服器來執行,充分發揮最高的運算效率。

Google的雲端服務就是利用分散式運算的典型,他們將成千上萬的低價伺服器組合成龐大的分散式運算架構,這樣的架構既可快速處理運算任務,又可以水平地增加電腦數量,具有高度擴充性,可在不影響原本運作的情況下擴充運算量。

Google採取的分散式運算架構,既統整了伺服器的運算資源,又讓應用程式具有高度擴充的架構。由Google所開發的MapReduce技術,因而成為現今雲端服務分散式技術的主流。後來,有一個類似MapReduce架構的Hadoop分散式開發框架,以開放原始碼的方式釋出,亦成為主流的選擇。

雖然Google是打造了大型的資料中心,將上萬臺實體伺服器組合成分散式運算架構,但其實也可以用虛擬伺服器來建構分散式運算環境,例如Amazon的IaaS服務中,就有一個Amazon Elastic MapReduce服務,是利用EC2的虛擬伺服器來組成分散式運算服務。

 

 

 


相關報導請參考「雲端運算徹底了解:基礎篇」


Advertisement

更多 iThome相關內容