让我们从基础设施代码(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,可以详细阅读该文章:

https://www.qovery.com/blog/terraform-vs-pulumi-what-to-use-in-2022

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)

原文: https://medium.com/@rphilogene/17-best-devops-tools-to-use-in-2022-for-infrastructure-automation-and-monitoring-b3470cf9e00f
公众号:CloudNativeOps
翻译:GoOps