[轉帖]2022 年基礎設施自動化和監控的 17 個最佳 DevOps 工具

https://zhuanlan.zhihu.com/p/565207264

 

原文: 

讓我們從基礎設施代碼 (IaC) 和配置管理開始。

Infrastructure as Code / Configuration Management

Infrastructure as code (IaC) 可以幫助我們自動的提供雲基礎架構。

無論是 VM、數據庫、雲網絡、安全等,您都可以創建一個包含所有細節的 JSON 或 YAML 模板,然後將其用作自動創建類似環境的藍圖。

另一方面,配置管理並不以任何基礎設施的供應爲目標。

它管理一個服務器集羣的服務器配置,並確保在服務器集羣中的所有服務器中自動維護服務器配置。

基礎設施即代碼使基礎設施自動化,而配置管理則使服務器的配置自動化。讓我們回顧一些用於 IaC 和配置管理的頂級工具。

1. Terraform

Terraform 是一個獨立於供應商的基礎設施配置工具。它由 Hashicorp 擁有,可用於自動創建任何雲服務,包括網絡,服務,防火牆,數據庫等。

Terraform 之所以如此受歡迎,是因爲它不與任何特定的雲供應商綁定,因此您可以輕鬆地從一個雲移動到另一個雲。

其次是開源的,有很大的社區支持,terrform 代碼是用它自己的領域特定語言 (稱爲 HCL) 編寫的,這意味着它有一個輕微的學習曲線。

2. Pulumi

Pulumi 也是一個和 terraform 相似的 IaC 工具。 你可以使用 Pulumi 來提供幾乎所有的雲服務。

在測試和構建腳本方面,Pulumi 比 Terraform 具有優勢。

與 terrraform 不同的是,Pulumi 允許您使用任何現代編程語言 (如 python、java、golang、typescript 等) 編寫代碼。

這爲調試和測試提供了更好的支持,但是,Pulumi 的社區支持與 terrform 相比還是遠遠不夠的。

想要知道接下來如何選擇 Terraform 和 Pulumi,可以詳細閱讀該文章:

3. Ansible

Ansible 是一個功能強大的配置管理工具,用於自動化版本化的軟件組件安裝、操作系統配置任務、網絡和防火牆配置等。

例如,如果您有用於登臺和生產的獨立服務器集,那麼 ansible 可以幫助您編寫腳本,這些腳本可用於自動化和管理這些服務器集的服務器配置。

Ansible 腳本是用 Yaml 編寫的。

Continuous Integration

持續集成是頻繁組合和合並不同開發人員代碼的實踐,以便儘可能頻繁地測試應用程序構建。一旦您提交了代碼,構建過程就會運行並創建用於測試的構建。以下是一些用於持續集成的最佳工具:

4. CircleCI

CircleCI 是一個 CI/CD 平臺,可幫助您構建和運行構建管道。

通過 CircleCi,您可以在每個提交中自動化應用程序的構建和測試。

它具有現代且非常友好的界面。它支持許多複雜的構建管道。它具有免費的和付費版本。

5. Github Actions

儘管許多公司已經使用 GitHub 進行代碼託管,但他們正在尋找現有的代碼存儲庫來支持其自己的集成 CI/CD 工作流。

Github Actions 是一個強大的功能,可以讓您在不同的平臺上構建、測試和部署您的應用程序。

如果您已經使用 Github 作爲您的源代碼庫,那麼您持續集成的首選將是 Github actions。

6. Gitlab CI

Gitlab CI 也是一個比較強大的持續集成工具。

和 Github Actions 一樣,它使用 YAML 文件並支持 docker。

Gitlab 的 DevOps 特性可以幫助用戶完成不同的任務,包括構建和測試應用程序、檢測代碼語言、部署應用程序以及掃描漏洞。

Deployment tools

執行代碼的連續集成後,下一步是連續部署和交付。讓我們回顧一些連續交付 / 部署的最佳工具,這些工具不僅要照顧部署自動化,還要照顧基礎架構自動化。

7. Harness

Harness 是一個現代軟件交付平臺。

在對代碼進行持續集成並準備好構建之後,Harness 將把構建工件從構建階段帶到生產階段。

它以 SaaS 的形式運行,支持 GitOps 風格的開發,與 Git 存儲庫掛鉤,並具有祕密管理功能。

它與 Kubernetes 有很好的集成。Harness 會提供製品和 Kubernetes manifests 文件,並將它們部署到所需的 Kubernetes 集羣。

8. CodeFresh

CodeFresh 是一個 All-in-One 的解決方案,從頭到尾都實現了整個代碼管道。

