溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

把Go語(yǔ)言加入OpenStack開發(fā)中需要考慮哪些問題

發(fā)布時(shí)間:2022-01-18 10:19:16 來源:億速云 閱讀:146 作者:iii 欄目:大數(shù)據(jù)

這篇文章主要介紹“把Go語(yǔ)言加入OpenStack開發(fā)中需要考慮哪些問題”,在日常操作中,相信很多人在把Go語(yǔ)言加入OpenStack開發(fā)中需要考慮哪些問題問題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”把Go語(yǔ)言加入OpenStack開發(fā)中需要考慮哪些問題”的疑惑有所幫助!接下來,請(qǐng)跟著小編一起來學(xué)習(xí)吧!

在新版本Newton出爐的周期中,技術(shù)評(píng)估委員會(huì)接到了一份把Go語(yǔ)言作為OpenStack官方開發(fā)語(yǔ)言的提議。隨后進(jìn)行了許多討論,這里不過多贅述過程,只是談?wù)剮c(diǎn)討論的結(jié)果。

決議是暫時(shí)拒絕讓Go作為官方開發(fā)語(yǔ)言,但表示未來可以接著討論,我覺得Go被拒絕可能有以下幾方面的原因:

1.技術(shù)委員會(huì)成員擔(dān)心增加新的語(yǔ)言會(huì)對(duì)社區(qū)造成的影響。會(huì)不會(huì)對(duì)社區(qū)帶來分裂,會(huì)不會(huì)形成一個(gè)孤島,會(huì)不會(huì)給新入門的人帶來額外的門檻?
2.技術(shù)委員會(huì)的一些成員認(rèn)為如今對(duì)社區(qū)中的一些方面缺乏信息,研究和工作。 Go代碼如何在整個(gè)社區(qū)中共享? 認(rèn)證怎么做? 消息層怎么弄? 如何產(chǎn)出版本? 如何維持分支的穩(wěn)定?
3.提議Go語(yǔ)言的團(tuán)隊(duì)除了自己的項(xiàng)目以外根本就沒做過跨項(xiàng)目的任務(wù),這不由得引起了懷疑,使得許多技術(shù)委員會(huì)的質(zhì)疑是否能夠順利完成。

接受一門新的語(yǔ)言需要哪些條件呢?

我先聲明,我所說的不代表技術(shù)委員會(huì)而僅代表我個(gè)人意見,從而方便交流,好會(huì)讓整個(gè)社區(qū)的人發(fā)表意見,無(wú)論是同意或者反對(duì)我的想法。

討論期間我最關(guān)心的是第一部分,主要是因?yàn)槲矣X得向“Big Tent”的遷移還沒完成。我也不知道怎么才會(huì)讓我覺得這遷移已經(jīng)完成了,我能肯定的是我們?cè)诮鉀Q大的變化發(fā)生前需要解決的問題。

言歸正傳,我越來越喜歡給許多東西設(shè)定期望,尤其是一些能帶來改變的請(qǐng)求。把預(yù)期列出來之后,就能讓相關(guān)的人了解到他們正在向哪一個(gè)方向行進(jìn),并且找到改變可能會(huì)面臨的問題。

我對(duì)第二個(gè)問題遠(yuǎn)沒有第一個(gè)問題那么擔(dān)心。它會(huì)對(duì)參與討論這一變化的團(tuán)隊(duì)表現(xiàn)出很強(qiáng)的承諾,因?yàn)檫@涉及到未來對(duì)社區(qū)所有成員使用和參考的基礎(chǔ)知識(shí)庫(kù)。我以為第二部分的工作可能有些超綱,但并不是這樣。通過研究怎么共享代碼,怎么測(cè)試代碼,怎么輸出代碼,怎么做認(rèn)證庫(kù)等,我們?cè)谠O(shè)定未來實(shí)際工作中需要用到的基礎(chǔ)的東西。

無(wú)論如何,我上面提到的“基礎(chǔ)的東西”是什么呢?我將在下面不太詳盡的列表中簡(jiǎn)單談一下:

為新語(yǔ)言定義分享代碼和庫(kù)的方式

Oslo Team負(fù)責(zé)維護(hù)整個(gè)OpenStack社區(qū)需要經(jīng)常用到的庫(kù)。這些庫(kù)包括消息庫(kù)(oslo.messaging),i18n庫(kù)(oslo.i18n),數(shù)據(jù)庫(kù)層庫(kù)(oslo.db)等關(guān)鍵庫(kù)。

這些庫(kù)本身并不能讓Oslo組的人忙起來,它們是為了收集以前在社區(qū)中存在于許多項(xiàng)目中的重復(fù)性的公共代碼。這個(gè)代碼現(xiàn)在由Oslo移除,穩(wěn)定和發(fā)布。

