【真北直播笔记】董越:简明DevOps学习地图

缘起

真北敏捷社区的宗旨是:求知、连接。求知就是学习,家里没矿的话,学习是一个人最重要的动力之源。连接就是把人拉在一起,我们相信人与人的互动会带来美好的变化。今天的直播是把大家拉在一起学习,就是求知、连接。

嘉宾介绍

董越,DevOps 资深专家,阿里巴巴集团前研发效能事业部架构、高级产品专家等职,从事 Aone&云效 DevOps 产品设计、阿里云专有云集成与交付解决方案设计等工作。在加入阿里之前,他还曾就职于西门子、摩托罗拉、雅虎、索尼、去哪儿网等大型企业,一直从事软件配置管理、软件集成与交付、DevOps 相关的工作。当前主要从事企业级DevOps体系建设与咨询工作,帮助众多企业提升软件研发交付效能。已服务过的客户有华为、工商银行、交通银行、招商银行、中信银行、中国移动、中国联通、中国电信、华泰证券、泰康人寿等。

3eb5b3066c3caa7514fc3a1a94d97d81.jpeg

直播笔记

# 简明DevOps学习地图

50+位真北敏捷小伙伴参与了学习与互动。



## 概念辨析

* 软件工程:随着软件规模和参与人员的扩大,如何把造金字塔的智慧、造长城的智慧应用到软件开发,做工作的分解、计划、把握质量等,这就是工程化。
* 敏捷、精益:是对工程化的反动,需求和实现的不确定,严格的工程方法不适用。敏捷宣言左边是软件工程,右边是矫正。大项目更需要工程,小项目更适用敏捷。敏捷包括工程实践和管理实践,工程实践如PP二十年推广的不够好。推荐TDD。

精益来自精益制造,落实到软件:精益看板墙、精益创业。精益范围很广,从需求到发布上线都涉及,是一个方法论。精益有明确的思想。DevOps是一个大杂烩。


* 持续集成、持续交付、持续部署:敏捷关注开发过程,对测试研究不深入,是从开发者的视角。持续是说不应该放在最后搞,而是要不断搞。不追求开发人员每天提交到主干。集成是说先做出一个个小零件,再组装成汽车、手机。软件中指的是对代码改动的组装。集成的演化含义,持续集成没那么重要,如果在本地没有质量问题,合起来也没什么问题,特别是模块化微服务做的好。把改动捏到一起,做一定测试,才算集成,否则就只是构建。

持续交付是对持续集成的演进。是在接近生产环境做更多测试。持续的含义有变化。CI一天做N个Build。CD里的持续不太持续,两周上线一次已经很持续交付了。

持续部署,来源非常草率。最早的文章说不要做测试了,直接发到线上,等着别人提意见。后来被引申修补,指的是改动后经过自动化的过程后上线。没有人工测试很难做到。单个特性自动化测试和发布没问题。

* DevOps:故事是愉快地合作。实际是把Ops自动化,开发可以完成变更发布,不由运维人员操作。配管也发生了同样的故事,以前开发与配管5:1,随着工具进步,变成500:1,工具化平台化服务化。最后是去掉了运维的手工的工作,运维人员去做平台或咨询(帮助开发人员启动)。再演化成BizDevOps,什么都是DevOps。


* 研发效能:国内概念。阿里有研发效能事业部。不像精益有自己的思想,只有一个范围,从需求到上线,怎么提升效能。平台工程说的是把平台做好,让开发更好用,跟DevOps一体两面。工具其实很重要。


* 云原生:是关于部署架构,云计算,弹性,容器化,偏向架构。12要素,也有部署发布相关,但主要是架构相关。

问答:chatgpt会代替devops吗?

答:不会。低代码会影响。chatgpt对软件开发过程有影响。


## 研究范围

全图:

* 软件开发(广义) = 定义需求 + 实现需求

* 实现需求 = 软件开发(狭义) + 软件交付

