智能化运维最佳实践-自动化_试图搭建一个操作系统的智能运维模型,建立起系统内所有程序和应用的关联关系,以期(2)

最后的话

最近很多小伙伴找我要Linux学习资料,于是我翻箱倒柜,整理了一些优质资源,涵盖视频、电子书、PPT等共享给大家!

资料预览

给大家整理的视频资料:

给大家整理的电子书资料:

如果本文对你有帮助,欢迎点赞、收藏、转发给朋友,让我有持续创作的动力!

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以点击这里获取!

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

由此可见,各家对DevOps的理解,还有工具的归类方式等都会有差异,没有统一的标准。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
三、基于DevOps能力矩阵的工具分类

既然没有统一的DevOps工具分类标准,那么我个人也想从之前归纳总结的DevOps能力矩阵模型的角度,对DevOps相关的工具进行一些分类。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Devops凭借其连接弥合开发与运营团队的能力正在各个行业呈现席卷之势。开发人员和运营人员历来就是水火不容,无论是在开发、测试还是部署上都有着很大的分歧,只有Devops才能扭转这一局面。

我们从DevOps的核心理念可以看出,DevOps强调开发、QA、运维的一体化融合。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

但是,本质上来看开发、QA、运维又是分属不同的部门和组织(尤其是传统企业),有着自己的过程管理方式,主要负责的事情不一样,所谓“术业有分工”,因此用到的工具也有所不同。

那下边我们就尝试归纳一下开发、QA、运维各自常用的一些工具,并且尝试从DevOps能力融合的角度分析,哪些工具是三者或两两之间可以共用的,并挑选一些典型工具做简单介绍。

(一)开发类典型DevOps能力融合工具

敏捷开发已经成为主流,敏捷开发中的核心实践“持续集成”也逐渐被很多企业推广应用,Jenkins作为这个领域的开源工具老大哥的位置已经事实上被确立了。

Jenkins通常被用在配置管理和部署代码上,同时它也能够与Puppet、Chef和容器技术一起使用,还有自动化的测试,例如Selenium、Jmeter也能被很好地整合到Jenkins持续集成的管道中。

开发人员、QA、测试和运维人员都在用Jenkins就很好地说明了Jenkins在DevOps领域的大好前景。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

(二)QA类典型DevOps能力融合工具

无论开发还是测试,还是运维,对软件系统的性能都是非常关注的,因此APM这类上接运营(用户感知)与运维(性能监控),下接QA(性能管理)与开发(性能分析)的工具就理所当然地在近几年开始火爆起来了!

下图是国外的老牌APM厂商的New Relic,使用New Relic企业可以迅速从多个角度查看并解决应用中出现的错误:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

New Relic高级产品经理Stevan Arychuk说New Relic可以提升高质量软件交付的速度并同时降低企业所面临的风险。企业中各团队的角色和职责有所不同,但是通过多角度的数据分析,各个团队之间的沟通、协作、交流可以得到加强,最终达到共同合作的目的。

(三)运维类典型DevOps能力融合工具

1、Automic

美国员工福利管理公司TASC使用Automic来实现其软件部署的自动化,应用Automic,号称可以在下午三点部署而不被别人发现。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

自动部署是开发的持续集成、测试之后衔接运维上线的一道关键工序,应用Automic这类自动化工具能软件系统的部署和交付过程更敏捷、稳定高效、高质量地完成。

2、DynaTrace Ruxit

传统的运维工具大多聚焦在监控类,尤其是基础设施的监控,例如主机、中间件、数据库的监控,尤其是服务器资源层面的监控,对应用层、业务层面的监控偏少,这会导致针对具体问题的分析,开发、QA、运维之间的共同语言偏少。

Devops的核心就是各个部门之间的协作,除了这个协作的理念之外还需要一种方式来进行沟通。

