十大最佳DevOps工具(转载)

【编者的话】DevOps落地重要的一方面是选好工具集,本文介绍了最流行的DevOps工具。

开发和运维的集成翻开了软件开发的全新篇章。如果你还是DevOps的新手,或者正在寻求改进已有流程的方法,那么第一道关卡就是调研哪些工具最适合你的团队。

本文整理了工具列表,为大家选择所需的工具提供详实的参考信息。让我们一起看看从自动化build工具到应用程序性能监控平台领域里,十大最佳DevOps工具是哪些吧。

1. Gradle

DevOps工具集需要一种可靠的build工具。Apache Ant和Maven统治着自动化build工具市场很多年,但是Gradle在2009年现身,从那时起它就迈着稳定增长的步伐越来越流行。Gradle的功能很强大,允许用户用Java,C++,Python或者其他语言编程。各种流行的IDE,比如Netbeans,Eclipse以及Intellij IDEA也都支持Gradle。如果这还无法说服你使用它,那么还有一点可能有所帮助,Google也选择它作为Andriod Studio的正式build工具。

Maven和Ant使用XML配置,Gradle则引入了一种基于Groovy的DSL来描述build。在2016年,Gradle团队还发布了一种基于Kotlin的DSL,因此用户现在也可以用Kotlin来编写build的脚本。这意味着Gradle的学习需要一定的时间,如果你以前用过Groovy,Kotlin或其他JVM语言的话,那么会有助于Gradle的快速掌握。除此之外,Gradle使用Maven的repository格式,因此如果使用过Maven的话对Gradle的依赖管理也会比较熟悉。还可以将Ant build导入进Gradle。

Gradle最好的设计是增量build,因此可以节省大量的编译时间。根据Gradle的性能报告,它比Maven快100倍。这样的性能优势一部分来源于这种增量设计,另外也得益于Gradle的build缓存和daemon。build缓存重用task的输出,而Gradle的Daemon将build的信息储存在内存里,可以在多个build间共享。

总的来说,Gradle让快速交付成为可能,也让配置更加灵活。

2. Git

Git是最流行的DevOps工具之一,在软件界使用广泛。它是一种分布式SCM(源码管理)工具,远程团队和开源贡献者都很喜欢它。Git让用户可以跟踪自己开发工作的进度。用户可以保存自己源码的不同版本,并且在需要的时候切回之前的版本。它也很适合做实验,因为可以创建单独的分支,在需要的时候仅仅merge新特性。

要将Git和DevOps工作流集成起来,还需要维护repository,团队成员可以向其中push各自的工作。目前,两大最佳在线的Git repo托管服务是GitHub和Bitbucket。GitHub更有名气,但是Bitbucket给小团队(不超过五个成员)提供免费不受限的私有repo。使用GitHub,用户仅仅可以免费访问公有的repo——当然这对于很多项目来说仍然是很好的解决方案。

GitHub和Bitbucket都有很好的集成。比如,用户可以将它们和Slack集成,这样团队的每个人都能在有任意commit时收到通知。

3. Jenkins

Jenkins是很多软件开发团队在走向DevOps时会用的自动化工具。它是开源的CI/CD服务器,帮助用户自动化交付流水线的不同阶段。Jenkins之所以流行的主要原因是其巨大的插件生态系统。目前,它提供1000多个插件,因此它可以和几乎所有DevOps工具(从Docker到Puppet)集成。

使用Jenkins,用户可以搭建并且根据实际需要自定义自己的CI/CD流水线。Jenkins文档里介绍了如下示例。这仅仅是一种可能的实现。看着很不错,不是吗?

使用Jenkins很容易,它在Windows,Mac OS X和Linux上开箱即用。很容易就可以使用Docker安装它。用户可以通过浏览器搭建并且配置Jenkins服务器。如果你是第一次使用它,可以选择安装最常用的插件。当然也可以创建自定义配置。

