文档章节

从蓝鲸视角谈DevOps

嘉为科技
 嘉为科技
发布于 07/23 18:15
字数 2073
阅读 22
收藏 0

DevOps源于Development和Operations的组合

 

常见的定义

 

DevOps是一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合作的文化、运动或惯例。透过自动化“软件交付”和“架构变更”的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。

 

下面这个戴明环也是常见的表达形式:

 

点击此处添加图片说明文字

 

 

 

 

蓝鲸在深度实践DevOps后,结合对DevOps理解和经验总结,重新定义了DevOps。即下图这6个英文单词的首字母组成:

DoEfficiencyValueOpenProgressSecurity

 

点击此处添加图片说明文字

 

结合这六个词、结合蓝鲸产品团队在今年6月蓝鲸DevOps活动上的分享以及个人理解,我们将从蓝鲸的视角展开来谈谈DevOps:

 

Do实践:以实践为基础推行DevOps

 

DevOps文化、理论体系的宣导者众多,各种大会也会去介绍各种“道、法、术”;大一些的企业基本都会有设立教练的角色,指导各个研发团队开展DevOps转型。但一些企业用户在听完各种“道、法、术”之后,要么是讲的听不懂,要么是懂也不会做、做也做不好。也有企业先找咨询公司做咨询,但咨询完后却不知道怎么落地。

 

蓝鲸DevOps认为DevOps的第一要素,就是实践,即所谓的“事上练”。没有实践过DevOps的经历就没有感悟,谈论再多的文化、理论,还不如贴近业务研发痛点,动手行动,用实践来验证想法和理论,点滴积累,绘成逐渐强大的DevOps体系。

 

Efficiency效能:效能是DevOps追求的目标

 

在我们开展实践之后,需要有目标。DevOps 根本的目标就是提升研发效能。

 

首先,效能体现在可以让大家可以“Focus On Your Job”。开发人员的职责是写代码和合并代码,合并代码完就去抽烟,其他的交给平台自动化执行;而不是去推动打包、申请资源、部署、测试、生产上线。

 

其次,效能体现在可以让大家在同一套平台中进行工作和协同,而不是在不同的工具中做不同的事情。一个企业IT部门有18套研发、测试、运维工具,这代表先进还是落后呢?很显然,这是一种落后的表现,因为这几乎将无法实现跨系统自动调度。蓝鲸DevOps平台可以将DevOps工具链进行整合,让不同的角色专注于其本职工作,达到提升效能的目标。

 

Value价值:DevOps必须输出价值

 

DevOps要为用户不断的输出价值,就要为DevOps体系中融入更多的提供价值的功能。例如:

  • 在DevOps平台中加入质量红线,可以提供给用户来建立各种质量门禁,如:代码准入门禁、迭代验收门禁、发布控制门禁;
  • 在DevOps平台中提供编译加速,帮助用户提升编译的性能;
  • 在DevOps平台中提供构建资源池,在构建的时候可以自动调度构建资源,完成构建之后可以自动释放资源等等;
  • 在DevOps平台中优化流水线的体验和原子,用户可以轻松组装出来各种复杂的业务场景……

 

价值也应该是可以复制的,企业通常有多个团队同时开展多个项目,我们对某个项目团队进行了大量DevOps方面的改进,并邀请工信部对项目进行了DevOps能力成熟度评级,我们团队达到了3级。但是,其他的项目或团队呢?他们能否达到3级标准?我们在DevOps方面做出的努力,是否可以平行复制到其他团队?

 

蓝鲸DevOps有一个理念是——价值应被平行复制到各个项目团队。每一个价值点的输出,都可以让用户真正的感受到DevOps所能带来的改变,这样才能把用户凝聚在平台上,而不是总是考虑哪里用得不顺,自己建立一套平台。蓝鲸DevOps带来的体系完善、效能提升,不是针对某个团队,而是可以平行复制到所有的研发团队,这就是最大的价值。

 

Open开放:以开放的心态面对各种场景

 

不同的企业甚至同一家企业的不同团队,其DevOps落地的进程和对DevOps的要求都有差异的,我们必须用开放的心态接受这种差异。

 

例如:蓝鲸DevOps平台里面有敏捷协同模块,可以管理项目的需求、任务、缺陷、迭代计划等等,但是许多传统行业,基于企业的研发管控制度等原因,已经建立了适合自己的需求管理平台、研发任务管理平台等工具平台,我们的解决方案是不断给用户洗脑让用户放弃现有的协同和管理模式,还是以开放的心态来面对客户现有的管理体系呢?

 

蓝鲸的选择是以开放的体系面对不同团队的需求,提供尽可能灵活的架构和工具,通过工具开放的方式来兼容不同团队的模式。蓝鲸本身也是面向CI-CD-CO的研运一体化平台。

 

Progress演进:持续交付核心在于不断演进

 

DevOps的一个重要理念就在于持续改进。我们可以通过各个子系统的数据进行整体的度量,来发现哪个项目、哪些环节经常出现停滞、失败率比较高、耗时比较长,并且进行针对性的改进。

 

