《OpenStack實(shí)戰(zhàn)》是曼寧新近出版的一本旨在為讀者介紹用于云計(jì)算(IaaS)的OpenStack平臺(tái)。InfoQ 借新書發(fā)布的機(jī)會(huì)采訪了本書的作者:V. K. Cody Bumgardner。
OpenStack 是用于公有或私有的云計(jì)算平臺(tái)。OpenStack 并非是又一個(gè)虛擬化工具,相反,它是一個(gè)框架,有效利用現(xiàn)有的虛擬化工具來(lái)構(gòu)建和管理云。OpenStack 的應(yīng)用程序接口在物理或虛擬的硬件和軟件資源之上提供了一個(gè)通用的抽象層,而且,反過(guò)來(lái)再通過(guò)它們來(lái)管理。
本書的目標(biāo)讀者是開發(fā)者、架構(gòu)師和系統(tǒng)管理員。本書提供了部署云計(jì)算解決方案的詳細(xì)指南,需要特別提醒的是,這本書是一種漸進(jìn)的方式描述如何使用 OpenStack 來(lái)構(gòu)建一個(gè)云平臺(tái)。其第一步,是在單個(gè)節(jié)點(diǎn)環(huán)境下自動(dòng)部署來(lái)搭建開發(fā)環(huán)境。然后,開始了細(xì)節(jié)的描述,告訴讀者如何的去手動(dòng)部署、一步一步的、在多節(jié)點(diǎn)環(huán)境下的情況。接下來(lái)是使用自動(dòng)化的部署和管理工具來(lái)部署一個(gè)具有生產(chǎn)質(zhì)量的 OpenStack 環(huán)境。但是據(jù) Bumgardner 稱,書中所描述的架構(gòu)并不能適合所有的生產(chǎn)環(huán)境,只是取了較為大眾化的例子。
部署 OpenStack 能夠帶來(lái)的其中一個(gè)好處就是防止軟、硬件的廠商鎖定,這得歸功于使用 OpenStack 來(lái)管理資源,而不是直接使用廠商所提供的組件,這也就是意味著廠商的組件隨時(shí)都可以被替換掉,OpenStack 的這種做法的不好的地方就在于僅支持一些通用的、必須的特性,而損失了使用廠商組件的特定功能。
但是話說(shuō)回來(lái),注意廠商鎖定這個(gè)含義的背后,亦不應(yīng)被忽視。由于云平臺(tái)現(xiàn)在還缺乏一個(gè)公認(rèn)的標(biāo)準(zhǔn),使用 OpenStack 也就是被鎖定了 OpenStack 本身,目前來(lái)說(shuō)并不能保證能夠遷移到其它的云框架中。
本書個(gè)章節(jié)的大體概覽:
第一章介紹了OpenStack,以及 OpenStack 能為公司帶來(lái)什么;
第二章則是介紹了使用 OpenStack 圖形界面程序來(lái)部署一臺(tái)單節(jié)點(diǎn)的 OpenStack 系統(tǒng);在第三章,做和第二章同樣的事情,不過(guò)就是開始使用命令行罷了。
第五章~第八章,進(jìn)一步為讀者手動(dòng)部署多節(jié)點(diǎn)的 OpenStack 云平臺(tái)提供向?qū)е改?,每一章都?duì)應(yīng)了特定的主要組件,包括計(jì)算、存儲(chǔ)、以及網(wǎng)絡(luò)。書中描述了讀者應(yīng)該如何為這些組件管理相應(yīng)的服務(wù)(Nova、Neutron、Cinder 等等),并且還提供了這些組件之間的交互和其背后的技術(shù)的細(xì)節(jié),如內(nèi)核空間、OVS、LVM等等;
其余的章節(jié)則介紹了 OpenStack 使用到的自動(dòng)化工具和其它額外的組件,有用于存儲(chǔ)的 Ceph、用于部署的 Fuel、以及用于云編排的 Heat 和 Ubuntu Juju。
OpenStack 是一個(gè)復(fù)雜的系統(tǒng),其子項(xiàng)目實(shí)在是太多了,很難用一本書來(lái)描述它們?nèi)康膬?nèi)容。更何況,《OpenStack 實(shí)戰(zhàn)》對(duì)于內(nèi)容的定位就是為讀者構(gòu)建自己的私有云平臺(tái)部署提供最為基本的理解和開啟這段旅程的基礎(chǔ)知識(shí)。
InfoQ 就這本書的內(nèi)容采訪了 V. K. Cody Bumgardner,希望能夠更加深入的了解這本書。
InfoQ: 您能解釋下寫此書背后的動(dòng)力是什么?為什么認(rèn)為有必要寫這樣的一本書?
Bumgardner:在 OpenStack 還是 Grizzly 的時(shí)候,我開始漸漸的相信 OpenStack 在一些方面是可以使用到生產(chǎn)環(huán)境中的了,至少對(duì)于一些應(yīng)用來(lái)說(shuō)可以。幾年下來(lái),我組織了很多場(chǎng) OpenStack 的研討會(huì),嘗試來(lái)解釋 OpenStack 組件,以及在企業(yè)內(nèi)部該如何利用它來(lái)部署私有云平臺(tái),在我們?cè)缙诘难杏憰?huì)上,讓我漸漸明白了一些事情,讓傳統(tǒng)的 IT 部門去放棄他們所控制的資源是一件非常困難的事情,而且對(duì)于基礎(chǔ)設(shè)施的管理的傳統(tǒng)思維也是非常難以改變的。我寫這本書是那些99%的未來(lái)被迫使用云的企業(yè),而不是已經(jīng)開始使用大型云環(huán)境的企業(yè)。
InfoQ: 請(qǐng)您以簡(jiǎn)短的形式描述下你在 OpenStack 項(xiàng)目和普遍的云計(jì)算技術(shù)的背景和經(jīng)驗(yàn)。
Bumgardner:我本人從事 IT 行業(yè)20多年,涉及的角色有:策略規(guī)劃、技術(shù)、領(lǐng)導(dǎo)者,以及各個(gè)崗位:IT 架構(gòu)師、軟件開發(fā)、網(wǎng)絡(luò)、研究、系統(tǒng)和安全。我目前在一家大型的公共綜合院校做首席技術(shù)架構(gòu)師,也是一名計(jì)算機(jī)科學(xué)的博士生,研究方向是分布式系統(tǒng)的優(yōu)化。我開始使用 OpenStack 是在2012年它的 Essex 版本發(fā)布時(shí),從此一發(fā)不可收拾,直到現(xiàn)在。
InfoQ: 有超過(guò)500家公司加入到此項(xiàng)目中來(lái),OpenStack 到底承諾了什么?為什么大家這么關(guān)注它?
Bumgardner:我以為 OpenStack 對(duì)于基礎(chǔ)設(shè)施所做的事情,猶如高級(jí)編程語(yǔ)言所做的事情那樣,在應(yīng)用程序的可移植性和開發(fā)時(shí)間上有巨大優(yōu)勢(shì)。在開銷上的,如軟/硬件相關(guān)的、以及資源利用和部署的時(shí)間,若使用得當(dāng),OpenStack 是可以幫助用戶節(jié)省不少錢的。OpenStack 是作為一個(gè)“云操作系統(tǒng)”這樣一個(gè)角色,在不關(guān)心底層物理環(huán)境的情況下,為用戶提供友好的接口。
InfoQ: 來(lái)自 OpenStack 的哪一個(gè)應(yīng)用是您最為偏愛的并從中受益?OpenStack 的關(guān)鍵特性是?
Bumgardner:從 OpenStack 的角度來(lái)描述應(yīng)用程序的類型是一件非常容易的事情,因?yàn)樗浅5南∮?。舉例來(lái)說(shuō),那些非共享的、靜態(tài)的、或者是高度專業(yè)化的基礎(chǔ)設(shè)施很難從 OpenStack 受益。然而,這些應(yīng)用程序是少之又少,甚至這樣專業(yè)化的技術(shù)原因就更加的少了。
InfoQ: OpenStack 能夠被大多數(shù)廠商所接受,其最為重要的標(biāo)準(zhǔn)是什么?在這方面您是如何評(píng)估 OpenStack 成熟度的?
Bumgardner:對(duì)于供應(yīng)商來(lái)說(shuō),放棄競(jìng)爭(zhēng)商業(yè)管理環(huán)境是非正常現(xiàn)象,所以我無(wú)法確定你將會(huì)看到采用大量的供應(yīng)商驅(qū)動(dòng)的場(chǎng)景。事實(shí)上,我認(rèn)為我們要避免看到廠商支持的軟件定義網(wǎng)絡(luò)(SDN)的情形,他們經(jīng)常會(huì)搞出一些僅實(shí)現(xiàn)標(biāo)準(zhǔn)的一小部分,然后會(huì)和你說(shuō)“是的,我們就是這么做的?!?站在供應(yīng)商社區(qū)之外是 OpenStack 之所以存在的戰(zhàn)略優(yōu)勢(shì),對(duì)于供應(yīng)商來(lái)說(shuō)只能利用一些技術(shù)作為他們產(chǎn)品的一部分。
InfoQ: OpenStack 是一系列的不同的組件的總稱。在書中,您對(duì)于介紹這些組件作了出色的工作,且描述了如何使用它們,但是構(gòu)建一個(gè)基于 OpenStack 的系統(tǒng)仍然是一個(gè)艱巨的任務(wù)。在學(xué)習(xí)如何使用 OpenStack 過(guò)程中那些關(guān)鍵點(diǎn)是應(yīng)該時(shí)刻記住的?
Bumgardner:你在使用計(jì)算器的時(shí)候,是毋需證明數(shù)學(xué)定理的。但是你最好還是有一點(diǎn)數(shù)學(xué)知識(shí)的基礎(chǔ)。 我以為 OpenStack 也是同樣的道理,你不一定非得是網(wǎng)絡(luò)、系統(tǒng)或者是自動(dòng)化的專家才能去使用 OpenStack,你個(gè)人的水平?jīng)Q定了去選擇什么樣的途徑。我自己的經(jīng)歷,我看到很多來(lái)自各個(gè)領(lǐng)域的研究專家將 OpenStack 的代碼克隆下來(lái)去部署,也有一些缺少或沒(méi)有經(jīng)驗(yàn)的(或者說(shuō)沒(méi)有時(shí)間的)人們使用了有商業(yè)支持的自動(dòng)化部署工具。
InfoQ: 請(qǐng)你描述一下從傳統(tǒng) IT 管理轉(zhuǎn)換為讓 OpenStack 接管的變化?OpenStack 能夠提供什么樣的優(yōu)勢(shì)?
Bumgardner:顛覆性的技術(shù)讓人精神為之振奮,但隨之而來(lái)的是對(duì)于改變的恐懼。高效的 IT 團(tuán)隊(duì)會(huì)評(píng)估新的技術(shù),并嘗試去理解它們的戰(zhàn)略價(jià)值,而這都會(huì)在供應(yīng)商出現(xiàn)之前就開始做了。這個(gè)時(shí)候,你可以選擇引領(lǐng)變化,或者是選擇讓變化去引領(lǐng)你,后者的滋味可能不太好受。而對(duì)于 OpenStack 的采用,對(duì)于公司來(lái)說(shuō)其實(shí)是掌握了引領(lǐng)趨勢(shì)的巨大優(yōu)勢(shì)。正如我在書中所討論的一樣,如果你僅僅是將 OpenStack 視為虛擬服務(wù)器的一個(gè)替代的話,那你就會(huì)錯(cuò)過(guò)太多。IT 組織應(yīng)該轉(zhuǎn)換他們的思維方式了,從考慮如何提供基礎(chǔ)設(shè)施向成為一個(gè)資源的代理的轉(zhuǎn)變,當(dāng)然這是我個(gè)人的一己之見。
InfoQ: 對(duì)于開發(fā)者從傳統(tǒng)的開發(fā)模式轉(zhuǎn)向到為 OpenStack 開發(fā)應(yīng)用程序來(lái)說(shuō)有哪些挑戰(zhàn)?為什么開發(fā)者應(yīng)將它們的應(yīng)用移入OpenStack?
Bumgardner:如果說(shuō)哪個(gè)團(tuán)隊(duì)能從 OpenStack 獲益最多,那一定是開發(fā)和測(cè)試。重構(gòu)基礎(chǔ)設(shè)施的能力,對(duì)于在生產(chǎn)環(huán)境中的測(cè)試是無(wú)價(jià)的?!败浖x”基礎(chǔ)設(shè)施的能力,以及軟件依賴、乃至于應(yīng)用程序大大減少部署時(shí)間。以及所有那些無(wú)須通過(guò)請(qǐng)求 IT 部門就可以隨意完成的能力......簡(jiǎn)直是讓人垂涎三尺。
InfoQ: 你認(rèn)為目前的 OpenStack 有哪些局限性和復(fù)雜性?
Bumgardner:任何系統(tǒng)(計(jì)算、治理、原始)的強(qiáng)大和軟肋之處都在于其各個(gè)組件的產(chǎn)品及其安排。集中的控制,可以得到快速的響應(yīng),但是在擴(kuò)展上會(huì)遇到問(wèn)題。完美的分布式系統(tǒng)等同于分布式的控制提供了優(yōu)秀的擴(kuò)展能力,那么就會(huì)缺少控制。
我非常的幸運(yùn),親歷了Linux從 .99版本到成熟的整個(gè)階段,所謂的 Linux,就是大家稱之為內(nèi)核,今天看到有一千八百萬(wàn)行代碼的龐然大“物”,幾乎運(yùn)行在所有可能的領(lǐng)域的設(shè)備中。Linux 今天的成功,是因?yàn)樗兄鴱?qiáng)有力的中心愿景和領(lǐng)導(dǎo)力(linus),至少部分是這樣。那么,OpenStack 基金會(huì)則是采用了另外一種方法,廣闊的分布式和隨時(shí)間變化的治理。OpenStack 的強(qiáng)大之處同時(shí)也是它的軟肋,如過(guò)于分散的注意力、愿景的散亂、控制的分布等。
InfoQ: 和大家分享下您對(duì)于 OpenStack 未來(lái)開發(fā)的一些想法吧?哪些新的功能是您最想看到的?有沒(méi)有你認(rèn)為非常必要的,但是 OpenStack 的功能列表中沒(méi)有開發(fā)計(jì)劃的?
Bumgardner:我個(gè)人可能會(huì)非常的偏向于我所研究的領(lǐng)域。我認(rèn)為應(yīng)該將注意力放在對(duì)于所有 OpenStack 組件的流監(jiān)控和測(cè)量上。另外,我也非常的希望看到資源調(diào)度方面的努力,哪怕是一個(gè)調(diào)度驅(qū)動(dòng)器了。當(dāng)然,我最為愿意向大家極力推進(jìn)定是——OpenStack 的社區(qū)之美。
本文轉(zhuǎn)載自infoQ