2021 年我们喜欢的 11 种开源 DevOps 工具

DevOps 工具开发人员工具

DevOps 不仅仅是一种文化转变——它需要出色的工具才能实现。下面,我们汇总了一些当今最受欢迎的 DevOps 工具列表。但是,将大量资金投入花哨的 SaaS 解决方案会迅速吞噬云预算。这些 DevOps 工具都是开源的,支持从容器构建和编排到微服务网络、配置管理、CI/CD 自动化、全栈监控等等。以下是我们最喜欢的 2021 年开源 DevOps 工具。

1. Kubernetes

随着微服务和基于容器的软件无处不在,Kubernetes 位居今年开源 DevOps 工具榜首也就不足为奇了。Kubernetes 的采用率在 2020 年增长了 48%,用于编排容器。Kubernetes 可以自动部署、维护和扩展生产中的容器组,而不是手动发布微服务。Kubernetes有时写为 K8s,由云原生计算基金会 ( CNCF )托管。

2.Docker

该软件 Docker 是一个免费的开源平台,用于构建、发布和运行作为轻量级容器的应用程序。容器打包了程序运行所需的二进制文件、库、配置文件和依赖项。过去十年,容器在敏捷开发中发挥了关键作用,Docker 容器引领了这场革命。其核心是Docker 引擎Docker Hub也是查找和共享作为容器的预打包功能的绝佳资源。此外,为了堵住容器漏洞,使用开源容器审计工具(如 Docker Bench 或Anchore )可能会有所帮助。

3. Istio

微服务是一种方便的开发风格,但它们带来了新的开发和架构问题。也就是说,我们如何在所有服务中一致地应用安全、加密、可观察性和遥测元素等网络策略?嗯,服务网格是一个答案。服务网格在每个容器旁边放置一个 sidecar 代理,并将这些网络功能抽象到控制平面。Istio就是一种已被广泛采用的开源服务网格。Istio 建立在 Envoy 之上,向插件和可扩展性选项开放。我们还应该提到LinkerdKuma作为可行的开源服务网格替代方案。

4. GitHub

GitHub 可以说是地球上最受欢迎的源代码控制和软件协作平台。基于 Git 的 GitHub 平台本身在过去几年中发生了一些重大更新。最值得注意的是GitHub Actions 功能。GitHub Actions 使托管在 GitHub 上的软件包能够接受输入并触发其他进程。这可以帮助自动化 GitHub 中一些很酷的 DevOps 工作流程,例如代码审查、分支管理或 CI/CD 流程——这里的可能性组合是无穷无尽的。GitHub Actions 本质上是托管在利用 GitHub webhook 的 GitHub 存储库中的 YAML 文件。尽管这更像是一项功能而不是开源工具,但我们认为将其包含在此处很重要。公共存储库的操作是免费的,操作限制为 100。

5.Jenksin

DevOps 哲学的一个重要部分是寻找更有效地自动化和部署新迭代的方法。此目标的一部分是创建简化的持续集成和持续交付 (CI/CD) 管道。Jenkins是一个开源自动化服务器,带有数百个插件,用于自动化软件项目的构建、部署和测试。虽然 GitHub Actions 理论上可以在未来取代 CI 服务器,但像 Jenkins、CircleCITravisCI 和GitLab 社区版这样的 CI 工具仍然是许多 DevOps 团队的首选。

6.普罗米修斯

指标和警报系统对于站点可靠性工程师可视化应用程序和对问题做出反应至关重要。Prometheus是 CNCF 的一个毕业项目,是一个广受欢迎的开源监控解决方案。Prometheus 服务器通过抓取 HTTP 端点来收集时间序列指标,并生成一个系统来与这些数据进行交互,提供深度查询、可视化、存储和其他功能。查看这个令人敬畏的普罗米修斯列表,了解普罗米修斯的介绍和其他资源。

7. Ansible

Ansible 是关于自动化的。Ansible 是一个由红帽赞助的开源项目,可用于自动化云配置、网络、部署、配置管理和其他任务。Ansible 有一个简单而有效的架构,相对容易组装——你只需要一个文本编辑器和命令行。您在文本文档中描述您的基础设施,并在剧本中组织您想要的状态。有关实践中的示例,请参阅OpenIO如何使用 Ansible。“Ansible 是我们的标准工具,不仅用于部署 OpenIO 核心,而且还是我们的 WebUI、OIO-FS 和所有即将推出的选项,”OpenIO 的操作员 Cédric Delgehier 写道。

8.Chef

Chef 是另一种基础架构即代码 (IaC) 解决方案,用于自动化您的配置管理。Chef 使用 Ruby 来自动化服务器配置,并与所有主要的云服务提供商 (CSP) 配合得很好。这在创建和供应大量机器时非常有用。与此列表中的其他自动化工具一样,用户以声明性格式描述其组件及其状态。在 Chef 中,这些被称为“食谱”,可以组合成“食谱”。你不能因为没有主题而diss Chef!

9.Terraform

Terraform 是另一种 IaC 工具,可用于使用配置文件启动构建、版本控制和进一步自动化。“Terraform 是一种用于安全高效地构建、更改和版本控制基础设施的工具,”正如它在 GitHub 上所描述的那样。Terraform 遵循用户使用高级语法创建的“执行计划”。Terraform 的一个独特方面是它强调版本控制——这使您可以像对软件一样对服务蓝图进行版本控制。

10.果酱栈JamStack

正如我之前提到的JAMStack结合了 JavaScript、API 和Markdown来构建基于 Web 的应用程序。虽然与单个开源工具相比,它更像是一种“无头开发”方法,但 JAMStack 项目通常是使用开源组件构建的。例如,JAMStack 经常利用开源无头内容管理系统,如 Ghost、Strapi 和/或 Netlify CMS。

11. ELK 堆栈

ELK Stack是 Elastic 维护的三个开源项目的联合:Elasticsearch、Logstash 和 Kibana。通过这三个组件,开发人员可以从任何来源获取和记录数据,并创建有用的可视化。这种集中式日志记录通过 NoSQL 数据库启用,用于使用 Elasticsearch 进行存储、使用 Logstash 进行处理和数据收集以及使用 Kibana 进行可视化。提高可见性对于数据分析至关重要,有助于识别错误以减少平均恢复时间 (MTTR)。

完善 2021 年的 DevOps 工具链

编程不仅关乎交付高质量的代码,还关乎高效执行。这种全面改进运营的动力真正将运融入了一切。凭借出色的开源 DevOps 工具,这意味着越来越多的架构师可以在其部署模型中采用 DevOps 方法。

DevOps 作为一种实践,以及它的底层技术,总是在不断发展。2021 年,很多工作都在努力解决引入微服务开发风格的影响。因此,我们注意到容器编排器和服务网格的成熟。蓝图基础设施即代码和创建自动化、可重复的配置是实现自动化构建和发布管道的另一个必备条件。更不用说,许多无代码和低代码平台正在向非程序员开放 DevOps 功能,尽管是从专有角度来看的。

值得注意的是,一些流行的开源 DevOps 工具已经被收购——比如 Docker 和 Chef——模糊了他们的业务和开源根源之间的界限。对于开源工具,采用具有代表不同利益相关者的可靠社区支持的供应商中立工具是一种很好的做法。这将有助于您的项目面向未来。尽管开源是“免费的”,但用户必须确保其收益大于自托管的上线时间和运营开销。

觉得文章有用?

点个广告表达一下你的爱意吧 !😁