2021年最受欢迎的10款开源DevOps工具

141 阅读3分钟

 程序员宝藏库:github.com/Jackpopc/CS…

DevOps不仅仅是一种工作方式的转变--它需要强大的工具来实现。

下面,我们列出了一些当今最受欢迎的DevOps工具的清单。

考虑到把大量的钱投入到花哨的SaaS解决方案中会很快吞噬掉云的预算,因为,今天介绍的这些DevOps工具都是开源的,可以实现从容器构建和协调到微服务网络、配置管理、CI/CD自动化、全栈监控等一切。

以下就是我认为在2021年必须了解的一些开源DevOps工具。

1. Kubernetes

img

随着微服务和基于容器的软件无处不在,Kubernetes在开源DevOps工具列表中名列前茅并不奇怪。

Kubernetes的采用率在2020年上升了48%,它被用来协调和编排容器。

Kubernetes可以自动部署、维护和扩展生产中的容器群,而不需要手动发布微服务。

Kubernetes经常被写成K8s,由CNCF支持。

2. Docker

img

Docker这个软件是一个用于构建、行一个轻量级的容器的应用程序。

容器能够将程序运行所需的二进制文件、库、配置文件和依赖关系打包,在过去十年中,容器在敏捷开发中发挥了关键作用,而Docker容器引领了这场革命。

其核心是Docker引擎。

Docker Hub也是寻找和分享作为容器的预包装功能的一个优秀资源。另外,为了解决容器漏洞,使用Docker Bench或Anchore等开源容器审计工具会行之有效。

3. Istio

img

微服务是一种方便的开发方式,然而它们带来了新的开发和架构问题。

也就是说,我们如何在所有的服务中一致地应用安全、加密、可观察的等网络策略?

那么,服务网格(service mesh)就是一个答案。服务网格在每个容器旁边放置一个sidecar proxy,并将这些网络功能抽象到控制平面上。

Istio就是这样一个已经被广泛采用的开源服务网格。Istio建立在Envoy之上,向插件和可扩展性选项开放。

4. GitHub Actions

img

GitHub可以说是全球最流行的源码控制和软件协作平台。

基于Git的GitHub平台本身在过去几年里也有一些重大的更新,其中,最值得注意的就是GitHub Actions功能。

GitHub Actions使托管在GitHub上的软件包能够接受输入并触发其他进程,这有助于在GitHub中实现一些很酷的开发工作流程的自动化,如代码审查、分支管理或CI/CD流程。

从本质上讲,GitHub Actions是托管在GitHub仓库中的YAML文件,它利用了GitHub webhooks

Actions对公共存储库是免费的,但有100个动作的限制。

5. Jenkins

img

DevOps理念的一个重要部分是找到更有效地自动化和部署新迭代的方法。

这个目标的一部分是创建一个简化的持续集成和持续交付(CI/CD)流水线。

Jenkins是一个开源的自动化服务器,拥有数百个插件,可以实现软件项目的自动构建、部署和测试。

虽然GitHub Actions理论上可以在未来取代CI服务器,但像Jenkins、CircleCI、TravisCI和GitLab社区版这样的CI工具仍然是许多DevOps团队的首选。

6. Prometheus

img

指标和告警系统对于网站可靠性工程师可视化应用和对问题做出反应至关重要。

普罗米修斯,一个已经成熟的CNCF项目,是一个广受喜爱的开源监控解决方案。

普罗米修斯服务器通过收集HTTP端点来收集时间序列指标,并生成一个与这些数据交互的系统,提供深度查询、可视化、存储和其他功能。

7. Ansible

img

Ansible是关于自动化的工具。

Ansible是红帽公司赞助的一个开源项目,可以用来实现云配置、网络、部署、配置管理和其他任务的自动化。

Ansible有一个简单而有效的架构,因此,比较容易配置,你只需要一个文本编辑器和命令行即可。

8. Chef

Chef是另一个基础设施即代码(IaC)解决方案,用于自动化配置管理。

Chef使用Ruby来自动配置服务器,并且与所有主要的云服务提供商(CSP)合作良好。

在创建和配置大量的机器时,这可能非常有用。

像本文介绍的其他自动化工具一样,用户以声明的格式描述他们的组件和它们的状态即可。

9. Terraform

img

Terraform是另一个IaC工具,可用于启动构建、版本管理和使用配置文件的进一步自动化。

"Terraform是一个安全、高效地构建、改变和版本化基础设施的工具,"GitHub上这样描述它。

Terraform遵循用户用高级语法创建的 "执行计划"。

Terraform的一个独特之处在于它对版本的重视--这使得你可以像对软件一样对服务蓝图进行版本管理。

10. ELK Stack

img

ELK Stack是由Elastic维护的三个开源项目Elasticsearch、Logstash和Kibana组合而成。

有了这三个组件,开发人员可以从任何来源接收和记录数据,并创建有用的可视化。

这种集中的日志记录是通过NoSQL数据库实现的,用Elasticsearch进行存储,用Logstash进行处理和数据收集,用Kibana进行可视化。

增加可见性对数据分析至关重要,有助于识别错误以减少平均恢复时间(MTTR)。

结语

编程不仅仅是输出高质量的代码,它还涉及高效的执行,这种全面改善运营的驱动力是真正地将Ops纳入一切。

有了令人欣赏的开源DevOps工具,这意味着越来越多的架构师可以在他们的部署模式中采用DevOps方法。