DevOps最佳工具集实践
在列出DevOps 工具链之前,介绍一下什么是DevOps,虽然DevOps这个概念现在还没有标准的定义,但我们可以追溯一下其过去九年的历史发展过程(从2009年~2017年),列出几个相对明确又有所不同不同的定义,从而能够比较全面了解DevOps的内涵。
【2009】 DevOps是一组过程、方法与系统的统称,用于促进开发、技术运营和QA部门之间的沟通、协作与整合;
【2011】快速响应业务和客户的需求,通过行为科学改善IT各部门之间的沟通, 以加快IT组织交付满足快速生产软件产品和服务的目
【2015】DevOps强调沟通、协作、集成、自动化和度量,以帮助组织快速开发软件产品,并提高操作性能和质量保证;强调自动化软件交付和基础设施变更的过程,以建立一种文化和环境,通过构建、测试和发布软件等方法,可以快速、频繁地、更可靠地发布软件。
【2016】 DevOps的目标是建立流水线式的准时制(JIT)的业务流程,以获得最大化业务成果,例如增加销售和利润率,提高业务速度、减少运营成本。
【2017】一个软件工程实践,旨在统一软件开发(Dev)和软件操作(Ops),与业务目标紧密结合,在软件构建、集成、测试、发布到部署和基础设施管理中大力提倡自动化和监控。DevOps的目标是缩短开发周期,增加部署频率,更可靠的发布。
--2018-02-07 朱少民 软件质量报道
在很长一段时间开发和运维是一个硬币的两面,看起来双方分工清晰,需要较少的协同。然而现代的软件开发、部署运行越来越多的采用分布式架构、集群环境,这就要求开发人员同运维人员的技能出现了必要的交集,双方需要紧密协作才能确保应用的正常运行。随着越来越多的企业IT部门的团队在项目中采用敏捷过程进行应用的迭代开发,DevOps流程和工具集的集成应用将不仅帮助团队有效的提升产品代码质量,同时大大提高交付速度。
开发人员需求:
持续代码修订、快速修复缺陷
快速响应需求、加快特性交付
运维人员需求:
减少频繁更新、确保应用持续稳定运行
自动化基础设置配置管理,持续监控告警
提供可以自助的应用部署服务
不同的需求导致的冲突:
需要改变:软件开发就是一个变化的过程(新功能、Bug缺陷修复),业务要求快速变化迭代
惧怕改变:一旦软件部署到生产环境,确保其稳定运行,避免变动
简单地说,DevOps是敏捷研发中持续构建(Continuous Build,CB)、持续集成(Continuous Integration,CI)、持续交付(Continuous Delivery,CD)的自然延伸,从研发周期向右扩展到部署、运维,不仅打通研发的“需求、开发与测试”各个环节,还打通“研发”与“运维”。DevOps 适合“软件即服务(SaaS)”或“平台即服务(PaaS)”这样的应用领域,其显著的特征就是:
覆盖了产品管理、项目管理、持续集成、自动部署、交付流水线、精益度量 6 个领域能力;
打通用户、PMO、需求、设计、开发(Dev)、测试、运维(Ops)等各上下游部门或不同角色;
打通业务、架构、代码、测试、部署、监控、安全、性能等各领域工具链;
有助于定义设计方法、开发方法、测试方法、安装方法、环境管理方法、配置管理方法、应用部署方法、反馈收集方法、代码改善方法和创新方法。
我们看到DevOps连接软件开发和运维,同时有效的减少了两个关键角色需求的冲突,搭建了双方协同的桥梁。DevOps不是一种方法学,也不是一种框架,而是一个打破封闭孤立,体现自动协同的原则。实施DevOps可以将其划分为如下的生命周期阶段:
自动化是整个DevOps实现的核心,对应生命周期的每个阶段都可以选择开源工具框架或商业产品。


下面我们就展开DevOps的工具链:
更完整的结构化描述: 
DevOps常用工具集清单:
Operating Systems
Linux (RHEL, CentOS, Ubuntu,CoreOS)
Unix (Solaris, AIX, HP/UX, etc.)
Windows
Mac OS X
Infrastructure as a Service
Amazon Web Services
Azure
OpenStack
Aliyun
Virtualization Platforms
VMware
VirtualBox
Vagrant
Containerization Tools
Docker
Rocket
Kubernetes
Linux OS Installation
Kickstart
Cobbler
Stacki
Foreman
Configuration Management
Ansible
Puppet
Chef
Salstack
Compile and Build Systems
Gradle
Maven
Ant
Integration System
Jenkins
Hudson
Bamboo
Application Servers
JBoss
Tomcat
Jetty
Glassfish
Weblogic
Web Servers
Nginx
Apache
Queues, Caches
ActiveMQ
RabbitMQ
Memcache
Databases
Percona Server
MySQL
PostgreSQL
MongoDB
Cassandra
Redis
Oracle
MS SQL
Monitoring, Alerting, and Trending
Nagios
Graphite
Ganglia
Cacti
PagerDuty
Logging
PaperTrail
Logstash
Loggly
ELK
Splunk
Process Supervisors
Monit
Runit
Supervisor
God
Security
Snorby Threat Stack
Tripwire
Snort
Miscellaneous Tools
Multihost SSH Wrapper
Code Climate