例如:如果研发效能瓶颈在测试环节,就需要深究导致测试耗时长的问题。如果是因为没有引入自动化的测试、手工测试耗时较长,就可以逐步补充自动化测试用例;如果研发效能瓶颈需要人工响应才能推进,就可以引入自动化的流水线和优化研发流程,减少人工参与和不必要的审核节点。

 

只有通过不断的改进,企业才能将原来的每月迭代和发布,缩短为每周迭代和发布,甚至逐步改进为每天迭代和发布,最终达到Google、FaceBook等企业达到的1天若干次发布的效果。

 

各个团队可以跟自己比,每一阶段都相比前一阶段有进步,就是团队的自我发展。而蓝鲸DevOps平台也是不断演进的成果。

 

Security安全:安全是基础

 

一个企业级的DevOps平台,安全是非常重要的。研发人员电脑、代码库、构建机、测试环境、制品库都可能导致代码及软件包的泄露,这也导致游戏行业大量私服的出现。而软件上线之后还要考虑漏洞被利用、跨站攻击、数据窃取等等问题。

 

不论DevOps平台本身,还是从平台流出的制品,一切要以安全为依归。DevOps平台本身应该提供监、管、控手段,可以进行细粒度的权限控制,避免非法访问和非法窃取数据、代码、软件包。DevOps平台也应该提供代码扫描、安全扫描、质量红线等安全工具,可以独立运行或者结合到流水线里面自动调用,保证交付的软件的可靠性,给平台使用者以及产出软件的用户一个安全保障。

 

作者:方勇

© 著作权归作者所有

嘉为科技
粉丝 0
博文 46
码字总数 96020
作品 0
广州
私信 提问
2019 第四届「7·24运维日」技术沙龙圆满成功

由腾讯蓝鲸智云主办,嘉为科技承办的第四届「7·24运维日」技术沙龙活动于7月20日在深圳腾讯滨海大厦圆满举行。 沙龙以“价值与突破”为主题 ,分享了优秀运维人的从业经验和经历的技术变革,...

嘉为科技
07/25
11
0
嘉为科技获得腾讯投资,拓展企业级IT运营管理市场

7月10日,腾讯宣布投资ITOM(IT运营管理)公司嘉为科技,双方将进一步深化合作,合力拓展企业级IT运营管理市场,为各行业的客户提供自主可控、可灵活配置的新一代企业级运营管理解决方案。 ...

嘉为科技
07/10
12
0
【沈阳】OSC源创会第48期开始报名

本期图文回顾链接:http://www.oschina.net/question/2686220_2185160 世界那么大,OSC源创会想出去走一走,六月,我们就来到了沈阳,感受一下来自大东北oscer们的热情!我们一如既往秉承着“...

Alaise
2016/05/19
381
0
蓝鲸DevOps深度解析系列(2):蓝盾流水线初体验

关注嘉为科技,获取运维新知 前面一篇文章《蓝鲸DevOps深度解析系列(1):蓝盾平台总览》,我们总览了蓝鲸DevOps平台的背景、应用场景、特点和能力; 接下来我们继续解析蓝盾平台的核心组件...

嘉为科技
03/12
51
0
【沈阳】OSC源创会第48期开始报名

本期图文回顾链接:http://www.oschina.net/question/2686220_2185160 世界那么大,OSC源创会想出去走一走,六月,我们就来到了沈阳,感受一下来自大东北oscer们的热情!我们一如既往秉承着“...

Alaise
2016/05/19
19.7K
42

没有更多内容

加载失败,请刷新页面

加载更多

只需一步,在Spring Boot中统一Restful API返回值格式与统一处理异常

统一返回值 在前后端分离大行其道的今天,有一个统一的返回值格式不仅能使我们的接口看起来更漂亮,而且还可以使前端可以统一处理很多东西,避免很多问题的产生。 比较通用的返回值格式如下:...

晓月寒丶
昨天
59
0
区块链应用到供应链上的好处和实际案例

区块链可以解决供应链中的很多问题,例如记录以及追踪产品。那么使用区块链应用到各产品供应链上到底有什么好处?猎头悬赏平台解优人才网小编给大家做个简单的分享: 使用区块链的最突出的优...

猎头悬赏平台
昨天
28
0
全世界到底有多少软件开发人员?

埃文斯数据公司(Evans Data Corporation) 2019 最新的统计数据(原文)显示,2018 年全球共有 2300 万软件开发人员,预计到 2019 年底这个数字将达到 2640万,到 2023 年达到 2770万。 而来自...

红薯
昨天
65
0
Go 语言基础—— 通道(channel)

通过通信来共享内存(Java是通过共享内存来通信的) 定义 func service() string {time.Sleep(time.Millisecond * 50)return "Done"}func AsyncService() chan string {retCh := mak......

刘一草
昨天
58
0
Apache Flink 零基础入门(一):基础概念解析

Apache Flink 的定义、架构及原理 Apache Flink 是一个分布式大数据处理引擎,可对有限数据流和无限数据流进行有状态或无状态的计算,能够部署在各种集群环境,对各种规模大小的数据进行快速...

Vincent-Duan
昨天
60
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部