工欲善其事必先利其器,作为互联网IT从业者,一款好用的工具往往能极大的方便我们解决问题。
今天民工哥就大家盘点一下一些运维工程师常用的工具,绝对能让你的工作效率事半功倍。
现今软件市场上有很多终端工具,比如:xshell、secureCRT、Putty、MobaXterm、NxShell、FinallShell、Tabby等等。
详细的介绍可以参考下面的文章:
至于好不好用,适合不适合,只有用的人才知道。更多日常管理工具请参阅公众号专栏文章:「链接」
作为目前世界上最先进的分布式版本控制系统(没有之一),Git 是一个开源的分布式版本控制软件,用以有效、高速的处理从很小到非常大的项目版本管理。Git 最初是由Linus Torvalds设计开发的,用于管理Linux内核开发。随着时间的推移,Git 发展到今天,已经成为了众多开发者必备的开发工具。需要了解更多关于Git的知识,可以参考公众号的专栏文章 「链接」。
GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的Web服务。GitLab 内置了一个强大的 CI/CD 系统
Gerrit 是建立在 git 版本控制系统之上的,基于 web 的代码审核工具。Gerrit 是免费的,开源的,有一个可视化界面可供用户操作。主要解决的问题是代码审核。他在传统的源码工具管理协作流程中强制性引入代码审核机制,通过人工代码审核和自动化代码验证的方式,不符合要求的代码屏蔽在代码库之外,确保核心代码多人校验、多人互备和自动化构建核验。
Sonar 是一个用于管理代码质量的开源工具,可以分析代码中的bug和漏洞以及Code Smells,支持20多种编程语言的检测,如java,c/c++,python,php等语言,当前有超过85000家组织在使用sonar。Sonar可以与DevOps工具链完全整合,可以与大多数构建工具进行内置集成,与Jenkins,TFS / VSTS,TeamCity,Bamboo等持续整合引擎轻松集成,支持众多源代码管理配置工具,如git,svn,cvs等。之前有推送过使用 sonar+Jenkins 构建代码质量自动化分析平台 的文章,有兴趣的可以查阅一下。
相信做后端维护与开发的同学都用过 常用Maven插件终极大全,速度收藏!,这是一个非常经典好用的项目构建工具。它能够简化构建过程、统一构建体系、提供高质量的项目信息、提供开发的最佳实践指南、实现透明的新特性的迁移、简化构建过程。实现项目代码的编译、测试、打包和部署。
Apache Ant,是一个将软件编译、测试、部署等步骤联系在一起加以自动化的一个工具,大多用于Java环境中的软件开发。由Apache软件基金会所提供。
Python单元测试框架(The Python unit testing framework),简称为PyUnit, 是Kent Beck和Erich Gamma这两位聪明的家伙所设计的 JUnit 的Python版本。
Docker「链接」 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
当今微服务时代,会有很多这种服务,我们如何管理呢?答案就是:Kubernetes「链接」。在生产环境中,我们需要保证服务不会停机,或者服务停机了能够马上自启,能够监控服务运行状态,甚至服务的负载均衡等等,这些 Kubernetes 都可以帮我们做到。
Rocket (也叫 rkt)是 CoreOS 推出的一款容器引擎,和 Docker 类似,帮助开发者打包应用和依赖包到可移植容器中,简化搭环境等部署工作。
LXD 是 ubuntu 基于 LXC 技术的重构,容器天然支持非特权和分布式。LXD 与 Docker 的思路不同,Docker 是 PAAS,LXD 是 IAAS。LXC 项目由一个 Linux 内核补丁和一些 userspace 工具组成。这些 userspace 工具使用由补丁增加的内核新特性,提供一套简化的工具来维护容器。
Jenkins「链接」的前身是 Hudson,它是一个可扩展的持续集成引擎。通过提前设计好的 Jenkins 构建策略等,可以实现一键测试、部署等等。开发人员所要做的就是提交代码至仓库,其余的工作都可以交给 Jenkins 完成。
Capistrano 是一个用来并行的在多台机器上执行相同命令的工具,使用用来安装一整批机器。它最初是被开发用来发布 Rails 应用的。
BuildBot 是一个系统的自动化编译/测试周期最需要的软件,以验证代码的变化。通过自动重建和测试每次发生了变化的东西,在建设迅速查明之前,减少不必要的失败。
fabric8 是开源 Java Containers(JVMs) 深度管理集成平台。有了 fabric8 可以非常方便的从 UI 和 UX 一致的中央位置进行自动操作,配置和管理。fabric8 同时提供一些非功能性需求,比如配置管理,服务发现故障转移,集中化监控,自动化等等。
Saltstack 可以看做是func的增强版+Puppet的弱化版。使用Python编写。非常好用,快速可以基于EPEL部署。Salt 是一个开源的工具用来管理你的基础架构,可轻松管理成千上万台服务器。
Ansible 提供一种最简单的方式用于发布、管理和编排计算机系统的工具,你可在数分钟内搞定。Ansible 是一个模型驱动的配置管理器,支持多节点发布、远程任务执行。默认使用 SSH 进行远程连接。无需在被管理节点上安装附加软件,可使用各种编程语言进行扩展。
Chef 是一个系统集成框架,为整个架构提供配置管理功能。
Puppet,您可以集中管理每一个重要方面,您的系统使用的是跨平台的规范语言,管理所有的单独的元素通常聚集在不同的文件,如用户, CRON作业,和主机一起显然离散元素,如包装,服务和文件。
Cfengine(配置引擎)是一种 Unix 管理工具,其目的是使简单的管理的任务自动化,使困难的任务变得较容易。Cfengine 适用于管理各种环境,从一台主机到上万台主机的机群均可使用。
Bash 是大多数Linux系统以及Mac OS X v10.4默认的shell,它能运行于大多数Unix风格的操作系统之上,甚至被移植到了Microsoft Windows上的Cygwin系统中,以实现windows的POSIX虚拟接口。此外,它也被DJGPP项目移植到了MS-DOS上。
RunDeck 是用 Java/Grails 写的开源工具,帮助用户在数据中心或者云环境中自动化各种操作和流程。通过命令行或者web界面,用户可以对任意数量的服务器进行操作,大大降低了对服务器自动化的门槛。
PingCode 是简单易用的新一代研发管理平台,让研发管理自动化、数据化、智能化,帮助企业提升研发效能的一款工具。
Logstash 是一个应用程序日志、事件的传输、处理、管理和搜索的平台。你可以用它来统一对应用程序日志进行收集管理,提供 Web 接口用于查询和统计。
collectd 是一个守护(daemon)进程,用来收集系统性能和提供各种存储方式来存储不同值的机制。比如以RRD 文件形式。
StatsD 是一个简单的网络守护进程,基于 Node.js 平台,通过 UDP 或者 TCP 方式侦听各种统计信息,包括计数器和定时器,并发送聚合信息到后端服务,例如 Graphite。
zabbix 是一个企业级解决方案,支持实时监控数千台服务器,虚拟机和网络设备采集百万级监控指标。Centos7 部署 Zabbix5.0 安装部署可以参考这篇文章。zabbix 主要由2部分构成 zabbix server和 zabbix agent,zabbix proxy是用来管理其他的agent作为代理。不熟悉 Zabbix 监控系统?再有谁说不熟悉 Zabbix 监控系统,就把这个给他扔过去!。
Prometheus 是由 SoundCloud 开发的开源监控报警系统和时序列数据库。从字面上理解,Prometheus 由两个部分组成,一个是监控报警系统,另一个是自带的时序数据库(TSDB)。
Prometheus 可以支持多种安装方式,包括 Docker、Ansible、Chef、Puppet、Saltstack 等。下面介绍最简单的两种方式,一种是直接使用编译好的可执行文件,开箱即用,另一种是使用 Docker 镜像。
Ganglia 是一个跨平台可扩展的,高性能计算系统下的分布式监控系统,如集群和网格。它是基于分层设计,它使用广泛的技术,如XML数据代表,便携数据传输,RRDtool用于数据存储和可视化。
Kibana 是一个为 Logstash 和 ElasticSearch 提供的日志分析的 Web 接口。可使用它对日志进行高效的搜索、可视化、分析等各种操作。
Postman是一个可扩展的API开发和测试协同平台工具,可以快速集成到CI/CD管道中。旨在简化测试和开发中的API工作流。
在做接口测试的时候,Postman相当于一个客户端,它可以模拟用户发起的各类HTTP请求,将请求数据发送至服务端,获取对应的响应结果, 从而验证响应中的结果数据是否和预期值相匹配;并确保开发人员能够及时处理接口中的bug,进而保证产品上线之后的稳定性和安全性。它主要是用来模拟各种HTTP请求的(如:get/post/delete/put..等等),Postman与浏览器的区别在于有的浏览器不能输出Json格式,而Postman更直观接口返回的结果。
Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。
它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器等。
操作简单,还能输出各种测试报告,后面老板要你测试性能,就可以直接用 Jmeter 这里的输出报告交差了。
今天的分享就到这里了,如有帮助,欢迎一键三连(点赞、评论、转发)支持一下!
读者专属群:诚邀你加入技术交流群,一起卷!
如有错误或其它问题,捐迎小伙伴留言评论、指正。如有帮助,欢迎点赞+转发分享。更多相关开源技术文章,请持续关注!资源分享(小编为你精心准备了2048G的各类学习资料。包括系统运维、数据库、redis、MogoDB、电子书、Java基础课程、Java实战项目、架构师综合教程、架构师实战项目、大数据、Docker容器、ELK Stack、机器学习、BAT面试精讲视频等。)