DynaTraceRuxit的智能查看功能可以直观地展示应用和其依赖之间的关系,这样软件开发流程中的不同角色之间可以使用Ruxit来进行沟通和自动化的分析。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

本文参考了以下文章和相关材料:

(1)60best open source tools to do DevOps

https://elasticbox.com/blog/devops-open-source-tools/

(2)PERIODICTABLE OF DEVOPS TOOLS

https://xebialabs.com/periodic-table-of-devops-tools/

(3)7New Tools Java Developers Should Know

http://blog.takipi.com/7-new-tools-java-developers-should-know/

(4)8more cool tools for devops success

http://www.infoworld.com/article/3031009/devops/8-more-cool-tools-for-devops-success.html

(5)Mark!DevOps开源工具的三种分类整理 http://www.360doc.com/content/16/0322/07/31263000_544210096.shtml

DevOps是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。在DevOps的整个流程中,使用一些开源工具可以促进开发与运维之间的沟通,有利于项目的管理,甚至可以达到事半功倍的效果。

收集了DevOps开发可能用到的所有工具,并且把它们按照职责进行分类,本文摘取了部分工具分享给大家,这些工具也可以用于日常软件方面的开发,所以,大家直接Mark吧!

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

包&产品管理工具

  • Chocolatey:Chocolatey是Windows下一款开源的命令行包管理软件 ,简单说这就是Windows的apt-get;
  • FPM:全称是Effing package management,该死的软件包管理器,极大的缓解了多个平台构建软件包(deb,rpm,等)的痛苦;
  • Herd:是一个基于Twitter Murder的文件分布系统;
  • Vagrant Cachier:Vagrant的一个插件,用于缓存包方面的管理;
  • WiX Toolset:提供一组最强大的工具集来帮助你创建Windows安装包。该工具集从XML源代码构建你的Windows安装程序包,可以无缝集成到构建过程;
  • Boxstarter:利用Chocolatey包管理工具来自动化安装软件和创建可重复、脚本化的Windows环境;
  • Elita:Elita是一个利用git和salt进行持续部署(部署作为服务)和API-driven基础设施的引擎/框架;
  • Fig:主要用来跟Docker一起来实现的快速隔离的开发环境;
  • Pulp:Pulp是一个用来管理软件库以及相关内容的平台;
  • Veewee:Veewee是一个开源工具,用来创建和配置轻量级、可再生、便捷式虚拟机环境。

