首先來說IaaS,IaaS叫做基礎設施即服務。IaaS能給消費者提供的是資料中心各種虛擬資源,包括CPU、記憶體、儲存、網路和其它基本的計算資源,使用者能夠部署和執行任意軟體。使用者不用管理或控制任何雲計算基礎設施的物理裝置,卻能任意使用各種分配的虛擬資源。要將這些孤立的物理裝置透過網路打通,透過將這些資源虛擬化起來,實現自如分配,整個過程就需要軟體的參與和控制,這就是IaaS的奧秘。有了IaaS,才能將這些單獨的物理資源集中虛擬化出來,相比以往在技術上是極大的進步。那麼,IaaS主要涉及哪些技術呢?IaaS的技術基礎就是虛擬化,更具體來說就是XEN和KVM,所以這方面的知識應該掌握,不用深入到XEN和KVM原始碼實現層面,只需要掌握基本使用和libvirt API 程式設計就夠用了。
首先非常感謝在這裡能為你解答這個問題,讓我帶領你們一起走進這個問題,現在讓我們一起探討一下。
現在,人們對雲計算已經不陌生了,耳朵都聽出老繭來了。可很多人其實對雲計算並談不上有多瞭解,除了真正開發雲計算業務的人員,其他人是隻知其一,不知其二,只泛泛瞭解而已。說起雲計算,當然離不開要談IaaS、PaaS、SaaS這三個好朋友了,要將這三個朋友的外貌特徵描述清楚很容易,但如果需要知道每個朋友性格怎樣,人如何,還有哪些獨門特技,將這些都瞭解清楚可不是短時間的事兒,也就沒那麼容易了。本文就介紹一些雲計算本質上的東西,雲計算都需要哪些實實在在的技術支撐,哪些技術讓雲計算更接地氣。
首先來說IaaS,IaaS叫做基礎設施即服務。IaaS能給消費者提供的是資料中心各種虛擬資源,包括CPU、記憶體、儲存、網路和其它基本的計算資源,使用者能夠部署和執行任意軟體。使用者不用管理或控制任何雲計算基礎設施的物理裝置,卻能任意使用各種分配的虛擬資源。要將這些孤立的物理裝置透過網路打通,透過將這些資源虛擬化起來,實現自如分配,整個過程就需要軟體的參與和控制,這就是IaaS的奧秘。有了IaaS,才能將這些單獨的物理資源集中虛擬化出來,相比以往在技術上是極大的進步。那麼,IaaS主要涉及哪些技術呢?IaaS的技術基礎就是虛擬化,更具體來說就是XEN和KVM,所以這方面的知識應該掌握,不用深入到XEN和KVM原始碼實現層面,只需要掌握基本使用和libvirt API 程式設計就夠用了。
還有OpenStack自然不在話下,這是一個開源雲計算的管理平臺專案,幾乎支援所有型別的雲環境,提供IaaS的解決方案。OpenStack是當前IaaS中應用最為廣泛的技術,所以想了解IaaS,就要從學習OpenStack入手,OpenStack是使用Python語言寫的,要想深入瞭解需要掌握Python語言,不過隨著OpenStack的不斷完善,現在流行出現用指令碼語言來編寫的OpenStack,並受到廣泛歡迎。
除此之外,Eucalyptus、CloudStack、OpenNebula也都是IaaS要依仗的技術。Eucalyptus是一個用於實現雲計算的開源軟體基礎設施,是Amazon EC2的一個開源實現,它與EC2的商業服務介面相容,是一個面向研究社群的軟體框架,Eucalyptus採用的是Java語言編寫。CloudStack是開源的雲平臺,擁有自己的API雲管理平臺,也支援亞馬遜Web服務API模型,它可以提供比OpenStack更完整的開發平臺,相比OpenStack,CloudStack更適合那些技術能力不夠強的使用者使用,CloudStack採用的程式語言是Java,幾乎所有軟體開發工程師都接觸過Java,學習起來並不難。
OpenNebula(ONE)是由歐洲研究學會發起的虛擬基礎裝置和雲端運算的計劃,是一款為雲計算而打造的開源工具箱。ONE允許你與XEN、KVM或VMware ESX一起建立和管理私有云,在不同的OpenNebula例項上可以執行私有云,Amazon的合作伙伴,也同樣可以作為遠端的雲服務供應商。OpenNebula採用了C++程式語言。這麼多的技術為資料中心提供了更多的選擇,如果要部署IaaS就要提前學習一下這些技術,以便做到有備無患。當然,這些技術都在不斷的最佳化和完善過程中,技術細節上仍在不斷調整和修改,要經常關注這些技術的演進過程,加深自己對IaaS雲的理解。
其次來說說PaaS,PaaS叫做平臺即服務,其作為一種服務,提供的是一個基礎平臺,而不是某種應用。PaaS平臺在雲架構中位於中間層,提供中介軟體服務,比如有應用伺服器、資料庫、BPM、Portal、訊息中介軟體,遠端物件呼叫中介軟體等等。PaaS最常用的技術有VMware的CloudFoundry和RedHat的OpenShift。CloudFoundry是VMware推出的第一個開源PaaS雲平臺,支援多種開發框架、程式語言、應用服務以及多種雲部署環境的靈活選擇。CloudFoundry雲平臺主要有Router、Cloud Controller、Health Manager、DEA、NFS、NATS以及Service等模組組成,所有模組的實現都是開源的,都可以下載得到。
絕大部分時候我們並不需要了解CloudFoundry是如何實現的,會利用CloudFoundry這個PaaS平臺做二次開發就可以了,會使用CloudFoundry就行。OpenShift是全球開源解決方案領導者紅帽公司推出的,面向開源開發人員開放的PaaS。OpenShift開源、免費、穩定並許可權大,OpenShift提供比任何PaaS更多的靈活性,支援java、python、ruby、php、perl、nodejs等多種開發語言。CloudFoundry和OpenShift本身是由Ruby語言編寫完成的,所以要掌握Ruby語言對理解PaaS很有意義,現在CloudFoundry也有采用指令碼語言編寫的。除了CloudFoundry和OpenShift之外,PaaS還有GAE、SAE、BAE等平臺技術,這些大都影響力較小,在此就不再詳述了。瞭解PaaS,掌握CloudFoundry和OpenShift就基本夠用的,最關鍵的還是要學習使用這樣的PaaS平臺。
最後來說SaaS,SaaS叫做軟體即服務,是一種基於網際網路提供軟體服務的應用模式。SaaS 是一種軟體佈局模型,其應用專為網路交付而設計,便於使用者透過網際網路託管、部署及接入。SaaS第一個應用程式是SiteEasy,在1998年發起的Siteeasy.com網站中,由總部位於亞特蘭大的公司WebTransi開發完成。最早應用實現的是salesforce公司提出的SaaS 並運用於CRM行業。它透過Internet提供軟體的模式,客戶根據自己的實際需求,透過網際網路向資料中心定購所需的應用軟體服務,按定購服務多少和時間長短向資料中心支付費用。
除了三種類型雲計算所需要的技術以外,最為關鍵的是要掌握Linux,因為基本所有的開源雲計算平臺都是基於Linux的。不僅要掌握Linux作業系統的使用,更重要的是對Linux系統的核心有更深的理解,採用利用好這個平臺。其實Linux系統是非常強大的,比如飛機的控制系統、銀行的系統、手機的系統等等都有Linux的身影,只要你能想到的東西都有Linux的存在,所以一定要掌握Linux系統。當然,介紹了三種雲涉及到的這麼多技術,使用的開發語言環境也各有不同,沒有哪個人有精力全部掌握,這時就要有重點地,根據自己的需要去學習相應的雲計算技術。
在以上的分享關於這個問題的解答都是個人的意見與建議,我希望我分享的這個問題的解答能夠幫助到大家。