云計算是近年來才出現(xiàn)的概念,但這種需求早已存在。在這個階段,人們普遍認(rèn)為美國國家標(biāo)準(zhǔn)與技術(shù)研究院(NIST)定義:云計算是按使用付費模式。此模型提供可用,方便,按需網(wǎng)絡(luò)訪問和訪問可配置的計算資源池(資源,包括網(wǎng)絡(luò),服務(wù)器,存儲,應(yīng)用程序軟件,服務(wù)),可以快速配置,投資最少,管理工作少,或與服務(wù)供應(yīng)商。
云計算最基本的功能是:“按使用付費”,“資源共享池”和多租戶隔離。
1.2云計算功能
超大規(guī)模
云相當(dāng)大,谷歌云計算已經(jīng)擁有超過100萬臺服務(wù)器,亞馬遜為云,IBM,微軟,雅虎等等。擁有數(shù)十萬臺服務(wù)器。 Enterprise Private云通常擁有數(shù)十萬臺服務(wù)器。云為用戶提供了前所未有的計算能力。
虛擬化
云計算支持用戶從任何位置和使用各種終端獲取應(yīng)用程序服務(wù)。請求的資源來自云而不是固定的有形實體。該應(yīng)用程序在云中運行,但實際上用戶不需要知道或擔(dān)心應(yīng)用程序的運行位置。只需一臺筆記本電腦或一部手機,您就可以通過Web服務(wù)完成所需的一切,甚至可以執(zhí)行超級計算等任務(wù)。
高可靠性
云使用數(shù)據(jù)多拷貝容錯,計算節(jié)點同構(gòu)可互換等措施,確保服務(wù)的高可靠性,使用云計算比使用本地計算機更可靠。
通用性
云計算不適用于特定應(yīng)用程序,云可用于構(gòu)建不斷變化的應(yīng)用程序,同樣的云可以同時支持不同的應(yīng)用程序。
高可擴展性
可以動態(tài)調(diào)整云比例,以滿足應(yīng)用程序和用戶規(guī)模增長的需要。
按需服務(wù)
云是一個巨大的資源池,您可以按需購買;云可以像自來水,電力,煤氣一樣收費。
非常便宜
因為云的特殊容錯措施可用于形成具有極其便宜節(jié)點的云,云的自動化集中管理消除了大量企業(yè)需要承擔(dān)越來越高的數(shù)據(jù)中心管理成本,云通用性使得資源利用率遠(yuǎn)高于傳統(tǒng)系統(tǒng),因此用戶可以充分享受云的低成本優(yōu)勢,往往只需幾百美元,幾天就可以完成前幾萬美元,完成任務(wù)幾個月。
潛在危害
云計算除了提供計算服務(wù)外,該服務(wù)還必須提供存儲服務(wù)。但是,云計算服務(wù)目前被私人機構(gòu)(企業(yè))壟斷,他們只能提供商業(yè)信貸。對于政府機構(gòu)和商業(yè)組織(特別是那些擁有銀行等敏感數(shù)據(jù)的機構(gòu)),應(yīng)該對選擇云計算服務(wù)保持足夠的警惕。一旦商業(yè)用戶大規(guī)模使用私營部門提供的云計算服務(wù),無論其技術(shù)優(yōu)勢多么強大,這些私人組織都不可避免地要利用數(shù)據(jù)(信息)的重要性來遏制整個社會。
對于信息社會而言,信息至關(guān)重要。另一方面,云計算中的數(shù)據(jù)對于除數(shù)據(jù)所有者云計算之外的用戶保密,但對于提供云計算的商業(yè)組織來說,沒有秘密。所有這些潛在的危險都是商業(yè)組織和政府機構(gòu)在選擇云計算服務(wù)時必須考慮的重要前提,特別是對于外國機構(gòu)提供的云計算服務(wù)。
1.3云計算類別
公共云:只有使用權(quán),使用時付費。但是數(shù)據(jù)被放在別人家里。數(shù)據(jù)安全性無法保證。銀行不使用公共云,金融業(yè)不使用公共云。公共云的核心屬性是共享資源服務(wù)。
私有云:由您自己的計算機房構(gòu)建的云,私有云有局限性,資源是固定的;數(shù)據(jù)相對安全。私有云的核心屬性是專有資源。
混合云:主要任務(wù)是放入私有云,臨時需要時使用混合云。它將混合和匹配公共云和私有云以獲得最佳效果。這種個性化的解決方節(jié)省金錢和安全的目的。
1.4云計算分層
云計算也是分層的,可能如下:
傳統(tǒng)IT基本都需要自己管理,如:網(wǎng)絡(luò),存儲,服務(wù)器,虛擬化,操作系統(tǒng),中間件,操作環(huán)境,數(shù)據(jù),應(yīng)用程序等。
IaaS
IaaS,Infrastructure-as-a-Service中文名稱為Infrastructure as a Service。主要作用是將虛擬機或其他資源作為服務(wù)提供給用戶。
PaaS
PaaS,平臺即服務(wù)中文這個名稱是平臺即服務(wù)。如果從傳統(tǒng)計算機體系結(jié)構(gòu)的角度來看“硬件+操作系統(tǒng)/開發(fā)工具+應(yīng)用軟件”的觀點,那么云計算的平臺層應(yīng)該提供類似的操作系統(tǒng)和開發(fā)工具。
事實上,PaaS確實位于互聯(lián)網(wǎng)上,為用戶提供了一整套用于開發(fā),運行和運行應(yīng)用程序的支持平臺。與PC軟件開發(fā)模型一樣,程序員可能會使用開發(fā)工具在具有Windows或Linux操作系統(tǒng)的計算機上開發(fā)和部署應(yīng)用程序。 PaaS有時被稱為中間件,其主要作用是為用戶提供開發(fā)和運行時平臺。
SaaS
SaaS,軟件即服務(wù)中文名稱為軟件即服務(wù)。簡而言之,它是一種通過Internet提供軟件服務(wù)的軟件應(yīng)用程序模型。在這種模式下,用戶無需在硬件,軟件和開發(fā)團(tuán)隊的建設(shè)上投入大量資金。他們只需支付一定的租金,他們就可以通過互聯(lián)網(wǎng)享受相應(yīng)的服務(wù),整個系統(tǒng)的維護(hù)也由制造商提供。對.負(fù)責(zé)任。
如果您想用一句話概括IaaS,PaaS和SaaS,那就是:如果您將云計算與手機進(jìn)行比較,那么IaaS就是硬件,您必須編寫自己的代碼開發(fā)系統(tǒng)才能使用它; PaaS是手機系統(tǒng),你想要實現(xiàn)或安裝各種軟件的功能; SaaS是硬件+系統(tǒng)+軟件,你可以用一個詞來解決。
什么是虛擬化?
2.1虛擬化概念 ;
虛擬化是一種通過軟件方式集成管理和重新分配計算機硬件資源的技術(shù),常用的基于虛擬機的虛擬化和基于容器的虛擬化。
2.2虛擬化技術(shù)分類
2.2.1按應(yīng)用場景分類
操作系統(tǒng)虛擬化
Application Virtualization;桌面應(yīng)用程序虛擬化nbsp Storage Virtualization ;網(wǎng)絡(luò)虛擬化; 2.2.2按應(yīng)用程序模式分類
一對多:其中一臺物理服務(wù)器分為多個虛擬服務(wù)器,這是典型的服務(wù)器整合模式。
多對一:它集成了多個虛擬服務(wù)器,并將它們用作資源池,這是一種典型的網(wǎng)格計算模型。
多對多:結(jié)合前兩種模式。
2.2.3按硬件資源調(diào)用模式分類
完全虛擬化,虛擬化操作系統(tǒng)與底層硬件完全隔離。中間管理程序?qū)訌奶摂M客戶機操作系統(tǒng)轉(zhuǎn)換底層硬件的調(diào)用代碼。完全虛擬化不需要更改客戶端操作系統(tǒng)和兼容性。典型的代表是:VMware Workstation,KVM。
半虛擬化
半虛擬化,向虛擬客戶機操作系統(tǒng)添加特定的虛擬化指令。這些指令可以通過管理程序?qū)又苯诱{(diào)用硬件資源,從而無需Hypervisor層轉(zhuǎn)換指令。性能開銷。典型的半虛擬化代表Microsoft Hyper-V,VMware的vSphere。
注意:IO級別的半虛擬化優(yōu)于完全虛擬化,因為一層磁盤IO必須更慢。一般來說,IO是網(wǎng)絡(luò)IO和磁盤IO,因為這兩者相對較慢。
2.3基于虛擬機管理程序的虛擬化
它通過軟件層封裝提供與物理硬件相同的輸入和輸出性能。操作系統(tǒng)和計算機硬件的分離已經(jīng)將操作系統(tǒng)和計算機之間的關(guān)系從一對一改為多對多(實際上是一對多)。該軟件層稱為虛擬機管理器(VMM/Hypervisor),它可以直接在裸機(Xen,VMware EXSi)上運行,也可以在操作系統(tǒng)(KVM,VMware Workstation)上運行。這項技術(shù)非常成熟(已開發(fā)超過40年),但仍有幾個問題:
在虛擬機上運行完整的操作系統(tǒng)(GuestOS),并在其下執(zhí)行它有虛擬化層和主機操作系統(tǒng),必須比直接在物理機上運行相同的服務(wù)更糟糕;
使用GuestOS,虛擬機映像通常具有幾G到幾十G,這占用了大量存儲空間。便攜性差;
要使用更多硬件資源,您需要啟動一個新的虛擬機。等待GuesOS啟動可能需要幾十秒到幾分鐘。
在實際使用場景中,我們使用虛擬化技術(shù)按需分配資源,以完成服務(wù)的部署和使用,并隔離服務(wù)所依賴的環(huán)境,而不會被其他服務(wù)感知或干擾。沒有必要為此目的啟動GuestOS。為什么不考慮讓多個虛擬機共享操作系統(tǒng)內(nèi)核,并且只在控制服務(wù)使用的系統(tǒng)資源的同時隔離服務(wù)運行環(huán)境?基于容器的虛擬化就是這樣一種技術(shù)。
2.4基于容器的虛擬化 ;
Container是一個沒有GuestOS的輕量級虛擬機,多個容器共享一個OS內(nèi)核,容器包含要部署的應(yīng)用程序以及它所依賴的系統(tǒng)環(huán)境容器的大小通常只有幾十到幾百兆字節(jié)。由于共享操作系統(tǒng)內(nèi)核,容器依賴于底層操作系統(tǒng),每個操作系統(tǒng)都有自己的容器技術(shù)和容器工具。
Docker是一個Linux容器管理工具。隨著Docker的興起,Linux容器技術(shù)也是最時尚的容器虛擬化技術(shù)。有許多Linux容器工具,OpenVZ,LXC,Docker,Rocket,Lmctfy等,大多基于Linux內(nèi)核提供的兩種機制:Cgroups(按需實現(xiàn)資源)和Namespace(實現(xiàn)任務(wù)隔離)。
2.5兩種虛擬化技術(shù)的區(qū)別
虛擬機技術(shù)已經(jīng)開發(fā)多年,虛擬機與虛擬化層之間的接口,虛擬機映像格式等已經(jīng)標(biāo)準(zhǔn)化。相應(yīng)的管理工具和分布式集群管理工具具有相對完整的解決方案,容器近年來才出現(xiàn),支持技術(shù)和標(biāo)準(zhǔn)仍在不斷完善;
由于GuestOS的存在,虛擬機可以存在主機運行不同的操作系統(tǒng),容器只能支持與主機內(nèi)核相同的操作系統(tǒng);
由于VMM的存在,虛擬機在虛擬機,虛擬機和主機之間具有良好的隔離。容器之間的公共主機的內(nèi)核,共享系統(tǒng)調(diào)用和一些底層庫,隔離相對較差;
容器明顯比虛擬機輕,對于主機操作系統(tǒng),容器就像一個進(jìn)程。因此,容器具有更快的啟動速度(幾秒甚至更快),更高密度的存儲和使用(小鏡像),以及更方便的集群管理。同時,由于沒有GuestOS,因此在容器中直接在主機上運行應(yīng)用程序幾乎沒有性能損失,這是虛擬機的優(yōu)勢。
云計算和虛擬化差異
對于云計算和虛擬化差異的描述,有一句經(jīng)典的說法:虛擬化是構(gòu)建云計算資源池的主要方式。只要你理解這句話,你就會知道它們之間的關(guān)系。
簡而言之,云計算是一個概念,而不是一種特定的技術(shù)。虛擬化是一種特定的技術(shù),它指的是硬件資源的虛擬化,以實現(xiàn)隔離,可擴展性,安全性和資源的充分利用。
目前,云計算主要依賴于虛擬化。通過虛擬化多個服務(wù)器實體,它形成了一個資源池,以實現(xiàn)通用計算和共享資源。
它現(xiàn)在稱為云計算。事實上,在提出這個詞之前,過去的服務(wù)器集群已經(jīng)實現(xiàn)了這些功能,但它們并不像現(xiàn)在這樣先進(jìn)。
3.1各個領(lǐng)域代表的產(chǎn)品
云計算該體系結(jié)構(gòu)的開源產(chǎn)品是OpenStack。 OpenStack是由NASA和Rackspace授權(quán)的免費軟件和開源軟件。代碼項目。
虛擬機虛擬化:VM商業(yè)支付的vSphere或開源KVM。
容器的虛擬化:Docker。
3.2 OpenStack
Openstack 是眾多技術(shù)的組合體,有涉及網(wǎng)絡(luò)組件的 Neutron,有涉及 Dashboard 的 Horizon,也有涉及計算資源分配的 Nova。
虛擬化技術(shù)只是其中一個涉及到資源池構(gòu)建的方式。當(dāng)然你也可以用其它方式構(gòu)建資源池,比如物理機還有容器。
Openstack 經(jīng)過幾年十幾個版本的更迭,已經(jīng)擁有了 Keystone、Nova、Neutron、Cinder、Glance、Swift、Heat、Ceilometer 等等組件,比較完整的提供了一個云平臺應(yīng)有的各個模塊。
3.3 在云計算中,不同層的選型
選取基于虛擬機的虛擬化呢,還是基于容器的虛擬化。早期由于容器技術(shù)的不完善,云計算只有虛擬機這一種選擇。
隨著現(xiàn)在容器技術(shù)興起,基于容器的虛擬化性能更高,交付速度快,方便管理,而且資源利用率高,看起來是比虛擬機更好的方案。但是它現(xiàn)有的兩個比較大的缺點(隔離性不夠強、操作系統(tǒng)依賴性)讓他無法完全替代 VM,對于 SaaS 用戶和部分 PaaS 用戶而言這兩個缺點可能不那么明顯。現(xiàn)階段 Container 和云計算主要結(jié)合的場景也是在 SaaS 和 PaaS 中,事實上大多數(shù) SaaS 和 PaaS 服務(wù)提供商都使用了容器技術(shù)。
但是對于 IaaS 的用戶來說,他們租用的是基礎(chǔ)設(shè)施。上面承載著他們自己運行的系統(tǒng)和服務(wù),隔離性不強意味著安全性和可信性不高。在這種情況下大客戶們,肯定是不放心的。同時操作系統(tǒng)依賴性也是限制 Container 在 IaaS 層應(yīng)用的一個主要問題,也是絕大多數(shù)解決方案都是將Container 運行在 VM 上的原因,這樣 Container 性能好的優(yōu)勢實際上在云上根本發(fā)揮不出來,優(yōu)點只有啟動快了。