邂逅DevOps:不要指望一步到位

2020 年 11 月 17 日

邂逅DevOps:不要指望一步到位

近年来 DevOps 对软件工程的影响越来越深入并被广泛认可,与此同时,行业也在密切关注 DevOps 的发展趋势。


简单来说,DevOps 的主要目的是打破开发和运维团队之间的隔阂,促进两者的协作关系,让软件的交付和维护变得高效和流畅。


腾讯互动娱乐事业群技术运营部助理总经理、专家工程师党受辉表示,如今 DevOps 在概念上已经成为共识,算是研发运维领域的主流概念之一,当前处于各公司尝试落地的阶段,也有少数企业已经完成了 DevOps 理念的落地,向着下一个阶段,即“研发运营一体化”的阶段发展。党受辉也将在担任QCon全球软件开发大会(深圳站)担任“玩转DevOps”专题的出品人。


IDC 预测,DevOps 软件市场预计将从 2017 年的 29 亿美元增长到 2022 年的 66 亿美元。可以看到,数字化趋势下,企业组织向 DevOps 转型的案例将越来越多,市场空间巨大,但 DevOps 的实践和落地需要视具体情况具体对待,否则也会“适得其反”。


如何更好地认识 DevOps,是一个说不完的话题,唯一能确定的是,不要指望 DevOps 能一步到位。

以下是 InfoQ 与党受辉的对话纪要:

InfoQ:能否说说在您看来现在 DevOps 文化理念的流行程度如何,它发展到了一个什么样的阶段?


党受辉:自2001年敏捷宣言以来,DevOps文化经历了概念出现、社区争论、产业关注等阶段,近些年在中大企业、行业会议甚至是个人从业者等诸多群体的推动下,如今在概念上已经成为共识,算是研发运维领域的主流概念之一。当前处于各公司尝试落地的阶段,当然也有少数企业已经完成了DevOps理念的落地,向着下一个阶段,也就是“研发运营一体化”阶段发展。

InfoQ:自动化工具在 DevOps 实践中的位置,是否会随着引入 DevOps 的时间维度而变化?能否简单举例说明您的观点?


党受辉:自动化工具是DevOps实践的前提条件,不会随着时间维度而变化。自动化工具的作用是替代工程师“编写代码”之外的工作,业务开发人员应该只关注编写业务代码、测试人员只关注编写测试代码、运维人员只关注编写脚本代码。代码之外的工作有很多,例如编译构建、代码静态扫描、测试环境更新、生产环境发布等等。这些都是单次工作量不大但数量繁多的工作,但却打破了工程师的工作连续性,甚至带来繁重的沟通成本,而且在没有自动化工具链的情况下难以实现研发运维过程“度量”,也就没有“改进”的依据。因此自动化工具是DevOps实践的前提条件。

InfoQ:您认为企业组织向 DevOps 转型的成败关键是什么?实践过程需要注重什么?


党受辉:DevOps转型成败关键有以下几点:

1)选择适合DevOps模式的敏态业务,不是所有的项目都适合推行DevOps;

2)实践DevOps之初,应该先进行文化的导入,最好能让DevOps相关岗位达成初步共识,至少不抵制,认同未来DevOps可期待的效果;

3)高层的支持也非常重要,但是DevOps也足以产生成果让高层来重视和支持。


实践过程需要注意:

1)要以迭代、演进的思想来面对DevOps的落地实践,不要想着一步到位;

2)选择建设或整合适合自己的DevOps自动化工具链;

3)基于工具链沉淀研发运维过程数据,为下一阶段的度量和过程改进做储备;


InfoQ:每个公司的基础设施和解决的问题都有其特殊性,对提供 DevOps 解决方案的公司来说,您认为其当前所面临的机遇和挑战主要有哪些?


党受辉:机遇主要是随DevOps的行业认知所带来的市场容量增长,挑战则很多:


1)DevOps解决方案面向甲方企业的研发运维等技术团队,他们熟悉公司个性化的业务体系和基础设施,作为乙方公司要评估是否有足够的技术能力为某个甲方服务,甲方DevOps相关各团队是否有意愿做出改变,不是所有的甲方都是好客户。


2)DevOps涉及甲方部门多,现有的各种研发运维流程和各团队相互割裂的研发运维类烟囱系统面临迁移或改造,甚至部分留用,使得不同甲方在实施DevOps的时候方案不尽相同,对乙方自动化平台的通用性和扩展性有一定的挑战。


