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

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

 找回密码
 微信、QQ、手机号一键注册

扫描二维码登录本站

QQ登录

只需一步,快速开始

查看: 2378|回复: 0

深度剖析DevOps系列(4)-- Devops in Cloud

[复制链接]
发表于 2020-3-18 16:13:48 | 显示全部楼层 |阅读模式
本帖最后由 adminlily 于 2020-3-18 16:43 编辑 4 x" O; J. X& B6 y7 ]: j$ Q

# P9 u2 x- m2 U( D8 Y) p

0 B; x1 X0 p- n; D0 K7 |
4 b3 \! G' `5 U5 ?
1.理论基础- ]1 m8 J: \( y+ M+ t
5 I. h  C/ ?, [8 V2 m# l
本篇是基于公司内部的一次DevOps分享,PPT是自己准备的一些内容。4 e1 `4 R' k' c
1 C: W" [3 z/ D6 G
3 d8 Z( p8 D9 `# F) H! r
目前主流的开发模型相信大家都清楚,这边简单介绍一下:5 a% Q* ~( E2 O+ X0 g

4 c0 U" A; R' M/ Y1 T' z
# \3 ]0 Q. S( p/ ?4 Y+ z/ X
• 瀑布开发模型:生命周期很长,一般会完整的走如下流程:需求调研->详细设计->编码->测试->部署->运维,且下一环节需要等上一环节完成后才可以继续进行,往往需求阶段和测试阶段会占据很长时间,且需求调研结束后很少再做修改,因此,在一个长周期的开发完成之后反馈给客户,往往会进行一次较大的修改和调整,后期修改成本及其大。/ @8 s1 U. k( V3 b: M4 D
6 Q7 R$ A9 R/ L5 P; ~! P
7 S) c# W0 V0 b8 x
• 敏捷开发模型:这种开发模式以一种不断迭代的方式缩短开发周期,把一个整体大的需求分成若干小的需求,进行迭代开发,并将产品反馈给客户的时间缩短,不断从客户得到反馈,并且不断修改直至客户满意,这种方式大大缩短了客户和开发测试之间的距离,把修改的成本缩短到一个小需求的生命周期,节省了修改成本。但是并没有解决开发和运维之间的协同合作,因此,DevOps应运而生。
5 U& p# \0 ?" `8 V! ], Z# t& E6 E5 n' t# P$ K( c7 E3 P0 I
* n$ B0 ?, f' P4 V
• DevOps模式:该模式强调一个运维和开发不断沟通的能力环,在开发阶段我们沿袭敏捷的开发模式,在运维阶段,我们强调自动化的运维,并不断讲已经上线的产品中的问题反馈给开发,以进行问题修复。
) ]$ Z' E' Q6 U' M( ^0 ^
" T' i9 Q4 ]" A: s

/ _( g& k& [( F- {我们可以看到,对于一个软件的生命周期,基本流程都类似,只是在各个阶段我们做了不同的优化,而且这种优化也是经历过考验的可以实施的最佳实践。
# r1 x4 N. }  x3 ]6 ^* d
% n4 e; |1 Q$ B/ I: V% e& C; H
1.webp.jpg

) f4 d- H$ n$ @0 E

7 i) `. x4 N: p, ~; F) S. q, F$ Z- I. j- I; g+ u

/ Z" u0 o$ t' I* Y/ o

' h8 m: ]! O; m; i( W/ \2 h1.1 软件工程模型演变
+ \; ~6 M& t# f
: k+ X- @5 v$ W/ @

8 f- o8 l) i$ y6 ~
4 Y$ C' q6 n) n7 H  r  L

, a$ J4 o/ D0 n7 Y! q4 s+ O% S; J1 D7 \  u) ]" s) p! S8 m
2.什么是DevOps
! a" `( I0 j2 {' E' ?

; f; J! m7 R; v: K

" F1 R7 b+ G1 Q3 I% G# ]! Q
/ v0 B' ?2 K: L* _% j4 n0 s4 ^
! {5 w2 m: T  G$ v5 I
那么什么是DevOps呢?有人认为DevOps是运维+开发,有人认为是自动化,也有人认为是Ias,当然,这些认识都是有其道理,也是DevOps中不可或缺的一部分,但大多都是盲人摸象,没有对DevOps有个整体的认识,对于DevOps的认识,! k. B0 t, Q& V8 T
* h8 e+ A5 X8 C
1 l; H  }& [' Z6 E  t4 P& ~2 i" |+ a
请转至第一章:深入剖析DevOps系列(1)  q( ~1 J$ c" U4 D& U

; G. Z8 C2 y, O' ~4 L3 z

& W) B6 }5 `, _8 M" W
1.webp.jpg

) Q7 I& F0 d6 X7 U* }
% b) f! d5 N; O
5 H2 x5 U/ m& T  i- t( a- _
1.2 谁应该关心DevOps?' U+ {4 h8 |/ C8 @& n# g% ~
" j8 z+ f: `" _
' J' O. S- r% m* Y7 N

5 I9 H( J1 [& a; B2 R- l' O  t6 a3.Develop和Operation的历史问题
' o( y3 x( {) n
# q$ i) G9 Z3 ~6 k# J; U4 ^; `; y
/ \7 d- \0 v# n3 V
开发和运维人员素来就被一种叫做部门墙的隐形之墙所隔离,这种问题由来已久,( b+ e3 b- ]3 I% Q

$ r2 M9 f- X( }7 H; f# e9 V* N
0 S9 g8 A; V# p
原因1:开发和运维的目标不一致,开发的目的是不断的增加新功能,不断完善需求,不断发布新版本,总之对于开发来说,唯一不变的就是变化,但是,对于运维来说,首要的问题是要求稳,因为一切问题的来源都是变化。
9 [9 F7 X. `! X/ W( B' o2 V0 |+ Q  q* a

& B: E: H  D5 _2 D3 H( y+ z  n原因2:两个角色所在的部门考核标准不一样,对于开发来说,新开发一个需求考核就递增一点,是个累加的过程;而对于运维来说,即使将发布工作做的极致,起点也只是0,因为,这本来就是运维应该做的,一旦出了问题,便会从0开始递减,是个递减的过程。
0 @. ^0 g  W# \2 ?: V6 V9 F, d
* z' ~8 i* D$ j+ P

$ O# v# D/ Z1 |: `/ }! q
2.webp.jpg

) o/ E. \/ H  v1 I1 Q( T0 f! o- t

7 t% @/ }6 v6 c  L/ C  k4 V

* p% _; y' h3 \( l$ g0 V1.2.1DevOps 是一角色4 _4 ^! H4 \' I( v; ~

; Q1 D$ {+ _& ]- q0 z! Q

- K5 D/ w% d; u/ e" L* z1 u8 c% s" v+ i' h, {
4.DevOps要解决的问题* o+ _  S6 Q5 g9 G* z8 ^+ {
4 c6 L  K5 F% N5 f4 J' v
0 j6 F$ c8 R+ P0 }& u

5 b; \- V; f& e: LDevOps首要解决的问题就是Develop和Operation间的这堵部门墙,一种模式就是借鉴敏捷开发的模型,将运维人员纳入到整个团队,之于团队的定义,就是有着共同目标的一群人
5 u8 ~* W! U- w0 R& g9 V; {, x! k; l: ]

$ S2 H) d/ f: N4 m7 `亚马逊有一种模式,叫做2 pizza team,用2个pizza就能搞定的Team定义为DevOps Team,当然,这个是一种抽象,目前最佳实践的DevOps team比例为1:4:1:1,即一个需求,4个开发,一个测试,一个运维,当然,可以根据不同公司的不同需求做一些调整。
" E+ A- I+ A  Y. e( c1 f! H! I9 w. i  b
: @7 `2 \/ H$ J6 a7 p3 ]' J0 v

2 K+ \+ e0 F. |( `6 g
3.webp.jpg
3 g7 d- c2 k! O" p% z6 g6 t; p5 M" i

: Z8 Y  _( J. i( j& |# c* k/ h

; u. ?6 p- y; M; H' l
# v# g3 ~* S/ ^' ?& \

0 [. F/ V% S, P1.2.2 DevOps 是一种工作方式/ G0 U# g3 G) e2 \

% l; k  X' |8 e, ^5 ^3 A

2 [1 ~) t4 j& G" ~2 y  g4 z! H( j4 ]2 t! \0 ^  a$ v

8 K! l! M! d' ]  Y" u( i$ f  x4 e5 Q- O) S; j1 B% S2 E/ N
5.DevOps遇到的强力阻碍5 ^1 [8 |0 G; W, E

3 J- N' v) Y1 \0 x3 ?: J+ ~5 y
% V2 V* y* B) ~- k8 p  X

" ?2 s' J) D6 O/ U6 Q) H: _
4 f9 c8 @- r  w- w9 p# u
对于现在很多公司来说,存在很明显的责任推脱问题,相互推诿,相互指责,屡见不鲜,对于DevOps乃至整个公司来说来说,这不是一种好的工作状态,所以DevOps强调信任,沟通,相互学习和责任共担。开发,测试和运维之间的各种活动都需要把其他人作为关键干系人,做到测试和运维了解需求,开发和运维了解测试,测试和运维了解开发等等,当然,了解并不是让开发去做测试的事情,或者运维去做开发的事情,我们强调的,是沟通和相互了解~
" r, P# l" A* @# g. ~5 [: V' g$ p9 r- o, K( ?0 S
7.webp.jpg

5 }$ a6 l! q# x1 W6 i% n8 d( F6 R
. F0 j" `, }, \3 |6 d, ?
% w$ [6 [. J: t1 `: u7 s
. b- e! `. {9 h+ a
1.2.3 Devops是一种组织文化
0 a$ z1 K$ c4 f
% @7 }! z2 E9 |6 b) Y
8 \% K) }+ I2 c# D0 |
1.webp.jpg

$ t* H+ b, i# \' N
* z$ C% f8 i4 c
  C* }1 l0 A* v, w: Y7 r2 {

# I) ~2 h" ^# R- [
' i1 T$ H" C& J. U1 V+ Y
1.2.4 DevOps 是一组技术/实践
' ~6 f8 k& V( t/ y# Y1 }5 g- M1 M; H" W  o& z! I+ k2 n
0 ]- G5 I7 f4 n4 n: X4 b3 i( s
2.webp.jpg
; x0 h# O; b/ l$ V# f& i2 B' e# a
: V5 K9 `/ g( ^) p  x

2 _4 p2 N6 f% ]) R) T# b
0 X) S. T' g1 ~6 Z/ q0 x
5 _+ s; b1 c* t8 Q4 m# q2 V' k& D
1.2.4 DevOps 是一组技术/实践(1)
. ~& @" T* q; U# z7 v- b2 ]& d* n* M# l, C: H3 F
$ x% X9 L: N& E& X0 ~2 J' X% V

+ o1 Q0 K: l9 M: u% x5 K3 @
3.webp.jpg

( ?, y7 J8 R* b9 y8 |$ I2 r
% N* |7 N( D0 }5 O: d; @4 ?+ x
7 I4 k! I' x, F; }& O7 e  c, S, O2 q
; R/ I* [" ~, [1 A
1.2.4 DevOps 是一组技术/实践(2)$ l1 {; Y& W& F$ p1 |7 X
  c' W$ Z1 e" M9 A
; h7 X% P; }% \
4.webp.jpg

6 H$ V# _" w+ \3 R0 b

( G$ r" O% O2 s. p1 K' l+ V3 ~" }( {+ E- Z' N
8 [; h, W' u) {8 V/ M0 V

5 c3 s5 j3 N( \5 W/ o- R0 f0 R1.2.4 DevOps 是一组技术/实践(3)
/ @3 i5 H3 U# k- p9 a% J
: E. L4 V7 f: C( ~% ?
) s5 \! E/ r* L% D' C( h0 g* {6 Y: S

5 q% X5 y3 Z+ A: T
5.webp.jpg
: T% E, }7 J" ^, n3 r9 M
3 }: c2 K0 u  P) v+ ~

( p4 V; J. j7 l' Q; `2 G* ~' E

$ x, ~5 T/ I& R, M3 o0 A$ O! F) z1.2.4 DevOps 是一组技术/实践(小结)) @1 K( Y' q( _* y% S

4 p0 C; p: t- x7 k. Y! ^$ L% i0 d. U

  k& F: c) t% X& i0 b
6.webp.jpg

" w; v/ E" r* l* N7 Q/ X2 f9 }* C: x& U
/ G% v2 `* r9 @, i' \

5 P% u# ^1 A+ w* J9 h6 i6 I+ Q+ s+ H  l+ [: O

) m" c. \7 z4 U% t4 T4 t  j: Z1.2.5 小结: 什么是 Devops) c: ?* C9 N) l, h8 P' d
# Q+ |1 [5 E! V, d
3 W5 Z- \+ G' [& ~, b
: E0 D; {$ ?3 n) U

2 f9 q9 c/ ^7 @  y+ `9 z
8.webp.jpg
8 C% B+ K1 P/ a6 p% j( m# v$ I# V, d

5 S- F& @9 q# \

3 [+ Z4 ?! L+ }7 B8 z9 a. r
& N3 F  \/ n' ?, G) n$ r* \8 T% |, N3 T3 C

0 B. ?3 D6 k3 X* Q* ^. j: r2.1DevOps in Cloud(AWS); b7 l* i4 \: m0 ]9 }" Y6 V
2 z* u# k1 {- {0 ~( L+ e$ @  u

