【Linux】Devops的一些运维工具

一、Devops简介

从手工编译、上传服务器文件、执行命令、启动停止服务器、发现BUG再重复一遍流程,软件开发的重复劳动越来越多,在Devops概念之前,全部要靠人工手动完成,也看到了很多运维人员半夜起来救急的情况。

Devops一词来自于Development 和 Operations 的组合,从字面意思理解,就是让软件开发人员和运维人员更好的沟通合作,通过自动化流程让软件开发、测试、发布更快捷。实际上,Devops是对敏捷和精益开发的传承,是在整个IT价值流中实施精益的结果,Devops并不是只一个新的工程师,也不是一个部门,而是一种文化,没有什么工具可以把团队直接变成Devops组织,这是一种观念的转变。

Devops在高效交付以及自动运维方面的好处让其快速被市场认可并接受,但是在做Devops实践中往往会遇到很大的阻力。

Devops并不是简单的将开发部门和运维部门合并,而是通过自动化的基础设施、合理的流程规范以及智能的自动运行系统测试使开发和运维之间的沟通协作得到加强。

二、工具简介

1、版本控制和协作开发工具

(1)版本控制系统Git

(2)代码托管平台 GitLab

(3)代码评审工具 Gerrit

2、自动化构建和测试工具

(1)Apache Ant:Apache Ant是一个将软件编译、测试、部署等步骤联系在一起加以自动化的一个工具,大多用于Java环境中的软件开发。

(2)Maven:Maven 除了以程序构建能力为特色之外,还提供 Ant 所缺少的高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目,而使用 Ant 则需要十几行。

(3)Selenium集成测试工具

(4)Python单元测试框架

(5)QUnit 是 jQuery 的单元测试框架。

(6)JMeter功能和性能测试的工具,完全用java实现。

(7)Gradle:Gradle 是可以使用 Groovy 来书写构建脚本的构建系统,支持依赖管理和多项目,类似 Maven。

(8)PHPUnit:PHPUnit 是一个轻量级的PHP测试框架。

3.、持续集成&交付

(1)Jenkins可扩展的持续集成引擎

(2)Capistrano:Capistrano 是用来并行在多台机器上执行相同命令的工具,使用用来安装一整批机器。

(3)BuildBot:BuildBot是进行系统自动化编译/测试周期最需要的软件,用于验证代码的变化。

(4)Fabric:fabric8 是开源 Java Containers(JVMs) 深度管理集成平台。能够很方便的从 UI 和 UX 一致的中央位置进行自动操作,配置和管理。fabric8还提供了一些非功能性需求,比如配置管理,服务发现故障转移,集中化监控,自动化等等。

(5)Tinderbox

(6)Travis CI:Travis CI 是一个基于云的持续集成项目, 可以支持大部分主流语言,比如:C,PHP,Ruby,Python, Nodejs等等。

(7)Continuum是最新的 CI 服务器之一,基于 Web 界面配置容易。

(8)LuntBuild自动构建工具。通过web接口可以很容易地进行系统的持续构建。

(9)CruiseControl:CruiseControl 是一个针对持续构建程序(项目持续集成)的框架,包括email通知的插件,Ant和各种各样的CVS工具,还提供了一个Web接口, 可随时查看当前的编译状况和历史状况

(10)Gump:Gump 是 Apache 的整合工具。它以 Python 写成、完全支持 Apache Ant、Apache Maven 等等软件组建工具。

4.、部署工具

4.1 容器平台

(1)Docker:Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

(2)Rocket:Rocket (也叫 rkt)是 CoreOS 推出的一款容器引擎,和 Docker 类似,帮助开发者打包应用和依赖包到可移植容器中,简化搭环境等部署工作。

(3)Ubuntu(LXC):LXD 是 ubuntu 基于 LXC 技术的重构,容器天然支持非特权和分布式。LXD 与 Docker 的思路不同,Docker 是 PAAS,LXD 是 IAAS。LXC 项目由一个 Linux 内核补丁和一些 userspace 工具组成。这些 userspace 工具使用由补丁增加的内核新特性,提供一套简化的工具来维护容器。

4.2 配置管理

(1)Chef:Chef 是一个系统集成框架,为整个架构提供配置管理功能。

(2)Puppet:Puppet,您可以集中管理每一个重要方面,您的系统使用的是跨平台的规范语言,管理所有的单独的元素通常聚集在不同的文件,如用户, CRON作业,和主机一起显然离散元素,如包装,服务和文件。

(3)CFengine:Cfengine(配置引擎)是一种 UNIX 管理工具,其目的是使简单的管理的任务自动化,使困难的任务变得较容易。Cfengine 适用于管理各种环境,从一台主机到上万台主机的机群均可使用。

(4)Bash:bash 是大多数Linux系统以及Mac OS X v10.4默认的shell,它能运行于大多数Unix风格的操作系统之上,甚至被移植到了Microsoft Windows上的Cygwin系统中,以实现windows的POSIX虚拟接口。此外,它也被DJGPP项目移植到了MS-DOS上。

