George V.Neville-Neil
FreeBSD是一個(gè)由基金會(huì)支持的技術(shù)公司,產(chǎn)品種類繁多,今天跟大家分享一下我們?cè)谔摂M化方面取得的成果。
今天很多演講嘉賓談到了云,比如騰訊云、阿里云、Azure等。談到云架構(gòu),F(xiàn)reeBSD能夠創(chuàng)建很多平臺(tái),能夠?qū)浖M(jìn)行虛擬化,進(jìn)而通過(guò)軟件去管理云。
過(guò)去20年,虛擬化技術(shù)取得了很大的發(fā)展,虛擬化的系統(tǒng)也有了自己的框架,不管是IBM還是其他機(jī)構(gòu)都是如此?,F(xiàn)在云可以獲得各種各樣的技術(shù)支持,比如Parallels、虛擬機(jī)等設(shè)備,它們都使用了虛擬化的軟件,使運(yùn)行更加流暢、管理更加容易。虛擬化能有效降低企業(yè)的IT運(yùn)營(yíng)成本,同時(shí)提高其效率、敏捷性和可擴(kuò)展性,加快應(yīng)用和資源的調(diào)配速度。但是也要使用不同的方式充分利用硬件。從軟件的視角來(lái)看,我們感興趣的有兩點(diǎn),一是是否要把所有東西放在云上運(yùn)行,二是我們能否像騰訊或其他機(jī)構(gòu)一樣運(yùn)行很多軟件。
接下來(lái),我們來(lái)談一談FreeBSD軟件在云上的運(yùn)行。亞馬遜在2006年推出了EC2(彈性計(jì)算云),而Liunux是當(dāng)時(shí)唯一的“客人”。很多消費(fèi)者希望使用其他操作系統(tǒng),比如開(kāi)發(fā)者的軟件,可以基于FreeBSD來(lái)打補(bǔ)丁。在2010年,我們進(jìn)行了EC2的FreeBSD實(shí)驗(yàn),到2018年,我們提供的FreeBSD軟件獲得了亞馬遜的官方支持。在多年的開(kāi)發(fā)歷程中,我們的團(tuán)隊(duì)依托自身的技術(shù)優(yōu)勢(shì),實(shí)現(xiàn)了高質(zhì)量的項(xiàng)目進(jìn)展,不斷解決項(xiàng)目實(shí)際操作中的疑難問(wèn)題。同時(shí),F(xiàn)reeBSD擁有眾多的志愿者,大家為了共同的目標(biāo)而不懈努力,從FreeBSD的角度來(lái)看,我們希望迎來(lái)一個(gè)開(kāi)源的、開(kāi)放的世界。
2006-2008年,亞馬遜開(kāi)了一個(gè)應(yīng)用商店,使得我們的架構(gòu)在亞馬遜云上運(yùn)行起來(lái)。一開(kāi)始這是受到微軟支持的,微軟的工程師直接與我們的開(kāi)發(fā)者合作,使FreeBSD能夠很好地與云進(jìn)行銜接,在12-18個(gè)月內(nèi)達(dá)到了功能和性能均等的效果。
在這個(gè)過(guò)程當(dāng)中,我們掌握了很多寶貴的經(jīng)驗(yàn)。第一點(diǎn),如果想在開(kāi)源方面獲得進(jìn)展的話,就必須有領(lǐng)導(dǎo)力,F(xiàn)reeBSD和亞馬遜都是有領(lǐng)導(dǎo)力的企業(yè)。一個(gè)好的想法只是項(xiàng)目的開(kāi)端,還要舍得投入時(shí)間和精力去實(shí)施過(guò)程。第二點(diǎn),建立合作是推動(dòng)項(xiàng)目的基礎(chǔ),必須與對(duì)方公司內(nèi)部工作人員建立良好的銜接,雙方合作協(xié)同,去運(yùn)行開(kāi)源系統(tǒng)。第三點(diǎn),要具備解決技術(shù)問(wèn)題的核心能力,因?yàn)樵葡到y(tǒng)、云平臺(tái)以及一些軟件,都是比較難調(diào)試的。對(duì)于以后的運(yùn)營(yíng)來(lái)講,調(diào)試含有較多虛擬成分的云會(huì)更容易。
但更加有意義的是以下要分析的。有些虛擬化技術(shù)是開(kāi)源的,而有些不是開(kāi)源的。大概10年前,當(dāng)時(shí)還沒(méi)有虛擬化的技術(shù),開(kāi)源軟件都是自由許可的,有通用的GPL許可證。作為開(kāi)源技術(shù)的先驅(qū),F(xiàn)reeBSD可以根據(jù)許可證的指導(dǎo)原則進(jìn)行修改和重新設(shè)計(jì),以滿足用戶的需求。FreeBSD提供了BSD許可證,BSD許可證與GPL許可證的區(qū)別在于,GPL代碼只能在GPL項(xiàng)目中使用,要求GPL代碼開(kāi)放的繼承性,即確保所有GPL代碼的派生工作的開(kāi)放性,而B(niǎo)SD許可證則相對(duì)寬泛的多,允許自由使用BSD代碼,使用者有權(quán)對(duì)代碼所做的修改進(jìn)行保密,不要求BSD代碼派生工作的開(kāi)放性。當(dāng)時(shí)的技術(shù)已經(jīng)可以做到將很多存儲(chǔ)服務(wù)器整合起來(lái),提高整個(gè)系統(tǒng)的效率,虛擬化架構(gòu)在內(nèi)部商店里也得到了更高效的利用。
BSD許可軟件是非常重要的,提到軟件,我們就會(huì)想到服務(wù)器上所有的內(nèi)容,如果有一個(gè)非常好的管理系統(tǒng)的話,就可以將各類軟件進(jìn)行整合。利用BSD許可軟件強(qiáng)大的存儲(chǔ)能力,可以將服務(wù)器中的所有內(nèi)容進(jìn)行復(fù)制,并將BSD許可軟件與其他軟件進(jìn)行內(nèi)置。我們希望可以把軟件的任何部分拿出來(lái)讓大家共用,并不是FreeBSD一家獨(dú)用,希望大家可以共享所有的開(kāi)源系統(tǒng)。因此軟件系統(tǒng)使用了內(nèi)嵌式的軟件,用戶可以根據(jù)自己的喜好選擇任何感興趣的部分,系統(tǒng)還設(shè)計(jì)了管理程序,可以利用新的軟件復(fù)制服務(wù)器中的內(nèi)容。這個(gè)例子告訴我們,系統(tǒng)的管理程序是非常重要的。我們現(xiàn)在的主要任務(wù)是使用虛擬化庫(kù)里的技術(shù)進(jìn)一步開(kāi)發(fā)新技術(shù)。
我們?cè)賮?lái)看一下可重用的虛擬化庫(kù),可移植性在很多系統(tǒng)當(dāng)中具有廣泛的使用,虛擬化是一個(gè)過(guò)程,要對(duì)整個(gè)機(jī)器進(jìn)行虛擬化。如果要運(yùn)行各種各樣的通用信息,就需要很多的Windows副本,也就需要所有技術(shù)的虛擬化。我們對(duì)元器件進(jìn)行虛擬化的時(shí)候,可以自己來(lái)做選擇,比如工廠自動(dòng)化,有大量的工廠軟件可以用在平臺(tái)上,可能沒(méi)有用戶想要的軟件,此時(shí)如果有一個(gè)非常好的庫(kù),就可以決定用戶的需要,比如用戶可以決定是運(yùn)行一個(gè)舊軟件,還是需要開(kāi)發(fā)一個(gè)新軟件。
最后,我們?cè)撊绾慰创??如何看待虛擬化技術(shù)?我們非常愿意在云上運(yùn)行,因?yàn)樗軌蛱峁┓浅?qiáng)大的功能。未來(lái)要實(shí)現(xiàn)云技術(shù)和虛擬化無(wú)處不在的運(yùn)行,我們希望不只是在一個(gè)數(shù)據(jù)中心或服務(wù)器上運(yùn)行,而是在手機(jī)上也能夠運(yùn)行,我們的目標(biāo)就是在任何地方都能夠?qū)崿F(xiàn)運(yùn)行。當(dāng)然,這一切得益于開(kāi)源,庫(kù)的虛擬化能夠給我們帶來(lái)很大的幫助。
(根據(jù)演講內(nèi)容整理,未經(jīng)本人審核)