使用Jenkins,用户可以尽快迭代并部署新代码。它还帮助用户度量流水线里每一步是否成功。我听到有人抱怨Jenkins很“丑陋”且并不直观的UI。但是,我仍旧可以很容易地找到需要的所有东西。

4. Bamboo

Bamboo是Atlassian的CI/CD服务器解决方案,很多特性和Jenkins类似。它们都是流行的DevOps工具,帮助用户自动化发布流水线,从build到部署。但是,Jenkins是开源的,Bamboo是收费的。因此,这里永恒的问题是,有免费软件时有必要选择收费软件吗?这取决于你的经费和目标。

Bamboo有很多预构建的功能,而这些功能在Jenkins里得自己手动搭建。这也正是Bamboo的插件更少的原因(大概100个,Jenkins有1000+个)。实际上,你并不需要Bamboo的很多插件,因为它带着很多开箱可用的功能。

Bamboo和其他Atlassian产品,比如Jira和Bitbucket无缝集成。用户还可以访问内建的Git和Mercurial分支工作流及测试环境。总之,Bamboo可以节省很多配置的时间。它的UI也更为直观,有提示,自动补全和其他有用的特性。

5. Docker

Docker在2013年发布之后已经成为了首屈一指的容器平台,并且仍然在持续改进。它是最重要的DevOps工具之一。Docker在科技界掀起了容器化的潮流,主要是因为它让分布式开发成为可能,并且自动化了应用程序的部署。它将应用程序隔离成单独的容器,因此应用变得更加便携也更为安全。Docker应用程序也独立于OS以及平台。用户可以使用Docker容器代替虚拟机,比如VirtualBox。

我最喜欢Docker的一点是用户无需担心依赖管理。可以将所有依赖打包进应用程序的容器,并将所有的东西当做独立的单元交付。然后,用户可以很轻松地在任意机器或者平台上运行这个应用程序。

Docker也和Jenkins以及Bamboo集成。如果你将自动化服务器和Docker搭配使用,可以进一步改进交付工作流。另外,Docker也很适用于云计算。最近几年,所有主流的云供应商,比如AWS,Google Cloud,都已经支持Docker。因此,如果你计划云迁移,那么Docker可以帮助简化这一进程。

6. Kubernetes

今年,每个人都在谈论Kubernetes。它是容器编排平台,将容器化推进到下一个层面。它可以使用Docker或者其他替代产品。Kubernetes仍然很新;2015年才推出第一个版本。它由一些Google的工程师创建,他们想找到管理大规模容器的方案。使用Kubernetes,用户可以将容器组织成逻辑单元。

如果你只有几个容器,那么可能并不需要容器编排平台。但是,当系统达到一定级别的复杂度,需要扩展资源的时候,这就是合理的下一步。Kubernetes让用户可以自动化管理上百个容器的过程。

使用Kubernetes,无需将容器化的应用程序绑定到某个单独的机器里。相反,你可以将它部署到一个机器集群里,Kubernetes会自动化分发并在整个集群里调度容器。

一个Kubernetes集群包含一个master和几个worker节点。master节点实现预定义的规则,并且将容器部署到worker节点上。Kubernetes负责所有一切。比如,它注意到某个worker节点下线了,就会将其上的容器重新分发到别的节点上。

7. Puppet企业版

Puppet Enterprise是一个跨平台的配置管理平台。它让用户可以将基础架构当做代码来管理。因为它自动化了基础架构管理,用户可以更快更安全地交付软件。Puppet还给开发人员提供了小型项目可以使用的开源工具。但是,如果你负责的是较大的基础架构,就会发现Puppet Enterprise的额外特性是有价值的,比如:

  • 实时报告
  • 基于角色的访问控制
  • 节点管理

使用Puppet Enterprise,你可以管理多个团队和数千资源。它能自动理解基础架构里的关系。它处理依赖关系并且智能地处理故障。当遇到一次失败的配置时,它也会跳过所有依赖的配置。Puppet最好的一点是它有5000多个模块,可以和很多流行的DevOps工具集成。