DevOps聚焦软件交付。

软件交付包括:

* 程序形态的转化
* 程序质量的提升
* 程序改动的聚积

体现在分支策略、代码提交等。

## 追求目标

* 整体目标:为了业务的成功
* 定义需求:有效率地找到有效的软件需求
* 从定义需求到实现需求:小步快跑
* 实现需求:效率与质量
  * 效率要兼顾需求吞吐量和需求响应时长:资源利用的效率,能处理多少个需求。另一方面是反应的速度,改两行代码,多长时间能上线,两分钟还是两个月。
  * 质量不是越高越好,是要适合业务:星舰要高质量,个人小游戏不用。
  * 质量由问题出现量和问题修复时长共同决定:难修的要质量高。降低修复时长比降低问题数容易,效果好。
  * 兼顾短期和长期:避免技术债。

>                                数量
>
>                                   ↑
>
>               需求吞吐量    |    问题出现量
>
> 效率 ←------------+--------------→ 质量
>
>             需求响应时长  |  问题修复时长
>
>                                   ↓
>
>                                   时间

* Dora的DevOps核心指标
  * 部署频率(Deployment Frequency):响应时长。
  * 变更前置时间(Lead Time for Changes)
  * 变更失败率(Change Failure Rate):问题出现量。
  * 服务恢复时间(Time to Restore Service):问题修复时长。

吞吐量统计就会变形。

## DevOps三步工作法

* 从左到右,快速流动
* 从右到左,快速反馈
* 持续学习与实验的文化

DevOps没有特质方法论,三步法是精益的老生常谈。流动是精益。反馈是敏捷。学习与改进也不是原创,也是敏捷原则之一。

不是原创,但三步法挺好。梳理价值流,从代码改动到上线,看修复时长等。


## 核心策略

1. 小批量持续流动的流程
2.
综合手段保证质量和安全
   -
各种各样的测试
   -
左移+右移
   -
开发人员+测试人员
   -
自动化测试+人工测试

3.
细粒度、低耦合、可复用的架构
   -
软件架构
   -
测试脚本与测试数据的架构
   -
组织架构

4.
自动化与自助化
   -
单项活动的自动化
   -
流程的自动化
   -
自助化

5.
加速各项活动
   -
提高硬件能力
   -
考虑并行处理
   -
避免重复
   -
只关注增量
   -
使用缓存

6.
及时修复
   -
通知要及时和精准
   -
优先处置
   -
修不如退
   -
便捷排查

7.
完备记录,充分展现
   -
跟踪事项,记录执行
   -
版本与配置信息
   -
关联关系

8.
标准化和一致性
   -
规范可重复
   -
方案收敛
   -
环境一致性

9.
协调完成完整功能
10.
基于度量的持续改进

头脑中有个弦,要做自动化。

## 入行必读书

* 《持续集成》
* 《持续交付》
* 《DevOps实践指南》(特别是第2版)
* 《精益产品开发:原则、方法与实施》

《全程软件测试》

《SRE:Google运维解密》

问答:

关于如何学习:根据实际的工作,选择确定的领域,比如流水线,再去做相关的学习。

关于DevOps教练:为组织服务的团队,做工具,就是搞DevOps的。有了工具之后还需要方法和流程,比如相对统一的分支策略、发布流程,需要统一的人来协调,不要太百花齐放。这时候就有DevOps教练。敏捷的工程教练也可以说是DevOps教练。DevOps教练包括工具和方法。进驻到项目,一起工作一段时间。做开发平台,做培训分享。

道与术:道术法器用。

DevOps人员占比:100比几万研发。小企业偏向开源,大企业偏自研。

转型:测试、工具开发、配管、有开发背景的Ops、开发人员、只要更软件沾边的,都可以转DevOps。

如何评价一站式平台:是方向。不过拿开源工具攒,比较费事。

