本帖最后由 adminlily 于 2018-11-13 16:12 编辑
互联网的世界风云变幻,快速响应、自动化和持续交付的能力越发重要。通过实践 DevOps,可以将开发、测试、运维之间的工作串联起来,以持续构建、自动化测试、持续发布为目标,将所有流程全部自动化,最大化减少了重复性的人力投入。同时,基础环境的自动化构建也降低了由于人的原因带来的意外风险。
如今越来越多的企业从 DevOps 中获益,例如更加稳定的运营环境,更快的产品交付和问题解决周期。持续交付、持续集成,DevOps 能在整个生命周期内提升企业产品,更快地满足客户需求,是企业未来打造核心竞争力的关键。
工欲善其事必先利其器,对于刚刚开展 DevOps 的企业而言,选择正确的开发工具尤为重要。对于已经尝试 DevOps 的企业而言,深入了解工具的特性并在此基础上突破创新至关重要。
以下列举了 50 款顶级的 DevOps 落地必备工具,让你距离 DevOps 越来越近。
1.Jenkins
Jenkins 是一个用于持续集成部署的开源工具。它可能不像其他独立的 CI 工具(如 Atlassian,Bamboo,Teamcity)那样功能强大,但它有一个庞大的插件库,可实现高度的可扩展和定制化。独立的基于 Java 的程序随时可以与 Windows,Mac OS X 和其他类 Unix 操作系统一起运行,可持续集成和持续交付,并通过 Web 界面轻松设立和配置,更新中心里提供了数百个插件。 2.SolarWinds 的日志与事件管理器
SolarWins 是一款分布式网络环境性能监控管理的工具,支持多厂商产品。工具提供了许多有用的指标,包括:性能、容量和停机时间(Downtime)。对需要多地办公的企业特别适用,例如:零售品牌,拥有大量分支机构的全国性或国际性的公司。但 SolarWinds 不提供服务器与存储的综合监控。
3.Vagrant
Vagrant 是构建在虚拟化技术之上的虚拟机运行环境管理工具。通过 Vagrant 可以方便实现对虚拟机的管理,包括建立和删除虚拟机、配置虚拟机运行参数、管理虚拟机运行状态、自动化配置和安装开发环境必须的各类软件、打包和分发虚拟机运行环境等。
4.PagerDuty
PagerDuty 是一个 DevOps 工具,可帮助团队和企业保护他们的品牌声誉和客户体验。PagerDuty 是一个事件管理解决方案,支持持续交付策略,使 DevOps 团队能够提供高性能应用程序和卓越的客户体验。
5.Prometheus
Prometheus 是一套开源的监控 & 报警 & 时间序列数据库的组合,起始是由 SoundCloud 公司开发的。随着发展,越来越多公司和组织接受采用 Prometheus,社区也十分活跃,他们便将它独立成开源项目,并且有公司来运作。google SRE 的书内也曾提到跟他们 BorgMon 监控系统相似的实现是 Prometheus。现在最常见的 Kubernetes 容器管理系统中,通常会搭配 Prometheus 进行监控。
6.Ganglia
Ganglia 是一个监控服务器,集群的开源软件,能够用曲线图表现最近一个小时,最近一天,最近一周,最近一月,最近一年的服务器或者集群的 cpu 负载, 内存, 网络, 硬盘等指标。Ganglia 的强大在于:ganglia 服务端能够通过一台客户端收集到同一个网段的所有客户端的数据,ganglia 集群服务端能够通过一台服务端收集到它下属的所有客户端数据。这个体系设计表示一台服务器能够通过不同的分层能够管理上万台机器。这个功能是其他 mrtg,nagios,cacti 所不能比拟的。
7.Snort
Snort 是用于安全的 DevOps 工具。一个开源入侵防御系统,Snort 能够进行实时流量分析和数据包记录。Snort 拥有超过 50 万注册用户,已经下载了 500 多万次,成为世界上应用最广泛的入侵防御系统。
8.Splunk
Splunk 是一个托管的日志文件管理工具,它的主要功能包括:日志聚合功能,搜索功能,对结果进行分组,联合,拆分和格式化,可视化功能,电子邮件提醒功能,
9.Nagios
Nagios 是一个监视系统运行状态和网络信息的监视系统。Nagios 能监视所指定的本地或远程主机以及服务,同时提供异常通知功能等。其中,XI 可以监控关键型基础架构组件,如应用程序,服务,操作系统,网络协议,系统度量和网络基础架构;Nagios Log Server 简化了搜索日志数据的过程;Nagios 网络分析仪可以深入了解网络流量来源和潜在的安全威胁,从而快速收集有关网络健康的高级信息。
10.Chef
Chef 是一个系统和云端基础架构的框架,它可以通过被称为“recipes”的简短可重复脚本自行操作基础设施的建立、配置和管理。但 Chef 的实权其实只在于操作其可插拔的配置模块,而在 Chef 中有近 2000 个这样的模块。作为 Chef 的高调用户之一,Facebook 最近开放了一些自己的 Chef 的源代码,包括 Taste Tester 测试框架和 Grocery Delivery,后者是用于监测源代码回购(如 Git )并保持本地 Chef 服务器同步的工具。
11.Sumo Logic
Sumo 是在 Splunk 的基础上建立的 SaaS 版本,它沿用了 Splunk 早期的一些特性和视觉效果。不得不说,SL 今天已经发展成了一个成熟的企业级日志管理工具。SL 具备对数据简化、查找、制表等功能。可能是 SaaS 型的日志分析工具中功能最多的了。同样,作为 SaaS 型,SL 还具有安装简单,操作简单等优点。最吸引人的地方是,你可以建立一个基线,当一个事件(像是一个新版本首次上线或者恶意的请求等)使一些重要的指标发生了变化时,你可以收到动态通知。由于这是通过 SaaS 的方式进行日志分析的,所以你必须将大量的数据上传至服务器进行分析,这就可能产生一些问题。
12.RabbitMQ
一个开源的多协议消息传递代理,RabbitMQ 是一个支持大量开发人员平台的 DevOps 工具。RabbitMQ 还可以在所有主要操作系统上运行,易于使用。主要特征包括:使软件应用程序能够连接和扩展;为您的应用程序提供发送和接收消息的通用平台,并提供安全的位置,让消息直接收到;灵活的路由,可靠性,集群,高可用队列等。
13.Logstash
Logstash 是一个接收,处理,转发日志的工具。支持系统日志,webserver 日志,错误日志,应用日志,总之包括所有可以抛出来的日志类型。在一个典型的使用场景下 ( ELK ):用 Elasticsearch 作为后台数据的存储,kibana 用来前端的报表展示。Logstash 在其过程中担任搬运工的角色,它为数据存储,报表查询和日志解析创建了一个功能强大的管道链。Logstash 提供了多种多样的 input,filters,codecs 和 output 组件。
14.Loggly
loggly 是一个企业级的商业管理工具,它基于云端的日志处理服务,可以将机器生成日志文档、并整理为可进行搜索的格式。
15.Apache ActiveMQ
Apache ActiveMQ 是 Apache 软件基金会所研发的开放源码消息中间件;由于 ActiveMQ 是一个纯 Java 程序,因此只需要操作系统支援 Java 虚拟机,ActiveMQ 便可执行。
16.Papertrail
PaperTrails 擅长从多台机器上查找日志,并提供一个合并的窗口,使用起来很方便。PT 可以从一个窗口轻松的查找多台机器上的日志。用户操作本身就像你机器上的日志,搜索命令也一样。它致力于将日志管理变得简单、易用,可以优雅地处理。而且它还不算很贵。PT 是基于文本格式的。如果需要支持先进的集成、预测和报告功能,就显得力不从心了。
17.OverOps
OverOps 支持所有 JVM 语言开发的应用,无需修改代码或变更构建项目,同时支持 SaaS 或者内部部署。产品可以在分段或生产中动态索引实际的代码,将其分解为微观的机器代码级别,而不是剖析文本和索引应用程序日志。
18.Squid
Squid 是一个高性能的代理缓存服务器,Squid 支持 FTP、gopher 和 HTTP 协议。和一般的代理缓存软件不同,Squid 用一个单独的、非模块化的、I/O 驱动的进程来处理所有的客户端请求。
19.Visual Studio IDE
Visual Studio IDE 是 Microsoft 的 DevOps 工具,用于 Android,iOS,Web 和云的功能齐全的集成开发环境(IDE),但 Visual Studio 价格昂贵,如果单独购买价格在 500 美元到 1200 美元之间。它提供广泛的服务集成点,包括 Azure、AWS 以及 Hyper-V 等等,这一切对 DevOps 工程师来说相当重要。不过,Visual Studio 是一款非常复杂的产品,因此 IDE 只是它功能的一部分。对于很多专业 DevOps 人员而言,这种复杂性可能会带来干扰。
20.MCollective
MCollective 是一个构建服务器编排 ( Server Orchestration ) 和并行工作执行系统的框架。MCollective 工具为命令行界面,但它可与数千个应用实例进行通信,而且传输速度惊人。无论部署的实例位于什么位置,通信都能以线速进行传输,使用的是一个类似多路传送的推送信息系统。MCollective 工具没有可视化用户界面,用户只能通过检索来获取需要应用的实例。
21.Memcached
Memcached 是一个高性能的分布式内存对象缓存系统,用于动态 Web 应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。Memcached 基于一个存储键 / 值对的 hashmap。其守护进程(daemon )是用 C 写的,但是客户端可以用任何语言来编写,并通过 memcached 协议与守护进程通信。
22.MySQL
Mysql 是最流行的关系型数据库管理系统之一,在 WEB 应用方面 MySQL 是最好的 RDBMS:关系数据库管理系统) 应用软件之一。由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
23.Docker
Docker 以其集装化技术为应用程序带来便携性,在 Docker 中,应用程序可以跨平台运行自给系统。Docker 是由 Docker 引擎和 Docker 集线器组成的,前者是一个轻量级的运行时间和包装工具,后者则是应用程序共享和工作流程自动化的云服务。“Docker 已成为 Yelp 下一代测试和服务管理基础设施的重要组成部分,”Yelp 的技术总监 Sam Eaton 在 Docker 网站上的案例研究中说,“依赖性隔离和‘集装箱’的快速旋转使得开发周期和测试速度提高了不只 4 倍。”
24.Cacti
Cacti 是一套基于 PHP,MySQL,SNMP 及 RRDTool 开发的网络流量监测图形分析工具。cacti 是用 php 语言实现的一个软件,它的主要功能是用 snmp 服务获取数据,然后用 rrdtool 储存和更新数据,当用户需要查看数据的时候用 rrdtool 生成图表呈现给用户。因此,snmp 和 rrdtool 是 cacti 的关键。Snmp 关系着数据的收集,rrdtool 关系着数据存储和图表的生成。
25.Stackify Retrace
该 DevOps 工具为团队和应用程序提供强大的应用程序性能管理,并使开发人员的工作更轻松。Stackify 是一个 SaaS 产品,所以用户可以在登录到 之后看到其数据。在这里,可以访问到各种各样的仪表盘和指标,从而定制出用户心仪的内容。
26.CFEngine
cfengine(配置引擎)是一种 UNIX 管理工具,其目的是使简单的管理的任务自动化,使困难的任务变得较容易。Cfengine 适用于管理各种环境,从一台主机到上万台主机的机群均可使用。
27.Gradle
Gradle 是一个基于 JVM 的构建工具,是一款通用灵活的构建工具,支持 maven, Ivy 仓库,支持传递性依赖管理,而不需要远程仓库或者是 pom.xml 和 ivy.xml 配置文件,基于 Groovy,build 脚本使用 Groovy 编写。
28.Apache Maven
作为一个生命周期管理工具,Maven 是基于阶段操作的,而不像 Ant 是基于 “任务” 构建的。Maven 完成项目生命周期的所有阶段,包括验证、代码生成、编译、测试、打包、集成测试、安装、部署、以及项目网站创建和部署。
29.JFrog Artifactory
JFrog Artifactory 完全支持任何语言或技术创建的软件包。当前,Artifactory 是唯一的一个企业级的仓库管理平台,它支持安全的、集群的、高可用的 Docker 注册中心与所有主流的 CI/CD 和 DevOps 工具集成,Artifactory 提供了端到端、自动化且无缝的追踪工件从开发环境到生产环境的解决方案。
30.Capistrano
Capistrano 是一种在多台服务器上运行脚本的开源工具,它主要用于部署 web 应用。它自动完成多台服务器上新版本的同步更新,包括数据库的改变。
31.Redis
Redis 是一个开源的使用 ANSI C 语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API。
32.Tripwire
Tripwire 是目前最为著名的 unix 下文件系统完整性检查的软件工具,这一软件采用的技术核心就是对每个要监控的文件产生一个数字签名,保留下来。
33.Monit
Monit 是一款功能非常丰富的进程、文件、目录和设备的监测软件,适用于 Linux/Unix 平台。 它可以自动修复那些已经停止运作的程序, 特使适合处理那些由于多种原因导致的软件错误,同时 Monit 包含一个内嵌的 HTTP(S) Web 界面,可以使用浏览器方便地查看 Monit 所监视的服务器。
34.Collectl
众多监控工具中、collectl 支持的性能数据种类应该是最全的一个,包括 IO/CPU/Network/NFS/Infiniband/Lustre/Process/Slabs 等。你可以通过交互的方式使用这个性能监控工具,也可以用它把报表写到磁盘上,并通过 web 服务器来访问。它以一种易读易管理的格式,显示了 CPU,磁盘,内存,网络,网络文件系统,进程,slabs 等统计信息。
35.Consul
Consul 是一个支持多数据中心分布式高可用的服务发现和配置共享的服务软件, 由 HashiCorp 公司用 Go 语言开发, 基于 Mozilla Public License 2.0 的协议进行开源. Consul 支持健康检查, 并允许 HTTP 和 DNS 协议调用 API 存储键值对。
36.JIRA Software
JIRA 是 Atlassian 公司出品的项目与事务跟踪工具,被广泛应用于缺陷跟踪、客户服务、需求收集、流程审批、任务跟踪、项目跟踪和敏捷管理等工作领域。
37.Apache Ant
Apache Ant 是一个将软件编译、测试、部署等步骤联系在一起加以自动化的一个工具,大多用于 Java 环境中的软件开发。由 Apache 软件基金会所提供。他具有跨平台性,操作简单,可以集成到开发环境中,很容易维护和书写的特点。
38.God
God 是一个使用 Ruby 写成的,容易配置,容易扩展的进程监控框架。
39. ProductionMap
一个开源的,一体化的 DevOps 平台,ProductionMap 由一群 IT 和 DevOps 专业人士创建,提供最先进的协调和开发平台。该 DevOps 工具使团队能够在大型服务器和混合技术上开发和执行复杂的自动化。
40.Juju
Juju 是由典型的基于 Python 的编排工具。你可以使用命令行界面来完成所有的业务流程的任务,还可以配置,部署和使用且具规模的应用。帮助 DevOps 团队更轻松地处理配置,管理,维护,部署和可扩展性。
41.Scalyr
Scalyr 是一个基于云的服务器日志监控工具。Scalyr 提供了许多服务器监控和分析工具。为了支撑这些工具,他们将每项功能都实现为一个通用数据集上的一组查询。Scalyr 支持多种输出结果,包括文本、数值、直方图和键 / 值数据。
42.Stackify Prefix
Stackify 是一种轻量级的 DevOps 工具,可以在工作站上直接显示实时日志,错误查询。Prefix 不是作为标准代码分析器,而是显示每个 Web 请求的详细信息,以帮助团队了解您的代码正在做什么以及需要多长时间。
43.SaltStack
Saltstack 是一个大型分布式的配置管理系统(安装升级卸载软件,检测环境),也是一个远程命令执行系统。saltstack 的两大功能:远程执行和配置管理。Saltstack 使用 Python 开发,是一个非常简单易用和轻量级的管理工具。由 Master 和 Minion 构成,通过 ZeroMQ 进行通信。
44.Ansible
Ansible 是一个模型驱动的配置管理器,支持多节点发布、远程任务执行。默认使用 SSH 进行远程连接。无需在被管理节点上安装附加软件,可使用各种编程语言进行扩展。Ansible 提供一种最简单的方式用于发布、管理和编排计算机系统的工具,你可在数分钟内搞定。
45.Code Climate
Code Climate 为 Ruby on Rails 以及 JavaScript 项目提供静态分析功能。作为一项托管服务,它所访问的代码被保存在一台 GitHub 服务器上,并通过互联网进行数据传输。众包网站 Kickstarter 就使用 Code Climate 与 GitHub 集成方案进行漏洞排查工作。
46.Flannel
Flannel 是 CoreOS 团队针对 Kubernetes 设计的一个网络规划服务,简单来说,它的功能是让集群中的不同节点主机创建的 Docker 容器都具有全集群唯一的虚拟 IP 地址。也就是说 Kubernetes 集群中的每个主机都有自己一个完整的子网,例如机器 A 和 B 可以有 10.0.1.0/24 和 10.0.2.0/24 子网。
47.Puppet Enterprise
Puppet 属于集中配置管理系统,适用平台包括 Linux、Unix、windows,使用自有的 puppet 描述语言,可管理配置文件、用户、cron 任务、软件包、系统服务等。期中,Puppet Enterprise 专门管理基础设施即代码 (IAC)。
48.Graylog
Graylog 是一个简单易用、功能较全面的日志管理工具,相比 ELK 组合, 部署维护简单,查询语法简单易懂 (对比 ES 的语法…),内置简单的告警,可以将搜索结果导出为 json,提供简单的聚合统计功能,UI 比较友好,当然, 拓展性上比 ELK 差很多。
49.UpGuard
UpGuard 是一个 DevOps 工具,可以提供对 IT 基础架构状况的可视性,使团队能够了解潜在风险,防止违规行为和加速软件交付。UpGuard 的解决方案可以完全了解服务器和设备配置,并使团队能够确保系统安全,同时最大限度地减少计划外中断和数据泄露的风险。
50.Sensu
Sensu 是一款特地为云平台的维护而设计的监控框架。通过使用 Sensu,分布式平台的运维人员可以轻易实现对大规模集群的检测、监控和维护。Sensu 能够轻松实现大规模动态拓展,也能够与其它相关工具进行集成,如可视化工具 Graphite、日志管理工具 Logstash 等。
原创:谢然
|