8個DevOps自動化工具,幫你做出持續(xù)改進
DevOps,這個詞似乎是過去幾年的一個流行語,是 IT 招聘人員、軟件公司和代理機構(gòu)在互聯(lián)網(wǎng)上搜索得最多的一個詞。專業(yè)的支持者認為這與工具或自動化無關(guān),但他們忽略了一點,即工具實際上承載了 DevOps 文化。我們都認同這樣的說法,即 DevOps 不只與工具有關(guān),甚至不只與一個單獨的角色有關(guān),DevOps 實際上是人、過程和工具的結(jié)合體。但是,一個組織想要實施 DevOps,工具在其中扮演了重要的角色。
在這篇文章里,我們將介紹 8 個 DevOps 自動化工具,每一家公司都需要依靠它們來獲得持續(xù)改進。
1. Kubernetes
Kubernetes,容器編配平臺事實上的標準。它是一個非常流行的開源平臺,誕生于谷歌,谷歌于 2014 年將其開源。Kubernetes 用來管理由多個自包含運行時(也就是容器)組成的應(yīng)用程序。容器近來正在取代虛擬機成為發(fā)布應(yīng)用程序的標準模型。
Kubernetes 集群有一個主節(jié)點和多個工作節(jié)點,每個工作節(jié)點可以處理多個 Pod。Pod 是由多個容器組成的工作單元。開發(fā)人員可以從 Pod 開始,準備好 Pod 之后,下一步是向主節(jié)點指定 Pod 的定義以及我們希望部署多少個 Pod,剩下的事情由 Kubernetes 負責。它會獲取 Pod,并將它們部署到工作節(jié)點上。如果有工作節(jié)點發(fā)生宕機,Kubernetes 會自動在可用的其他工作節(jié)點上啟動新 Pod。Kubernetes 簡化了容器化應(yīng)用程序的管理過程,讓構(gòu)建和添加更多的特性以及通過改進應(yīng)用程序來獲得更高的客戶滿意度變得輕而易舉。
2. Rancher
Rancher 是一個容器管理平臺,可以輕松地部署容器環(huán)境(包括 Kubernetes、Apache Mesos 和 Docker Swarm 完整發(fā)行版),并讓云端或基礎(chǔ)設(shè)施平臺上的容器集群操作變得更容易。Rancher 2.0 是一個用于管理 Kubernetes 集群的多集群管理工具,它提供的用戶界面可以幫助 Kubernetes 團隊提高效率。如果你希望獲得更高的高可用性和平臺可靠性,一般都會使用集群。集群將服務(wù)器組合成單個易于管理的計算能力集合,并且通常會使用容器化方法。
讓開發(fā)人員自己來管理這些東西是很困難的。幸運的是,Rancher 簡化了集群的容器管理。截至 2018 年初,Rancher 只用來編配 Kubernetes 集群。
3. Spinnaker
隨著公司的發(fā)展,技術(shù)、工具以及管理這些工具的人員的數(shù)量都有了巨大的增長,這常常會導(dǎo)致公司內(nèi)部出現(xiàn)混亂,增加了技術(shù)棧的復(fù)雜性和碎片化程度。對于小公司來說,碎片化的持續(xù)交付過程或許沒有什么問題,但隨著公司的增長,維護和理解這個過程就變得越來越具有挑戰(zhàn)性。新來的工程師可能需要很長時間才能理解、發(fā)現(xiàn)和整理部署所需的所有工具和流程,即使是為了做出一個最簡單的變更。
Netflix 推出的 Spinnaker 就是為了解決這個問題。它是一個通用可擴展的工具,為用戶提供了構(gòu)建塊,用以開發(fā)自定義持續(xù)交付管道,并可以進行有效的擴展。
Spinnaker 被很多現(xiàn)代軟件公司視為理想的持續(xù)交付工具,它為開發(fā)人員提供了軟件交付過程的可視性和控制能力,幫助他們更好地了解如何交付軟件。
4. Artifactory
大多數(shù)開發(fā)人員會通過各種方式訪問互聯(lián)網(wǎng),并從外部存儲庫獲取依賴項。這嚴重影響了開發(fā)團隊之間的溝通,因為我們無法跟蹤什么樣的依賴包或版本被引入到公司的軟件環(huán)境中。Artifactory 是一個二進制存儲庫管理器,可以用來存儲二進制文件。它就像是二進制版本的 Git。作為一個 DevOps 工具,Artifactory 的主要目標是幫助開發(fā)人員管理第三方依賴包,從而提供持續(xù)集成、持續(xù)交付和持續(xù)部署能力,幫助企業(yè)實現(xiàn) DevOps。
財富 500 強公司,如谷歌、亞馬遜、思科等,它們將 Artifact Repository Manager 作為通用的依賴包儲庫管理器,可以支持所有依賴包,不管它們是用什么語言或工具開發(fā)的。Artifactory 提供了一個自動化的端到端解決方案,方便跟蹤開發(fā)環(huán)境和生產(chǎn)環(huán)境的依賴包,促進 DevOps 團隊的協(xié)作,并毫不費力地對任務(wù)進行自動化。
Artifactory 為 DevOps 團隊提供了所有必需的工具,幫助他們有效地處理不斷增長的二進制文件、環(huán)境和分布式站點,從而確保應(yīng)用程序開發(fā)工作流程的順暢。Artifactory 不需要為相同文件創(chuàng)建不同副本,幫助開發(fā)人員節(jié)省了大量時間。二進制文件都只有一個副本存儲在文件系統(tǒng)中,減少了團隊內(nèi)部和團隊之間的混亂和干擾。
為什么應(yīng)該使用依賴包存儲庫?
- 加快開發(fā)速度;
- 提高開發(fā)人員的生產(chǎn)力;
- 更快地發(fā)布,自動化開發(fā)管道;
- 無縫的團隊協(xié)作;
- 為了節(jié)省時間,一遍又一遍地尋找合適的依賴項。
雖然 Artifactory 的主要目標是提供一種整潔和安全的方法來管理第三方依賴包,但也可以用來存儲開發(fā)團隊自己生成的軟件包,對它們打標簽、版本化,并適時發(fā)布,讓他們清楚地知道打包了什么東西。
5. Linkerd
Linkerd 是一個開源的輕量級服務(wù)網(wǎng)絡(luò),由 Buoyant 公司主導(dǎo)開發(fā)。很多成功的大公司,如 PayPal、Expedia 等,將它們用在生產(chǎn)環(huán)境中。它為云原生應(yīng)用程序帶來更高的可靠性、安全性和可視性。Buoyant 在 2016 年首次提出了服務(wù)網(wǎng)格這個術(shù)語,所以 Linkerd 算得上是“服務(wù)網(wǎng)格”的鼻祖。
Linkerd 在無需微服務(wù)做出任何代碼變更的情況下為在集群中運行的微服務(wù)提供可觀察性、它們之間的通信方式以及其他細微的方面。
服務(wù)網(wǎng)格是一個專門的基礎(chǔ)設(shè)施層,基本功能是用來控制、管理和建立服務(wù)之間的聯(lián)系,讓應(yīng)用程序的各個部分相互通信,使微服務(wù)的運行更加高效。服務(wù)網(wǎng)格通常被用在云原生應(yīng)用程序、容器和微服務(wù)中,快速打包鏡像并交付高質(zhì)量的軟件。
Linkerd 在平臺層而不是應(yīng)用程序?qū)訛?SRE 團隊提供了可見性、可靠性和安全性以及頂級的服務(wù)指標。
6. Helm
Helm 主要用來幫助 Kubernetes 架構(gòu)師簡化 Kubernetes 應(yīng)用程序的安裝和管理工作。
Helm 使用了一種叫作 chart 的打包格式。chart 是一組描述了一組相關(guān)的 Kubernetes 可用資源的文件。一個 chart 可以用來部署一些簡單的東西。
從架構(gòu)方面看,Helm 有兩個端,一個是客戶端,即 Helm 命令行工具,我們稱之為 Helm CLI,另一個是服務(wù)端,即 Tiller。Helm CLI 是運行在本地機器上的命令。它使用模板引擎根據(jù) Helm 中定義的源模板生成易于理解的 Kubernetes YAML。
在生成 YAML 之后,它會將請求發(fā)送到運行在 Kubernetes 集群中的 Tiller。接下來,Tiller 在 Kubernetes 集群中執(zhí)行更新,確保它是最新的并被正確發(fā)布,然后添加到歷史記錄中,在后續(xù)可以根據(jù)需要進行回滾。在已發(fā)布的 Helm 3 中,Tiller 被移除掉了。
7. Sumo Logic
Sumo Logic 平臺幫助企業(yè)通過分析和預(yù)測來做出基于數(shù)據(jù)驅(qū)動的決策,減少用于調(diào)研安全性和運維問題的時間,這樣就可以根據(jù)優(yōu)先級騰出資源去做更為重要的事項。
Sumo Logic 將計算機生成的數(shù)據(jù)轉(zhuǎn)換成一個簡單的儀表板,通過易于理解的圖表、表格和其他可視元素為用戶提供操作見解。全球有很多公司都使用 Sumo Logic 來構(gòu)建、運行和保護應(yīng)用程序和云基礎(chǔ)設(shè)施,讓 Sumo Logic 成為行業(yè)中不可或缺的 DevOps 工具。
Sumo Logic 的預(yù)測分析功能非常強大,可以預(yù)測異常行為和 KPI 違規(guī),并發(fā)送警告,提高了 DevOps 效率,并有助于修復(fù)所有的問題。
8. Slack
團隊成員之間發(fā)送即時消息、反饋和知識共享非常重要。在實施 DevOps 時,信息的流動、實時交互和高度協(xié)作最為重要。難道你不認為 Slack 正是為此而生的嗎?金融公司 Capital One 認為 Slack 是最為重要的 DevOps 工具。Capital One 在 2016 年年中部署了 Slack,并很快成為其 IT 部門的首選工具。
現(xiàn)在,你可以通過 Slack 自動化大量的手動和重復(fù)性的開發(fā)任務(wù),它的消息通知機制可以很容易地讓用戶看到實時發(fā)生的事情。正當很多大公司還在尋找以團隊為中心的生產(chǎn)力工具時,Slack 已經(jīng)在這方面做了大量的工作。