*** 自本篇後續所有的文章內容,作者為賴信仁 (Ringle Lai),並已經由授權延續本案例研討系列。***
七、 雲運算技術總覽
7.1. 雲運算的歷史與分類
自從互聯網(Internet)開始進入電腦的世界以來,電腦技術的進展,以超越人類能夠想像的速度超高速發展中。
中國人有句話說:「積沙成塔,聚少成多」,用這句話來形容近來的電腦運算能力的進展,是再適合也不過的了。
在網路環境還不發達的年代中,所有的電腦都是獨立的個體,各自有各自的運算能力,彼此沒有辦法互相溝通,因此,要進行大量的運算,就必須要架構出「超級電腦」來進行超大量的運算;
當網路環境越來越成熟時,區域網路利用「乙太網」(ethernet)進行溝通,因此,在區域網路的環境中,可以架構出「叢集式運算」(Computer Cluster)的環境,讓多個Server可以透過互享資源的方式,將運算能力以倍計成長;
但「叢集式運算」的環境,對於很多的系統管理人員來說,卻是一個惡夢的開始,系統管理人員必須耗費相當多的心力來架構出「叢集式運算」的環境,而硬體及軟體成本也因為要架構出這樣的環境而大幅飆升,原先只是想要取代大型主機,卻發現要耗費的心力其實比維護大型主機更多!
基於這樣的一個背景,有些人開始思考是否有更簡單的方法來架構出一套具備叢集式運算能力,但在管理上更簡單、成本上更節省的方式。
「網格運算」(Grid Comupting)就是在這樣的背景上應運而生。
由於網際網路的傳輸能力大幅提升,無論在速度或是可靠性上,網際網路的能力都逼近了區域網路,因此,是否能夠運用網際網路的特性來進行分散式的運算,就成了計算機科學中的「顯學」。
網格運算主要是將整體的網際網路視為一個「有機體」,在這個有機體中,所有加入「網格」的個人電腦都視作是該有機體的「細胞」,每個「細胞」可以提供他多餘的運算能力,當有一個「運算任務」發出後,各個節點分散了整體的運算任務,讓整個的「網格」可以發揮最大的能力來進行運算。
「網格運算」可以說是分散式運算中的一個極致運用,但是網格運算在管理上仍然是一個很大的問題,由於參與網格是一個「自由」且「自發性」的行為,因此,同一個運算任務究竟需要多少的時間可能都沒辦法事先預測,也因此,是否有更適當的方式能夠同時兼顧「分散式運算」與「集中式管理」?
「雲運算」似乎是達成上述目標的其中一個「聖杯」。
何謂雲運算呢?根據美國國家標準技術研究所(National Institute of Standards and Technology, NIST)的定義,雲運算是:
「Cloud Computing is a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction. This cloud model is composed of five essential characteristics, three service models, and four deployment models.」(ref: The NIST Definition of Cloud Computing; NIST Special Publication 800-145; Peter Mell & Timothy Grance)
雲運算是一個具備普及性、便利性及隨選式網絡的模型,其可以存取共用的可配置的電腦資源庫(如網絡,伺服器,存儲,應用程式和服務);使用者可以運用最少的管理成本快速地與服務供應商互動。
雲運算模式是由五個關鍵特性、三種服務模型以及四種部署模型所構成。