对DevOps实践的一些思考01(1.15)

标签: IT咨询 | 发表时间:2019-01-15 09:17 | 作者:人月神话
出处:http://blog.sina.com.cn/cmmi
最近1到2年的博客文章,我谈微服务架构的比较多,而专门谈DevOps的比较少,包括对DevOps支撑平台和DevOps实践的一些关键点思考。19年准备对DevOps这块进行深入的了解和实践。在18年12月11日,当时写过一篇对DevOps实践价值的思考,其中的重点是在谈DevOps,容器云和微服务架构框架的三元一体化。只有三者相互结合才能够产生DevOps最佳实践。

DevOps = Dev + Ops + QA

对于DevOps首先还是要回到这个概念的最基础理解,即是开发,运维和QA工作本身的三元一体化。在有篇文章里面谈到一点,对自己很有启发,就是原来的软件开发流程,分工边界,包括了开发,SCM配置管理,QA,测试,运维等各个环节,相对来说分工明确,但是在核心软件交付流程中流转太多,自然导致效率低,同时也导致更多的上下游扯皮。

而DevOps带来的一个关键点就是,Dev处于整个核心交付流程中,而且这个过程通过方法工具等的支撑完全实现自动化和流水线作业,而对于SCM配置,QA等则处于核心流程的外围角色,即这些支撑过程角色不参与核心交付流程,只是对交付完成的内容进行管理验证。只有这样才容易实现整个交付流程的自动化。

开发和运维

如何理解开发和运维?实际上这里面最关键的一点就是运维的基因已经融入在了整个开发过程中,再展开说明下,就是实际在系统上线后的运维阶段,传统是运维人员发现故障问题,然后转给开发再去分析和定位。而实际上一个自动化可运维的软件,在出现问题后自动就会转为开发可理解的语言之间转到开发人员。也就是说整个过程里面并不需要运维去太多干预。

即传统路线是系统运行-》运维发现硬件故障-》运维发现中间件故障或性能问题-》转开发分析解决。而新的路线是系统运行-》各类问题直接预警或通知到对应的开发。当然整个过程硬件故障还是需要工程人员解决。

其次,传统的持续交付,特别是测试环境朝生产环境的持续交付,一定需要专门的运维和工程人员接入,进行严格的版本管理和发版流程管理。而开发运维一体化后,我们希望的是整个朝生产的持续交付过程也是自动化和流水化的过程,最多只是增加需要的人工审批环境而已。

开发和配置和QA

即使是在传统的持续集成模式下,我们看到整个过程分工也是开发每日将修改好自测通过的代码Check in,而由配置管理员负责进行自动化构建和打包,打包完成后进行自动化的部署。在部署完成后通过测试人员进行测试和验证,验证有问题后测试人员提交Bug并反馈给开发。

简单来说,传统方式下类似配置或测试人员参与了整个软件交付过程,那么整个过程就一定会有协同和沟通,产生效率问题。类似开发提交的代码构建不通过,可能需要反复沟通,或者说在分支合并的时候,也需要双方反复沟通确认等。

对于开发和配置QA一体化,简单来说就是在整个持续交付过程中,不再需要过程支撑类人员的参与,这些人都在外围,整个持续交付构成完全自动化和流水线作业,类似QA或测试,只是对最终交付的结果进行检查和测试,交付过程中(包括代码提交合并,构建,打包部署,环境迁移)等各类问题全部由开发负责,这些问题属于开发内部的问题,由开发主导去解决更加高效快捷。

DevOps的核心还是在于持续集成

个人理解对于DevOps的核心仍然是在持续集成和持续交付上,要实现整个持续集成就包括了配置版本管理,自动化构建和打包,自动化部署,自动环境迁移,自动化单元测试或冒烟测试等诸多内容。这些内容都为核心的持续交付目标而服务。

在DevOps和容器云结合的时候,我们增加了基于Docker容器的自动化部署,资源动态调度和集群管理能力。在和微服务架构结合的时候,增加了对微服务基础管理平台框架,微服务网关的集成能力。在和运维过程集成的过程中增加了类似ETL日志分析,类似Zabbix,Nagios等平台监控预警能力。

DevOps和文化组织变革

企业要进行DevOps实践,另外一点谈的比较多的就是要进行文化和组织变更,这句话如何理解,即一个DevOps最佳实践不是简单的各种工具的堆砌,而是涉及到企业内部开发,QA和运维团队调整,开发框架,开发流程等诸多方面的调整,最终人+工具+DevOps方法论融为一个整体,才能完成最佳实践。

DevOps = 工具 + 文化。上面是对于DevOps实践的另外一个关键说法,即工具和文化的集成,只有工具不行,还需要在组织和文化上面做调整和变更,还需要整个开发运维团队转变传统的开发和思维模式。这里面究竟涉及到哪些文化,个人理解至少涉及到敏捷文化,质量文化,流程文化,客户服务这几个大的方面。只有真正理解了这些文化,DevOps实践才能够在企业内落地实施,并取得好的效果和收益。

