如何建模可以幫助你避免在OpenStack中遇到問題
OpenStack 部署完就是一個(gè) “僵棧StuckStack”,一般出于技術(shù)原因,但有時(shí)是商業(yè)上的原因,它是無法在沒有明顯中斷,也不花費(fèi)時(shí)間和成本的情況下升級的。在關(guān)于這個(gè)話題的***一篇文章中,我們討論了這些云中有多少陷入僵局,以及當(dāng)時(shí)是怎么決定的與如今的大部分常識相符?,F(xiàn)在 OpenStack 已經(jīng)有 7 年了,最近隨著容器編排系統(tǒng)的增長以及更多企業(yè)開始利用公共和私有的云平臺,OpenStack 正面臨著壓力。
沒有魔法解決方案
如果你仍在尋找一個(gè)可以沒有任何問題地升級你現(xiàn)有的 僵棧StuckStack 的解決方案,那么我有壞消息給你:沒有魔法解決方案,你***集中精力建立一個(gè)標(biāo)準(zhǔn)化的平臺,它可以有效地運(yùn)營和輕松地升級。
廉價(jià)航空業(yè)已經(jīng)表明,雖然乘客可能渴望***的體驗(yàn),可以坐在頭等艙或者商務(wù)艙喝香檳,有足夠的空間放松,但是大多數(shù)人會(huì)選擇乘坐***的,最終價(jià)值等式不要讓他們付出更多的代價(jià)。工作負(fù)載是相同的。長期而言,工作負(fù)載將運(yùn)行在最經(jīng)濟(jì)的平臺上,因?yàn)樵诟邇r(jià)硬件或軟件上運(yùn)行的業(yè)務(wù)實(shí)際上并沒有受益。
Amazon、Microsoft、Google 等大型公共云企業(yè)都知道,這就是為什么他們建立了高效的數(shù)據(jù)中心,并使用模型來構(gòu)建、操作和擴(kuò)展基礎(chǔ)設(shè)施。長期以來,企業(yè)一直奉行以設(shè)計(jì)、制造、市場、定價(jià)、銷售、實(shí)施為一體的***秀的硬件和軟件基礎(chǔ)設(shè)施?,F(xiàn)實(shí)可能并不總是符合承諾,但它現(xiàn)在還不重要,因?yàn)槌杀灸J絚ost model在當(dāng)今世界無法生存。一些組織試圖通過改用免費(fèi)軟件替代,而不改變自己的行為來解決這一問題。因此,他們發(fā)現(xiàn),他們只是將成本從獲取軟件變到運(yùn)營軟件上。好消息是,那些高效運(yùn)營的大型運(yùn)營商使用的技術(shù),現(xiàn)在可用于所有類型的組織。
什么是軟件模型?
雖然許多年來,軟件程序由許多對象、進(jìn)程和服務(wù)而組成,但近年來,程序是普遍由許多單獨(dú)的服務(wù)組成,它們高度分布在數(shù)據(jù)中心的不同服務(wù)器以及跨越數(shù)據(jù)中心的服務(wù)器上。
許多服務(wù)意味著許多軟件需要配置、管理并跟蹤許多物理機(jī)器。以成本效益的方式規(guī)?;剡M(jìn)行這一工作需要一個(gè)模型,即所有組件如何連接以及它們?nèi)绾斡成涞轿锢碣Y源。為了構(gòu)建模型,我們需要有一個(gè)軟件組件庫,這是一種定義它們?nèi)绾伪舜诉B接以及將其部署到平臺上的方法,無論是物理的還是虛擬的。在 Canonical 公司,我們幾年前就認(rèn)識到這一點(diǎn),并建立了一個(gè)通用的軟件建模工具 Juju,使得運(yùn)營商能夠從 100 個(gè)通用軟件服務(wù)目錄中組合靈活的拓?fù)浣Y(jié)構(gòu)、架構(gòu)和部署目標(biāo)。
在 Juju 中,軟件服務(wù)被定義為一種叫做 Charm 的東西。 Charms 是代碼片段,它通常用 python 或 bash 編寫,其中提供有關(guān)服務(wù)的信息 - 聲明的接口、服務(wù)的安裝方式、可連接的其他服務(wù)等。
Charms 可以簡單或者復(fù)雜,具體取決于你想要賦予的功能。對于 OpenStack,Canonical 在上游 OpenStack 社區(qū)的幫助下,為主要 OpenStack 服務(wù)開發(fā)了一套完整的 Charms。Charms 代表了模型的說明,使其可以輕松地部署、操作擴(kuò)展和復(fù)制。Charms 還定義了如何升級自身,包括在需要時(shí)執(zhí)行升級的順序以及如何在需要時(shí)優(yōu)雅地暫停和恢復(fù)服務(wù)。通過將 Juju 連接到諸如 裸機(jī)即服務(wù)(MAAS) 這樣的裸機(jī)配置系統(tǒng),其中 OpenStack 的邏輯模型可以部署到物理硬件上。默認(rèn)情況下,Charms 將在 LXC 容器中部署服務(wù),從而根據(jù)云行為的需要,提供更大的靈活性來重新定位服務(wù)。配置在 Charms 中定義,或者在部署時(shí)由第三方工具(如 Puppet 或 Chef)注入。
這種方法有兩個(gè)不同的好處:1 - 通過創(chuàng)建一個(gè)模型,我們從底層硬件抽象出每個(gè)云服務(wù)。2 - 使用已知來源的標(biāo)準(zhǔn)化組件,通過迭代組合新的架構(gòu)。這種一致性使我們能夠使用相同的工具部署非常不同的云架構(gòu),運(yùn)行和升級這些工具是安全的。
通過全面自動(dòng)化的配置工具和軟件程序來管理硬件庫存,運(yùn)營商可以比使用傳統(tǒng)企業(yè)技術(shù)或構(gòu)建偏離核心的定制系統(tǒng)更有效地?cái)U(kuò)展基礎(chǔ)架構(gòu)。有價(jià)值的開發(fā)資源可以集中在創(chuàng)新應(yīng)用領(lǐng)域,使新的軟件服務(wù)更快上線,而不是改變標(biāo)準(zhǔn)的商品基礎(chǔ)設(shè)施,這將會(huì)導(dǎo)致進(jìn)一步的兼容性問題。
在下一篇文章中,我將介紹部署完全建模的 OpenStack 的一些***實(shí)踐,以及如何快速地進(jìn)行操作。如果你有一個(gè)現(xiàn)有的 僵棧StuckStack,那么雖然我們不能很容易地拯救它,但是與公有云相比,我們將能夠讓你走上一條完全支持的、高效的基礎(chǔ)架構(gòu)以及運(yùn)營成本的道路。
即將舉行的網(wǎng)絡(luò)研討會(huì)
如果你在舊版本的 OpenStack 中遇到問題,并且想要輕松升級 OpenStack 云并且無需停機(jī),請觀看我們的在線點(diǎn)播研討會(huì),從 Newton 升級到 Ocata 的現(xiàn)場演示。
作者簡介:
專注于 Ubuntu OpenStack 的云產(chǎn)品經(jīng)理。以前在 MySQL 和 Red Hat 工作。喜歡摩托車,遇見使用 Ubuntu 和 Openstack 做有趣事的人。