请选择 进入手机版 | 继续访问电脑版

ITIL,DevOps,ITSS,ITSM,IT运维管理-ITIL先锋论坛

 找回密码
 立即注册

扫描二维码登录本站

QQ登录

只需一步,快速开始

查看: 395|回复: 0

DevOps 的发展简史

[复制链接]
发表于 2021-12-25 19:35:56 | 显示全部楼层 |阅读模式
6 f2 N3 ~. }4 r5 R9 P) z
Google DevOps
: \  P! V% [. k% M当我们在搜索引擎搜索 DevOps 的时候,会出现很多其他的名词,例如,Agile(敏捷开发),Scrum,Lean,Kanban 等等。无形之中增加了我们的学习难度。
  d, q+ }( R) S* w3 L
$ ~+ R8 x! Q4 n- p
看看 DevOps 是怎么来的?
当我们无法从网上找到一个确切的答案时,最好办法就是看它的变迁史。

0 [) h( P' R, e; `  W+ h& t
由于 DevOps 是一个系统性工程,所以很难用一句话来说明,即使我们用一句话说明,也很难理解。要不然,也显示不出它的优越性!

2 Y: H, ]  f- V% @( }$ N
粘贴上传202112251931107601..png

  D* Q7 U" C2 p7 d5 b7 m' u
1948 - TPS(丰田生产方式)( c$ ]1 \% c2 l/ J9 L

- f* i" R' y! e  @% U4 p+ g
; x: i1 p0 T) }9 V  E
丰田生产方式(英语:Toyota Production System,缩写为 TPS),是由丰田提出的一个整合的社会-技术系统,包含一套管理理念和实践。丰田生产方式为汽车制造安排生产和物流,当中包括与供应商和客户的互动。该系统是更通用的“精益生产”的先驱。大野耐一、新乡重夫和丰田英二在1948年和1975年之间,开发了这个系统。
6 {1 t( \% R% o9 Y# s- }* M8 w0 |3 a8 @# D8 ~) W& ~1 a
# b0 q. |4 V7 U# L* s' d( }
针对于流水线自动化,工业制造行业是领先于软件行业的。早在1948年,丰田就采用 TPS 模式,与德国大众,美国通用汽车一起成为世界三大汽车制造商。TPS 的核心在于杜绝浪费,简单理解,就是丰田在生产销售的各个阶段做到了成本最优。2 Q+ c) J+ [9 h) l7 x
: N6 w$ c; y) i

