2019十大最佳DevOps工具

标签: tuicool | 发表时间:2019-01-22 00:00 | 作者:
出处:http://itindex.net/relian

【编者的话】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托管服务是 GitHubBitbucket。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 工具] 推荐:

2019十大最佳DevOps工具

- - IT瘾-tuicool
【编者的话】DevOps落地重要的一方面是选好工具集,本文介绍了最流行的DevOps工具. 开发和运维的集成翻开了软件开发的全新篇章. 如果你还是DevOps的新手,或者正在寻求改进已有流程的方法,那么第一道关卡就是调研哪些工具最适合你的团队. 本文整理了工具列表,为大家选择所需的工具提供详实的参考信息.

建议收藏!2020 年必备的几个 DevOps 工具

- - SegmentFault 最新的文章
提到 DevOps 这个词,我相信很多人一定不会陌生. 作为一个热门的概念,DevOps近 年来频频出现在各大技术社区和媒体的文章中. 到了 2020 年,DevOps 的革命也终于成为了一个主流,DevOps 相关工具的受欢迎程度也在激增. 根据 Google 趋势,「DevOps 工具」的搜索量一直在稳定增长,并且这种趋势还在持续.

中国工商银行DevOps工具链建设之路

- - DockOne.io
【编者的话】新技术发展迅猛,金融产品和服务模式创新加快,快速增长的产品需求与有限研发资源之间的矛盾长期存在. 如何提高研发效能,快速上线业务需求,支撑业务创新发展,是金融机构产品研发部门面临的挑战. 传统银行的产品、架构体系庞大复杂,对研发效能提升带来更大挑战,无论流程改进还是工具支撑,都需兼顾现有系统的安全稳定运行.

DevOps 实战

- -
DevOps 的 3 个支柱. 第 1 步:寻找合适的试点项目. 第 3 步:快速建立初期成功. 第 4 步:快速展示和持续改进. 第一阶段:每次提交触发完整的流水线. 第二阶段:每次流水线触发自动化测试. 第三阶段:出了问题可以在第一时间修复. 第二步:定义指标并达成一致. 第三步:建立自动化执行和检查能力.

DevOps实践一:DevOps概述 - 知乎

- -
DevOps系列文章包含了本人在工作中的实践和认知理论,现总结并分享出来,希望能够给“迷你型”团队在DevOps上的实践提供一个“反面教材”和可行性建议. 本系列主要包含以下文章(过程中可能也会有所更改):. DevOps实践一:DevOps概述. DevOps实践二:持续集成、持续交付和持续部署.

『DevOps 最佳实践』 — DevOps 实践

- -
Culture – 文化:公司各个角色一起担当业务变化,实现有效协作和沟通;. Automation – 自动化:在价值链中尽量除去手工步骤;. Lean – 精益:运用精益原则更频繁地交付价值;. Metrics – 度量:度量并使用数据来优化交付周期;. Sharing – 分享:分享成功和失败的经验来相互学习.

让DevOps起作用

- - InfoQ cn
根据Neil Garnichaud在Dr. Dobb’s上发表的文章《 究竟什么是DevOps》,想要频繁地发布高质量的软件,首先需要弄清如何使开发人员、QA人员和运营人员在一起协同工作. 在软件公司里,特别是在开发基于云的网络应用, 而又缺少有才华的、合格的员工的公司中,压缩的时间进度和最低限度的QA是压力的根源.

『DevOps 最佳实践』 — DevOps 平台 - Ledge DevOps 知识平台

- -
DevOps 数字化转型框架. 企业为什么需要一站式综合研发平台. 越来越来多的组织开始搞敏捷和 DevOps 转型,打造了很多的 DevOps 基础设施,比如有管理需求的 Jira, 有持续集成的 Jenkins,有容器编排的 K8S 等等. 可是这纷繁复杂的 DevOps 工具链,同时也给企业带来新的困扰.

DevOps,你真的了解吗?

- - IT经理网
与大数据和PRISM(NSA的监控项目之一),DevOps(开发运维)如今是科技人士挂在嘴边的热词,但遗憾的是,类似圣经,每个人都引用DevOps的只言片语,但真正理解并能执行的人极少. 根据CA的一项 调查,45%的受访者并不了解DevOps的含义,其余则有17%认为DevOps只不过是炒作. DevOps如今几乎成了创新的同义词,但其原本的含义却在业界的流传中被人们弃之脑后.

Kubernetes 会不会“杀死” DevOps?

- - InfoQ推荐
DevOps 这个概念最早是在 2007 年提出的,那时云计算基础设施的概念也才刚刚提出没多久,而随着互联网的逐渐普及,应用软件的需求爆发式增长,软件开发的理念也逐渐从瀑布模型(waterfall)转向敏捷开发(agile). 传统的软件交付模式(应用开发人员专注于软件开发、IT 运维人员负责将软件部署到服务器运行),再也无法满足互联网软件快速迭代的需求.