8. Ansible

Ansible是一个配置管理工具,和Puppet,Chef类似。用户可以用它配置自己的基础架构并且自动化部署。和其他类似的DevOps工具相比,它的主要卖点是简洁易用。Ansible遵循和Puppet一样的基础架构即代码(IAC)的理念。但是,它使用超级简单的YAML语法。使用Ansible,用户可以在YAML里定义任务,而Puppet则有自己的声明式语言。

无代理的架构是另一个经常被提及的Ansible的特性。因为后台没有运行daemon或者代理,Ansible是安全并且轻量级的配置管理自动化的解决方案。和Puppet类似,Ansible也有一些模块。

如果想要更好地理解Ansible在DevOps工作流里是怎么工作的,可以查看Red Hat Blod里的这篇博文。它介绍了在Jenkins流水线里,如何使用Ansible来预配环境以及部署应用。

9. Nagios

Nagios是最流行的免费并开源的DevOps监控工具。它可以监控基础架构从而帮助用户发现并解决问题。使用Nagios,用户可以记录事件,运行中断以及故障。用户还可以通过Nagios的图表和报告监控趋势。这样,可以预测运行中断和错误,并且发现安全攻击。

虽然基础架构监控里有很多DevOps工具,但是Nagios因为其丰富的插件生态而脱颖而出。因为Nagios已经发布很多年了(2002年发布),围绕它的社区很大。除了插件,社区还贡献了add-on,指导文章,翻译等等有用的东西——都是免费的。

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

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

Nagios Core是一个命令行工具,提供了所有基本功能。用户还可以选择Nagios XI,它提供了基于网页的GUI以及监控向导程序。Nagios提供了功能的比对。

Nagios Log Server让用户可以搜索日志数据,并且配置可能攻击的报警。Nagios Fusion可以同时监控多个网络。

整体来说,Nagios给DevOps团队提供了基础架构监控解决方案。但是,它需要一定的时间搭建,并且需要考虑和你的环境的兼容性。

10. Raygun

Raygun是领先的错误监控以及崩溃报告的平台。应用程序性能监控(APM)是其最近的项目。Raygun的DevOps工具帮助用户分析性能问题,并且定位到代码的某一行,某个function或者API调用。APM工具和Raygun的错误管理工作流可以协同工作。比如,它自动定位最高优先级的问题,并创建issue。

Raygun APM能够帮助最大化其他DevOps的价值,因为你总是能收到问题通知。因为它自动将错误链接到源码里,Raygun给整个团队提供统一的真理来源来定位错误和性能问题,将开发和运维紧密联系在一起。

哪些DevOps工具适合你的团队?

找到最佳的DevOps工具需要一些测试和经验。搭建以及配置开源软件通常需要更多时间。大多数商业DevOps工具都有免费试用版本,用户可以测试并且评估。最终选择哪些工具取决于团队的需求和目标。

原文链接:The 10 best DevOps tools for 2019(翻译:崔婧雯)
===========================
译者介绍
崔婧雯,现就职于IBM,高级软件工程师,负责IBM WebSphere业务流程管理软件的系统测试工作。曾就职于VMware从事桌面虚拟化产品的质量保证工作。对虚拟化,中间件技术,业务流程管理有浓厚的兴趣。