3)部分甲方还存在研发和运维间的现实割裂,从物理网络、管理模式上有法规、权利分工等难以逾越的屏障,对乙方解决方案与第三方解决方案的兼容性有一定的挑战。

InfoQ:强调速度和效率的 DevOps 在与安全的结合上,存在哪些冲突?如何正确看待 DevOps 与安全的关系和融合?


党受辉:DevOps和安全没有冲突,DevSecOps也是一个流行词,因为DevOps解决方案应该基于自动化工具链实现,基于这个前提,安全应该是工具链上不可少的环节,好的工具链应该可以兼容各种第三方安全类的组件或产品,使得代码缺陷、版本漏洞等安全类隐患在DevOps工具链运行过程中被自动扫描甚至纠正,并且尽量左移以减少研发测试运维等各类工程师的无效人肉投入,因此质量、效率、成本和安全等诉求在DevOps理念中完全可以兼顾。

InfoQ:在企业云原生转型浪潮中,您如何看待 DevOps 在这其中的作用?


党受辉:云原生概念由三驾马车驱动:DevOps、微服务、容器化。

微服务给业务架构解耦,容器为其提供一致性的细粒度版本和运行时环境,而DevOps理念则跨越代码的全生命周期,串接了包括微服务开发和容器编排在内的所有研运核心节点,如果没有DevOps的整合,另外两个概念对于研发工程师来说只是研发架构发生了改变,对运维工程师来说只是部署方式发生了改变而已,无法实现全链路的质量效率优化,难以进行持续的过程改进,也不容易促进不同岗位人员之间的协同。

DevOps在应用交付到云原生基础架构之前,提供了方法论、工具链平台来支撑软件研发和测试的全过程;在部署交付的时候,又作为管道交付软件到底层容器平台,没有DevOps,云原生难以被广泛应用。

InfoQ:人工智能、机器学习等前沿技术将如何改变 DevOps?


党受辉:未来人工智能、机器学习的发展,可以在DevOps全链路有很多的应用场景:

- 更智能的CodeReview,甚至指导开发修复问题代码;

- 自动识别迭代规划不合理、质量问题风险预警,甚至给出更智能的建议;

- 自动生成更准确的测试用例,发现测试风险;

- 自动发现从需求提出到生产发布过程中存在瓶颈,给出精益改进建议;

- AIOps分析监控应用部署及运行,进行根因分析和智能修复。

- 代码自动生成……

总之,人工智能、机器学习未来可以让DevOps可以做到更加智能、使用的门槛会更低。

InfoQ:对未来 DevOps 的发展,您有哪些期望?


党受辉:国内的DevOps生态国产化率太低,Jira、Jenkins、Sonar、Nexus等各种核心节点都依赖外国技术;国际形势的变化使得“软件国产化”的呼声和必要性提高,从去年开始我们做了一些努力,将腾讯集团内统一的腾讯CI(蓝盾)、代码扫描平台(CodeCC)等自研DevOps工具组件开源出来,github代号“bk-ci”。在与国际DevOps理念接轨的同时也留有落地方案的备胎,甚至未来正面竞争的可能,因此我也期望国内能有越来越多的厂商、用户一起加入进来,共建开源共享生态,兼顾自主可控。

InfoQ:您认为一个合格的"DevOps 工程师"需要具备哪些特质和技能?他与普通软件工程师的区别在哪?


党受辉:普通软件工程师的核心任务在于业务软件的开发。

一个合格的DevOps工程师,其核心任务在于设计、构建、测试和部署、维护可伸缩的DevOps平台,以支撑企业的研发、测试、运维团队进行协作,并实现实现从构建、测试、部署的自动化。

DevOps工程师知识面要求更加广泛,对各个敏捷、开发、编译、测试、容器等等都要懂一些,因为他们需要支持各个团队将其开展的业务迁移到DevOps上。DevOps的工程师也更加稀缺一些。

采访嘉宾介绍

