Categories
程式開發

8個DevOps自動化工具,幫你做出持續改進


DevOps,這個詞似乎是過去幾年的一個流行語,是 IT 招聘人員、軟件公司和代理機構在互聯網上搜索得最多的一個詞。專業的支持者認為這與工具或自動化無關,但他們忽略了一點,即工具實際上承載了 DevOps 文化。我們都認同這樣的說法,即 DevOps 不只與工具有關,甚至不只與一個單獨的角色有關,DevOps 實際上是人、過程和工具的結合體。但是,一個組織想要實施 DevOps,工具在其中扮演了重要的角色。

在這篇文章裡,我們將介紹 8 個 DevOps 自動化工具,每一家公司都需要依靠它們來獲得持續改進。

Kubernetes

Kubernetes,容器編配平台事實上的標準。它是一個非常流行的開源平台,誕生於谷歌,谷歌於 2014 年將其開源。 Kubernetes 用來管理由多個自包含運行時(也就是容器)組成的應用程序。容器近來正在取代虛擬機成為發布應用程序的標準模型。

Kubernetes 集群有一個主節點和多個工作節點,每個工作節點可以處理多個 Pod。 Pod 是由多個容器組成的工作單元。開發人員可以從 Pod 開始,準備好 Pod 之後,下一步是向主節點指定 Pod 的定義以及我們希望部署多少個 Pod,剩下的事情由 Kubernetes 負責。它會獲取 Pod,並將它們部署到工作節點上。如果有工作節點發生宕機,Kubernetes 會自動在可用的其他工作節點上啟動新 Pod。 Kubernetes 簡化了容器化應用程序的管理過程,讓構建和添加更多的特性以及通過改進應用程序來獲得更高的客戶滿意度變得輕而易舉。

Rancher

Rancher 是一個容器管理平台,可以輕鬆地部署容器環境(包括 Kubernetes、Apache Mesos 和 Docker Swarm 完整髮行版),並讓雲端或基礎設施平台上的容器集群操作變得更容易。 Rancher 2.0 是一個用於管理 Kubernetes 集群的多集群管理工具,它提供的用戶界面可以幫助 Kubernetes 團隊提高效率。如果你希望獲得更高的高可用性和平台可靠性,一般都會使用集群。集群將服務器組合成單個易於管理的計算能力集合,並且通常會使用容器化方法。

讓開發人員自己來管理這些東西是很困難的。幸運的是,Rancher 簡化了集群的容器管理。截至 2018 年初,Rancher 只用來編配 Kubernetes 集群。

Spinnaker

隨著公司的發展,技術、工具以及管理這些工具的人員的數量都有了巨大的增長,這常常會導致公司內部出現混亂,增加了技術棧的複雜性和碎片化程度。對於小公司來說,碎片化的持續交付過程或許沒有什麼問題,但隨著公司的增長,維護和理解這個過程就變得越來越具有挑戰性。新來的工程師可能需要很長時間才能理解、發現和整理部署所需的所有工具和流程,即使是為了做出一個最簡單的變更。

Netflix 推出的 Spinnaker 就是為了解決這個問題。它是一個通用可擴展的工具,為用戶提供了構建塊,用以開發自定義持續交付管道,並可以進行有效的擴展。

Spinnaker 被很多現代軟件公司視為理想的持續交付工具,它為開發人員提供了軟件交付過程的可視性和控制能力,幫助他們更好地了解如何交付軟件。

Artifactory

大多數開發人員會通過各種方式訪問互聯網,並從外部存儲庫獲取依賴項。這嚴重影響了開發團隊之間的溝通,因為我們無法跟踪什麼樣的依賴包或版本被引入到公司的軟件環境中。 Artifactory 是一個二進制存儲庫管理器,可以用來存儲二進製文件。它就像是二進製版本的 Git。作為一個 DevOps 工具,Artifactory 的主要目標是幫助開發人員管理第三方依賴包,從而提供持續集成、持續交付和持續部署能力,幫助企業實現 DevOps。

財富 500 強公司,如穀歌、亞馬遜、思科等,它們將 Artifact Repository Manager 作為通用的依賴包儲庫管理器,可以支持所有依賴包,不管它們是用什麼語言或工具開發的。 Artifactory 提供了一個自動化的端到端解決方案,方便跟踪開發環境和生產環境的依賴包,促進 DevOps 團隊的協作,並毫不費力地對任務進行自動化。