十大最佳DevOps工具相关推荐

  1. 华为云龙api自动化工具_2020年十大最佳自动化测试工具

    Best Automation Testing Tools for 2020 对更快交付高质量软件(或"快速质量")的需求要求组织以敏捷,持续集成(CI)和DevOps方法论来寻找 ...

  2. 十大最佳自动化测试工具

    对更快交付高质量软件(或"快速质量")的需求要求组织以敏捷,持续集成(CI)和DevOps方法论来寻找解决方案.测试自动化是这些方面的重要组成部分.最新的< 2018-201 ...

  3. uft自动化测试工具安装步骤_2020年十大最佳自动化测试工具

    Best Automation Testing Tools for 2020 对更快交付高质量软件(或"快速质量")的需求要求组织以敏捷,持续集成(CI)和DevOps方法论来寻找 ...

  4. 2020年十大最佳自动化测试工具

    Best Automation Testing Tools for 2020 对更快交付高质量软件(或"快速质量")的需求要求组织以敏捷,持续集成(CI)和DevOps方法论来寻找 ...

  5. 2022 年十大最佳网络分析工具介绍

    1. Google Analytics- 将数据洞察转化为行动 Google Analytics(谷歌分析)是世界上最强大的网络分析平台,大约有 3000 万个网站在积极使用.谷歌分析之所以成为迄今为 ...

  6. 2022 年全球10大最佳自动化测试工具

    2022 年全球10大最佳自动化测试工具 1. LambdaTest 2. TestComplete 3. QMetry Automation Studio 4.TestProject 5.Katal ...

  7. 收藏!2022中小企业最佳DevOps工具

    中小企业最佳DevOps工具 文章目录 中小企业最佳DevOps工具 最佳DevOps工具一览 EKS(腾讯云)容器编排集群 Harbor镜像仓库 Rancher可视化管理K8S集群 Kubesphe ...

  8. php 编辑器格式输出_高效PHP开发人员的十大PHP开发工具

    图说:怎样选择最好的PHP开发工具 PHP是用于构建网站与Web应用程序最快,并且使用最广泛的服务器端脚本语言. 有几个很好的理由可以说明开发人员更喜欢PHP或一些其他的脚本语言,例如Python和R ...

  9. 十大最佳Python书籍[2021年更新]

    随着软件热潮中就业机会的增加,对python开发人员的需求很大.可以通读概念并实践逻辑方法解决方案,从而掌握Python编程技能. Python编码书籍使您可以通过新颖的构思来制作有趣而有趣的项目.它 ...

最新文章

  1. NIO中那些奇怪的Buffer
  2. C++ 指针运算符( 和 *) 终于讲明白了
  3. 计算机二级7月考试,2020年计算机二级MS Office考试每日一练(7月27日)
  4. oracle delete 空间增加,实战经验:关于Oracle Delete数据后空间重用问题的测试
  5. 利用jQuery实现的Ajax 验证用户名是否存在
  6. 小程序 php cookie,微信小程序使用Cookie
  7. mysql忘记密码怎末版_mysql忘记密码怎么办
  8. java代理机制简单实现
  9. 特斯拉入驻天猫卖车了 将连做8天直播
  10. linuxcentos防ssh爆破
  11. myfunc matlab,为matlab匿名函数设置’help’
  12. DeepDream网络
  13. yota3无第三方recovery root方法
  14. cmake 下载和安装
  15. 51单片机蓝牙遥控风扇期末设计报告
  16. 未来15年,还有一波“增量”机会
  17. Java OpenCV 裁剪图片
  18. shopnc nodejs安装
  19. 利用canvas画一个钟表
  20. 设计模式----策略模式

热门文章

  1. Elasticsearch(二):理解index, Document, Field
  2. .NET 20个面试要点
  3. oracle rac节点重启的原因,由重启引起的Oracle RAC节点宕机分析及追根溯源
  4. Python每日一练——列表,元组和字典第五关:单星运算符和双星运算符
  5. pacman清理缓存
  6. wdcp-apache配置错误导致进程淤积进而内存吃紧
  7. Java微信公众号开发入门:一、微信公众号简介
  8. 笔记本计算机涂硅脂,硅脂,小编教你怎么在电脑CPU上涂散热硅脂
  9. 自建内网邮箱服务器(下)
  10. 画洗碗机器人的思维导图_怎样用思维导图来协助家务整理?