日志&监控

  • AmonOne:现代化的自托管服务器监控工具;
  • Anthracite:一个事件/日志改变/管理应用程序;
  • collectd3:是一个可视化的collectd系统性能统计工具;
  • collectd:是一个守护(daemon)进程,用来收集系统性能和提供各种存储方式来存储不同值的机制;
  • Diamond:是一个基于Python的守护程序,主要用来收集系统指标,并且把它们发布到Graphite(或其它)工具中;
  • Errbit:是一个用于收集和管理程序错误的开源工具;
  • Sensu:一个开源的监控框架;
  • Logstash:是一个应用程序日志、事件的传输、处理、管理和搜索的平台。你可以用它来统一对应用程序日志进行收集管理,提供Web接口用于查询和统计;
  • log.io:一个实时的开源日志监控工具;
  • FnordMetric:是一个基于redis/ruby的实时事件跟踪应用,是个收集和可视化时间序列数据的框架,用户可以在几分钟内创建漂亮的实时分析仪表盘;
  • Logster:是一个工具,读取日志文件然后创建Graphite 或 Ganglia可用的指标数据。比如你可能使用logster来图形化在你的Web Server日志中的HTTP响应发生数量;
  • Kibana:是一个为Logstash和ElasticSearch提供的日志分析的Web接口。可使用它对日志进行高效的搜索、可视化、分析等各种操作;
  • Monit:是一款功能非常丰富的进程、文件、目录和设备的监测软件,用于Unix平台。 它可以自动修复那些已经停止运作的程序,适合处理那些由于多种原因导致的软件错误;
  • Metrics:这并不是Java库,而是基于Go的一个轻量级的检测器;
  • Graphite:是一个用于采集网站实时信息并进行统计的开源项目,可用于采集多种网站服务运行状态信息;
  • Ganglia:Ganglia是一个跨平台可扩展的、高性能计算系统下的分布式监控系统,如集群和网格;
  • Server Density:一个跨平台的监控系统;
  • Folsom:Folsom是一款受 Coda Hale’s metrics启发的、基于Erlang的度量系统;
  • CMB (Cloud Message Bus):是一个高可用、横向扩展的队列和通知服务,兼容AWS SQS和SNS;
  • Glances:是一款用于Linux、BSD的开源命令行系统监视工具,它使用Python语言开发,能够监视CPU、负载、内存、磁盘I/O、网络流量、文件系统、系统温度等信息。
  • Uptime:使用Node.js、MongoDB和Twitter Bootstrap开发的远程监控系统;
  • Icinga:Nagios的扩展版本;
  • Packetbeat: 是开源应用监控和包跟踪系统;
  • Zipkin:是Twitter的一个开源项目,允许开发者收集Twitter各个服务上的监控数据,并提供查询接口;
  • Dead Man’s Snitch:是一款监控Heroku Scheduler、计划的监视工具;
  • Statsd:是一个Node.js的daemon程序,简单,轻巧。使用的UDP协议,可以和Graphite图片渲染应用结合;
  • Riemann:一个网络监控系统;
  • Puppet Dashboard:Puppet Dashboard是一个Web接口,为Puppet提供节点分类和报告功能,是一个开源的配置管理工具;
  • jmxtrans:jmxtrans是一款非常强大的工具,使用它可以轻易生成基于json的配置文章,然后再以你想要的格式输出;
  • Scales:跟踪服务器状态和统计指标,使你全面掌握服务器状态,还可以发送指标到Graphite来图像呈现或者向文件写入崩溃信息;
  • Zabbix:是一个基于Web界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案;
  • Graylog 2:Graylog2是一个用来将系统日志syslog保存到MongoDB中的工具。

进程管理

  • Bouncy:可以作为HTTP路由主机;
  • Supervisor:是一个客户端服务器系统,允许用户监控和控制类Unix操作系统上的进程数;
  • God:由Ruby实现的进程监控框架。

服务发现

  • Consul:简化了分布式环境中的服务的注册和发现流程,通过HTTP或者DNS接口发现。支持外部SaaS 提供者等;
  • etcd:是一个高可用的Key/Value存储系统,主要用于分享配置和服务发现;
  • Apache ZooKeeper:是Apache Hadoop的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题;
  • Weave:创建一个虚拟网络并连接到部署在多个主机上的Docker容器。

持续集成和交付

  • Buildbot:是一个系统的自动化编译/测试周期最需要的软件,以验证代码的变化。通过自动重建和测试每次发生了变化的东西,在建设迅速查明之前,减少不必要的失败;
  • Cabot:是一个开源,自我托管的监控工具;
  • Jenkins:是基于Java开发的一种持续集成工具,用于监控持续重复的工作;
  • Hubot:基于脚本具有很高的灵活性,任何人都可以编写自己的脚本来扩展基本功能;
  • Hudson:是一个可扩展的持续集成引擎,主要用于:持续、自动地构建/测试软件项目、监控一些定时执行的任务;
  • CruiseControl.rb:是一个持续集成服务器,它可以让团队里的每个人随时了解项目的健康状况和进度;
  • OpsBot:是一个开源的、可插入的改善通信的机器人。

希望这些工具能够给开发者带来实实在在的帮助,想要查看更多工具,大家可以 访问原文,原文中的工具列表会持续更新。

最后,再跟大家分享一个 DevOps BookMarks,这里面涉及了DevOps方方面面的工具和内容,有兴趣的同学可以前去学习。

