本帖最后由 FYIRH 于 2021-12-25 23:02 编辑
% i5 n+ S0 z' j
) j3 A6 o2 Q8 l1 h G7 f整理的重点内容:
: I6 `: k) m7 s0 s+ _$ h( E) f9 b
$ \2 f5 `3 }& W0 m
1、流程线已经改变过一次世界福特在引入流水线生产之后,Model-T 的组装时间缩短了8倍。1.3万名员工生产了30万量汽车,超过了300家竞争对手的总和,这就是效率的神话。 9 d% D' ]4 d& F, z+ Q
不过后来丰田超越了福特,在不确定性越来越突出的现在,单纯的效率已经不能满足企业的竞争,所以精益、敏捷、DevOps 才会出现,继续探索软件开发新模式、拓展效率和质量的新边疆。 * W6 B& w' T! i# U/ p; T: T( |. s
9 X% O7 Q; v" b" Z Q% K, P 2、软件正在吞噬世界
: B8 o* X. E$ x' L这个是共识,这是全人类的挑战和机遇,对我们从事工程效率和过程改进的人来说,不断改进软件交付的方式和效率,没有止境。
$ X* d* K3 _7 `7 z( Y* ?+ a 3、头号需求:业务连续性(不停机)
% S1 p& o& c6 ]各大权威机构对 IT、DevOps、Continuous Delivery 的预测和评估。 5 ^8 j1 }: c, D5 x' f ~
. t& b: D8 d6 d! H" U( E: W5 U/ \2 f
我认为业务连续性也只是其中一项需求而已,整体上来讲,我们要解决的两个问题是:Build the things right and Build the right things。 1 [3 R- h* F) z8 ?0 v( N
从 KK 的 PPT 里获取的信息是,他认为,持续交付和自动化是我们需要的答案之一。
% T2 b1 ?/ W; l" n
3 K& I" I# G: x2 y; v a6 q& ^3 y3 g/ q
4、持续交付框架分析8 `" I: o: ]9 z- d: i6 l ~' L& @0 J
j% k6 s J+ `3 v9 \
KK 的持续交付相关内容梳理的很清晰。这张图也可以说是 DevOps 的管理与工程实践框架。KK 也强调了 DevOps 是一组文化方法和技术实践。
* C, x9 O; V j# j2 ^* t7 k% M. X 4 a: H( k- P% }# x+ T4 W0 m
维度:
' J0 y0 F. k7 e& a. X5 R
阶段:产品定义、计划、编码、编译、构建、单元测试、分析、集成、集成测试、打包、Place、压力测试、验收测试、发布、部署、监控
3 v" A: B0 E' x/ I9 W6 M其中的构建和编译、单元测试并列,不清楚这里的构建表示什么?我理解的构建时编译、打包、或者在加上单元测试、代码分析的整体。自动化构建的目标就是要输出(高质量)可以部署和测试的软件包。
4 i; T9 t9 \/ O2 g& L另外,关于Place也没有找到对应的解释,有点像部署或者分发 环境 开发环境 预发布环境(类生产环境) 生产环境
; O8 Z$ K$ c1 w2 E! i7 Z* m% h4 T0 F关键中缺少独立的测试环境,从图上的分布看,应该是包含在Development中的 方法 敏捷
5 M6 r- u% i+ E P9 f; I「对特性进行识别、排序、调整的增量开发方法」。不太理解,敏捷的具体方法框架有很多,包括Scrum,XP,Kanban(准确的说属于精益方法)。还有 SAFe,Less 等规模化框架。 持续集成; E' b& f8 h& C( }, P
持续集成是持续交付的基础,持续交付是 DevOps 的核心工程实践。非常重要。 持续交付 持续部署另外,红色框的逻辑没有理解明白,有高手请指点。8 P# D7 @8 H2 N/ G
0 _* K, V& d# c2 A6 c
2 ?3 [8 }1 Z; D+ R ~4 a' M f! g
5、生存还是毁灭,你可以选择
# g; n9 d( y# X每年的 State of DevOps Report 都会公布四个关键指标的数据:部署频率、周期时间、部署失败率、故障修复时间。高效能IT组织和低效能IT组织的差异非常大。KK的这两张图也非常形象的说明了这个问题。
2 T( Q$ p5 o$ d- x& P 6、现状和方向6.1 敏捷团队占比
- o, Q/ p, N9 y/ ]% k现状是上游敏捷(管理过程,比如Scrum)的团队占比33%,下游敏捷(持续交付)的团队占比13%。 这也符合国内的情况,很多团队刚开始做敏捷的时候都是从管理过程开始敏捷,大多从 Scrum 入手,但是效果一般都不尽如人意。 9 I% z' l! u) d
我认为持续集成和自动化测试是敏捷的两条腿,想要敏捷跑起来,此二者必须同时建设才能让敏捷体现其快速响应变化的价值。6 x; i2 W8 w0 ]
" B! I, m) F% s/ U G7 n/ h
6.2 非敏捷团队占比6 k' X9 |( \0 |) G7 R3 U
根据 KK 的数据,目前有87%的团队,依然没有实现下游的敏捷,即持续交付和持续部署的实施较少或者不成熟。这会导致价值的交付依然长达数月之久。/ s) f6 h; A: |9 s& [
7 \+ z' f* z7 p- T: S
6.3 成熟度级别
+ i, H* z( W: RKK 将敏捷(CD、DevOps)的级别划分为团队级,跨团队级,企业级。这个和 DevOps 之父 Patrick 的 DevOps 5个精进级别颇为相似。 + v" J7 f& q. @7 G/ @& B; O0 I
企业级的敏捷和 DevOps 还有很长的路要走。企业级的改进需要组织、文化都要共同变化。 - F: ^1 m/ Q) `, o
编者:之前在参加敏捷培训时,老师提到诺西在敏捷方面做的很早也很深入,摩托做 CMMI 和 6 Sigma 也做的很好,但是这些企业现在都不在了。组织、战略、文化的敏捷至关重要。下边的人玩儿的很嗨,只是用正确的方法在做错误的事情而已。颇有感触!
; S9 s5 t# `) C" t$ D, i- b 6.3 改进四象限
E$ X6 L0 Z$ i# {/ M1 a( PKK 基于团队级、跨团队级、企业级以及上下游阶段,将改进方向划分为四个象限。
$ p+ E& e8 b n3 }# Z6 Q6 ?9 I8 ]; J! I
6.4 改进路径与模式
7 u' G P ^3 sKK 基于四象限将改进划分为2条路径和2种模式 0 b9 j K, b2 [3 M0 F! Y
路径一:从团队敏捷到企业级(组织级)敏捷,再到企业级 DevOps $ \, o' |2 W5 d
路径二:团队级敏捷—>团队级持续交付—>企业级敏捷—>企业级 DevOps
1 B, h% I% e) Q( Z! U: |. S
5 K5 o1 [4 f. M3 [
8 O" y3 ?0 Q5 B+ f1 q我所了解的企业,偏向于类似第二种的路径,一开始都在团队级别进行敏捷和持续交付的尝试,逐渐成熟推广复用,规模化。1 K) m5 ^. n& Z4 d; x; i& ]0 C
! u' X3 E. w0 B {: t; g
· 自下而上的改进这种模式应该是比较常见
+ ?& g% Q! K; ]5 \. q
( @4 d2 w0 m* X E' u; U· 自上而下的改进
7 X1 W- i+ ]& u. j: B' C7 UDevOps转型策略 U3 M7 N9 [, [4 c P
KK给出了自己的建议:
% n. o4 s6 k: `* O关于第4点,我个人一直不喜欢考核,尤其是KPI。我希望的是一种能将工程师导向良性行为的评估方式。但是KK提到的可度量,是一种可取的方式,可度量意味着可执行,有目标。 但是度量一定要慎之又慎。一句话:度量改变行为。 7、工程实践
1 U7 n6 v/ F' } T! i关于持续交付,KK重点强调了:A straightforward and repeatable deployment process is important for continuous delivery.
% n- N3 c7 |# K" t/ b, Y& h5 Z 7.1 架构与实现技术7.2 基于Jenkins的CD/DevOps生态系统# [9 B. b; h7 ~# h3 G/ o/ \
1 M9 N' K( Y$ E3 E( `, jJenkins是驱动整个持续交付和DevOps的核心组件。。$ r8 s- s* D1 W3 L- T6 n
/ ^" @8 O6 S. O8 b3 P9 b4 y* L
+ Y4 i4 `! J8 v1 M" \8、DevOps 黄金思维圈 & }& W: b$ N) l( j8 u
以上就是我在研读 KK 的 PPT 过程中的思考和记录,没到现场,所以感觉很零散。恰好最近刚接触一个概念:黄金思维圈,如下图所示: H8 f+ z! H- ]7 }
5 h5 x' V; ~# G, V/ w黄金思维圈帮助我们认知世界,当然也可以帮助我们认知持续交付,尝试分析了一下: 9 K t& w9 ]' b5 N( ^, S- ]7 e
Why:
0 ^) [: }0 Q3 B& G L持续且快速、可靠的自动交付软件给用户: ; E8 S) X- J; q
How:6 r& ?3 b6 V4 M# L
建设自动化、可重复、可靠的持续交付流水线(IT服务供应链)& f3 ?" E% u/ k5 L
主要包括代码管理、持续集成、自动化测试、自动化部署、基础设施自动化管理等方面的工程能力。 . s/ i/ r5 C4 h+ W6 o0 }# C' U0 {
What:
/ v+ ^; m' E" r8 J8 i& T(转自景韵)
+ d0 Y' e% T& V' ^/ N
S$ w2 G- _0 y: `+ W! o9 T
2 L0 Z5 G1 I' k* G3 V# F* a& l; ~- w
/ U# X& d0 p& G& _' E. _ |