文章参考:
《整理了一份史上最全的DevOps 工具链》
《DevOps工具集最佳实践分享》
DevOps最佳工具集实践的更多相关文章
- IBM Rational-完整的软件工程解决方案工具集
IBM,即国际商业机器公司,1911年创立于美国,是全球最大的信息技术和业务解决方案公司,其业务遍及全球170多个国家和地区.IBM软件分为五个部分,其中Rational系列是专门针对软件工程的软件工 ...
- 从工具、工具箱到数字化软件工厂——DevOps 设计理念与工程实践专场 | CIF 精彩看点
西方经典管理理论认为,组织效率可以归为劳动效率.组织效率和人的效率.美国管理学家泰勒所著的<科学管理原理>被德鲁克誉为"20 世纪最伟大的发明",劳动效率说认为分工提升 ...
- elasticsearch基本概念理解+elasticsearch 的shards unassigned处理方法 -- 最佳运维实践 - 集群规划
1.es与MySQL的概念对比 2.概念理解 2.1 Index : 一个索引即是文档的集合 2.2 Document : 一个文档即是一个可被索引的基础单元信息,一条记录: 2.3 Replicas ...
- 高效DevOps的10项实践
高效DevOps的10项实践 原文链接: http://www.drdobbs.com/architecture-and-design/top-10-practices-for-effective-d ...
- 转载:必须收藏!50个最流行的免费Kubernetes工具集
必须收藏!50个最流行的免费Kubernetes工具集 http://cloud.51cto.com/art/201806/576406.htm 在短短的两年时间里,Kubernetes在容器编排的竞 ...
- 给c++程序员的一份礼物——常用工具集
给c++程序员的一份礼物——常用工具集 [声明]如需复制.传播,请附上本声明,谢谢.原文出处:http://morningspace.51.net/,moyingzz@etang.com 所谓&quo ...
- 精通BIRT:Eclipse商务智能报表工具开发实践指南
http://blog.csdn.net/birtbird/article/details/8935520 [置顶] 精通BIRT:Eclipse商务智能报表工具开发实践指南 分类: BIRT 201 ...
- 15个私有云上的 DevOps 开源工具
原文:http://www.sohu.com/a/136276885_262549 在可维护性,可靠性,效率和安全性方面,DevOps 为私有云在改进操作流程方面发挥着重要的作用.私有云是一个由许多硬 ...
- DevOps - 自动化工具
章节 DevOps – 为什么 DevOps – 与传统方式区别 DevOps – 优势 DevOps – 不适用 DevOps – 生命周期 DevOps – 与敏捷方法区别 DevOps – 实施 ...
随机推荐
- Jenkins+docker自动部署
项目目录结构如下 对此项目,使用Jenkins构建dockers镜像 步骤如下: 1.安装Jenkins和docker,具体安装步骤,自行度娘把,在此不详述了. 2.Jenkins安装插件Gradle ...
- hbase-多租户
namespace 不同表在不同的namespace,可以做用户的权限控制 资源限制 限制每时间段请求的数量和大小 设置表的空间大小 修改hbase-site.xml文件 添加两个配置 hbase.q ...
- grunt压缩js代码
安装node.js的环境和grunt插件在上一篇已经将过,点击这里跳到上一篇 所以我们直接从压缩插件的安装开始讲 起 1.安装uglify插件 目录结构如下: 命令行:npm install grun ...
- Docker 镜像使用
当运行容器是,使用的镜像如果在本地中不存在,docker就会自动从docker镜像仓库中下载,默认是从Docker Hub 公共镜像源下载. 下面我们来学习: 1.管理和使用本地Docker主机镜像 ...
- oracle service name sid , 用户 和 表空间
oracle 的四个概念: 数据库: 就是一堆静态的数据文件.注意是静态的 instance 实例: 可以类比数据库连接. 实例就是为了操作数据库而开辟的进程和内存空间,有了这个实例你才能操作数据库. ...
- 项目管理-工作量评估 Manday
People's suggestion, 逻辑有待验证 1. Project sponsor - a new request 2. Study the related issue, to define ...
- 在IIS7上导出所有应用程序池的方法批量域名绑定
在IIS7+上导出所有应用程序池的方法:%windir%/system32/inetsrv/appcmd list apppool /config /xml > c:/apppools.xml ...
- HTTP二、HTTP请求处理过程的七个步骤
HTTP02 HTTP请求处理过程的七个步骤 1.web服务处理步骤 web服务的处理过程可总结为七个步骤: 1)发起请求:客户端向服务器端发起连接请求,建立”三次握手“: 2)接收请 ...
- STM32CubeMX+Keil裸机代码风格(1)
1.打开STM32CubeMX,New project 选好自己要用的芯片 2.选上左侧SYS中的debug Serial Wire(定义烧程序的端口) . 3,选上左侧TIM6,使TIM6可用(TI ...
- Fragment+Viewpaager
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=&quo ...