工具从下朝上完成了整体集成,但是文化的推行一定是从上到下的。

 

相关 [devops 实践 思考] 推荐:

对DevOps实践的一些思考01(1.15)

- - 人月神话的BLOG
最近1到2年的博客文章,我谈微服务架构的比较多,而专门谈DevOps的比较少,包括对DevOps支撑平台和DevOps实践的一些关键点思考. 19年准备对DevOps这块进行深入的了解和实践. 在18年12月11日,当时写过一篇对DevOps实践价值的思考,其中的重点是在谈DevOps,容器云和微服务架构框架的三元一体化.

DevOps实践一:DevOps概述 - 知乎

- -
DevOps系列文章包含了本人在工作中的实践和认知理论,现总结并分享出来,希望能够给“迷你型”团队在DevOps上的实践提供一个“反面教材”和可行性建议. 本系列主要包含以下文章(过程中可能也会有所更改):. DevOps实践一:DevOps概述. DevOps实践二:持续集成、持续交付和持续部署.

再谈DevOps实践和价值(12.11)

- - 人月神话的BLOG
今天再谈下DevOps过程实践和实际的收益价值问题. 对于DevOps先引用网上的一段总结如下. 这里我们先分析一下DevOps是什么. 大部分人对DevOps的解释都是从这个单词直译过来的就是开发运维一体化,其实这样理解很片面. 其实我们不难从Patrick提出DevOps的过程得出结论,DevOps的精准解释应该是通过敏捷的软件开发与敏捷的运维管理相结合达到业务的快速、灵活响应,也就是DevOps = Dev Agile Ops Agile.

中小团队基于Docker的devops实践 - 掘金

- -
笔者所在的技术团队负责了数十个项目的开发和维护工作,每个项目都至少有dev、qa、hidden、product四个环境,数百台机器,在各个系统之间疲于奔命,解决各种琐碎的问题,如何从这些琐碎的事情中解放出来. devops成了我们不二的选择. 文章是基于目前的环境和团队规模做的devops实践总结,方案简单易懂,容易落地且效果显著.

华为敏捷DevOps实践:产品经理如何开好敏捷回顾会议

- - 研发管理 - ITeye博客
作为布道师和产品经理,出差各地接触客户是常态,经常和华为云的客户交流、布道、技术沙龙,但是线下交流,覆盖的用户总还是少数. 线上的平台,和用户持续交流华为在研发效能提升上的思索和考虑. <恒少出品,必然妥妥干货,必定理论联系实践>,因为软件无银弹,探索始终在路上. -----------------------干货分割线--------------------------------------.

让DevOps起作用

- - InfoQ cn
根据Neil Garnichaud在Dr. Dobb’s上发表的文章《 究竟什么是DevOps》,想要频繁地发布高质量的软件,首先需要弄清如何使开发人员、QA人员和运营人员在一起协同工作. 在软件公司里,特别是在开发基于云的网络应用, 而又缺少有才华的、合格的员工的公司中,压缩的时间进度和最低限度的QA是压力的根源.

DevOps,你真的了解吗?

- - IT经理网
与大数据和PRISM(NSA的监控项目之一),DevOps(开发运维)如今是科技人士挂在嘴边的热词,但遗憾的是,类似圣经,每个人都引用DevOps的只言片语,但真正理解并能执行的人极少. 根据CA的一项 调查,45%的受访者并不了解DevOps的含义,其余则有17%认为DevOps只不过是炒作. DevOps如今几乎成了创新的同义词,但其原本的含义却在业界的流传中被人们弃之脑后.

DevOps的“定义”:DevOps究竟要解决什么问题?

- - InfoQ - 促进软件开发领域知识与创新的传播
近些年来,DevOps 在我们身边出现的频率越来越高了. 各种大会上经常出现 DevOps 专场,行业内的公司纷纷在都招聘 DevOps 工程师,企业的 DevOps 转型看起来迫在眉睫,公司内部也要设计和开发 DevOps 平台……这么看来,DevOps 似乎无处不在. 可回过头来想想,关于 DevOps,很多问题我们真的想清楚了吗.

你的团队里没有DevOps文化?

- Quantum - LinuxEden开源社区-Linux伊甸园
本文是从 Do you have a DevOps Culture. 全球很多的系统负责人和程序开发者都在 撰写 、 聚会 和 讨论 关于DevOps的事:如何能更加有效的协作、让我们更快的创造商业价值. 阅读全文 | 邮件推荐 | 评论回复.

2019十大最佳DevOps工具

- - IT瘾-tuicool
【编者的话】DevOps落地重要的一方面是选好工具集,本文介绍了最流行的DevOps工具. 开发和运维的集成翻开了软件开发的全新篇章. 如果你还是DevOps的新手,或者正在寻求改进已有流程的方法,那么第一道关卡就是调研哪些工具最适合你的团队. 本文整理了工具列表,为大家选择所需的工具提供详实的参考信息.