DevOps甩锅现象?目标是避免甩锅,让大家有良好沟通的环境,不担心被指责,分析问题根因,避免。

DevOps认证:更推荐企业认证。

chatops:代替不了DevOps。IDE作为DevOps入口是有前景的。gitops是解决特定的问题,也不能代替DevOps。

反馈:从价值流的每一步都有对前一步的反馈,是普遍适用的。

小团队:投资不能太大,可以买一套平台,azure或国内的。如果只搭个Jenkins,就两天。整套打通可能要几个人月。

著作推介

董越老师的新书《软件交付通识》从头到尾梳理了软件交付过程(也就是从改了一行代码到它发布上线的过程),分门别类地讲解了流程各个阶段的各个要点,以及流程中各个活动的各个要点。软件高效交付的10个策略更是这本书中的核心观点和内容,如果你想快速通读所有10个策略,请关注这本不容错过的好书。

未尽之处,欢迎留言提问。

欢迎打赏,本篇打赏归董老师。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/27849.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

云原生可观测领域的半壁江山,这次被 Grafana 和 Cilium 给拿下了

两个多月前,Grafana 实验室宣布与 Cilium 母公司 Isovalent 建立战略合作伙伴关系[1],希望通过 Grafana 开源的可观测性全家桶组件,帮助各个基础架构团队深度探测 Kubernetes 集群工作负载的安全、性能和相互之间的连接状况。在这之前&#x…

爽翻!Github Copilot X发布,集成了GPT-4,远不止帮写代码

点击上方“编程技术进阶”,加"星标" 重磅干货,第一时间送达 大家好,我是编哥。今天看到Github Copilot X发布,真的不只帮写代码,不信往下看。 Copilot X 的本事,当你选中一段代码,可以…

AI 告诉你 一行代码生成树形结构

一、前言 在我们日常开发中生成树形结构是无可避免的,比如权限管理的层级结构,学校企业的组织结构以及我们日常开发的菜单列表等等。我最近看到过一篇文章,在面试的过程中,会被要求手写一下如何根据扁平的数据结构生成一个树形结构…

巴比特 | 元宇宙每日必读:AI概念股集体大跌、光年之外卖给美团、ChatGPT也涨不动了,大模型热潮正在降温?创业者如何抉择?...

摘要:据甲子光年报道,在高喊“要做中国版OpenAI”之后的第136天,王慧文把光年之外卖给了美团。从整体商业视角看,光年之外被美团收购只是企业间常见的收购动作。但对于国内AI行业来说,这笔收购似乎预示着仅火热半年的A…

ChatGPT来了,全国百万打工人都慌了......

关注我们丨文末赠书 如果说上个月AIGC的热度还只停留在技术圈,那么最近AIGC的影响力已经辐射到普通打工人了! 4月18日,国内办公软件巨头金山正式发布了生成式人工智能应用WPS AI,这也是国内协同办公赛道首个类ChatGPT式应用&#…

BSP按键适配

笔记目录 GPIO按键适配PS:每次修改适配都要再客制化一下,来更新修改。!!!一、GPIO按键适配(Rk)linux键值二、GPIO适配:RK平台(android11)调试:1、adb命令打开…

ubuntu和ros安装后的初始化

huanyu机器人学习,要把代码学会 分区规则:以350G左右为例 找到空闲: ext4→efi 逻辑分区 1G ext4→交换空间 逻辑分区 30/32G(按照内存选,16G用32) 挂载点→ / → 主分区 →100G 挂载点→/usr → 逻辑分区…

AI小作文搞崩科大讯飞股价 科技“魔法”反噬科企

5月24日午后,A股公司科大讯飞的股价突然走出深V造型,闪崩8%。科大讯飞回应称,股价下跌系某生成式AI写作虚假小作文导致,谣传风险为不实消息。 网传的一篇“小作文”谣称“科大讯飞被曝采集用户隐私数据研究人工智能引发争议”&am…

