在十年前的典型組織中,開發(fā)和運(yùn)營團(tuán)隊(duì)具有獨(dú)立且截然不同的職責(zé)。開發(fā)人員負(fù)責(zé)編碼軟件程序,然后在完成后將其移交給運(yùn)營團(tuán)隊(duì)。IT 運(yùn)營隨后在整個(gè)組織中部署了這些程序。
在上述環(huán)境中,開發(fā)和運(yùn)營是相互隔離的。開發(fā)處于最前沿,運(yùn)營處于最后。獨(dú)立的孤島意味著兩個(gè)團(tuán)隊(duì)之間經(jīng)常會(huì)出現(xiàn)脫節(jié),問題可能會(huì)在開發(fā)接近尾聲時(shí)出現(xiàn)。這兩支球隊(duì)之間經(jīng)常發(fā)生摩擦也就不足為奇了。當(dāng)時(shí)的軟件部署并不像它應(yīng)該的那樣容易。
十年后快進(jìn),由于 DevOps 文化在組織中的興起,開發(fā)和 IT 運(yùn)營之間的墻已經(jīng)倒塌,DevOps 是開發(fā)和運(yùn)營的結(jié)合體,旨在簡化軟件部署。促成 DevOps 流行的是它對(duì)軟件即服務(wù)模型的適用性,該模型已成為近年來流行的軟件開發(fā)標(biāo)準(zhǔn)。
DevOps 的興起見證了對(duì) DevOps 工程師或具備使 DevOps 取得成功所需技能的人員的需求增加。典型的 DevOps 工程師要么是已經(jīng)過渡到獲得所需操作技能的開發(fā)人員,要么是已經(jīng)獲得成功軟件部署所需的必要開發(fā)人員技能的操作員。
在本文中,我們介紹了 DevOps 的重要性及其對(duì)將軟件部署到云的影響。我們還討論了傳統(tǒng)超大規(guī)模提供商和裸機(jī)云的優(yōu)缺點(diǎn),這兩種競爭技術(shù)可滿足您的云需求。最后,我們解決了何時(shí)是從傳統(tǒng)超大規(guī)模環(huán)境轉(zhuǎn)移到裸機(jī)云環(huán)境的最佳時(shí)機(jī)的問題。
DevOps 的現(xiàn)狀
DevOps 代表開發(fā)和運(yùn)營,旨在簡化開發(fā)生命周期并使其更能響應(yīng)業(yè)務(wù)目標(biāo)。因此,源源不斷的更新和改進(jìn)是具有高度發(fā)展的 DevOps 文化的組織的主要特征。為了在不斷變化的環(huán)境中簡化部署,DevOps 鼓勵(lì)協(xié)作和重用,使團(tuán)隊(duì)能夠在開發(fā)過程的早期發(fā)現(xiàn)潛在問題,更頻繁地部署,并減少解決問題的時(shí)間。
DevOps 的其他特征包括使用以下內(nèi)容:
- 源代碼管理——集中的代碼存儲(chǔ)庫對(duì)于確保不同團(tuán)隊(duì)在處理一個(gè)項(xiàng)目時(shí)不會(huì)出現(xiàn)沖突至關(guān)重要。
- 持續(xù)集成和持續(xù)交付 (CI/CD) – 通過單一源代碼存儲(chǔ)庫,簡化集成、開發(fā)和測試流程,加速移動(dòng)中的軟件創(chuàng)建
- 配置管理——確保每次都自動(dòng)和可靠地部署基礎(chǔ)設(shè)施
- 基礎(chǔ)設(shè)施管理——基礎(chǔ)設(shè)施即代碼意味著面對(duì)不斷增長的需求更容易編組資源
- 包管理——現(xiàn)代 DevOps 微服務(wù)需要允許無限擴(kuò)展的容器
- 調(diào)度和編排——面對(duì)不斷變化的工作負(fù)載,最大限度地利用資源需要容器化的容錯(cuò)應(yīng)用程序
- 監(jiān)控——需要持續(xù)監(jiān)控,以確保應(yīng)用程序和工具鏈不會(huì)在某個(gè)地方崩潰
現(xiàn)在對(duì)能夠輕松執(zhí)行上述功能的工具的需求不斷增長。其中許多工具也是開源的。示例包括 GitLab、Jenkins、Travis、Ansible、Juju、Docker、Kubernetes 和 NetData。許多云提供商也有自己的一套專有工具來執(zhí)行這些相同的功能。
DevOps 似乎值得成為近年來的流行語。一份關(guān)于 DevOps 狀況的 2018 年報(bào)告表明,在接受調(diào)查的組織總數(shù)中,約有 11% 的組織擁有高度發(fā)展的 DevOps 文化,這意味著他們大部分時(shí)間都遵循最佳 DevOps 實(shí)踐。幾乎 80% 的人介于高和低之間,這意味著他們有時(shí)會(huì)遵循一些最佳 DevOps 實(shí)踐。只有 10% 的人認(rèn)為低,這意味著他們不會(huì)在日常工作中使用 DevOps 最佳實(shí)踐。根據(jù)這一趨勢,預(yù)計(jì)高度發(fā)展的 DevOps 組織的數(shù)量將在未來幾年達(dá)到頂峰。
DevOps 和傳統(tǒng)云
由于強(qiáng)調(diào)簡化開發(fā)管道,DevOps 方法似乎非常適合在云中實(shí)施,因?yàn)樗浅_m合傳統(tǒng)超大規(guī)模提供商提供的敏捷性和快速基礎(chǔ)設(shè)施配置。云計(jì)算基礎(chǔ)架構(gòu)非常適合那些過渡到 DevOps 的人。通過云提供商手中的代碼配置,開發(fā)團(tuán)隊(duì)可以專注于他們最擅長的事情——編碼和測試他們需要添加到系統(tǒng)中的功能。當(dāng)需要部署時(shí),他們只是簡單地通過其提供商提供的可用工具自動(dòng)執(zhí)行該過程。
但是,使用傳統(tǒng)云進(jìn)行 DevOps 有一些注意事項(xiàng)。當(dāng)您的組織變得更大并且越來越多的人開始定期使用您的系統(tǒng)時(shí),您可能會(huì)發(fā)現(xiàn)您的成本急劇上升,無法控制。這是因?yàn)楦嗟狞c(diǎn)擊次數(shù)意味著更高的價(jià)格。如果您一開始發(fā)現(xiàn)云提供商的低進(jìn)入門檻很誘人,那么一旦您開始為不斷增長的用戶群支付更高的費(fèi)用,這可能就不再是真的了。
此外,如果您不小心,您可能會(huì)依賴于使用您的云提供商的專有工具。在某些情況下,您可能需要預(yù)先付費(fèi)以更新工程師的技能并培訓(xùn)他們使用這些工具。當(dāng)時(shí)間到了,您需要遷移到其他供應(yīng)商時(shí),這將成為一個(gè)真正的負(fù)擔(dān)。您不僅需要重新構(gòu)建您的云堆棧,還需要使用一套新的云工具培訓(xùn)您的工程師。
此外,云提供商在他們的計(jì)算基礎(chǔ)架構(gòu)中添加了一個(gè)虛擬化層,并且經(jīng)常超額預(yù)訂硬件資源,以便能夠處理更多的客戶端。分配給多個(gè)客戶端使用的資源可能意味著您所占的服務(wù)器份額可能無法勝任處理用戶工作負(fù)載的任務(wù),從而危及系統(tǒng)的效率和有效性。如果您有付費(fèi)客戶,這可能會(huì)毀了您的聲譽(yù),因此您必須保留額外的計(jì)算資源緩沖區(qū),這會(huì)增加您的總開支。
最后,安全漏洞可能會(huì)影響您的系統(tǒng),尤其是當(dāng)與您共享服務(wù)器資源的其他組織沒有像您一樣致力于使他們的系統(tǒng)安全時(shí)。如果您的“吵鬧鄰居”與安全性差的虛擬機(jī)與您自己的物理硬件駐留在同一物理硬件上,那么數(shù)據(jù)泄露和惡意軟件感染等都是一個(gè)非常現(xiàn)實(shí)的問題。如果這些相鄰的機(jī)器以某種方式受到網(wǎng)絡(luò)攻擊,您的機(jī)器將陷入交火。
什么是裸機(jī)云?
鑒于與傳統(tǒng)云相關(guān)的問題,一旦您的新興業(yè)務(wù)發(fā)展成熟,就必須尋找替代方案。裸機(jī)云就是這樣一種選擇。如果您現(xiàn)在只想過渡到云,您還應(yīng)該記住這個(gè)選項(xiàng)。
裸機(jī)云服務(wù)器取消了傳統(tǒng)云中普遍存在的虛擬化層。您自己的 DevOps 人員對(duì)服務(wù)器擁有完全的根訪問控制權(quán)。通過不受限制地訪問服務(wù)器,就好像您擁有一個(gè)可以完全使用的本地服務(wù)器,這與傳統(tǒng)超大規(guī)模中的僅管理程序訪問不同。也沒有與其他組織共享資源。相反,您可以完全控制硬件。您可以在需要時(shí)配置、克隆、升級(jí)、降級(jí)或遷移服務(wù)器。
同時(shí),在裸機(jī)云中仍然可以實(shí)現(xiàn)快速配置和按小時(shí)計(jì)費(fèi)的便利性。因此,如果您發(fā)現(xiàn)您的服務(wù)器沒有達(dá)到標(biāo)準(zhǔn),您可以快速配置更多資源來擴(kuò)展您的系統(tǒng)。
裸機(jī)云也不會(huì)將您束縛于專有技術(shù)。相反,您可以在您自己的裸機(jī)云服務(wù)器上使用您的員工已經(jīng)熟悉的開源 DevOps 工具。無需培訓(xùn)任何其他內(nèi)容,而且所需的技能可以在您的團(tuán)隊(duì)中轉(zhuǎn)移。DevOps 工程師可以通過API將您選擇的開源云原生堆棧與裸機(jī)云無縫集成。
裸機(jī)云何時(shí)成為可行的 DevOps 選項(xiàng)?
裸機(jī)云在以下情況下特別可行:
- 當(dāng)您不缺乏具有所需技能的 DevOps 人才并希望有選擇時(shí)。雖然傳統(tǒng)的超大規(guī)模云提供商,如 AWS、Azure 和谷歌,抽象出一些服務(wù)管理的麻煩,但裸機(jī)云的優(yōu)勢在于它讓您完全自由地選擇和利用您選擇的云原生軟件堆棧。雖然這需要額外的人力來處理軟件管理和維護(hù)任務(wù),但您可以完全自由地創(chuàng)建與供應(yīng)商無關(guān)的 IT 基礎(chǔ)架構(gòu)。
- 當(dāng)您的技術(shù)堆棧已經(jīng)基于開源并且您希望進(jìn)行快速無縫遷移時(shí)。如果您的工程師已經(jīng)在使用Ansible?、Docker 和 Kubernetes等開源 DevOps 工具方面經(jīng)驗(yàn)豐富,那么您的組織會(huì)發(fā)現(xiàn)向裸機(jī)云的過渡比大多數(shù)人都容易。
- 當(dāng)您從一開始就預(yù)計(jì)需要增加計(jì)算資源時(shí)。裸機(jī)云服務(wù)器通常具有很高的計(jì)算能力,您在啟動(dòng)時(shí)可能不一定需要。另一方面,如果您希望在項(xiàng)目的早期階段有高端工作負(fù)載,裸機(jī)服務(wù)器將為您提供更高的每美元計(jì)算能力。由于超大規(guī)模供應(yīng)商傾向于鎖定他們的客戶,因此值得考慮在業(yè)務(wù)的早期階段投資裸機(jī)云從長遠(yuǎn)來看是否具有值得的投資回報(bào)。
- 當(dāng)您需要擁有完全專用和完全自動(dòng)化的基礎(chǔ)架構(gòu)時(shí)。單租戶基礎(chǔ)設(shè)施在超大規(guī)模提供商中非常有限,而且通常包含大量成本。雖然超大規(guī)模供應(yīng)商在虛擬機(jī)上提供單租戶基礎(chǔ)設(shè)施,但裸機(jī)云沒有虛擬化層。這允許超大規(guī)模提供商在一分鐘內(nèi)啟動(dòng)新服務(wù)器,而裸機(jī)云計(jì)算機(jī)通常在 10 分鐘內(nèi)部署完畢。然而,對(duì)于那些需要完全專用基礎(chǔ)架構(gòu)的人來說,沒有虛擬化開銷和硬件級(jí)別控制通常更為重要。
結(jié)論
DevOps 從 2009 年這個(gè)術(shù)語被創(chuàng)造出來時(shí)開始得到廣泛使用。在隨后的幾年中,許多組織已經(jīng)采用 DevOps 來改進(jìn)他們的系統(tǒng)開發(fā)流程。未來幾年,具有高度發(fā)展的 DevOps 文化的組織數(shù)量預(yù)計(jì)會(huì)增加更多。
在 DevOps 成為流行語的同時(shí),傳統(tǒng)云因其便利性和低進(jìn)入門檻而吸引了越來越多的組織使用。由于強(qiáng)調(diào)快速周轉(zhuǎn)時(shí)間,DevOps 似乎是為傳統(tǒng)超大規(guī)模提供商所特有的快速配置量身定制的。
然而,傳統(tǒng)的云確實(shí)有它的問題。一方面,它因缺乏隱私和安全性而受到批評(píng),因?yàn)槟c其他組織共享相同的硬件,而這些組織可能不像您那樣癡迷于安全最佳實(shí)踐。可靠性是另一個(gè)潛在問題,因?yàn)槲挥趥鹘y(tǒng)云之上的虛擬機(jī)及其資源在您的組織和同一計(jì)算基礎(chǔ)設(shè)施上的其他組織之間進(jìn)行了劃分。如果性能不佳,您將被迫以更高的成本獲得更多的資源。
此外,您可能會(huì)受限于使用傳統(tǒng)超大規(guī)模提供商提供的專有軟件。你不希望這種情況發(fā)生,因?yàn)橛写罅块_源工具可用于處理 DevOps 任務(wù)。從長遠(yuǎn)來看,依附于專有技術(shù)可能會(huì)讓您付出高昂的代價(jià)。
獲得裸機(jī)云服務(wù)器可以避免與傳統(tǒng)云相關(guān)的問題。可靠性不會(huì)成為問題,因?yàn)槟慕M織不會(huì)與任何其他組織共享服務(wù)器資源。同樣,您的隱私和安全問題也會(huì)得到處理。由于您的員工可以自由使用裸機(jī)云服務(wù)器作為他們自己的服務(wù)器,他們還可以使用他們認(rèn)為合適的任何 DevOps 工具。最重要的是,裸機(jī)云保留了傳統(tǒng)云的主要優(yōu)勢:快速配置和按小時(shí)計(jì)費(fèi)。
總而言之,選擇使用傳統(tǒng)云還是裸機(jī)云歸結(jié)為您的 DevOps 工程師是否可以管理您自己的云計(jì)算基礎(chǔ)設(shè)施的問題。如果您的員工具備所需的 DevOps 技能,您可能會(huì)發(fā)現(xiàn) Bare Metal Cloud 是兩者中更好的選擇。