9 ^1 b! V* t5 X: d% N  S
4 m2 m' E! K, W$ ~& p# ~
7.webp.jpg

+ Q$ D) i/ L; f4 _6 Q# X9 J& v8 h! E! M" e+ {, {3 u

- a5 G' Z6 @+ N  h7 }$ K3 v
0 i( ^! R, q% _
2.1.1DevOps in Cloud in AWS
% u5 W. E) N" x$ g7 O7 B
1 k( `+ L9 S: x8 @
, ]- ?# `, z1 n0 D! o
, k' z, G  J, x% f* V- ?
9.webp.jpg
9 t% G0 j5 {, ]: L( V
4 `; q" e- K$ c  n) i( Y
4 M9 ~% o$ r1 ?" A9 }8 k: Y  m

% R4 h/ Z! q* w& \( d2.1.1DevOps in Cloud in AWS# |5 E+ ~" n! y) {/ e

) H" k* I5 Y( {* D

5 w9 y$ ]7 z; ^9 U
1.webp.jpg
9 p/ x+ u) u$ v6 @6 Z% U6 X
7 b+ h, X# C5 r; U
( P3 w4 X, p) c! w$ t
( I7 [  a: q2 E

& }1 P9 N* y$ _% i! t2.2AWS 持续集成(CI)模型
. ~5 D/ k& {0 c' z8 l
) n. Q% Q, O- q& S
7 b. y: E$ \( K
2.webp.jpg
) m; u0 V4 e: l; o

6 O" J3 L) u- Y% E0 U. X6 M$ _! w( H# I6 c

, a7 O3 K4 E; C+ {! |2.2.1CI – Code Commit
. s/ E* m( U! N' y9 J: J. R: A7 {: L" P3 W

: G6 M2 |' l- ^# o' _
3.webp.jpg

  ~, Q3 L7 B5 m2 S
0 |: o0 }" l/ N3 D

8 a& Y  B2 B4 e' {2 q' e* ^) H/ h( g
* Q% X4 I2 P, Y- X$ r1 s! `
2.2.2CI – Code Build  }, W/ s! ?; u: ~& J$ Q! p

+ N/ h" g  L) a7 G5 x. m9 C
4.webp.jpg

# o' h$ y* L9 N

8 X4 d' U6 _  O( u; L! p
! T2 H3 v& R- _2 D# k# ]! E
/ G+ B- g9 V7 {" }) F# e
- b* [+ ~0 I. w* j6 k% Y% R

- x% g$ C- N6 h+ p- ]) P2.2.3CI – Code Pipeline6 Z* p' x2 z. P" P/ ]2 S

- s3 O" H  r2 s; ~8 ]

& z& z" Z& a1 j: u3 @
5.webp.jpg
5 d+ @! T9 x* [0 V: A4 U" a

4 ^3 D' ^/ b+ ^
% d1 U  c7 N9 j4 z& y
! S* q  c& M4 L9 N: W/ k

$ ~1 q7 P: x- r& F2.3AWS持续集成(CD)模型# K6 a, l0 Q# K- v3 Z9 G

" g8 r5 m; Y! ?+ g: y
. }- j6 a0 F) x$ g: o4 M1 e
" r1 w' c0 U; @1 [% d' z% g
6.webp.jpg

/ g2 o7 L4 g+ K- k# u9 n
; {) s0 |2 W1 B2 H! D
& Y7 M; D2 Q& O$ B
1 l* }9 q( J+ S5 P
2.3.1CD – Elastic Beanstalk6 h( i0 w9 d# {* z( |; K# t# V6 N2 t
8 r' b3 `2 q6 q! `3 n, p8 j. {4 l
" V# P" g5 D7 z: a' u% K# L+ d
7.webp.jpg
+ K* d1 X1 I, ]9 a
$ |- G3 r5 L( N( Y0 z

1 j; L8 I% [8 v  N) ]
: _5 Z- Z" F! k. M9 x4 z8 Y  A, p
. v5 u% A& V4 D2 Q; l, k. w" p
2.3.2CD – OpsWorks4 v0 g- H/ e) Y" N& R: S7 Q

, L$ V$ T/ U7 y

$ e" H0 u  E6 v7 e2 Z% O( j' ?. U5 p2 z
8.webp.jpg
) U1 G3 S) G8 V) r
2 T) M2 ?2 p; e" E+ y- }' X

# P9 T) f# d- _* r) b
7 c' |5 @8 A9 B4 x: I
2.3.3CD – Cloud Formation; t( K7 M1 F6 \& C

! ]1 `8 R# v: ^# K
+ q' m4 D2 \+ Q& S& [- A1 t  n
1.webp.jpg

0 o; k$ I' B) @/ ?

6 J$ s& ]9 |  g8 G# O
: g; |! p0 N3 d; r5 k9 }5 u8 J3 I/ M* I/ p( B4 n$ p
& j- K6 i9 N! w  V
2.3.4CD - CodeDeploy6 u( Y# F7 u+ U
6 P# A- F2 u0 F7 C5 Z
2.webp.jpg

: V! X# R1 i. y" N
1 ^+ m2 v: p6 r
& ]  C1 }3 \$ F1 y8 S
# A3 {7 l" p$ }( k* G2 t( I; i
* A& ]& k# {& H% `) O
# c5 E2 @- n+ Q0 |9 Y4 w* n
2.3.5CD – 小结2 s6 c( H! n8 X5 m0 D
/ m1 Q# s3 u6 i( Z4 ~

5 D+ c6 S0 z. T& K9 k9 a) Q- ~
3.webp.jpg