: h: \( a4 b& q8 n* m, }" O: S, |% {其实,软件开发的流程中,寻求的也是成本最优,只不过,我们逐渐把这个淡忘了而已。
) s( @5 d' w9 x: W) u; k6 L/ H% `# F3 T' I& @, a
1960 - Kanban(工业制造)
Kanban 源于丰田生产模式,Kanban 一词来源于日文。随后,在2006年,软件行业中也出现了 Kanban 的概念。
2 Y5 r. u: _1 u# g$ D( l6 K% u. Z
用过一张对比图来看一下 TPS 中的 Kanban 与软件行业中的看板。
; b5 v% @: U( a9 v" \
粘贴上传202112251931434487..png

( g0 _; T6 a9 M" J! T, D
由上图可见,软件行业中使用的 Kanban(比如 Trello,Jira)这些应用,其实都是来源于 TPS。所以,软件公司里要求员工使用类似的 Kanban,根本原因,不是为了彰显公司多专业,而是从工业领域的实践中来的。
! B- i+ x5 s! B- C
+ V: K- M% G$ Q" k
/ w! s+ k# P& x) Z! D
当然,工具是一方面,怎么去运用 Kanban 是另一个话题了,只有在工具和运用配合得当的时候,才可以发挥作用,不然 Kanban 就只会变成一个摆设。. P: w6 [7 Z* Q7 @6 ^2 }

  {- ?) ^( N" S; d2 d
0 [- k1 h$ w  A, }) @0 S
简单来讲,运用 Kanban,我们可以追踪项目进度。' s" e  a6 Y. f2 i$ D  x: x0 ~
; h6 i; R; Q2 g$ e& S
1970 - Waterfall(软件行业)
: D. Y7 v8 Y' E+ n. `9 d8 r
直到 1970年,软件开发流程一直是一个瀑布模型。这个模型其实很好理解,就是从头到尾一气合成。我们在学校里或者刚开始工作的时候,采用的都是这个模型。有不少小公司,采用的也是这种模型。5 s% F, t2 L( d- V3 S" E

5 G2 ]3 a% U* A+ |0 v; B) ~
1 N& S7 L! P$ v0 A
粘贴上传202112251932588081..png

* l7 z! O5 d: h$ n8 \7 c6 u7 H/ G" R8 W. X$ j. S9 G6 L

) R8 ^8 ~2 u9 X* b" f# l什么情况下,适合使用此类模型?4 `* u( G: Y$ W8 ^: N
3 k, E0 u  U. ^. ?# R$ G

. d6 A+ k% c( K2 a' o+ i4 M# O! G瀑布模型已经不推荐企业使用,说的再白一点,如果是团队,就应该避开瀑布模型。也就是说,如果是一个人开发,可以采用瀑布模型,或者是不用后期维护的一次性开发,比如,做一个静态页面的网站。& a, Q2 L. X- h

1 |1 O" p( b- M& m7 ~/ ?1 ]1986 - Scrum(工业制造): z- e  m& D9 \2 ?2 M5 L

8 Z1 v1 ^9 }$ A
0 Y4 @: |3 w/ X. G' ]
从单词本身来翻译,Scrum 的意思是争吵。用于开发、交付和维持错综复杂产品的敏捷框架。所以,不是指我们每天做的站会,站会只是 Scrum 的一个体现形式而已。
$ d$ K9 ?8 l3 [' \# |& v' h. ]& k+ Y; M# I0 V

8 u0 q. P5 n) ?+ |& h4 D, w5 j: U在工业生产领域,Scrum 体现了一个生产线的流程。在软件开发领域,Scrum 属于 Agile(敏捷开发)的一个方法论,我们会在下文中介绍。' \* `* r6 D5 w3 Q* g
, U+ N6 ?  A( ~) A( C- y' a4 w3 Y' b) j
2 V3 e4 b( @$ O/ l& e( i" V
粘贴上传202112251933203145..png

2 R7 B+ }7 |; T$ V/ l2 s
: }* G* ]0 @0 V1991 - Lean manufacturing$ ?; U( z' V( m5 y* @: O
. ]' ]1 a3 l) C% F% t, O