(5)Rudder:Rudder 已改名为Flannel,为每个使用 Kubernetes 的机器提供一个子网。也就是说 Kubernetes 集群中的每个主机都有自己一个完整的子网,例如机器 A 和 B 可以有 10.0.1.0/24 和 10.0.2.0/24 子网。

(6)RunDeck:RunDeck 是用 Java/Grails 写的开源工具,帮助用户在数据中心或者云环境中自动化各种操作和流程。通过命令行或者web界面,用户可以对任意数量的服务器进行操作,大大降低了对服务器自动化的门槛。

(7)Saltstack:Saltstack 可以看做是func的增强版+Puppet的弱化版。使用Python编写。非常好用,快速可以基于EPEL部署。Salt 是一个开源的工具用来管理你的基础架构,可轻松管理成千上万台服务器。

(8)Ansible:Ansible 是用于发布、管理和编排计算机系统的工具,Ansible 是一个模型驱动的配置管理器,支持多节点发布、远程任务执行。默认使用 SSH 进行远程连接。无需在被管理节点上安装附加软件,可使用各种编程语言进行扩展。

4.3 微服务平台

(1)OpenShift:OpenShift 是由红帽推出的一款面向开源开发人员开放的平台即服务(PaaS)。 OpenShift通过为开发人员提供在语言、框架和云上的更多的选择,使开发人员可以构建、测试、运行和管理他们的应用。

(2)Cloud Foundry:Cloud Foundry 是VMware于2011年4月12日推出的业界第一个开源PaaS云平台,它支持多种框架、语言、运行时环境、云平台及应用服务,使开发 人员能够在几秒钟内进行应用程序的部署和扩展,无需担心任何基础架构的问题。

(3)Kubernetes:Kubernetes 是来自 Google 云平台的开源容器集群管理系统。基于 Docker 构建一个容器的调度服务。该系统可以自动在一个容器集群中选择一个工作容器供使用。其核心概念是 Container Pod。

(4)Mesosphere:Apache Mesos 是一个集群管理器,提供了有效的、跨分布式应用或框架的资源隔离和共享,可以运行Hadoop、MPI、Hypertable、Spark。

4.4 服务开通

(1)Puppet:Puppet,您可以集中管理每一个重要方面,您的系统使用的是跨平台的规范语言,管理所有的单独的元素通常聚集在不同的文件,如用户, CRON作业,和主机一起显然离散元素,如包装,服务和文件。

(2)Razor

(3)Docker Swarm:Docker Swarm 是一个Dockerized化的分布式应用程序的本地集群,它是在Machine所提供的功能的基础上优化主机资源的利用率和容错服务。具体来 说,Docker Swarm支持用户创建可运行Docker Daemon的主机资源池,然后在资源池中运行Docker容器。Docker Swarm可以管理工作负载并维护集群状态。

(4)Vagrant:Vagrant 是一个基于 Ruby 的工具,用于创建和部署虚拟化开发环境。它使用 Oracle 的开源 VirtualBox 虚拟化系统,使用 Chef 创建自动化虚拟环境。

(5)OpenStack Heat

5.、日志管理

(1)Logstash:Logstash 是一个应用程序日志、事件的传输、处理、管理和搜索的平台。你可以用它来统一对应用程序日志进行收集管理,提供 Web 接口用于查询和统计。

(2)CollectD:Collectd 是一个守护(daemon)进程,用来收集系统性能和提供各种存储方式来存储不同值的机制。比如以RRD 文件形式。

(3)StatsD:StatsD 是一个简单的网络守护进程,基于 Node.js 平台,通过 UDP 或者 TCP 方式侦听各种统计信息,包括计数器和定时器,并发送聚合信息到后端服务,例如 Graphite。

6.、监控,警告&分析

(1)Nagios:Nagios 是一个监视系统运行状态和网络信息的监视系统。Nagios能监视所指定的本地或远程主机以及服务,同时提供异常通知功能等。

(2)Ganglia:Ganglia 是一个跨平台可扩展的,高 性能计算系统下的分布式监控系统,如集群和网格。它是基于分层设计,它使用广泛的技术,如XML数据代表,便携数据传输,RRDtool用于数据存储和可视化。

(3)Sensu:Sensu 是开源的监控框架。主要特性:高度可组合;提供一个监控代理,一个事件处理器和文档 APIs;为云而设计;Sensu 的现代化架构允许监控大规模的动态基础设施,能够通过复杂的公共网络监控几千个全球分布式的机器和服务;热情的社区。

(4)Zabbix:Zabbix 是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。

(5)ICINGA:ICINGA 项目是 由Michael Luebben、HendrikB?cker和JoergLinge等人发起的,他们都是现有的Nagios项目社区委员会的成员,他们承诺,新的开源项 目将完全兼容以前的Nagios应用程序及扩展功能。

