雲端計算學習筆記002---雲端計算的理解及介紹,google雲端計算平臺實現原理
什麼是雲端計算:
l 說的明白一點:
• 雲端計算其實就更大限度的發揮網路的資源。
• 那為什麼叫雲,為什麼不到網際網路計算?Cloud
l 大多數計算的網路拓撲圖都用一塊“雲”來表示網際網路。於是就形成了雲端計算的說法
l 狹義:是指IT基礎設施的交付和使用模式,是指通過網路以按需、易擴充套件的方式獲取所需要的資源。提供資源的網路被稱為“雲”。雲中的資源在使用者看來是可以無限擴充套件的,並且可以隨時獲取。
l 廣義:是指服務的交付和使用模式,是指通過網路以按需、易擴充套件的方式獲取所需要的服務。
一塊網路通常用一塊雲來表示,所以習慣上,就把網路計算,稱為雲端計算.
雲端計算相關概念
l 雲端計算
• 雲端計算是為使用者提供無限計算資源的商業服務,是能夠自我管理計算資源的系統平臺,是應用服務按需定製、易於擴充套件的軟體架構。
l --- XXX ---
l 計算資源包括:CPU運算資源、儲存資源、網路頻寬等
l 雲端計算是平行計算、分散式計算和網格計算的發展,是這些電腦科學概念的商業實現。
l 雲端計算是虛擬化(Virtualization)、效用計算(UtilityComputing)、IaaS(基礎設施即服務)、PaaS(平臺即服務)、SaaS(軟體即服務)等概念混合演進並躍升的結果。
雲端計算的幾大形式
l 雲端計算服務類形
• 基礎設施即服務( IaaS) - 提供硬體裝置
• app – engine
//比如使用者自己弄了一個軟體,就可以釋出到谷歌的這個app– engine平臺上,然後全世界就可以得到你的這個軟體的服務了.
• 軟體即服務( SaaS ) - WebService
//軟體服務,就是說,自己的webservice可以為世界的其他使用者提供服務
• 網路服務
• 平臺即服務(PaaS) - hadoop(平臺) ,Oracle(),MS,
//就是各種大型雲服務,比如資料服務,儲存服務等等.
• 管理服務提供商(MSP)
//給企業,提供相關的管理服務.
• 商業服務平臺
//商業服務,比如給不同公司提供,自己的管理系統等等.
• 雲安全
//雲查殺等等..
l InfoWorld網站同數十家公司、分析家和IT使用者討論出了雲端計算的幾大形式。
l --- XXX ---
l 下面將大體介紹每一種雲端計算形式
基礎設施即服務 (實用計算、虛擬化)
l IaaS —— Infrastructure as a Service
• 是為IT行業創造虛擬的計算和資料中心,使得其能夠把計算單元、儲存器、I/O裝置、頻寬等計算機基礎設施,集中起來成為一個虛擬的資源池來為整個網路提供服務。
• 用多少算多少
• Amazon WebServices,簡作AWS
• 彈性計算雲EC2 (ElasticCompute Cloud)——計算
• 簡單儲存服務S3 (SimpleStorage Service)—— 儲存
• Google App Engine
l Amazon使用彈性計算雲(EC2)和簡單儲存服務(S3)為企業提供計算和儲存服務。
l 收費的服務專案包括儲存伺服器、頻寬、CPU資源以及月租費。月租費與電話月租費類似,儲存伺服器、頻寬按容量收費,CPU根據時長(小時)運算量收費。
l Amazon把雲端計算做成一個大生意沒有花太長的時間:不到兩年時間,Amazon上的註冊開發人員達44萬人,還有為數眾多的企業級使用者。
l 有第三方統計機構提供的資料顯示,Amazon與雲端計算相關的業務收入已達1億美元。雲端計算是Amazon增長最快的業務之一。
l S3:S3的基礎視窗是桶,桶是存放檔案的容器。S3給每個桶和桶中每個檔案分配一個URI地址,因此你可以通過http或者https協議進行訪問。(認證、許可權控制)
l Google App Engine這種服務讓開發人員可以編譯基於Python的應用程式,並可免費使用谷歌的基礎設施來進行託管(最高儲存空間達500MB)。
l 對於超過此上限的儲存空間,谷歌按“每CPU核心每小時”10至12美分及1GB空間15至18美分的標準進行收費。
網路服務
l 網路服務 WebService
• 提供API讓開發者能夠開發更多基於網際網路的應用
• Google Earth
• Baidu Map
• 中移動的 FetionWeb Service
l 網路服務是一組組存在於網際網路上的API,也就是一些具有URL的函式,給使用者提供二次開發的能力
l 雲端計算服務的部署形式
- Google的雲端計算思路
隸屬PaaS的Google雲端計算
Ø 屬於部署在雲端的應用執行環境
Ø 支援Python和Java兩種語言
Ø 通過SDK呼叫Google的各種服務。如GoogleMap、Mail等
Ø 使用者可快速、廉價(可免費使用限定的流量和儲存)地部署自己開發的應用(如創新的網站、遊戲等)
Ø 隸屬SaaS的Google雲端計算
Google雲端計算平臺技術架構
Ø 分散式檔案系統Google Distributed File System
Ø 並行資料處理MapReduce
Ø 分散式鎖 Chubby
Ø 結構化資料表BigTable
1. 注意,這裡的GFS就是google file system.
也就是檔案系統
和Windows下的NTFS,和linux下的FAT是一個意思.
2. GFS就是google filesystem.是一個分散式的系統,比如內部把這個系統裝到了很多機器上,但是對於外界來說,這個系統就是一個整體.
3. 從外部上看,是一個整體,但是從內部看的話,其實是安裝在很多系統上的.
4. MapReduce實際上是一種思想,比如和mvc相似.
MapReduce:例子:比如有一堆單詞:
hello world credream
good
nice
hello world
world
統計每個單詞出現的次數
這裡用MapReduce解決問題:
首先進行Map(分組),分析空格和回車,指的是一個單詞.通過這些分解
Hello 1
World 1
Credream 1
Good 1
Nice 1
Hello 1
Worl 1
World 1
然後在通過Reduce(合併)
Hello 2
World 3
Credream 1
Good 1
Nice 1
另外一個例子:
1,4,6,2,99,3,23,54,23 55
找出這裡最大的一個數字,當資料十分龐大的時候,就需要用MapReduce
用MapReduce處理的話會這樣處理:
他會把1,4,6,2,,交給機器A
把99,3,23交給B處理
把,54,23 55交給機器C處理
然後把三個機器得到結果進行對比,然後得出結果99
這裡MapReduce的思想就是,把問題細化,交給很多機器同時處理
BigSql資料庫就是一種NoSQL資料庫:
以前用的那些比如mysql等等,是關係型資料庫
而這裡是NoSQL資料庫,也就是說NOT only SQL,不僅僅是sql語句
這裡的取名和Linux=Linux isnot unix相似.
NoSQL資料庫:是專門用來儲存海量資料的.
這就是google的雲端計算的架構.
1. GFS設計原則:
Ø 機器失效不能視為異常現象
Ø 能應付對大型/超大型檔案處理
Ø 支援大量使用者同時訪問
2. GFS組成-
Ø GFS叢集:一個的Master和多個ChunkServer(塊伺服器)組成,並可以多客戶端Client訪問
Ø GFS設計要點
Ø 每個檔案拆成若干個64M檔案塊Chunk組成
Ø 每個Chunk都由Master根據其建立時間指定ChunkHandle(64)
Ø 檔案塊被儲存在ChunkServer本地磁碟中
Ø預設情況下3處熱備份Chunk塊檔案
4. Client職責
Ø 包含檔案系統的API
Ø 負責和ChunkServer和Master通訊
Ø 代表應用程式進行讀寫操作
Ø Client和Master進行元資料操作
Ø Client和ChunkServer進行檔案資料操作
5. Master職責
Ø 負責管理所有檔案系統的元資料
Ø 元資料包括:名稱空間,訪問控制資訊,檔案到Chunk的對映資訊等
Ø ChunkServer職責
Ø 負責儲存chunk檔案塊
ØLinux檔案系統
6. 採用中心伺服器模式Master
Ø 可以方便地增加ChunkServer
Ø Master掌握系統內所有Chunk Server的情況,方便進行負載均衡
Ø 不存在元資料的一致性問題
Ø 不快取資料
Ø 必要性:Client流式讀取,非重複讀寫
Ø可行性:Master本身管理多個Server,很複雜
l 摩爾定律正在走向終結…
Ø 單晶片容納電晶體的增加,對製造工藝提出要求
Ø CPU製造18nm技術,電子洩漏問題
Ø CPU主頻已達3GHz時代,難以繼續提高
ü 散熱問題(發熱太大,且難以驅散)
ü 功耗太高
l 摩爾定律是由英特爾(Intel)創始人之一戈登·摩爾(Gordon Moore)提出來的。其內容為:當價格不變時,積體電路上可容納的電晶體數目,約每隔18個月便會增加一倍,效能也將提升一倍。換言之,每一美元所能買到的電腦效能,將每隔18個月翻兩倍以上。這一定律揭示了資訊科技進步的速度。
單詞計數 體現M/R演算法