2018年最好的几个开源DevOps工具


开发和运营的整合为软件开发带来了新的视角。如果您是DevOps实践的新手,或者希望改进当前流程,那么了解哪种工具最适合您的团队可能是一项挑战。
我们将这个列表放在一起,以帮助您做出明智的决定,确定哪些工具应该是您的堆栈的一部分。那么,让我们来看看几个最好的DevOps工具,从自动构建工具到应用程序性能监控平台

2018年最好的开源DevOps工具

1. Gradle

DevOps工具堆栈需要一个可靠的构建工具。Apache Ant和Maven多年来一直主导着自动化构建工具市场,但Gradle在2009年出现在现场,并且其受欢迎程度自那时起稳步增长。

Gradle是一个非常通用的工具,它允许您使用Java,C ++,Python或其他语言编写代码。Gradle还受到Netbeans,Eclipse和IntelliJ IDEA等流行IDE的支持。如果这不能说服你,那么谷歌也会选择它作为Android Studio 的官方构建工具可能会有所帮助。

虽然Maven和Ant使用XML进行配置,但Gradle引入了基于Groovy的DSL来描述构建。2016年,Gradle团队还发布了基于Kotlin的DSL,现在您也可以在Kotlin中编写构建脚本。这意味着Gradle确实有一些学习曲线,所以如果您以前使用过Groovy,Kotlin或其他JVM语言,它可以提供很多帮助。此外,Gradle使用Maven的存储库格式,因此如果您之前有使用Maven的经验,那么依赖管理将会很熟悉。您还可以将Ant构建导入Gradle。

关于Gradle的最好的事情是增量构建,因为它们节省了大量的编译时间。根据Gradle的性能测量结果,它比Maven快100倍。

这部分是因为增量,但也是由于Gradle的构建缓存守护进程。构建缓存重用任务输出,而Gradle Daemon在构建之间的内存中保持构建信息热。
总而言之,Gradle允许更快的运输,并提供了许多配置可能性。

2.git

Git是最受欢迎的DevOps工具之一,广泛应用于整个软件行业。它是一个分布式SCM(源代码管理)工具,深受远程团队和开源贡献者的喜爱。Git允许您跟踪开发工作的进度。您可以保存源代码的不同版本,并在必要时返回到以前的版本。它也非常适合进行实验,因为您可以创建单独的分支并仅在它们准备就绪时合并新功能。

要将Git与您的DevOps工作流程集成,您还需要托管您的团队成员可以推动其工作的存储库。目前,两个最好的在线Git repo托管服务是GitHubBitbucket。GitHub更为知名,但Bitbucket为小型团队(最多五个团队成员)提供免费无限制的私人回购。使用GitHub,您只能免费访问公共回购 - 这对许多项目来说仍然是一个很好的解决方案。

GitHub和Bitbucket都有很棒的集成。例如,您可以将它们与Slack集成,以便每当有人进行新的提交时,团队中的每个人都会收到通知。

3.Jenkins

Jenkins是许多软件开发团队的首选DevOps自动化工具。它是一个开源CI / CD服务器,允许您自动化交付管道的不同阶段。Jenkins受欢迎的主要原因是其巨大的插件生态系统。目前,它提供了1000多个插件,因此它集成了几乎所有DevOps工具,从Docker到Puppet。

使用Jenkins,您可以根据自己的需要设置和自定义CI / CD管道。我在Jenkins Docs中找到了以下示例。而且,这只是其中一种可能性。不错,不是吗?

开始使用Jenkins非常容易,因为它在Windows,Mac OS X和Linux上都是开箱即用的。您也可以使用Docker轻松安装它。您可以通过Web界面设置和配置Jenkins服务器。如果您是初次使用的用户,可以选择使用一些常用插件进行安装。但是,您也可以创建自己的自定义配置。

使用Jenkins,您可以尽快迭代和部署新代码。它还允许您衡量管道每个步骤的成功。我听说有人抱怨詹金斯的“丑陋”和非直观的用户界面,然而,我仍然能找到我想要的一切而没有任何问题。
竹子


4. Docker

Docker是2018年的头号容器平台。它也被认为是最重要的DevOps工具之一。Docker使集装箱化在科技界广受欢迎,主要是因为它使分布式开发成为可能,并使应用程序的部署自动化。它将应用程序隔离到单独的容器中,因此它们变得便携且更安全。Docker应用程序也独立于操作系统和平台。您可以使用Docker容器而不是VirtualBox等虚拟机。

我最喜欢Docker的是你不必担心依赖管理。您可以将所有依赖项打包在应用程序的容器中,并将整个事物作为独立单元发送。然后,您可以在任何计算机或平台上运行该应用程序,而不必担心。

Docker也与JenkinsBamboo集成。如果将其与其中一个自动化服务器一起使用,则可以进一步改善交付工作流程。此外,Docker也非常适合云计算。近年来,AWS和Google Cloud等所有主要云提供商都加入了对Docker的支持。因此,如果您计划进行云迁移,Docker可以为您简化流程。

5. Kubernetes

今年,每个人都在谈论Kubernetes。它是一个容器编排平台,将集装箱化提升到了一个新的水平。它适用于Docker或其任何替代品。Kubernetes仍然很新; 它的第一个版本于2015年问世。它由几位Google工程师创建,他们希望找到一个大规模管理容器的解决方案。使用Kubernetes,您可以将容器分组为逻辑单元。

如果您只有几个容器,则可能不需要容器编排平台。但是,当您达到一定程度的复杂性并需要扩展资源时,这是下一个合乎逻辑的步骤。Kubernetes允许您自动化管理数百个容器的过程。

使用Kubernetes,您无需将容器化应用程序绑定到一台计算机上。相反,您可以将其部署到计算机群集。Kubernetes自动化整个集群中容器的分发和调度。
Kubernetes集群由一个主节点和几个工作节点组成。主节点实现预定义的规则,并将容器部署到工作节点。Kubernetes关注一切。例如,它注意到工作节点何时关闭并在必要时重新分配容器。

6. Nagios

Nagios是最流行的免费和开源DevOps监控工具之一。它允许您监视基础结构,以便您可以找到并修复问题。使用Nagios,您可以记录事件,中断和故障。您还可以借助Nagios的图表和报告密切关注趋势。这样,您可以预测中断和错误并检测安全威胁。

尽管有许多用于基础架构监控的DevOps工具,但Nagios因其丰富的插件生态系统而脱颖而出。由于Nagios已经存在了一段时间(自2002年以来),它周围有一个庞大的社区。除了插件,他们还可以免费制作附加组件,教程,翻译和其他好东西。

Nagios提供四种开源监控解决方案:

  1. Nagios Core
  2. Nagios XI
  3. Nagios Log Server
  4. Nagios Fusion

Nagios Core是一个命令行工具,具有所有基本功能。您还可以选择附带基于Web的GUI和监视向导的Nagios XI。Nagios写了一个方便的比较他们的能力
Nagios Log Server允许您搜索日志数据并设置有关潜在威胁的警报。而且,Nagios Fusion允许您同时监控多个网络。

总的来说,Nagios为DevOps团队提供了基础架构监控解决方案。但是,设置它并使其与您的环境兼容可能需要一段时间。