【知识库】Github上推荐的12款DevOps开发工具

DevOps(英文Development和Operations的组合)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。它的出现是由于软件行业日益清晰地认识到:为了按时交付软件产品和服务,开发和运营工作必须紧密合作。
以下是Github上推荐的几个DevOps开发工具,这些工具可以帮助你更快更好的部署和管理服务器:


Capistrano

Capistrano是一种在多台服务器上运行脚本的开源工具,它主要用于部署web应用。它自动完成多台服务器上新版本的同步更新,包括数据库的改变。Capistrano最初由Jamis Buck用Ruby开发,并用RubyGems部署渠道部署。现在Capistrano不仅限于应用Ruby on Rails的 web应用框架,而且可以用于部署用其他框架的web应用程序,比如用PHP开发的。( 项目详情

代码托管地址: https://github.com/capistrano/capistrano

推荐相关文档:


Chef

一个系统集成框架,为您的整个基础设备提供配置管理。使用Chef,你可以:

  1. 编写代码来管理你的服务器,而不是运行命令(通过Cookbooks)
  2. 集成tightly到你的应用程序,数据库,LDAP目录等……(通过类库);
  3. 轻松的配置应用程序,但需要了解您的基础设备(运行的什么系统?当前的主数据库服务 器是什么?)

基本上,Chef就是一个Ruby配置管理引擎。您提供配方,希望您的系统如何去配置,然后交给厨师Chef,它将会为您配置你所希望的一切。你可以编写可爱的Ruby代码来管理你的服务器,而不需要使用命令去执行。( 项目详情

代码托管地址: https://github.com/opscode/chef

推荐下载资源:


Docker

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Docker是dotCloud开源的、可以将任何应用包装在Linux Container中运行的工具,2013年3月发布首个版本。当应用被打包成Docker Image后,部署和运维就变得极其简单。可以使用统一的方式下载、启动、扩展、删除、迁移。Docker可以用来:自动化打包和部署任何应用、创建一个轻量级私有PaaS云、搭建开发测试环境、部署可扩展的Web应用。( 项目详情

项目主页: http://docker.io

代码托管地址: https://github.com/dotcloud/docker

推荐相关文档:

推荐下载资源:


Logstash

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Logstash 是一个应用程序日志、事件的传输、处理、管理和搜索的平台。( 项目详情

项目主页: http://logstash.net/

代码托管地址: https://github.com/elasticsearch/logstash

推荐相关文档:


OpenStack

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

OpenStack是由Rackspace与NASA于2010年7月共同推出的云计算开源项目,目的是提供大规模云操作系统,支持类似AWS功能的IaaS平台。目前已经成为仅次于Linux的最大的开源社区,其会员覆盖几乎所有主流的IT供应商。OpenStack广泛在互联网公司和传统企业间部署,并因经诞生了许多创业公司。OpenStack拥有非常好的架构,这体现在所有功能全部模块和API化,模块之间松耦合。(项目详情

项目主页: http://www.openstack.org/

代码托管地址: https://github.com/openstack/openstack

推荐相关文档:

推荐下载资源:


Puppet

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

你可以使用Puppet集中管理每一个重要方面,您的系统使用的是跨平台的规范语言,管理所有的单独的元素通常聚集在不同的文件,如用户, CRON作业,和主机一起显然离散元素,如包装,服务和文件。Puppet的简单陈述规范语言的能力提供了强大的classing制定了主机之间的相似之处,同时使他们能够提供尽可能具体的必要的,它依赖的先决条件和对象之间的关系清楚和明确。( 项目详情

代码托管地址: https://github.com/puppetlabs/puppet

推荐相关文档:

推荐下载资源:


StatsD

StatsD是一款运行在Node.js平台之上的网络应用,可以用来监听UDP端口的信息,并将监听到的数据生成实时图表。StatsD 0.1.0版本由Etsy发布于2012年2月16日。( 项目详情

代码托管地址: https://github.com/etsy/statsd

推荐相关文档:


Vagrant

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Vagrant是一款用来构建和部署虚拟开发环境的工具,非常适合 PHP/Python/Ruby/Java这类语言开发Web应用,可通过Vagrant封装一个Linux开发环境,分发给团队成员,成员可以在自己喜欢的桌面系统(Mac/Windows/Linux)上开发程序,代码却能统一在封装好的环境里运行。它使用VirtualBox虚拟化系统,使用Chef创建自动化虚拟环境。( 项目详情

代码托管地址: https://github.com/mitchellh/vagrant

推荐相关文档:


Ansible

Ansible 是一个模型驱动的配置管理器,支持多节点发布、远程任务执行。默认使用 SSH 进行远程连接。无需在被管理节点上安装附加软件,可使用各种编程语言进行扩展。Ansible 提供一种最简单的方式用于发布、管理和编排计算机系统的工具,你可在数分钟内搞定。( 项目详情

代码托管地址: https://github.com/ansible/ansible

推荐相关文档:


Salt

Salt是一个大型分布式的配置管理系统(安装升级卸载软件,检测环境),也是一个远程命令执行系统。作为一个强大的远程执行管理器,Salt 用于快速和高效的服务器管理。比func 更强大。扩展更为方便。( 项目详情

代码托管地址:https://github.com/saltstack/salt

推荐相关文档:


Graphite-web

Graphite-web 是 graphite组件之一, 提供一个django的可以高度扩展的实时画图系统。( 项目详情

代码托管地址: https://github.com/graphite-project/graphite-web

官方文档: http://graphite.readthedocs.org/en/latest/


fabric

Fabric 是一个 Python (2.5 或更高) 库和命令行工具,用于连接到 SSH 服务器并执行命令。( 
项目详情

代码托管地址: https://github.com/fabric/fabric

推荐相关文档:


更多开源项目,请查看 
CODE开源知识库
相关文章:

生活不止有苟且,还有N个免费DevOps开源工具

你喜欢免费的东西吗?获得开发者社区支持的自动化,开源的工具是大家梦寐以求的。这里列举了 N多款最棒的开源工具,可以帮助你很好的实行 DevOps。对的,生活不止有眼前的苟且,还有诗和远方的田野,当然,还有免费的DevOps开源工具。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

标题一:开发工具

1.版本控制系统 Git

Git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。

2.代码托管平台 GitLab

GitLab是一个利用Ruby on Rails开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。

3.代码评审工具 Gerrit

Gerrit是一个免费、开放源代码的代码审查软件,使用网页界面。利用网页浏览器,同一个团队的软件程序员,可以相互审阅彼此修改后的程序代码,决定是否能够提交,退回或者继续修改。它使用Git作为底层版本控制系统。

二:自动化构建和测试

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前在阿里

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上运维知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化的资料的朋友,可以点击这里获取!

的项目版本管理。

2.代码托管平台 GitLab

GitLab是一个利用Ruby on Rails开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。

3.代码评审工具 Gerrit

Gerrit是一个免费、开放源代码的代码审查软件,使用网页界面。利用网页浏览器,同一个团队的软件程序员,可以相互审阅彼此修改后的程序代码,决定是否能够提交,退回或者继续修改。它使用Git作为底层版本控制系统。

[外链图片转存中…(img-dMOcviDf-1715482160762)]

二:自动化构建和测试

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前在阿里

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
[外链图片转存中…(img-mvY4RP84-1715482160763)]
[外链图片转存中…(img-hq4AjP4F-1715482160763)]
[外链图片转存中…(img-qWjN1FvT-1715482160763)]
[外链图片转存中…(img-YLOydcJA-1715482160763)]
[外链图片转存中…(img-sWdjHWEC-1715482160764)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上运维知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化的资料的朋友,可以点击这里获取!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值