從創建提交直到部署到生產的那一刻起,它就會處理 DevOps 的所有方面。

它具有一組強大的插件,其中包括 Helm 和許多其他流行的 CI/CD 工具,例如 Jenkins。

它具有對 Kubernetes 羣集的本地支持,不僅用於部署應用程序,而且還用於在 Kubernetes 上運行管道。

9. Helm

Helm 是一個 Kubernetes 部署管理器,用於自動化應用程序的創建、打包、配置和部署到 Kubernetes 集羣。

管理 Kubernetes YAML 清單文件,即使是簡單的部署,也是非常耗時和容易出錯的,Helm 通過創建一個可以部署到您的 Kubernetes 集羣的包來簡化工作。

10. Kubernetes

Kubernetes 大規模雲原生應用程序的自動化部署和操作系統。它是市場上最好的開源容器編排工具。Kubernetes 自動化跨不同基礎設施環境的容器部署,並確保所有資源都得到有效利用。

Environment-as-Service

Environment as service (EaaS) 是一個新興的類別,被許多 DevOps 團隊所採用。

通過 EaaS,您可以快速部署並方便地按需部署預配置環境。按需環境是 EaaS 的核心。

按需環境是一個完整的部署環境,可以通過 EaaS 自動提供。環境的自動供應可以幫助您更快地推銷您的產品,提高團隊成員之間的相互協作,並通過快速發佈週期將您的產品提升到下一個層次。

11. Qovery

Qovery 建立了一個現代化的平臺,只需幾秒鐘就可以在 AWS 上部署按需環境。

通過 Clone 環境特性,您可以非常簡單地創建 Staging、UAT、Production 或任何其他環境的按需副本。

另一個致命的特性是預覽環境,您可以在每個拉請求中自動獲得生產環境 (包括應用程序、數據庫和配置) 的副本,因此您可以在不影響生產的情況下自信地測試更改。

Config/Secret Management

保護您的配置是安全 SDLC 的一個關鍵方面。以下是一些用於以安全形式保存環境變量和配置的頂級工具。

12. Doppler

Doppler 是開發人員和安全團隊使用的多雲的 SecretOps 平臺,以安全的方式管理其應用程序祕密。

它爲密鑰和應用程序配置提供了一個可信任的中心源,它支持 Docker,無服務器和所有云供應商。如果您的應用程序具有通過微服務,CI/CD 和多雲部署平臺組織的祕密,則是開發人員的首選。

13. Vault

Vault 是由 Hashicorp 開發的 密鑰管理工具,和 Terraform 歸屬於一家公司。

它具有廣泛的集成列表,主要關注身份驗證和祕密存儲。它是基於鍵值的安全存儲,您可以保護對令牌,密碼,證書,加密密鑰等的訪問。

Infrastructure Monitoring

下面是一些用於觀測雲基礎設施的頂級工具:

14. Grafana

Grafana 是可觀察性和數據可視化的開源平臺。

它使您可以通過在線可用的用戶友好儀表板查看雲服務,基礎架構和網絡,並且可以在所有設備上訪問。

15. Datadog

Datadog 一個專爲 DevOps 團隊提供的基於 SaaS 的分析和監控工具。

使用 datdog,團隊可以確定基於雲的基礎設施的性能指標和事件監控,和 Grafana 一樣,datdog 也支持 Kubernetes 監控。

16. Newrelic

Newrelic 也是一個 SaaS 工具,用於監視應用程序和基礎設施的性能和可用性。

Newrelic 還提供應用程序的實時監控。

如果您希望對基於雲的應用程序進行詳細的性能監視,那麼它是理想的選擇。

17. Prometheus

Prometheus 是一個雲原生監控工具和系統。

它用於事件監視和警報。

它是開源的,對 Kubernetes 監視有很強的支持。

它是監視基礎設施和應用程序的最簡單、最簡單的工具之一。

結論

基礎架構自動化是每個 DevOps 團隊成功的關鍵。選擇最適合您需求的基礎架構自動化和監視工具並不容易。成本,技能,功能,UI/UX 等許多因素在爲您的業務選擇合適的工具方面起着決定性的作用。最好的選擇是不使用一種工具。相反,使用適合您需求的工具組合。

而作者所在的團隊正是 EaaS 廠商 Qovery ,而他們在整個 DevOps 的環節中也使用瞭如下的工具:

  • IaC: Terraform
  • CI/CD: GitHub Actions, Gitlab CI
  • Deployment tools: Helm, Kubernetes
  • Environment as a Service: Qovery
  • Secret Management: Vault, AWS KMS
  • Observability & Monitoring: Datadog, Grafana (including Loki & Promtail), Prometheus (including Alertmanager)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章