党受辉,腾讯互动娱乐事业群技术运营部助理总经理,专家工程师。曾就职于东软集团,为能源行业定制信息化体系,加入腾讯后负责互动娱乐事业群的研发、运维、运营类基础工具平台建设。2012 年带领团队设计基础 PaaS 平台蓝鲸智云,逐步将腾讯互动娱乐事业群的运维类、研发类、数据运营类基础平台整合进一套 PaaS 体系,践行研运一体化。2019 年蓝鲸中的 CI 部分“蓝盾平台”逐步发展为腾讯集团统一的 DevOps 流水线,服务于腾讯公司数万研发人员。

会议推荐:

12 月 6-7 日,在深圳举办的 QCon 全球软件开发大会上,除“玩转 DevOps”专题之外,大会还设置了现代数据架构、前端工程化探索、人工智能前沿方向与落地实践、云原生下的应用架构等热门技术专题,带给你最新技术落地案例和实践分享。


目前大会门票 9 折抢购中,限时立减 680 元!优惠活动截至 11 月 20 日。全年最后的优惠时间啦,感兴趣想了解大会议程和演讲嘉宾可以直达官网查看!大会咨询:17310043226(同微信)


2020 年 11 月 17 日 15:542142
用户头像
罗燕珊 InfoQ中文站记者

发布了 68 篇内容, 共 23.7 次阅读, 收获喜欢 59 次。

关注

评论

发布
暂无评论
发现更多内容

10.4领域驱动设计DDD

张荣召

【Java基础】-- isAssignableFrom的用法详细解析

秦怀杂货店

Java 关键字

架构师训练营第十周学习总结

Gosling

极客大学架构师训练营

作为一个Java开发者连Spring三剑客都没吃透,你拿什么和老板谈涨薪?

Java成神之路

Java 程序员 架构 面试 编程语言

架构师Week6作业

lggl

作业

10.3微服务网关的技术架构

张荣召

食堂就餐卡系统 UML 设计

心晴雨亦晴(~o~)

极客大学架构师训练营

一次有效的产品需求头脑风暴

Bruce Talk

敏捷开发 Agile Product Owner

JDBC【4】-- SPI底层原理解析

秦怀杂货店

Java 源码 spi

Java程序员怎么写简历?你这样介绍项目经验面试官会对你刮目相看

Java成神之路

Java 程序员 架构 面试 编程语言

接口测试--接口文档规范

测试人生路

接口文档

10.7作业

张荣召

Mybatis【3】-- Mybatis使用工具类读取配置文件以及从属性读取DB信息

秦怀杂货店

Java 数据库 mybatis

10.1微服务:服务本身的设计,维护及治理

张荣召

10.5软件组件设计原则

张荣召

Mybatis【4】-- 关于Mybatis别名定义

秦怀杂货店

Java mybatis

最佳的思维导图生成工具——markmap 使用教程

白色蜗牛

Java 程序员 职场 实用工具

三年Java开发经验,裸辞之后筹备半年时间,四面阿里终于如愿拿到P7级offer【Java岗】。

Java成神之路

Java 程序员 架构 面试 编程语言

远程面试蚂蚁金服,三面之后本以为石沉大海,没想到却被直接录取

Java成神之路

Java 程序员 架构 面试 编程语言

架构师训练营 1 期第 10 周:模块分解 - 作业

piercebn

极客大学架构师训练营

架构师训练营-week10

睁眼看世界

极客大学架构师训练营

阿里P8架构师呕心沥血整理的【Docker实战】文档带你玩转Docker。

Java成神之路

Java 程序员 架构 面试 编程语言

两年Java开发经验,面试字节跳动惨遭滑铁卢,努力复习54天二战字节跳动终获offer定级2-2【面试答案+复习资源】

Java成神之路

Java 程序员 架构 面试 编程语言

第十周总结

睁眼看世界

极客大学架构师训练营

码了2000多行代码就是为了讲清楚TLS握手流程

新世界杂货铺

golang https 后端

10.2微服务:落地实践的策略与思路

张荣召

阿里P8Java架构师呕心沥血整理出来的[史上最全Java面试题精选集锦]!

Java成神之路

Java 程序员 架构 面试 编程语言

内推阿里,朋友说让我学会这46道面试题,我不信,现在我后悔了

小Q

Java 学习 编程 架构 面试

架构师训练营第10周课后练习

学习总结--week10

张荣召

该怎样才能成为高薪架构师?阿里P8大牛给迷茫的程序员一些中肯建议“请不要再虚度光阴了”。

Java成神之路

Java 程序员 架构 面试 编程语言

邂逅DevOps:不要指望一步到位-InfoQ