2 h4 g& D5 w  S% s% F( E

8 m2 y- U6 r& F* B& H# @
" a$ A6 I- F' ]+ `; z- L" ?& ?  [, A. E! E9 G/ O. d5 {( X
& f2 [, @4 ?" _0 O, s& n+ P; d7 m
2.5Sample Pipeline in DevOps
: k  C1 z. M( l* G- K) d/ W4 O# J3 w
3 Q# `7 P1 l9 V. M( Z

3 C$ t8 i3 G& E5 _
% d. _& l& D  @* h. _! G
4 M5 @/ W* @! x5 x+ v

8 X2 s9 f4 e+ V$ Q" R; R2 G1 q  w
1.jpeg
1.webp.jpg




上一篇:DevOps 工程师成长日记系列一:必备知识与技能组合
下一篇:11

本版积分规则

参加 ITIL 4 基础和中级专家认证、v3专家升级、DevOps专家认证、ITSS服务经理认证报名
本站关键字: ITIL| ITSM| ISO20000| ITIL培训| ITIL认证| ITIL考试| ITSS| ITSS培训| ITSS认证| IT运维管理| DevOps| DevOps培训| DevOps认证| itop| itil4| sre| 开源ITSM软件

QQ|小黑屋|手机版|Archiver|艾拓先锋网 ( 粤ICP备11099876号-1 )|网站地图

Baidu

GMT+8, 2021-4-13 18:09 , Processed in 0.171989 second(s), 31 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

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