DevOps涉及领域普遍,其含义因人而异,在不一样的理解和需求场景下,有着不一样的实践形式。
DevOps能够理解为是一个职位、一种组织形式、一套工具集合、一组过程与方法。
但从商业价值角度来讲,DevOps是指经过Dev(开发)和Ops(运维)的紧密合做来实现和提升商业价值的工做方式和文化。
不只包括了新技术和新工具的使用,还包括相关的团队组织建设和文化,实现持续改善的运维结构,以及开发流程设计等。
经过开发与运维之间的协做,可以消除对我的的依赖、减轻团队之间的损耗,提升质量和开发速度,并经过互相理解来加强变动的灵活性,快速知足商业需求。安全
各类支撑DevOps的思想、改善对策和工具共同组成了DevOps,难以在普遍的场景中明确地指出DevOps实践的准肯定义。
但一般都会包括实现“基础设施即代码”和组建适合DevOps的体制这两部分。服务器
“基础设施即代码”是在DevOps实践中支持开发和运维紧密合做的一个很是有效的方法。
“基础设施即代码”,能够简单理解为:网络
组建适合DevOps的体制,运维团队和开发团队共享信息,在变动时互相审查,深刻了解对方的工做内容,进而理解并达成共识。
拥有共同的目的意识,双方经过自主行动来不断接近共同目标。架构
此外,DevOps是融合在业务中的持续性的改善和实践,而不是为了一次性完成全部的改善。运维
理解传统开发模式和敏捷开发模式的不一样,以及各自的问题。工具
瀑布模型明确划分了开发阶段和各阶段的产出物,没法有效应对新增需求。
敏捷开发以小规模团队为前提,每次只发布最低限度的功能集,而后听取反馈,进行持续改善。测试
开发和运维之间的产生“混乱”:运维产生技术负债、抵触变动和基础设施不足,开发忽略非功能性需求,运维和开发逐渐“割裂和对立”。优化
开发部门确保需求的实现,运维部门确保系统稳定、快速地运行,但最重要的根本任务是确保商业的有效性,商业价值的实现
经过工具和文化来支持开发和运维紧密合做,消除专业性和复杂性,减小工做量,同时使信息可视化,以此来下降变动带来的风险。
团队中任何成员均可以基于相同的信息迅速开展工做,同时经过自动化和持续集成来大幅缩短应对变动所须要的时间,高效知足商业需求。操作系统
文化的含义:尊重(Respect)、信任(Trust)、正确认识失败(Healthy attitude about failure)和避免指责(Avoiding Blame)。设计
基于REST API能够根据指定的参数来进行自动化配置。
REST API能够用URL表示资源,经过HTTP协议来获取资源的状态或者变动资源的配置。
在设计上支持和外部系统进行集成,能够将更新信息发送到外部沟通工具,也能够直接共享URL来访问指定的信息。
例如通用的WeChat、Skype等,面向企业的Cisco Jabber、Chatwork等。
将聊天机器人与聊天工具、业务系统集成,能够代替部分的人工做业,提高反应速度。
除了开源的持续集成和部署工具Jenkins,还有云的持续集成工具服务,例如Circle CI和Travis CI。
在持续交付阶段,可采用蓝绿部署方法来确保部署的安全性。
主流的监控工具主要是指Zabbix。
经过组合不一样的中间件,能够将日志做为监控信息来进行分析处理。