在本次SCaLE 14x上,各位參與者將能夠聆聽Anthony Chow就如何為OpenStack項(xiàng)目做出貢獻(xiàn)這一議題提供的講解與引導(dǎo)。
Anthony是一位網(wǎng)絡(luò)工程師,他對(duì)共享及改進(jìn)技術(shù)成果從而推動(dòng)社區(qū)發(fā)展充滿熱情。他目前正致力于參與Docker以及OpenStack Magnum項(xiàng)目。
在本次訪談當(dāng)中,Anthony解釋了OpenStack的具體定義、其如何與容器實(shí)現(xiàn)協(xié)作以及其能夠給企業(yè)帶來哪些助益。
OpenStack是什么?誰適合使用OpenStack?
OpenStack是一套開源云操作系統(tǒng),由Python語言編寫而成且負(fù)責(zé)通過命令行界面(簡稱CLI)或者基于Web的儀表板實(shí)現(xiàn)對(duì)計(jì)算、存儲(chǔ)以及網(wǎng)絡(luò)資源池的管理工作。其在設(shè)計(jì)上可運(yùn)行于商用硬件底層,且有時(shí)候會(huì)被作為基礎(chǔ)設(shè)施即服務(wù)(簡稱IaaS)實(shí)現(xiàn)方案使用。OpenStack可運(yùn)行在各類常見Linux平臺(tái)之上,具體包括RHEL、SUSE以及Ubuntu等等。
OpenStack是一套基礎(chǔ)設(shè)施(大家也可以將其簡單理解為‘云’)。它能夠創(chuàng)建出一套環(huán)境,從而提供按需增加或者降低的資源分配機(jī)制,而且實(shí)際資源不必來源于單一位置。大數(shù)據(jù)、Web服務(wù)以及網(wǎng)絡(luò)功能虛擬化(簡稱NFV)等面向服務(wù)供應(yīng)商的功能都是OpenStack發(fā)揮作用的良好舞臺(tái)。
OpenStack包含哪些關(guān)鍵性服務(wù)與組件?它們的具體作用又是什么?
OpenStack采用一年兩次的發(fā)布周期,而且各發(fā)布版本各自擁有不同名稱而非簡單的數(shù)字序列,因此其首個(gè)版本名為Austin,目前的版本為Mitaka,其間還曾出現(xiàn)過Liberty與Kilo兩個(gè)版本。自Kilo版本以來,OpenStack已經(jīng)逐步由最初的孵化/集成模式轉(zhuǎn)化為大帳篷模式,即項(xiàng)目中的各標(biāo)簽擁有自己的特定屬性。
云基礎(chǔ)設(shè)施當(dāng)中的核心組件包括計(jì)算、存儲(chǔ)與網(wǎng)絡(luò)三大類。這些組件在OpenStack當(dāng)中被稱為核心服務(wù),而其它元素則被稱為共享服務(wù)。
計(jì)算:
Nova: 提供按需虛擬機(jī)機(jī)制。
存儲(chǔ):
Swift: 提供支持對(duì)象存儲(chǔ)的可擴(kuò)展存儲(chǔ)系統(tǒng)。
Cinder: 為訪客虛擬機(jī)提供持久塊存儲(chǔ)機(jī)制。
網(wǎng)絡(luò):
Neutron: 為由OpenStack各服務(wù)管理的不同接口設(shè)備提供彼此之間的網(wǎng)絡(luò)連接即服務(wù)。
共享服務(wù):
Keystone: 為全部OpenStack服務(wù)提供授權(quán)與驗(yàn)證機(jī)制。
Glance: 為虛擬磁盤鏡像提供目錄與庫。
Horizon: 為各OpenStack服務(wù)提供一套模塊化、基于Web的用戶界面。
Ceilometer: 為計(jì)費(fèi)系統(tǒng)提供單一聯(lián)系點(diǎn)。
Heat: 為多種復(fù)合型云應(yīng)用程序提供編排服務(wù)。
Trove: 為各類關(guān)系型與非關(guān)系型數(shù)據(jù)庫引擎提供數(shù)據(jù)庫即服務(wù)(簡稱DBaaS)配置機(jī)制。
Sahara: 為各數(shù)據(jù)敏感型應(yīng)用集群提供配置服務(wù)。
Magnum: 為容器部署與管理場景提供容器編排引擎。
當(dāng)然,以上列出的只是其中最為常見的各類項(xiàng)目。新型項(xiàng)目在每個(gè)版本當(dāng)中都將陸續(xù)增加。
由于已經(jīng)轉(zhuǎn)化為大帳篷式項(xiàng)目,如今有越來越多的項(xiàng)目成為OpenStack的組成部分。另外管理委員會(huì)還在致力于構(gòu)建OpenStack DefCore,這是一套最小化功能集,其中的各類產(chǎn)品必須經(jīng)過認(rèn)證才能冠以O(shè)penStack名頭。
為什么使用OpenStack而非其它傳統(tǒng)虛擬化工具?相較于其它虛擬機(jī)管理程序,它能夠帶來哪些額外助益?
虛擬化工具能夠?qū)ξ锢碛布械馁Y源進(jìn)行抽象,并在管理流程中加入自動(dòng)化機(jī)制。
OpenStack還更進(jìn)一步建立起一套彈性、自助服務(wù)型可測量基礎(chǔ)設(shè)施,旨在管理計(jì)算、存儲(chǔ)與網(wǎng)絡(luò)資源池。OpenStack管理下的各類資源可為物理或者虛擬形式。
OpenStack如何與容器進(jìn)行協(xié)作?這種方式對(duì)于企業(yè)有何吸引力?
Magnum項(xiàng)目利用OpenStack作為基礎(chǔ)設(shè)施,旨在部署Docker容器。在Magnum項(xiàng)目出現(xiàn)之前,Docker容器只算是Nova(OpenStack中的一項(xiàng)計(jì)算服務(wù))內(nèi)的虛擬機(jī)管理程序類型之一。
Magnum項(xiàng)目提出了pod、bay與服務(wù)的概念,我們可以將三者結(jié)合起來作為單一應(yīng)用程序,并通過訪問政策加以控制。
窗口編排引擎(簡稱COE)允許大家將多個(gè)Docker容器作為同一單元進(jìn)行部署。就目前來講,Magnum項(xiàng)目所能支持的COE包括:
Docker Swarm
Kubernetes
Apache Mesos
目前在企業(yè)領(lǐng)域最具人氣的容器技術(shù)應(yīng)用方案當(dāng)數(shù)微服務(wù)架構(gòu),其指導(dǎo)原則是將一個(gè)大型常規(guī)應(yīng)用程序拆分成多個(gè)以容器形式實(shí)現(xiàn)的“微服務(wù)”。這種應(yīng)用程序部署層面的新趨勢能夠提供可觀的敏捷性、可擴(kuò)展性以及高可用性。
Liberty版本為我們帶來了Kuryr項(xiàng)目,其立足于Neutron構(gòu)成而成并解決OpenStack基礎(chǔ)設(shè)施當(dāng)中為容器指定網(wǎng)絡(luò)資源的傳統(tǒng)難題。
典型的OpenStack部署該是什么樣的?
我認(rèn)為不存在所謂典型的OpenStack部署方案,而這也正是OpenStack最大的吸引力所在。盡管這并不是什么以不變應(yīng)萬變的產(chǎn)品,但OpenStack確實(shí)能夠提供一套極具靈活性的豐富基礎(chǔ)設(shè)施。它的實(shí)際能力只受限于與之搭配的具體架構(gòu)。OpenStack就像是樂高積木; 我們可以根據(jù)具體部署要求將其接入任何位置。除了OpenStack資源能夠表現(xiàn)出彈性,其功能集也同樣具備彈性特征,意味著我們可以隨時(shí)添加及刪除功能集。