% J/ V% h6 E9 V( `" p9 Y精益生产,一种系统性的生产方法,其目标在于减少生产过程中的无益浪费。这个概念也来源于 TPS。简单来说,精实生产的核心是用最少工作,创造价值,是 TPS 的发展产物。- r3 o8 k& _! K
0 r+ d0 b! M' u8 H
1995 - Scrum(软件行业)

9 Y/ K0 v  E+ O) n/ t2 F, ^; a
软件行业中的 Scrum 由工业制造中而来,只一套敏捷开发的方法论。我们在日常工作中遇到的 Milestone,Epic,Spring,Task,站会,都属于 Scrum 里的概念。每个公司都应该有一套自己的 Scrum 模式,而不是去抄袭别的公司的模式,甚至说,一个公司的不同团队,都会有自己的 Scrum 模式,因为团队是由人来构成的,每一个人的能力,性格的差异,会决定这个团队的生产力。

  J6 B+ p( `* L& K5 H7 {' a
粘贴上传202112251934031106..png
8 l1 a* l& r$ m( j8 I- {/ S
1995 - Agile(软件行业)4 F, Z: g+ f3 Q* x3 Q1 K+ r: l
, ^+ k& }' ~" v1 x
. Y5 D3 |8 q+ {, x- X/ _
比起 Scrum,Lean 这些词汇,Agile(敏捷开发)应该是在国内听到的最多的词汇。很多我们使用的产品,例如,Jira,Trello,云效,Coding 这些产品,它的核心价值也是实现敏捷开发。/ L- e4 N8 Z, @5 A. J

  h( K/ |. h; ]* F) k# |4 g

. \8 [0 I; }, T, k; C( \5 `提到 Agile,不得不提起 Agile Manifesto(Agile 宣言)。在2001年,十七名软件开发人员在犹他州的雪鸟度假村会面,讨论这些轻量级的开发方法,并由Jeff Sutherland,Ken Schwaber和Alistair Cockburn发起,一同发布了“敏捷软件开发宣言”。, H# v% j5 V* B, n8 D# g
  W) @" d, ~8 w& q7 W4 l; P

( F0 B/ R# f- D* }* S
粘贴上传202112251934284705..png

. p- n. q; H  M5 t" V* p1 ?& |: N1 R, @
现今的 Agile 的内容已经丰富了很多,不过在当时,Agile 宣言的主要内容如下:
  • 个体和互动:高于流程和工具。
  • 工作的软件:高于详尽的文档。
  • 客户合作:高于合同谈判。
  • 响应变化:高于遵循计划。

    ! L& U# s7 O1 I0 f8 I1 J
一个模凌两可的解释,对不对?
$ f$ r8 p# S+ K2 ~0 h8 C
说的白一点,Agile 注重团队协同。这不就是公司内部一直在宣传的口号吗?

% X# @' @0 i. j' n' X; ~- k2003 - Lean(软件行业)
, }: O1 O$ d! ^6 {
' l2 ?( T( v. \1 d

5 \9 A% j$ d" H' Y7 w$ ^直到 2003年,Agile 框架中,除了 Scrum 方法论,又添加了 Lean 方法论。上面我们提到,Lean 就是使用最少的成本,达到目的。
  • 消除浪费
  • 增强学习
  • 尽量延迟决定
  • 尽快发布
  • 下放权力
  • 嵌入质量
  • 全局优化
    ' @8 S/ [2 j+ L4 _* g

* Z! f4 _5 ^; I' Z3 e8 w. G% i( `) `

: O1 @: }) y- u+ c9 `9 a  W4 l) Q由 Lean 方法论,2011年,又出现了 Lean Startup(精益创业)的概念。
$ T8 Q2 K8 X" h6 x2 m0 }
" o  l% F' ~5 _% x" ]. @% P7 E  U
2006 - Kanban(软件行业)1 `* s5 h* P3 v4 p0 q+ t
2 |' O# q/ J9 X1 Y0 u: J5 K

; I$ B7 `+ c: d9 `( v- t! R在 2006年,软件行业也开始大规模应用 Kanban 模式,也出现了相应的 SaaS 服务。国内现在也已经普及了 Kanban 模式的使用,不过,大多数情况,并没有应用的得心应手。Kanban 的存在很多时候,都是在应付每周一次的例会。
. D0 r/ i/ J' n9 N; E
" \! e& x' ~' z7 U; s; D2 l8 z
2009 - DevOps(软件行业)
8 Z& w9 z' M8 j% D/ s7 n1 E
直到 2009年,DevOps 的概念又悄然升起。DevOps 并不属于 Agile 框架。如果去搜索 DevOps 概念,每一个大公司都会给出一个自己的概念。
! d5 m: [* G, X/ ~+ l
简单来说,DevOps 是一个企业的生产文化,是 Agile 框架的一个补充和拓展。
DevOps 与 Agile 有什么区别点?

! U% M7 F7 B+ d
我们会在后续的文章中,详细介绍这两个的区别点。这里我们只给出一个简单的介绍。
" l" s: W' e! l
粘贴上传202112251935074150..png
8 y* j  Y+ C* W* g7 R5 z' Y
2014 - ChatOps(软件行业)

3 e' s9 D0 v2 d" Q1 ?8 H+ I! @7 s' ]& z% E1 C/ L9 [0 V% _
$ m+ `+ b8 h( p. [5 v. p( z4 U
2014年,ChatOps 又从 DevOps 里衍生出来。ChatOps 是一种协作模型,它将人员、工具、流程和自动化连接到一个透明的工作流中。6 F- v* P$ P! ]: H1 s# j5 p! F+ g! _! r

/ i3 J! G4 @/ ~9 V0 L$ M/ A3 M

4 d4 d2 V( I4 ^( d$ H不好理解对不对?简单来说,就是通过 Chat 模式(使用企业微信,叮叮,飞书,Slack)等工具 + 后台的机器人,以聊天的模式完成工作流。
; S( a9 R3 m# l
! `; H  B7 {4 w* J4 Q9 h! c
& `) r6 }" P" h* e; o
举个例子:$ U/ g- F: v3 ~" c/ x% a3 Z
! T% x+ U5 z: a+ M- e+ Q
4 e  {% P( @) Z7 C
我在 Git 上提交了一个代码,这时候,后台机器人会自动往企业微信群里推送一个Git commit信息,你需要回复同意构建/部署,才会进行到下一步。1 ]  @  ?3 U: d! G
4 m6 j9 o9 s/ O

; C" V0 j7 k3 E7 `2 w; Z这也是为什么 Slack 等工具里,经常出现 bot(后台机器人)等产品的原因。其实也好理解,自动客服也是类似的原理。; _) X3 x! P/ L8 R0 w

% A: R2 l+ C$ g' ^5 KGitOps
1 |) p& r' k( x. X' \# m$ `$ @/ `7 Y( W3 d) Q+ K
3 k1 S/ b1 M3 S+ `
2017年,又出现了 GitOps 的概念。GitOps 是一种为云原生应用程序实现持续部署的方式。它通过使用开发人员已经熟悉的工具,包括 Git 和持续部署工具,专注于在操作基础设施时以开发人员为中心的体验。: Y% |! Z; K2 D9 D- r9 k
8 a  P* `2 I8 R& G3 t$ E7 J7 _$ ]
FinOps7 r& i$ S" }. r6 N
" P" a; M1 r% ]+ t& O2 m# a7 c

$ c+ _7 ]8 ?( v9 P6 `" CFinOps 是“云财务运营”或“云财务管理”或“云成本管理”的简写。这是一种将财务责任引入云的可变支出模型的做法,使分布式团队能够在速度、成本和质量之间进行业务权衡。
$ r( N- {& k4 d' R# T5 Y
" f- o9 E: A. ~AIOps; g8 z' p, m, v
5 u( D, n# ]: W9 K0 T; {# N5 w7 p
到现在为止,没有达到规模性应用,还处于孵化阶段。说白一点,就是要把 AI 技术放到运维当中。
& a5 Z  v* H; t" D6 l% m' H( n7 w( y/ D
' s2 |& @+ X: k- t7 {0 r+ f
结论
在这里,我们只是简单的回顾了一下 DevOps 相关的历史变迁,没有涉及到概念和核心。
在接下来的文章中,会继续介绍。(转自dongxuny)
/ ^1 n2 Z& {: @: j1 M  `. Y- g  ^




上一篇:什么?DevOps 已经是哲学啦?
下一篇:2021年你不能错过的 DevOps 趋势
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

参加 ITIL 4 基础和专家认证、长河ITIL实战沙盘、DevOps基础级认证、ITSS服务经理认证报名
ITIL(R) is a registered trademark of AXELOS Limited, used under permission of AXELOS Limited. The Swirl logo is a trademark of AXELOS Limited, used under permission of AXELOS Limited. All rights reserved.

QQ|ITIL ( 粤ICP备11099876号 )|appname

GMT+8, 2023-1-28 02:08 , Processed in 0.146374 second(s), 30 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表