(6)Graphite:Graphite 是一个用于采集网站实时信息并进行统计的开源项目,可用于采集多种网站服务运行状态信息。Graphite服务平均每分钟有4800次更新操作。

(7)Kibana:Kibana 是一个为 Logstash 和 ElasticSearch 提供的日志分析的 Web 接口。可使用它对日志进行高效的搜索、可视化、分析等各种操作

原文地址:https://www.cnblogs.com/chenpingzhao/p/10989574.html

时间: 2024-10-08 18:39:55

【Linux】Devops的一些运维工具的相关文章

Linux中ansible自动化运维工具

1.ansible简介ansible是一款自动化运维工具,基于Python开发,集合了众多运维工具(puppet,cfengine,chef,func,fabric)的优点,实现了批量系统配置,批量 程序部署,批量运行命令等功能.ansible是基于模块工作的,本身没有批量部署的能力.真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架.主要包括:(1)连接插件connection plugins:负责和被监控端实现通信:(2)host inventory:指定操作的主

Linux 运维工具---pxe&dhcp

Linux 运维工具---pxe&dhcp&tftp ============================================================================ 概述: ============================================================================ 运维工作  1.运维工具(Operations)介绍 ★BootStraping:安装系统工具 Bare Metal(物理设

自学Linux运维工具1.1-htop

自学Linux运维工具 自学Linux运维工具1.1-htop 2002年10月DeviceNet被批准为中国国家标准GB/T18858.3-2002,并于2003.4.1起实施.目前,Devicenet技术属于"开放DeviceNet厂商协会"ODVA组织所有及推广.ODVA在世界范围拥有300多家著名自动化设备厂商的会员(如Rockwell.ABB.Omron等).我国的ODVA组织由上海电器科学研究所牵头成立,目前正积极推广该技术. 关于DeviceNet,后面详细介绍. 1.D

Linux自动运维工具Ansible的使用

Linux自动运维工具Ansible的使用 我们熟悉这个工具后, 可以很轻松的安装k8s. 一.介绍 ansible - run a task on a target host(s) Ansible是一个用Python开发的运维工具, 可以在本地让远程主机执行命令, 项目地址: Github源码, 中文文档 二.安装 简单上阵, 我们的主机都是ubuntu, 请使用root用户: sudo su apt install ansible ansible --version 配置文件: ls /et

Linux下的自动化运维ansible工具

什么是自动化运维     随着信息时代的持续发展,IT运维已经成为IT服务内涵中重要的组成部分.面对越来越复杂的业务, 面对越来越多样化的用户需求,不断扩展的IT应用需要越来越合理的模式来保障IT服务能灵活便捷.安 全稳定地持续保障,这种模式中的保障因素就是IT运维(其他因素是更加优越的IT架构等).从初期的 几台服务器发展到庞大的数据中心,单靠人工已经无法满足在技术.业务.管理等方面的要求,那么标 准化.自动化.架构优化.过程优化等降低IT服务成本的因素越来越被人们所重视.其中,自动化最开始作

运维工具大宝典之开源平台篇

from http://cio.it168.com/a2015/1128/1782/000001782714_all.shtml [IT168技术]在运维工具大宝典系列第一篇文章<运维工具大宝典之运维需求篇>中,云智慧对上云企业的运维需求进行的汇总,其中第6条“对开源的强烈需求”主要是来自运维人员,特别是技术大牛,他们喜欢一切尽在掌握的感脚,而这就需要开源运维工具. 目前流行的开源运维工具如Zabbix.Nagios等大部分来自国外,虽然这些开源产品功能非常强大,但对技术要求很高,而且缺少足够

ansible轻量级运维工具使用

Linux轻量级自动运维工具- Ansible 创始人 Michael DeHanan 2012-03-09 同类自动化工具: Ansible Saltstack Puppet Chef Fabric Ansible 特点 agentless (去中心化) 只要保存管理机的认证信息,那么任何一台机器都可以变成管理机 Stupied Simple SSH by default YAML no code 定制剧本 基于python 实现 模块化:调用特定模块,完成特定任务,支持自定义模块 冥等性 -

自动化运维工具Ansible详细部署

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://sofar.blog.51cto.com/353572/1579894 ========================================================================================== 一.基础介绍 =========================================================

运维工具ansible+cobbler+zabbix

运维工作 一.系统 硬件----部署操作系统---多个主机 如何高效的安装操作系统 1.部署在裸机上的操作系统 bare metal pxe预执行环境:网卡自身有一个rom,可以自己加载来获得IP地址,能够到文件服务器上加载bootloader文件,依赖于网卡和网络预先提供的安装服务 但是pxe只能预引导1中操作系统 二次封装的pxe:cobbler 将多版本的操作系统环境支持 * [但是都需要支持pxe] 2.虚拟机器 virtual machine * 二.程序 configurtion 自