Artifactory 為 DevOps 團隊提供了所有必需的工具,幫助他們有效地處理不斷增長的二進製文件、環境和分佈式站點,從而確保應用程序開發工作流程的順暢。 Artifactory 不需要為相同文件創建不同副本,幫助開發人員節省了大量時間。二進製文件都只有一個副本存儲在文件系統中,減少了團隊內部和團隊之間的混亂和乾擾。

為什麼應該使用依賴包存儲庫?

  1. 加快開發速度;
  2. 提高開發人員的生產力;
  3. 更快地發布,自動化開發管道;
  4. 無縫的團隊協作;
  5. 為了節省時間,一遍又一遍地尋找合適的依賴項。

雖然Artifactory 的主要目標是提供一種整潔和安全的方法來管理第三方依賴包,但也可以用來存儲開發團隊自己生成的軟件包,對它們打標籤、版本化,並適時發布,讓他們清楚地知道打包了什麼東西。

Linkerd

Linkerd 是一個開源的輕量級服務網絡,由 Buoyant 公司主導開發。很多成功的大​​公司,如 PayPal、Expedia 等,將它們用在生產環境中。它為雲原生應用程序帶來更高的可靠性、安全性和可視性。 Buoyant 在 2016 年首次提出了服務網格這個術語,所以 Linkerd 算得上是“服務網格”的鼻祖。

Linkerd 在無需微服務做出任何代碼變更的情況下為在集群中運行的微服務提供可觀察性、它們之間的通信方式以及其他細微的方面。

服務網格是一個專門的基礎設施層,基本功能是用來控制、管理和建立服務之間的聯繫,讓應用程序的各個部分相互通信,使微服務的運行更加高效。服務網格通常被用在雲原生應用程序、容器和微服務中,快速打包鏡像並交付高質量的軟件。

Linkerd 在平台層而不是應用程序層為 SRE 團隊提供了可見性、可靠性和安全性以及頂級的服務指標。

Helm

Helm 主要用來幫助 Kubernetes 架構師簡化 Kubernetes 應用程序的安裝和管理工作。

Helm 使用了一種叫作 chart 的打包格式。 chart 是一組描述了一組相關的 Kubernetes 可用資源的文件。一個 chart 可以用來部署一些簡單的東西。

從架構方面看,Helm 有兩個端,一個是客戶端,即 Helm 命令行工具,我們稱之為 Helm CLI,另一個是服務端,即 Tiller。 Helm CLI 是運行在本地機器上的命令。它使用模板引擎根據 Helm 中定義的源模板生成易於理解的 Kubernetes YAML。

在生成 YAML 之後,它會將請求發送到運行在 Kubernetes 集群中的 Tiller。接下來,Tiller 在 Kubernetes 集群中執行更新,確保它是最新的並被正確發布,然後添加到歷史記錄中,在後續可以根據需要進行回滾。在已發布的 Helm 3 中,Tiller 被移除掉了。

Sumo Logic

Sumo Logic 平台幫助企業通過分析和預測來做出基於數據驅動的決策,減少用於調研安全性和運維問題的時間,這樣就可以根據優先級騰出資源去做更為重要的事項。

Sumo Logic 將計算機生成的數據轉換成一個簡單的儀表板,通過易於理解的圖表、表格和其他可視元素為用戶提供操作見解。全球有很多公司都使用 Sumo Logic 來構建、運行和保護應用程序和雲基礎設施,讓 Sumo Logic 成為行業中不可或缺的 DevOps 工具。

Sumo Logic 的預測分析功能非常強大,可以預測異常行為和 KPI 違規,並發送警告,提高了 DevOps 效率,並有助於修復所有的問題。

Slack

團隊成員之間發送即時消息、反饋和知識共享非常重要。在實施 DevOps 時,信息的流動、實時交互和高度協作最為重要。難道你不認為 Slack 正是為此而生的嗎?金融公司 Capital One 認為 Slack 是最為重要的 DevOps 工具。 Capital One 在 2016 年年中部署了 Slack,並很快成為其 IT 部門的首選工具。

現在,你可以通過 Slack 自動化大量的手動和重複性的開發任務,它的消息通知機制可以很容易地讓用戶看到實時發生的事情。正當很多大公司還在尋找以團隊為中心的生產力工具時,Slack 已經在這方面做了大量的工作。

英文原文

DevOps Automation Tools for Continuous Improvement