讓我們從基礎架構即代碼 (IaC) 和配置管理開始:
基礎設施即代碼/配置管理
基礎架構即代碼 (IaC) 允許您自動配置云基礎架構。無論是虛擬機、數據庫、云網絡、安全等,您都可以創建一個包含所有細節的 JSON 或 YAML 模板,然后將其用作自動創建類似環境的藍圖。另一方面,配置管理不針對任何基礎設施的供應。它管理服務器集群的服務器配置,并確保服務器配置在服務器集群中的所有服務器中自動維護。基礎設施即代碼使基礎設施自動化,而配置管理使服務器的配置自動化。讓我們回顧一下 IaC 和配置管理的一些頂級工具。
1.Terraform
Terraform是一個獨立于供應商的基礎設施供應工具。它歸 Hashicorp 所有。它可用于自動創建任何云服務,包括網絡、服務、防火墻、數據庫等。Terraform 如此受歡迎是因為它不依賴于任何特定的云供應商,因此您可以輕松地從一個云遷移到其他。它是開源的,并擁有強大的社區支持。Terraform 代碼是用自己的稱為 HCL 的特定領域語言編寫的,這意味著它有一點學習曲線。
2. Pulumi
Pulumi也是一個類似于 terraform 的 IaC 工具。您可以使用 Pulumi 配置幾乎所有云服務。Pulumi 在測試和構建腳本方面比 Terraform 有優勢。與 Terraform 不同,Pulumi 允許您使用任何現代編程語言(如 python、java、typescript 等)編寫其代碼。這為您提供了更好的調試和測試支持。但是,與 terraform 相比,社區對 Pulumi 的支持很小。
3. Ansible
Ansible是一個強大的配置管理工具,用于自動化版本化軟件組件安裝、操作系統配置任務、網絡和防火墻配置等。例如,如果您有單獨的服務器集用于暫存和生產,那么 ansible 可以幫助您編寫腳本可用于自動化和管理這些集合中的每一個的服務器配置。Ansible 腳本是用 Yaml 編寫的。
持續集成
持續集成是頻繁組合和合并不同開發人員代碼的做法,以便可以盡可能頻繁地測試應用程序構建。一旦您提交代碼,構建過程就會運行并創建用于測試的構建。一些用于持續集成的最佳工具如下:
4.CircleCI
CircleCI是一個 CI/CD 平臺,可幫助您構建和運行構建管道。通過 CircleCI,您可以在每次提交時自動構建和測試您的應用程序。它具有現代且非常用戶友好的界面。它支持許多復雜的構建管道。它提供免費和付費版本。
5. Github Actions
雖然許多公司已經在使用 Github 進行代碼托管,但他們正在尋找現有的代碼存儲庫來支持其自己的集成 CI/CD 工作流。Github Actions是一項強大的功能,可讓您跨不同平臺構建、測試和部署應用程序。如果您已經使用 Github 作為源代碼存儲庫,那么持續集成的首選將是 Github Action。
6. Gitlab CI
Gitlab CI也是一個強大的持續集成工具。與 Github 操作一樣,它使用 YAML 文件并支持 docker。Gitlab 的自動 DevOps 功能可以幫助用戶完成不同的任務,包括構建和測試應用程序、檢測代碼語言、部署應用程序以及掃描漏洞。
部署工具
代碼的持續集成完成后,接下來就是持續部署和交付。讓我們回顧一些用于持續交付/部署的最佳工具,它們不僅負責部署自動化,還負責基礎設施自動化。
7. Harness
Harness是一個現代軟件交付平臺。在您的代碼完成持續集成并準備好構建后,Harness 會將構建工件從“構建”階段帶到“生產”階段。它作為 SaaS 運行,支持 GitOps 開發風格,掛鉤到您的 Git 存儲庫,并且還具有秘密管理功能。它與 Kubernetes 有很好的集成。Harness 獲取工件,您提供的 Kubernetes 清單并將它們部署到所需的 Kubernetes 集群。
8. CodeFresh
Codefresh是一個一體化的解決方案,它從頭到尾實現了整個代碼管道。它處理 DevOps 的所有方面,從創建提交到部署到生產的那一刻。它有一套強大的插件,包括 Helm 和許多其他流行的 CI/CD 工具,如 Jenkins。它對 Kubernetes 集群具有原生支持,不僅用于部署應用程序,還用于在 Kubernetes 上運行管道。
9. Helm
Helm是一個 Kubernetes 部署管理器,用于自動化您的應用程序的創建、打包、配置和部署到Kubernetes 集群。管理 Kubernetes YAML 清單文件,即使是簡單的部署,也可能非常耗時且容易出錯。Helm 通過創建可以部署到 Kubernetes 集群的單個包讓生活更輕松。
10. Kubernetes
Kubernetes可大規模自動化云原生應用程序的部署和操作。它是市場上最好的開源容器編排工具。Kubernetes 可以在不同的基礎設施環境中自動部署容器,并確保所有資源都得到有效利用。
環境即服務
環境即服務(EaaS) 是一個新興類別,并被許多 DevOps 團隊采用。通過 EaaS,您可以輕松按需快速部署和促進預配置環境。按需環境是 EaaS 的核心。按需環境是可以通過 EaaS 自動配置的完整部署環境。環境的自動配置可以幫助您更快地推銷您的產品,改善團隊成員之間的相互協作,并通過快速的發布周期將您的產品提升到一個新的水平。
11. Qovery
Qovery構建了一個現代平臺,只需幾秒鐘即可在 AWS 上部署按需環境。通過“克隆”環境功能,您可以非常簡單地創建臨時、UAT、生產或任何其他環境的按需副本。另一個殺手級功能是Preview Environments,您可以在每個拉取請求上自動獲取生產環境(包括應用程序、數據庫和配置)的副本,這樣您就可以自信地測試您的更改而不會影響您的生產。
配置/秘密管理
保護您的配置是安全 SDLC 的一個重要方面。以下是一些以安全形式保存環境變量和配置的頂級工具。
12. 多普勒
Doppler是一個多云 SecretOps 平臺,開發人員和安全團隊使用它以安全的方式管理他們的應用程序機密。它是秘密和應用程序配置的核心信息來源。它支持 docker、serverless 和所有云供應商。如果您的應用程序有秘密需要通過微服務、CI/CD 和多云部署平臺進行組織,那么它是開發人員的首選。
13.Vault
Vault是 Hashicorp 的秘密經理,Hashicorp 是 Terraform 背后的同一家公司。它有一個廣泛的集成列表,主要集中在身份驗證和秘密存儲上。它是基于鍵值的安全存儲,您可以保護對令牌、密碼、證書、加密密鑰等的訪問。
基礎設施監控
在下面查找一些用于密切關注您的云基礎架構的頂級工具:
14.Grafana
Grafana是一個用于可觀察性和數據可視化的開源平臺。它允許您通過一個用戶友好的儀表板查看您的云服務、基礎設施和網絡,該儀表板可在線訪問,并可在所有設備上訪問。
15. 數據狗
Datadog是面向 DevOps 團隊的基于 SaaS 的專有分析和監控工具。使用 Datadog,團隊可以確定基于云的基礎架構的性能指標和事件監控。與 Grafana 一樣,Datadog 也支持 Kubernetes 監控。
16. Newrelic
Newrelic也是一種 SaaS 工具,用于監控應用程序和基礎架構的性能和可用性。Newrelic 還提供對您的應用程序的實時監控。如果您想要對基于云的應用程序進行詳細的性能監控,它是理想的選擇。
17.普羅米修斯
Prometheus是用于云原生環境的監控工具。它用于事件監視和警報。它是開源的,對 Kubernetes 監控有強大的支持。它是用于監控基礎架構和應用程序的最簡單、最簡單的工具之一。
結論
基礎設施自動化是每個 DevOps 團隊成功的關鍵。選擇最適合您需求的基礎設施自動化和監控工具并不容易。成本、技能、功能、UI/UX 等許多因素在為您的業務選擇合適的工具方面起著決定性的作用。最好的選擇不是只使用一種工具。相反,請使用適合您需求的工具組合。
在Qovery,我們還使用許多工具作為 DevOps 套件的一部分。其中包括:
- 基礎設施即代碼:Terraform
- CI/CD:GitHub Actions、Gitlab CI
- 部署工具:Helm、Kubernetes
- 環境即服務:Qovery
- 密碼安全管理:vault、AWS KMS
- 可觀察性和監控:Datadog、Grafana(包括Loki和Promtail)、Prometheus(包括Alertmanager)
E安全
安全圈
CNCERT國家工程研究中心
安全內參
一顆小胡椒
GoUpSec
D1Net
一顆小胡椒
虹科網絡安全
綠盟科技研究通訊
CNCERT國家工程研究中心
中國信息安全