熱門!2021年備受喜愛的11種開源 DevOps 工具!
DevOps 不僅是一種文化轉變,而且還需要強大的工具才能實現。下面,我們匯總了一些當今最受歡迎的 DevOps 工具。但是,將大量資金投入到精美的SaaS解決方案中可能會迅速吞噬云預算。這些 DevOps 工具都是開放源代碼,并支持從容器構建和編排到微服務網絡,配置管理,CI / CD 自動化,全棧監視等更多功能。
1. Kubernetes
由于微服務和基于容器的軟件無處不在,因此 Kubernetes 在今年的開源 DevOps 工具列表中名列前茅也就不足為奇了。Kubernetes 在2020年的使用量增長了48%,用于協調容器。無需手動發布微服務,Kubernetes可以自動化生產中的容器組的部署,維護和擴展。Kubernetes(有時寫為K8s)由Cloud-Native Computing Foundation(CNCF)托管。
2.Docker
Docker 是一個免費的開放源代碼平臺,用于以輕量級容器的形式構建,發布和運行應用程序。容器打包了程序運行所需的二進制文件,庫,配置文件和依賴項。在過去的十年中,容器在敏捷開發中發揮了關鍵作用,而 Docker 容器引領了這場革命。其核心是 Docker Engine。Docker Hub 還是一個很好的資源,可用于查找和共享作為容器的預包裝功能。另外,要插入容器漏洞,使用開源容器審核工具(如Docker Bench或Anchore)可能會有所幫助。
3.Istio
微服務是一種方便的開發風格,但是它們帶來了新的開發和架構問題。也就是說,我們如何在所有服務中一致地應用網絡策略,如安全性,加密,可觀察性和遙測元素?好吧,服務網格是一個答案。服務網格將 Sidecar 代理放置在每個容器旁邊,并將這些網絡功能抽象到控制平面。Istio 就是這樣一種開源服務網格,已被廣泛采用。Istio 基于 Envoy 構建,將其開放給插件和可擴展性選項。我們還應該提到 Linkerd 和Kuma 是可行的開源服務網格替代方案。
4. GitHub Actions
GitHub 可以說是地球上最流行的源代碼控制和軟件協作平臺?;?Git 的 GitHub 平臺本身在過去幾年中進行了一些重大更新。最值得注意的是 GitHub Actions 功能。GitHub Actions 使托管在 GitHub 上的軟件包能夠接受輸入并觸發其他進程。這可以幫助自動化 GitHub 中一些很酷的 DevOps 工作流程,例如代碼審查,分支管理或 CI / CD 流程-此處可能的組合是無止境的。GitHub Actions 本質上是使用 GitHub Webhooks 托管在 GitHub 存儲庫中的 YAML 文件。盡管這比開放源代碼工具更多的是功能,但我們認為將其包含在其中很重要。對于公共存儲庫,Actions 是免費的,最多只能有 100 個 Actions。
5.Jenkins
DevOps 理念的很大一部分是尋找更有效地自動化和部署新迭代的方法。此目標的一部分是創建簡化的持續集成和持續交付(CI / CD)管道。Jenkins 是一個開放源代碼自動化服務器,帶有數百個插件,可自動完成軟件項目的構建,部署和測試。盡管從理論上講 GitHub Actions 可以在將來替換 CI 服務器,但許多 DevOps 團隊仍喜歡Jenkins,CircleCI,TravisCI 和 GitLab 社區版之類的 CI 工具。
6.Prometheus
度量標準和警報系統對于站點可靠性工程師可視化應用程序并對問題做出反應至關重要。Prometheus 服務器通過抓取 HTTP 端點來收集時間序列指標,并生成與該數據進行交互的系統,從而提供深度查詢,可視化,存儲和其他功能。請查看此 Awesome Prometheus 列表,以了解 Prometheus 的介紹和其他資源。
7. Ansible
Ansible 關于自動化的一切, 可用于自動化諸如云配置,網絡,部署,配置管理和其他任務的工作。Ansible 具有一個簡單而有效的體系結構,相對易于組裝-您只需要一個文本編輯器和命令行即可。
8.Chef
Chef 是另一個用于自動化配置管理的基礎架構代碼(IaC)解決方案。Chef 使用Ruby 來自動化服務器配置,并且與所有主要的云服務提供商(CSP)均能很好地工作。在創建和配置大量計算機時,這可能非常有用。像此列表中的其他自動化工具一樣,用戶以聲明性格式描述其組件和狀態。在 Chef 中,這些被稱為“食譜”,可以將它們組合成“食譜”。您不能因不符合主題而對廚師感到不滿!
9.Terraform
Terraform 是另一個 IaC 工具,可用于使用配置文件啟動構建,版本控制和進一步的自動化。如 GitHub 所述, “ Terraform 是一種用于安全,高效地構建,更改和版本化基礎結構的工具” 。Terraform 遵循用戶使用高級語法創建的“執行計劃”。Terraform 的一個獨特方面是它強調版本控制-這使您可以像對軟件一樣對服務的藍圖進行版本控制。
10. JAMStack
如前所述,JAMStack 結合了 JavaScript,API和markdown 來構造基于 Web 的應用程序。盡管不僅僅是單個開源工具,它更像是一種“無頭開發”方法,但 JAMStack項目通常是使用開源組件構建的。例如,JAMStack 經常利用開源的無頭內容管理系統,例如 Ghost,Strati 和/或 Netlify CMS。
11. ELK Stack
ELK Stack 是由 Elastic 維護的三個開源項目的結合:Elasticsearch,Logstash和Kibana。使用這三個組件,開發人員可以從任何來源獲取和記錄數據,并創建有用的可視化文件。使用 NoSQL 數據庫啟用此集中式日志記錄,以使用 Elasticsearch 進行存儲,使用 Logstash 進行處理和數據收集,以及使用 Kibana 進行可視化。可見性的提高對于數據分析至關重要,并有助于識別錯誤以減少平均恢復時間(MTTR)。