1月安全月报 | 2亿Twitter用户数据被公开;美计划发起“黑掉五角大楼3.0”漏洞赏金计划

目录 国外安全热点 👉安全政策 👉数据安全 👉市场趋势 👉勒索事件 国内安全热点 👉数据安全 👉业务安全 👉移动安全 👉网安政策 为了让大家更全面的了解网络安全的风险&am…

上下文工程:基于 Github Copilot 的实时能力分析与思考

上个月在计划为 AutoDev 添加多语言支持时候,发现 GitHub Copilot 的插件功能是语言无关的(通过 plugin.xml 分析),便想研究一下它是如何使用 TreeSitter 的。可惜的是,直到最近才有空,研究一下它是如何实现…

零门槛复现ChatGPT:预训练模型数据集直接用,包含完整RLHF流程,在线可体验...

明敏 发自 凹非寺量子位 | 公众号 QbitAI 这边ChatGPT、GPT-4等AI大模型和应用打得火热; 另一边“平替”开源复现方案也加紧更新迭代。 这不,“首个开源ChatGPT低成本复现流程”就来了波大更新! 现在,仅需不到百亿参数&#xff0c…

面试的三种形式

对于面试大家都不会陌生,大大小小的面试也都经历过,有过不是很正规的,也有过让自己大开眼界的大型面试,但无外乎三种形式电话面试,共享桌面远程面试,现场面试。但是在这几种面试的场合中,我们到…

shp文件批量导入SDE

仿照ArcGIS的数据导入功能做了个简易的数据导入界面: 需要注意的问题:上篇博文中的要素类导入函数要变成静态函数,不然会报错。原因我想可能是因为非静态函数导入时,workspace与workspacefactory等类型变量未释放,希望…

Oracle 配置Linux环境 ArcGIS Server 64位客户端创建SDE

1. 环境情况 oracle数据库 11_2 g所在服务器环境: Windows Server 2016虚拟机,默认实例orcl ,默认密码orclServer所在服务器环境:ArcGIS Server10.8.1,CentOS7.5虚拟机,64位Instant客户端本机ArcMap10.8.1…

如何快速搭建基于PostgreSQL的空间数据库(SDE)

如何快速搭建基于PostgreSQL的空间数据库(SDE) 1 安装准备 1.1 ArcGIS平台 ArcGIS Desktop 10.5以及ArcGIS Enterprise 10.5。 1.2 数据库 ArcGIS 支持以下PostgreSQL 和 PostGIS 版本。列出的特定版本为支持的最低次要版本,受支持…

SDE数据库解锁

SDE数据库解锁 arcgis sde数据库解锁 方法一:登录修改数据用户,选择数据上层数据集或数据库 选择一行数据右键解锁,shift选择多行数据解锁 方法二:plsql 数据库语句解锁数据库 select * from sde.state_locks; select * from s…

sde用sql实现erase

概述: 本文讲述基于Arc SDE forOracle实现erase空间分析计算。 实现流程: 1、叠加计算 判断叠加,非叠加部分即为一部分所要结果,叠加部分进入第二步; 2、合并计算 根据objectid进行union计算; 3、差异…

SDE常用函数

SDE常用函数 arcgis sde库常用函数:(示例使用Oracle数据库) 1、ST_AsText 返回表示几何的文本字符串(wkt) sde.st_astext(shape) SELECT SDE.ST_ASTEXT(SHAPE) FROM TEXT结果: 2、ST_Geometry ST_Geometry 通过文本(wkt,坐…

Sentaurus SDE

Sentaurus SDE visual

sde方面的一些疑问(笔记)

sde: (1)ArcSDE 服务自 ArcGIS 10.3 起不再可用。但是,ArcGIS 10.3.1 和更高版本的客户端仍可以使用 ArcSDE 服务连接到 10.1 或 10.2.x 版本的地理数据库。 http://desktop.arcgis.com/zh-cn/arcmap/latest/manage-data/admini…