我覺得作為一個(gè)社區(qū),這是無(wú)可避免的。一旦越來越多的項(xiàng)目使用相同的語(yǔ)言就會(huì)出現(xiàn)共享代碼的需求。 因此,我覺得我們需要更好地定義一個(gè)編程語(yǔ)言的代碼怎么在社區(qū)共享,這個(gè)挺重要的,哪怕是在編程語(yǔ)言被接受之前就很重要。

我覺得提前做一些事情不意味著將來沒事可做,我們都知道會(huì)有許多為預(yù)料到的事情和發(fā)生變化的事情,我覺得這些工作能涉及到大部分初始化的工作。

關(guān)于OpenStack基本服務(wù)的基本庫(kù)

這可能看起來像一個(gè)相當(dāng)高的目標(biāo)。雖然想搞清楚代碼如何共享是一個(gè)很困難的需求,但我認(rèn)為這離OpenStack服務(wù)的最低要求還差很遠(yuǎn)。

集成在生態(tài)系統(tǒng)中的OpenStack服務(wù)至少需要以下任意一個(gè)庫(kù):

?keystoneauth / keystone-client
?oslo.config
?oslo.db
?oslo.messaging

如果在使用數(shù)據(jù)庫(kù)或者消息隊(duì)列抽象庫(kù)的時(shí)候沒有任何消耗的話,很可能提供的抽象層是錯(cuò)的,從而導(dǎo)致糟糕的API。從另一個(gè)方面說,認(rèn)證層是幾乎所有OpenStack服務(wù)都會(huì)用到的部分,應(yīng)該可以很方便使用才對(duì),但這不是說這件事本身很簡(jiǎn)單。

通過處理這些庫(kù)中的任何一個(gè),都可以進(jìn)行CI(自動(dòng)測(cè)試系統(tǒng))作業(yè),通過這些作業(yè)來確保新項(xiàng)目的基礎(chǔ)設(shè)置是正確。

定義可交付項(xiàng)如何分布

OpenStack的發(fā)布過程幾乎完全是自動(dòng)化的,發(fā)布過程中涉及到的所有可交付項(xiàng)都是由社區(qū)自動(dòng)產(chǎn)出并由發(fā)布團(tuán)隊(duì)來管理的。最后,將每個(gè)交付項(xiàng)生成壓縮包。

目前使用Python編程語(yǔ)言(以及其他幾門編程語(yǔ)言)的時(shí)候 ,這些壓縮包因?yàn)橹话@些源代碼所以還很簡(jiǎn)單。對(duì)于像Go這樣的編譯型語(yǔ)言,我們就得考慮壓縮包里要壓縮什么了,壓縮編譯過的二進(jìn)制代碼嗎?是不是應(yīng)該加入源代碼呢?如果要包含二進(jìn)制代碼,是不是也應(yīng)該考慮兩種不同的壓縮包呢?一個(gè)是二進(jìn)制代碼,一個(gè)是源代碼。

維護(hù)穩(wěn)定分支部分的工作怎么辦?

穩(wěn)定的分支在社區(qū)經(jīng)常被遺忘,維護(hù)這些穩(wěn)定分支的團(tuán)隊(duì)得到的感謝比較少。然而穩(wěn)定分支的代碼運(yùn)行在許多OpenStack云環(huán)境下,它們對(duì)于向后兼容的后端遷移修復(fù)非常關(guān)鍵。

每一門語(yǔ)言都有自己發(fā)布庫(kù)的方式,管理兼容性的方式。當(dāng)為社區(qū)加入新的編程語(yǔ)言,與原有的其他團(tuán)隊(duì)之間的合作是至關(guān)重要的。

為新的語(yǔ)言設(shè)置CI管道

還有就是與基礎(chǔ)設(shè)施組討論設(shè)置CI(自動(dòng)測(cè)試系統(tǒng))管道。

這個(gè)任務(wù)可能是許多工作的基礎(chǔ)。為了解決之前的許多任務(wù),有必要設(shè)置CI(自動(dòng)測(cè)試系統(tǒng))作業(yè),這涉及與基礎(chǔ)架構(gòu)團(tuán)隊(duì)協(xié)調(diào)。后者是至關(guān)重要的。 基礎(chǔ)設(shè)施團(tuán)隊(duì)的參與對(duì)于添加任何新語(yǔ)言都至關(guān)重要,他們的反饋將在許多決策中發(fā)揮重要作用。

回顧一下為Python語(yǔ)言做的一些基礎(chǔ)工作,其實(shí)是大多數(shù)項(xiàng)目都需要做的事情。我希望致力于加入新語(yǔ)言的團(tuán)隊(duì)可以做一些通用性的事情,為以后跨多個(gè)項(xiàng)目的時(shí)候使用。

比如會(huì)有以下幾方面的通用性工作:

?Lint checkers
?Doc builders
?Release Pipelines

到此,關(guān)于“把Go語(yǔ)言加入OpenStack開發(fā)中需要考慮哪些問題”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI