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

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

 找回密码
 立即注册

扫描二维码登录本站

QQ登录

只需一步,快速开始

查看: 255|回复: 0

DevOps 的发展简史

[复制链接]
发表于 2021-12-25 19:35:56 | 显示全部楼层 |阅读模式

) _3 ~% C; I2 G1 |4 q' e$ P
Google DevOps! E. q0 R! B' @0 @! j1 t3 |
当我们在搜索引擎搜索 DevOps 的时候,会出现很多其他的名词,例如,Agile(敏捷开发),Scrum,Lean,Kanban 等等。无形之中增加了我们的学习难度。6 E+ ?; g& E$ |. |4 L
8 |8 r2 i) w9 c
看看 DevOps 是怎么来的?
当我们无法从网上找到一个确切的答案时,最好办法就是看它的变迁史。
* E) ]+ h- l/ F* q* I; T" p2 d. ]
由于 DevOps 是一个系统性工程,所以很难用一句话来说明,即使我们用一句话说明,也很难理解。要不然,也显示不出它的优越性!
0 X7 m1 b% F3 X1 @1 d2 ^
粘贴上传202112251931107601..png

/ J1 v& e. [$ L. p
1948 - TPS(丰田生产方式)0 U7 n  [, o' _3 l- Y, B5 I2 Y2 v' z

! j$ Y3 _1 e$ M& p  n4 E. ^
) P4 u. A2 h7 S+ X
丰田生产方式(英语:Toyota Production System,缩写为 TPS),是由丰田提出的一个整合的社会-技术系统,包含一套管理理念和实践。丰田生产方式为汽车制造安排生产和物流,当中包括与供应商和客户的互动。该系统是更通用的“精益生产”的先驱。大野耐一、新乡重夫和丰田英二在1948年和1975年之间,开发了这个系统。
) o$ r; {3 ~, P. v$ s$ Z% y  f
4 D$ {+ Y' w5 e( `2 Q# m

- O$ X+ V; r2 P4 c! u7 i针对于流水线自动化,工业制造行业是领先于软件行业的。早在1948年,丰田就采用 TPS 模式,与德国大众,美国通用汽车一起成为世界三大汽车制造商。TPS 的核心在于杜绝浪费,简单理解,就是丰田在生产销售的各个阶段做到了成本最优。
/ m* K8 m+ C' K% Q0 h( D) P. I5 B5 `7 z4 n2 U
6 }3 m: g: F8 V; W* I3 L" P1 _' {
其实,软件开发的流程中,寻求的也是成本最优,只不过,我们逐渐把这个淡忘了而已。
1 s* a% v8 y8 a' X- r, ~5 U% f( W" f  f1 E
1960 - Kanban(工业制造)
Kanban 源于丰田生产模式,Kanban 一词来源于日文。随后,在2006年,软件行业中也出现了 Kanban 的概念。
, ^" v0 F/ F% y2 f) S& o5 F
用过一张对比图来看一下 TPS 中的 Kanban 与软件行业中的看板。
) d! f3 _5 |5 ~# H6 E% {1 \
粘贴上传202112251931434487..png

- K9 m. \) t) I) T$ v  K
由上图可见,软件行业中使用的 Kanban(比如 Trello,Jira)这些应用,其实都是来源于 TPS。所以,软件公司里要求员工使用类似的 Kanban,根本原因,不是为了彰显公司多专业,而是从工业领域的实践中来的。
2 l9 T2 ^) g) I* P, H% y- g- F2 M7 s2 s" ^6 F" @2 X4 F

