<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
"); //-->

博客專(zhuān)欄

EEPW首頁(yè) > 博客 > 淺談OpenStack(一)

淺談OpenStack(一)

發(fā)布人:天翼云開(kāi)發(fā)者 時(shí)間:2024-06-24 來(lái)源:工程師 發(fā)布文章

本文分享自天翼云開(kāi)發(fā)者社區《淺談OpenStack(一)》,作者:EmmaDu

OpenStack剛誕生的時(shí)候比較單純,只有計算(NASA開(kāi)源)和存儲(Rackspace開(kāi)源)兩個(gè)功能組件,至于NASA和Rackspace開(kāi)源這兩個(gè)項目并成立OpenStack社區(https://www.openstack.org)的原因,網(wǎng)絡(luò )上流傳了很多版本,感興趣的同學(xué)可以去網(wǎng)上找找。

個(gè)人認為OpenStack是一個(gè)偉大的開(kāi)源項目,幾乎所有的架構、所有的廠(chǎng)商都能在社區找到解決方案。截至到現在,OpenStack已經(jīng)擁有超過(guò)1000萬(wàn)行核心代碼,這是由8000多名開(kāi)發(fā)者貢獻了50萬(wàn)+的變更得來(lái)的。最初的OpenStack有多厲害?很多開(kāi)發(fā)者僅僅是把OpenStack的代碼搬到本地,運行起來(lái)再賣(mài)出去,就能成立一家公司。

OpenStack剛開(kāi)始只有nova(計算)和swift(存儲)兩個(gè)核心組件,尤其是nova,幾乎負責了云主機生命周期的所有操作,包括cpu、內存、磁盤(pán)、網(wǎng)絡(luò )等,后來(lái)隨著(zhù)功能越來(lái)越多,項目越來(lái)越龐大,社區才把鏡像管理(nova-image)服務(wù)、存儲管理(nova-volume)服務(wù)、網(wǎng)絡(luò )管理(nova-network)服務(wù)等獨立出來(lái),于是有了glance、cinder、neutron等服務(wù)。在OpenStack里有兩個(gè)概念:組件和服務(wù)。我們把每個(gè)完成獨立功能的項目稱(chēng)為一個(gè)組件,比如nova、cinder、glance、neutron。每個(gè)組件里會(huì )細分很多個(gè)服務(wù),用來(lái)承擔不同的職責,比如nova里會(huì )有nova-api服務(wù),負責api請求的處理;nova-scheduler服務(wù)負責宿主機的調度;nova-compute服務(wù)負責與虛擬化軟件進(jìn)行交互,來(lái)操作云主機。


image.png


上圖展示了OpenStack里的主要核心組件的交互流程,可以看到,組件和組件之間通過(guò)RESTful API交互;組件內的服務(wù)和服務(wù)之間通過(guò)消息隊列交互。整個(gè)架構,邏輯清晰,組件之間相互獨立,耦合性很低;而組件內部,通過(guò)消息隊列來(lái)傳遞請求,耦合性也很低。個(gè)人認為,松耦合是OpenStack最大的特點(diǎn),也是最值得學(xué)習的地方。


什么是松耦合?松耦合是指系統架構中不同的組件之間存在低度的耦合關(guān)系,這之間彼此相互獨立,如果發(fā)生改變,其他相關(guān)模塊不受影響,即可以分離出來(lái)獨立開(kāi)發(fā)或替換。我們的TeleCloudOS4.0底座雖然不再使用OpenStack,但是在做設計時(shí),還是有很多OpenStack的影子。比如,現在各個(gè)產(chǎn)品線(xiàn)之間負責獨立組件(計算、存儲、網(wǎng)絡(luò )等),而每個(gè)組件之間通過(guò)RESTful API的方式進(jìn)行調用;比如每個(gè)組件內部又細分了很多服務(wù),來(lái)負責不同的功能(api、調度、計算代理服務(wù)等)。各個(gè)產(chǎn)品線(xiàn)只需要專(zhuān)注的實(shí)現自有的產(chǎn)品功能,而不需要關(guān)心其他產(chǎn)品的內部實(shí)現,產(chǎn)品線(xiàn)的產(chǎn)品調用通過(guò)RESTful API來(lái)實(shí)現,只要定義好對接的接口格式,就可以實(shí)現并行開(kāi)發(fā),獨立維護,互不影響,可以大大的提升開(kāi)發(fā)效率,同時(shí)某一個(gè)組件的bug影響范圍控制在組件內部,對其他組件不會(huì )造成影響。而產(chǎn)品線(xiàn)內部在設計時(shí),也參考了OpenStack,將一個(gè)組件細分成很多服務(wù)來(lái)承擔不同的任務(wù),服務(wù)之間通過(guò)分布式隊列來(lái)交互,其實(shí)和OpenStack異曲同工。

*博客內容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀(guān)點(diǎn),如有侵權請聯(lián)系工作人員刪除。



關(guān)鍵詞: OpenStack

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>