云計(jì)算服務(wù)架構(gòu)與OpenStack

最近在看CloudMan的《每天5分鐘玩轉(zhuǎn) OpenStack》系列文章,受益很多,這篇為學(xué)習(xí)總結(jié)篇,感謝閱讀~

一、云計(jì)算服務(wù)架構(gòu)

云計(jì)算是IT技術(shù)不斷發(fā)展的產(chǎn)物。 要理解云計(jì)算,需要對(duì)IT系統(tǒng)架構(gòu)的發(fā)展過(guò)程有所認(rèn)識(shí),可以通過(guò)下圖來(lái)理解云計(jì)算:

image

IT系統(tǒng)架構(gòu)的發(fā)展到目前為止大致可以分為3個(gè)階段:

1、物理機(jī)架構(gòu)
這一階段,應(yīng)用部署和運(yùn)行在物理機(jī)上。 比如企業(yè)要上一個(gè)ERP系統(tǒng),如果規(guī)模不大,可以找3臺(tái)物理機(jī),分別部署Web服務(wù)器、應(yīng)用服務(wù)器和數(shù)據(jù)庫(kù)服務(wù)器。 如果規(guī)模大一點(diǎn),各種服務(wù)器可以采用集群架構(gòu),但每個(gè)集群成員也還是直接部署在物理機(jī)上。 我見過(guò)的客戶早期都是這種架構(gòu),一套應(yīng)用一套服務(wù)器,通常系統(tǒng)的資源使用率都很低,達(dá)到20%的都是好的。

2、虛擬化架構(gòu)
摩爾定律決定了物理服務(wù)器的計(jì)算能力越來(lái)越強(qiáng),虛擬化技術(shù)的發(fā)展大大提高了物理服務(wù)器的資源使用率。 這個(gè)階段,物理機(jī)上運(yùn)行若干虛擬機(jī),應(yīng)用系統(tǒng)直接部署到虛擬機(jī)上。 虛擬化的好處還體現(xiàn)在減少了需要管理的物理機(jī)數(shù)量,同時(shí)節(jié)省了維護(hù)成本。

3、云計(jì)算架構(gòu)
虛擬化提高了單臺(tái)物理機(jī)的資源使用率,隨著虛擬化技術(shù)的應(yīng)用,IT環(huán)境中有越來(lái)越多的虛擬機(jī),這時(shí)新的需求產(chǎn)生了: 如何對(duì)IT環(huán)境中的虛擬機(jī)進(jìn)行統(tǒng)一和高效的管理。 有需求就有供給,云計(jì)算登上了歷史舞臺(tái)。

計(jì)算(CPU/內(nèi)存)、存儲(chǔ)和網(wǎng)絡(luò)是 IT 系統(tǒng)的三類資源。 通過(guò)云計(jì)算平臺(tái),這三類資源變成了三個(gè)池子 當(dāng)需要虛機(jī)的時(shí)候,只需要向平臺(tái)提供虛機(jī)的規(guī)格。 平臺(tái)會(huì)快速?gòu)娜齻€(gè)資源池分配相應(yīng)的資源,部署出這樣一個(gè)滿足規(guī)格的虛機(jī)。 虛機(jī)的使用者不再需要關(guān)心虛機(jī)運(yùn)行在哪里,存儲(chǔ)空間從哪里來(lái),IP是如何分配,這些云平臺(tái)都搞定了。

云平臺(tái)是一個(gè)面向服務(wù)的架構(gòu),按照提供服務(wù)的不同分為 IaaS、PaaS 和 SaaS。 如下圖所示:

image

三層架構(gòu)的說(shuō)明如下:
IaaS(Infrastructure as a Service)
基礎(chǔ)設(shè)施即服務(wù),該層提供的服務(wù)是虛擬機(jī)。 IaaS 負(fù)責(zé)管理虛機(jī)的生命周期,包括創(chuàng)建、修改、備份、啟停、銷毀等。 使用者從云平臺(tái)得到的是一個(gè)已經(jīng)安裝好鏡像(操作系統(tǒng)+其他預(yù)裝軟件)的虛擬機(jī)。 使用者需要關(guān)心虛機(jī)的類型(OS)和配置(CPU、內(nèi)存、磁盤),并且自己負(fù)責(zé)部署上層的中間件和應(yīng)用。 IaaS 的使用者通常是數(shù)據(jù)中心的系統(tǒng)管理員。 典型的 IaaS 例子有 AWS、Rackspace、阿里云等。

PaaS(Platform as a Service)
平臺(tái)即服務(wù),該層提供的服務(wù)是應(yīng)用的運(yùn)行環(huán)境和一系列中間件服務(wù)(比如數(shù)據(jù)庫(kù)、消息隊(duì)列等)。 使用者只需專注應(yīng)用的開發(fā),并將自己的應(yīng)用和數(shù)據(jù)部署到PaaS環(huán)境中。 PaaS負(fù)責(zé)保證這些服務(wù)的可用性和性能。 PaaS的使用者通常是應(yīng)用的開發(fā)人員。 典型的 PaaS 有 Heroku、Google App Engine、IBM BlueMix 等。

SaaS(Software as a Service)
軟件即服務(wù),該層提供的是應(yīng)用服務(wù)。 使用者只需要登錄并使用應(yīng)用,無(wú)需關(guān)心應(yīng)用使用什么技術(shù)實(shí)現(xiàn),也不需要關(guān)系應(yīng)用部署在哪里。 SaaS的使用者通常是應(yīng)用的最終用戶。 典型的 SaaS 有 Google Gmail、Salesforce 等。

現(xiàn)在,基于Docker的CaaS容器云平臺(tái)架構(gòu)設(shè)計(jì)也逐漸流行起來(lái),還有最新的容器編排框架k8s(Kubernetes),詳細(xì)介紹可以參考這篇文章:基于Docker的CaaS容器云平臺(tái)架構(gòu)設(shè)計(jì)

二、云計(jì)算與OpenStack

OpenStack is a cloud operating system that controls large pools of compute, storage, and networking resources throughout a datacenter, all managed through a dashboard that gives administrators control while empowering their users to provision resources through a web interface.

以上是官網(wǎng)對(duì) OpenStack 的定義,OpenStack 對(duì)數(shù)據(jù)中心的計(jì)算、存儲(chǔ)和網(wǎng)絡(luò)資源進(jìn)行統(tǒng)一管理。 由此可見,OpenStack 針對(duì)的是 IT 基礎(chǔ)設(shè)施,是 IaaS 這個(gè)層次的云操作系統(tǒng)。

OpenStack 已經(jīng)走過(guò)了 6 個(gè)年頭。 每半年發(fā)布一個(gè)版本,版本以字母順序命名,現(xiàn)在已經(jīng)到第 14 個(gè)版本 Newton(字母 N)。 OpenStack最初只有兩個(gè)模塊(服務(wù)),現(xiàn)在已經(jīng)有 20+(見下圖),每個(gè)模塊作為獨(dú)立的子項(xiàng)目開發(fā)。

image

作為 IaaS 層的云操作系統(tǒng),OpenStack 為虛機(jī)提供并管理三大類資源:計(jì)算、網(wǎng)絡(luò)和存儲(chǔ)。如下圖所示:

image

三、OpenStack架構(gòu)

架構(gòu)能幫助我們站在高處看清楚事物的整體結(jié)構(gòu),避免過(guò)早地進(jìn)入細(xì)節(jié)而迷失方向。下圖是 OpenStack 的 Conceptual Architecture

image

中間菱形VM是虛擬機(jī),圍繞 VM 的那些長(zhǎng)方形代表 OpenStack 不同的模塊(OpenStack 叫服務(wù),后面都用服務(wù)這個(gè)術(shù)語(yǔ)),下面來(lái)分別介紹。

Nova:管理 VM 的生命周期,是 OpenStack 中最核心的服務(wù)。
Neutron:為 OpenStack 提供網(wǎng)絡(luò)連接服務(wù),負(fù)責(zé)創(chuàng)建和管理L2、L3 網(wǎng)絡(luò),為 VM 提供虛擬網(wǎng)絡(luò)和物理網(wǎng)絡(luò)連接。
Glance:管理 VM 啟動(dòng)鏡像,Nova 創(chuàng)建 VM 時(shí)將使用 Glance 提供的鏡像。
Cinder:為 VM 提供塊存儲(chǔ)服務(wù)。Cinder 提供的每一個(gè) Volume 在 VM 看來(lái)就是一塊虛擬硬盤,一般用作數(shù)據(jù)盤。
Swift:提供對(duì)象存儲(chǔ)服務(wù)。VM 可以通過(guò) RESTful API 存放對(duì)象數(shù)據(jù)。作為可選的方案,Glance 可以將鏡像存放在 Swift 中;Cinder 也可以將 Volume 備份到 Swift 中。
Keystone:為 OpenStack 的各種服務(wù)提供認(rèn)證和權(quán)限管理服務(wù)。簡(jiǎn)單的說(shuō),OpenStack 上的每一個(gè)操作都必須通過(guò) Keystone 的審核。
Ceilometer:提供 OpenStac k監(jiān)控和計(jì)量服務(wù),為報(bào)警、統(tǒng)計(jì)或計(jì)費(fèi)提供數(shù)據(jù)。
Horizon:為 OpenStack 用戶提供一個(gè) Web 的自服務(wù) Portal。

在上面的這些服務(wù)中,哪些是 OpenStack 的核心服務(wù)呢? 核心服務(wù)就是如果沒(méi)有它,OpenStack 就跑不起來(lái)。 很顯然:

Nova 管理計(jì)算資源,是核心服務(wù)。
Neutron 管理網(wǎng)絡(luò)資源,是核心服務(wù)。
Glance 為 VM 提供 OS 鏡像,屬于存儲(chǔ)范疇,是核心服務(wù)。
Cinder 提供塊存儲(chǔ),VM怎么也得需要數(shù)據(jù)盤吧,是核心服務(wù)。
Swift 提供對(duì)象存儲(chǔ),不是必須的,是可選服務(wù)。
Keystone 認(rèn)證服務(wù),沒(méi)它 OpenStack 轉(zhuǎn)不起來(lái),是核心服務(wù)。
Ceilometer 監(jiān)控服務(wù),不是必須的,可選服務(wù)。
Horizon 操作界面,也是必須的。

再看OpenStack核心服務(wù)內(nèi)部的組成結(jié)構(gòu):
Logical Architecture

image

在 Logical Architecture 中,可以看到每個(gè)服務(wù)又由若干組件組成。 以 Neutron 為例,包含:

image
  • Neutron Server、Neutron plugins 和 Neutron agents
  • Network provider
  • 消息隊(duì)列 Queue
  • 數(shù)據(jù)庫(kù) Neutron Database

上面是 Logical Architecture,描述的是 Neutron 服務(wù)各個(gè)組成部分以及各組件之間的邏輯關(guān)系。 而在實(shí)際的部署方案上,各個(gè)組件可以部署到不同的物理節(jié)點(diǎn)上。

OpenStack 本身是一個(gè)分布式系統(tǒng),不但各個(gè)服務(wù)可以分布部署,服務(wù)中的組件也可以分布部署。 這種分布式特性讓 OpenStack 具備極大的靈活性、伸縮性和高可用性。 當(dāng)然從另一個(gè)角度講,這也使得 OpenStack 比一般系統(tǒng)復(fù)雜,學(xué)習(xí)難度也更大。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 本文遵循「知識(shí)共享許可協(xié)議 CC-BY-NC-SA 4.0 International」,未經(jīng)作者書面許可,不允許...
    laiwei閱讀 12,189評(píng)論 1 24
  • 第一章 OpenStack基礎(chǔ) OpenStack管理的資源及提供的服務(wù)OpenStack做為一個(gè)操作系統(tǒng),...
    sgt_tiger閱讀 13,242評(píng)論 4 72
  • Nova Nova,即計(jì)算服務(wù),是OpenStack計(jì)算的彈性控制器。Nova可以說(shuō)是整個(gè)云平臺(tái)最重要的組件,Op...
    邵勝奧閱讀 4,384評(píng)論 0 8
  • OpenStack簡(jiǎn)介 OpenStack版本發(fā)展 OpenStack版本系列字母以A~Z命名,從2010年發(fā)布的...
    糯米藕閱讀 5,268評(píng)論 0 17
  • (寢室的人已經(jīng)散光,不必再擔(dān)心這題目被嘲笑) 帕斯卡爾說(shuō): “人是一根有思想的葦草。是自然界最脆弱的東西;但他是一...
    想飛的俞閱讀 410評(píng)論 0 1

友情鏈接更多精彩內(nèi)容