詳見:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt363node
「雲」實際上是互聯網的一個隱喻,「雲計算」其實就是使用互聯網來接入存儲或者運行在遠程服務器端的應用,數據,或者服務。
任何一個使用基於互聯網的方法來計算,存儲和開發的公司,均可以從技術上叫作從事雲的公司。然而,不是全部的雲公司都同樣。不是全部人都是CTO,因此有時候看到雲技術背後的一些詞可能會比較頭疼。瀏覽器
雲也是分層的安全
任何一個在互聯網上提供其服務的公司均可以叫作雲計算公司。其實雲計算分幾層的,分別是Infrastructure(基礎設施)-as-a-Service,Platform(平臺)-as-a-Service,Software(軟件)-as-a-Service。基礎設施在最下端,平臺在中間,軟件在頂端。別的一些「軟」的層能夠在這些層上面添加。服務器
IaaS: Infrastructure-as-a-Service(基礎設施即服務)網絡
第一層叫作IaaS,有時候也叫作Hardware-as-a-Service,幾年前若是你想在辦公室或者公司的網站上運行一些企業應用,你須要去買服務器,或者別的高昂的硬件來控制本地應用,讓你的業務運行起來。
可是如今有IaaS,你能夠將硬件外包到別的地方去。IaaS公司會提供場外服務器,存儲和網絡硬件,你能夠租用。節省了維護成本和辦公場地,公司能夠在任什麼時候候利用這些硬件來運行其應用。
一些大的IaaS公司包括Amazon, Microsoft, VMWare, Rackspace和Red Hat.不過這些公司又都有本身的專長,好比Amazon和微軟給你提供的不僅是IaaS,他們還會將其計算能力出租給你來host你的網站。框架
PaaS: Platform-as-a-Service(平臺即服務)工具
第二層就是所謂的PaaS,某些時候也叫作中間件。你公司全部的開發均可以在這一層進行,節省了時間和資源。
PaaS公司在網上提供各類開發和分發應用的解決方案,好比虛擬服務器和操做系統。這節省了你在硬件上的費用,也讓分散的工做室之間的合做變得更加容易。網頁應用管理,應用設計,應用虛擬主機,存儲,安全以及應用開發協做工具等。
一些大的PaaS提供者有Google App Engine,Microsoft Azure,Force.com,Heroku,Engine Yard。最近興起的公司有AppFog, Mendix 和 Standing Cloudpost
SaaS: Software-as-a-Service(軟件即服務)學習
第三層也就是所謂SaaS。這一層是和你的生活天天接觸的一層,大可能是經過網頁瀏覽器來接入。任何一個遠程服務器上的應用均可以經過網絡來運行,就是SaaS了。
你消費的服務徹底是從網頁如Netflix, MOG, Google Apps, Box.net, Dropbox或者蘋果的iCloud那裏進入這些分類。儘管這些網頁服務是用做商務和娛樂或者二者都有,但這也算是雲技術的一部分。
一些用做商務的SaaS應用包括Citrix的GoToMeeting,Cisco的WebEx,Salesforce的CRM,ADP,Workday和SuccessFactors。測試
Iaas和Paas之間的比較
PaaS的主要做用是將一個開發和運行平臺做爲服務提供給用戶,而IaaS的主要做用是提供虛擬機或者其餘資源做爲服務提供給用戶。接下來,將在七個方面對PaaS和IaaS進行比較:
1) 開發環境:PaaS基本都會給開發者提供一整套包括IDE在內的開發和測試環境,而IaaS方面用戶主要仍是沿用以前比較熟悉那套開發環境,可是由於以前那套開發環境在和雲的整合方面比較欠缺,因此使用起來不是很方便。
2) 支持的應用:由於IaaS主要是提供虛擬機,並且普通的虛擬機能支持多種操做系統,因此IaaS支持的應用的範圍是很是普遍的。但若是要讓一個應用能跑在某個PaaS平臺不是一件輕鬆的事,由於不只須要確保這個應用是基於這個平臺所支持的語言,並且也要確保這個應用只能調用這個平臺所支持的API,若是這個應用調用了平臺所不支持的API,那麼就須要對這個應用進行修改。
3) 開放標準:雖然不少IaaS平臺都存在必定的私有功能,可是因爲OVF等協議的存在,使得IaaS在跨平臺和避免被供應商鎖定這兩面是穩步前進的。而PaaS平臺的狀況則不容樂觀,由於不管是Google的App Engine,仍是Salesforce的Force.com都存在必定的私有API。
4) 可伸縮性:PaaS平臺會自動調整資源來幫助運行於其上的應用更好地應對突發流量。而IaaS平臺則須要開發人員手動對資源進行調整才能應對。
5) 整合率和經濟性: PaaS平臺整合率是很是高,好比PaaS的表明Google App Engine能在一臺服務器上承載成千上萬的應用,而普通的IaaS平臺的整合率最多也不會超過100,並且廣泛在10左右,使得IaaS的經濟性不如PaaS。
6) 計費和監管:由於PaaS平臺在計費和監管這兩方面不只達到了IaaS平臺所能企及的操做系統層面,好比,CPU和內存的使用量等,並且還能作到應用層面,好比,應用的反應時間(Response Time)或者應用所消耗的事務多少等,這將提升計費和管理的精確性。
7) 學習難度:由於在IaaS上面開發和管理應用和現有的方式比較接近,而PaaS上面開發則有可能須要學一門新的語言或者新的框架,因此IaaS學習難度更低。
PaaS | IaaS | |
開發環境 | 完善 | 普通 |
支持的應用 | 有限 | 廣 |
通用性 | 欠缺 | 稍好 |
可伸縮性 | 自動伸縮 | 手動伸縮 |
整合率和經濟性 | 高整合率,更經濟 | 低整合率 |
計費和監管 | 精細 | 簡單 |
學習難度 | 略難 | 低 |
表1. PaaS和IaaS之間的比較
將來的PK
在當今雲計算環境當中,IaaS是很是主流的,不管是Amazon EC2仍是Linode或者Joyent等,都佔有一席之地,可是隨着Google的App Engine,Salesforce的Force.com仍是微軟的Windows Azure等PaaS平臺的推出,使得PaaS也開始嶄露頭角。談到這二者的將來,特別是這二者之間的競爭關係,我我的認爲,短時間而言,由於IaaS模式在支持的應用和學習難度這兩方面的優點,使得IaaS將會在短時間以內會成爲開發者的首選,可是從長期而言,由於PaaS模式的高整合率所帶來經濟型使得若是PaaS能解決諸如通用性和支持的應用等方面的挑戰,它將會替代IaaS成爲開發者的「新寵」