本帖最后由 adminlily 于 2020-3-9 15:04 编辑
+ Z! L6 W7 O, W" \" P
. r9 } {& ~+ t! r: Y( `, fDevOps如今是最热门的IT开发运营模式,根据DevOps研究组织Dora的调查报告,DevOps的实践在各个行业已全面展开,但在具体落地中,各企业仍困难重重,或是偏离了DevOps的方向,历经多年都不得其门而入,或是小规模的试行获得成功,但大规模的推行进展迟缓、效果不佳,诸如此类。
5 h* k1 N2 y0 j6 x( c
6 g) K" d: ]& m1 L+ t5 e企业DevOps实践,成功的方法很多,但失败的方式更多,其根本原因是DevOps实践自身是一个系统化的工程,对于企业来说,是摸着石头过河,已有的成功经验复制难度高。企业或期望DevOps实践短期内带来足够可观的效益回报,或期望DevOps的实践转型一蹴而就,忽略了企业的现状基础和DevOps实践的客观过程,缺少符合企业现状与特点的DevOps实践内容与演进路线的设计。
5 W& C' Q" \( A4 k% y $ O4 G4 s' W9 T# m0 I
那么,企业究竟如何开展DevOps实践,才能更快、更好、更有效地推进落地,充分享受到DevOps实践带来的业务价值提升?通过多个DevOps实践规划参与,对比不同企业的DevOps实践落地提出影响落地的关键因素,并基于此提出DevOps实践落地路径建议。 影响因素 4 p8 t. B! X! p0 h/ B! ~
DevOps落地实践关乎业务,源于对IT组织研发、运维、运营服务能力提升的诉求。因此,IT组织的研运能力提升是DevOps实践的内因,而业务发展变化则是DevOps实践推进的重要外因。业务、IT组织与DevOps的关系如下图所示。
9 s( O& p6 P( p {2 D i
d& L, a! q5 @9 z0 ] 6 l+ P! N5 [" J
DevOps对于研发效能的提升,可通过逐层的能力传递最终服务于业务竞争。
' B) x" N9 U9 |5 l& v" ~! J. F: q; _9 x# y% D
01 业务因素
) s6 c* g; r( X, [& G* x: S4 R, Q
在DevOps实践中,业务因素相对来说仅为外因,但在现实过程中,其往往成为推动企业开展DevOps实践的第一核心要素。因为企业在当前数字化转型的热潮中,业务的开展越来越多依赖业务系统,而业务系统的快速迭代与高质量交付又依赖于IT组织的研运能力。而DevOps实践,是当前已证明最有效促进持续交付能力提升的方向与方式。
; C G2 ]) K0 t- F业务越具有如下的特征,其企业对DevOps实践的需求越强烈,也越紧迫,更应该及早的开展。 9 G+ N$ E9 t" h+ u: Z, ~* z* f
业务服务模式:业务服务模式以线上模式为主,或线上模式所占比重逐年上升。 ( e7 l0 h) A" d" J
用户群体:用户群里以C端用户为主,或以互联网方式的B端用户为主。 8 t5 j. v1 w2 c: I- h" v6 S2 O
业务变化频率:受市场或政策影响,业务变化频繁,需及时调整应对。
' Z; [) E8 |2 C$ I- A, I业务连续性、可靠性:业务的连续性、可靠性要求高,任何业务中断都会带来较大的损失。 9 B7 P7 {' \4 M; M$ a2 A2 Q- d9 `
行业竞争性:行业竞争充分,持续的业务创新有利于提升企业竞争力。
( y. L, U) J y+ j! g9 W( W
& Z+ D! z; u+ M' o02 IT因素 , W4 ?2 c4 Z1 l) k# ]+ c; v
IT研发、运维服务能力现状是推动DevOps实践的内因。狭义的DevOps用于承载企业IT部门研发侧支持,而广义的DevOps则涵盖企业IT的研发、运维乃至技术运营等业务,当前DevOps的实践主要都集中在研发侧。
2 f) p! R$ c4 k企业在研发侧的支撑能力、标准、质量,也并非白纸一张,现有企业大多仍是按需求、开发、测试、运维的划分阶段管理,长期以来研运支撑都是烟囱式建设,导致对于研发、运维的支撑一直难以形成合力,即使建设新的能力,也只是在树立新的烟囱,业务流、数据流难打通,难持续演进。
$ \; a* H2 U* _' |$ HDevOps相对于IT来说,一方面是治理,另一方面是创新,IT的如下因素,对于DevOps的实践落地推动具有较大的影响。
, l# f) E% D( NIT现有与业务要求的研发效能差距,差距越大,越急需。 / f$ l, ^) B9 y
IT管控诉求,精细化管控诉求越高,越必要。
( s n! S# M; n3 }& M9 P
IT团队规模,规模越大,越有价值。 $ k) c3 {! ~* D* J+ P6 j* J
IT工具链缺少或烟囱式建设越明显,越必要。
% M } U; h0 G! e# j演进路线 k, o* B: u0 N% P: L. l
对于DevOps实践上,Dora曾经提出过五个阶段的指导,如下图所示: % l) c0 r2 q1 Y: M# C
- M6 k5 r! F5 e: G9 H, c; R
9 M" \9 M) F4 {) z2 T( c* x) S; T" J
, d- e' `, `* i1 f( @9 |Stage 1: 规范化技术栈 3 q- u0 }8 }. p
Stage 2: 推进标准化&降低不一致性因素 + x u7 q! Y( j8 q- L
Stage 3: 扩展DevOps实践
! B# L& B6 g$ F/ D* ~1 x7 V
Stage 4: 自动化基础框架交付 - l3 x% n5 Y; O% L5 e# L% X
Stage 5: 提供自服务能力 # b$ F& A+ {4 H: q# x* n8 G1 i
该指导中特别强调构建标准的技术栈,认为它是Stage 1的关键因素,同时是Stage 2中的实践内容,也是Stage 3的关键因素,是一项需要持续实施的实践要素。
0 Q" T6 _& d- |5 ~' m标准化的技术栈有利于降低DevOps实践的难度,但从企业的长期过程来看,实现的难度极大,不太现实;因此,我们建议DevOps的实践要基于异构体系,朝着一站式、企业级的方向,其更符合企业采用技术的演进现状。 DevOps实践演进建议
V" u# S) L3 J9 A
DevOps实践的演进要从目标定位、建设方式、实践过程等方面进行综合设计与推进,各方面的建议分别如下。
$ z$ C4 h4 c' w% Z 01 目标定位
: u" P/ k7 a- b4 I) k, l5 f
DevOps实践是一个体系化、持续化的工程,不是一次性的项目建设,不可能一蹴而就。企业DevOps实践的阶段性目标规划既重要又必须,虽然不同企业的最终目标类似,但由于业务、IT的现状不同, DevOps实践的阶段性目标必然会有所差异。
& J$ c4 V X. _- E; O: v 0 j" t$ _4 h0 O: R- `
企业DevOps实践的阶段性目标规划,需要依赖于企业的IT基础实力,例如组织、制度、协作模式、人员能力、研发模式等,结合业务保障与IT基础条件,合理的DevOps实践阶段目标。 0 }1 D6 t ?- ^! q
3 j; x% l; K0 {
一般来说,可将企业DevOps的整个实践过程划分为自动化、数字化、一体化三个大的阶段。 9 F8 |" C. ~) M- o3 Y% \$ O
3 I' P" |8 U8 a9 i) s% ^, \在自动化阶段,构建DevOps的自动化过程工具链,着重实现DevOps意识提升、研发转型,以及初步的研发效率与质量提升,助力业务发展。
$ S7 A- Z: z6 n9 @$ t) F% U! N 6 B( O; Y4 n: ^2 I1 c* }; r
在数据化阶段,构建面向业务和研发全过程的度量体系,形成持续改进机制,实现研发侧的DevOps的持续优化落地,提升业务竞争力。 % b3 m! |5 o( B; y0 g c
* v2 r# f& M3 O1 e
在一体化阶段,构建覆盖研发侧、运维侧,乃至运营侧的延展与闭环,实现应用系统的生命周期DevOps实践覆盖,推动业务持续创新,引领业务发展。
; A5 ~, ]1 |6 d9 M- i ?7 I D, i
" d. u3 O6 L' C02 建设方式
; |1 ~, W) l% K6 N
DevOps的落地推进,部分企业采用的是来自研发团队的自下而上的方式,个别团队自主引入,效果出来后,再推广到其它团队;部分企业采用统一组织,自上而下推行的方式,企业统一规划,统一建设,应用与团队逐步迁移。
, p. J3 _7 u* ?) F8 H7 _相对来说,自上而下的方式更有利于促进企业级的DevOps实践落地。因为对于自下而上的方式,成功经验带有较为浓厚的团队的特点,工具链以开源组件攒建,工具的体系化程度不够,团队级适用是其主要特点,DevOps的实践也常止步于“自动化”阶段。
8 R# d& R6 ^3 c7 l- _基于此,经验复制、工具复用的方式难以落地,况且IT组织的核心职能是为企业业务提供服务与保障,IT服务业务如纳入IT组织自保障,必然分散IT组织的服务资源,短期内可能有一定的效果,长期看瓶颈明显,投入产出比不佳。 1 T( d( E+ W! _( [
相对应地,自上而下的方式,从规划之初就会考虑到不同IT组织文化、团队技术栈、业务的特点差异,不同职能组织、不同角色的诉求支撑,产出可服务于企业不同团队的平台级的DevOps实践工具、方法与制度规范,避免实践中方向偏离。 # V2 ]) C7 V4 T, h; T; r
y3 E$ C9 A( S03 实践过程 DevOps实践涉及工具平台、流程体系、规范制度、人员能力等方面建设。实践可采用先提升认知后落地实践、先试点验证后全面推开的过程进行。
0 C$ K3 r9 B& Q$ A, b# m+ p$ p / S1 Y* U, j' E) ~8 x+ ^
DevOps的理解与认知
1 A7 M4 `- V# Z1 Y, a2 qDevOps从2009年提出以来,其内涵一直在不断的丰富。因此,对于DevOps的理念与认知,在一定程度上决定了DevOps的执行程度。DevOps的定义演变过程如下: ' G: N2 b) g. t y/ n( k+ T" @+ o
9 @$ y% p5 y; O& Z+ i: K- f( p2 d
, \- T" k7 | H: i6 ]
8 v5 [3 v; _# I2 [& EDevOps的定义不断发展,内涵也在不断的演进。因此,企业的DevOps实践是一个长期过程,是一个会伴随企业业务发展、IT能力提升的长期过程,涉及企业的业务组织、IT组织的协作提升与持续优化。 9 X# L5 Q; k9 J( {
DevOps实践平台
4 }7 [& }& |& |DevOps平台是企业DevOps实践的落地承载,一站式、企业级、可持续演进应该成为平台的基本能力诉求。
' \4 h; g5 M8 G. g. P' sDevOps的实践不是一天完成,同样,支撑DevOps实践的工具平台,也需要持续建设与丰富。厚云薄端的研运中台模式,应作为平台建设的唯一方向,其可有效沉淀通用工具能力,又能通过低成本的方式提升企业DevOps场景变化的支撑诉求。 , ?4 N6 B' T0 Y' J. ~% |
$ w7 R5 L" Q4 eDevOps实践的有序推进 , V) K* c, F, a2 }" Z
DevOps实践的有序推进包括两个方面,一个方面是指面的推广,也就是将DevOps实践推向企业内部的其他项目、其他团队,逐步实现团队敏捷、项目敏捷,乃至企业敏捷;另一个方面是不断加深DevOps的应用,也就是基于DevOps的研发效能持续优化与提升,建立学习型、使命型团队,推进DevOps文化的落地。
8 N( H# k6 Z' @' ^ ! a9 n) x6 r: _1 V; u
总结
! j/ U" [3 E( Z) U& [' S1 W
DevOps自提出以来,其内涵一直在不断的发展与丰富。相应地,DevOps的实践,也会是一个螺旋上升的过程,需要企业持续推进,进而为企业业务发展注入持续不断的活力。 1 G, M/ S u7 G/ M# V
* d9 `! ]. C7 o( P1 Q" R/ M* w. ~" K. W; I0 H
|