8 {% g5 c0 t; O( i  c+ L5 B当然,工具是一方面,怎么去运用 Kanban 是另一个话题了,只有在工具和运用配合得当的时候,才可以发挥作用,不然 Kanban 就只会变成一个摆设。: M. O$ M! v. D

( z- G. Y; t! w5 N& L8 q
6 \4 }3 v, H) {) `2 U# ]' m
简单来讲,运用 Kanban,我们可以追踪项目进度。
/ L' \& z9 c# I4 o! h
, Y" @  Z$ T( b" Z! i/ a$ K1970 - Waterfall(软件行业)
2 o  b4 W6 e4 ~, g
直到 1970年,软件开发流程一直是一个瀑布模型。这个模型其实很好理解,就是从头到尾一气合成。我们在学校里或者刚开始工作的时候,采用的都是这个模型。有不少小公司,采用的也是这种模型。5 W4 E$ z. }  O) ^

7 R( i* G* O2 y- k6 u3 S& C( L! m
: H8 b( Q# y3 ?& G3 I3 y
粘贴上传202112251932588081..png

1 s5 U$ {! Y. J9 R
, h$ @% y% U2 Q$ ^
/ B" [3 V$ R7 Z) _" b
什么情况下,适合使用此类模型?
. A9 _2 f. ?9 |9 _8 B
+ L+ m5 P  T, l* k  o4 `8 H7 R- k

2 F2 B, W1 R6 q. G瀑布模型已经不推荐企业使用,说的再白一点,如果是团队,就应该避开瀑布模型。也就是说,如果是一个人开发,可以采用瀑布模型,或者是不用后期维护的一次性开发,比如,做一个静态页面的网站。; S( D7 j: h& G
) e' b* \& T- M& T7 ]
1986 - Scrum(工业制造)% i% a9 t7 q( N* @' R

5 d7 C0 P8 t5 P# w( a* D
+ k, D. J! M2 F; r& h7 ~
从单词本身来翻译,Scrum 的意思是争吵。用于开发、交付和维持错综复杂产品的敏捷框架。所以,不是指我们每天做的站会,站会只是 Scrum 的一个体现形式而已。
& r; F1 p/ W( g/ _* K7 f/ l8 h0 L9 q% O( \+ Z
& o$ v$ f. F4 q! N6 o
在工业生产领域,Scrum 体现了一个生产线的流程。在软件开发领域,Scrum 属于 Agile(敏捷开发)的一个方法论,我们会在下文中介绍。
( {& m% }$ Z! Q; A2 o1 _/ d4 f0 e4 d& {/ j/ v! n
) J: W4 E7 @$ U/ T, I
粘贴上传202112251933203145..png

9 @" o2 O8 C; ~! X# N0 O4 Y% d
; H5 ~6 [' z: @) ~. p0 f1991 - Lean manufacturing% x. p% `4 a: S" k

* s6 b% J8 X* N& M4 O

6 }3 |& w6 h. W7 ?精益生产,一种系统性的生产方法,其目标在于减少生产过程中的无益浪费。这个概念也来源于 TPS。简单来说,精实生产的核心是用最少工作,创造价值,是 TPS 的发展产物。+ O% h9 s  u0 Q

9 X  Z1 ~, W2 P/ @7 B6 B% m
1995 - Scrum(软件行业)
8 z+ g( T+ T5 k4 A* p' `& [# T6 y
软件行业中的 Scrum 由工业制造中而来,只一套敏捷开发的方法论。我们在日常工作中遇到的 Milestone,Epic,Spring,Task,站会,都属于 Scrum 里的概念。每个公司都应该有一套自己的 Scrum 模式,而不是去抄袭别的公司的模式,甚至说,一个公司的不同团队,都会有自己的 Scrum 模式,因为团队是由人来构成的,每一个人的能力,性格的差异,会决定这个团队的生产力。

: v& V* m* @6 I) T" w. S' a
粘贴上传202112251934031106..png
1 G" S. w' e1 b" ]$ d7 |$ \+ V9 v# \
1995 - Agile(软件行业)
1 T( p3 Z( T9 @% |! [  P2 _+ S
8 w1 Y' ^1 y4 ~# X0 u% [5 ?

6 z! C7 f1 I3 m2 ?比起 Scrum,Lean 这些词汇,Agile(敏捷开发)应该是在国内听到的最多的词汇。很多我们使用的产品,例如,Jira,Trello,云效,Coding 这些产品,它的核心价值也是实现敏捷开发。
. @! n+ M6 l3 \( y) Y; ?  g: S0 e4 y9 b$ Q( J" b' i+ N
  M% L6 ^7 t! D) h$ n
提到 Agile,不得不提起 Agile Manifesto(Agile 宣言)。在2001年,十七名软件开发人员在犹他州的雪鸟度假村会面,讨论这些轻量级的开发方法,并由Jeff Sutherland,Ken Schwaber和Alistair Cockburn发起,一同发布了“敏捷软件开发宣言”。8 P, g! l/ ^( n1 M/ L, u
. m% Q% [0 h, E1 m2 |- |( {9 M
0 g. i3 W: {, R# P% D% K: @( C
粘贴上传202112251934284705..png

) w& V0 I$ c8 ]1 H- E/ ?9 {
0 z* X; t9 _" \3 ~! T9 I
现今的 Agile 的内容已经丰富了很多,不过在当时,Agile 宣言的主要内容如下:
  • 个体和互动:高于流程和工具。
  • 工作的软件:高于详尽的文档。
  • 客户合作:高于合同谈判。
  • 响应变化:高于遵循计划。

    1 V( C4 h8 S7 ?. ^3 ?& ^
一个模凌两可的解释,对不对?

2 G3 a/ A9 k0 `1 b
说的白一点,Agile 注重团队协同。这不就是公司内部一直在宣传的口号吗?
, P+ u& E& K8 N
2003 - Lean(软件行业)

* D5 a3 f* |! n% M# [3 D) H: w$ t4 L! B
0 [1 S5 Q, p6 g( j! B5 n( h( [9 O# K
直到 2003年,Agile 框架中,除了 Scrum 方法论,又添加了 Lean 方法论。上面我们提到,Lean 就是使用最少的成本,达到目的。
  • 消除浪费
  • 增强学习
  • 尽量延迟决定
  • 尽快发布
  • 下放权力
  • 嵌入质量
  • 全局优化2 K& P* i3 k2 A  @; M) X5 c

( T1 H, y, |) D) {
7 {$ h9 r; ^) o  `, L( k
由 Lean 方法论,2011年,又出现了 Lean Startup(精益创业)的概念。
) g1 C) y8 f* C4 u

4 c; R; i8 M: U7 M) t0 ?; q4 [$ x2006 - Kanban(软件行业)
  M# @$ [& I' z; m4 V- j3 o8 X7 m  z! N* D  |  E
7 ^! ~# C3 Z0 l5 T+ K% z- P
在 2006年,软件行业也开始大规模应用 Kanban 模式,也出现了相应的 SaaS 服务。国内现在也已经普及了 Kanban 模式的使用,不过,大多数情况,并没有应用的得心应手。Kanban 的存在很多时候,都是在应付每周一次的例会。( H! @; Y- D8 r# e' F

3 q8 P1 F/ n- N! F. Z
2009 - DevOps(软件行业)

  R9 k. b% ~, q: `+ M4 F
直到 2009年,DevOps 的概念又悄然升起。DevOps 并不属于 Agile 框架。如果去搜索 DevOps 概念,每一个大公司都会给出一个自己的概念。
. f2 o3 _/ q, a7 D! d' m' q
简单来说,DevOps 是一个企业的生产文化,是 Agile 框架的一个补充和拓展。
DevOps 与 Agile 有什么区别点?

6 I$ H. Q# R5 c: T# G$ P8 L# v, l
我们会在后续的文章中,详细介绍这两个的区别点。这里我们只给出一个简单的介绍。

' y- c' ^7 c4 j$ A( z2 D6 M% D: c" g$ ]
粘贴上传202112251935074150..png
6 S7 G+ U) T' T. u) m/ g+ Q
2014 - ChatOps(软件行业)

7 V5 `: \+ Z  q: B6 i6 r% W4 S7 L# d6 f& |* j

7 a( o. j: x! s! J! ?* t" x2014年,ChatOps 又从 DevOps 里衍生出来。ChatOps 是一种协作模型,它将人员、工具、流程和自动化连接到一个透明的工作流中。, c. B! v  L, m2 F

. g. {# A2 A1 H* R; c9 c

% z# a6 K* e  h不好理解对不对?简单来说,就是通过 Chat 模式(使用企业微信,叮叮,飞书,Slack)等工具 + 后台的机器人,以聊天的模式完成工作流。
$ q) ]+ O- Y3 Q) E$ c3 o. U1 G7 b/ z5 x& g) e; B& Y* g# {

4 K# s1 ?5 l$ t5 N举个例子:
1 {, D; B; q7 {- w0 V4 k( A; S$ _, s+ a: P6 \+ b
1 h' I* h+ a( d
我在 Git 上提交了一个代码,这时候,后台机器人会自动往企业微信群里推送一个Git commit信息,你需要回复同意构建/部署,才会进行到下一步。% m, C! r; F% g% ^( ]
& s5 y, _+ V& ?" p' |) _5 ?4 |3 {' I
! ~$ x, r2 J! F! k
这也是为什么 Slack 等工具里,经常出现 bot(后台机器人)等产品的原因。其实也好理解,自动客服也是类似的原理。
6 K1 I2 A6 D+ f3 k
5 ^1 g7 v5 r, rGitOps* r7 X. L+ q4 [/ m

% |  C$ x7 I. w2 }5 z% M5 Y

$ A! T- Z- `+ t6 m! R. ?: I' B2017年,又出现了 GitOps 的概念。GitOps 是一种为云原生应用程序实现持续部署的方式。它通过使用开发人员已经熟悉的工具,包括 Git 和持续部署工具,专注于在操作基础设施时以开发人员为中心的体验。
6 B& L: U- `1 ^/ }
# r+ D- C% m" }0 qFinOps
0 {* u; A- `" Q3 @0 j+ ^, z- F) Z; U2 P: t4 x" k
) J7 l: [& R- n
FinOps 是“云财务运营”或“云财务管理”或“云成本管理”的简写。这是一种将财务责任引入云的可变支出模型的做法,使分布式团队能够在速度、成本和质量之间进行业务权衡。2 W' }4 j9 f% C1 d2 [: c
: p. r8 u$ I* A
AIOps5 o1 p, P2 C5 E; x- N; a* m/ n

2 }, M) u+ s( _+ W$ T到现在为止,没有达到规模性应用,还处于孵化阶段。说白一点,就是要把 AI 技术放到运维当中。
# ~5 m$ r9 ?7 M0 u5 {8 U5 f) }$ ?! R" U( M  ]$ j' a
, ]7 d6 b0 n. h* }3 `
结论
在这里,我们只是简单的回顾了一下 DevOps 相关的历史变迁,没有涉及到概念和核心。
在接下来的文章中,会继续介绍。(转自dongxuny)

4 R1 k3 _  X8 M4 R




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

本版积分规则

参加 ITIL 4 基础和专家认证、长河ITIL实战沙盘、DevOps基础级认证、ITSS服务经理认证报名

QQ|ITIL先锋论坛 ( 粤ICP备11099876号 )|appname

GMT+8, 2022-7-5 14:54 , Processed in 0.117542 second(s), 32 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

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