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

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

 找回密码
 立即注册

扫描二维码登录本站

QQ登录

只需一步,快速开始

查看: 2918|回复: 0

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

[复制链接]
发表于 2020-3-18 16:13:48 | 显示全部楼层 |阅读模式
本帖最后由 adminlily 于 2020-3-18 16:43 编辑 1 m: Q  P2 W$ G& e' m, N/ @- x
7 R3 e: p. V! \; e4 [

' P6 `/ p1 m( D/ ?2 @7 B# s7 r5 Y, m
7 H7 V9 e1 f- ~: n8 Q
1.理论基础
: z; F$ K' m( N) _7 F
# o- H3 m- x. {4 I% \$ E. z
本篇是基于公司内部的一次ITILxf.com" target="_blank" class="relatedlink">DevOps分享,PPT是自己准备的一些内容。% P( C4 v4 ^# n% u( ]8 P/ f
, e, Y# w0 S# k) P2 K8 x  r! X0 A
) I, |! O3 Q- J& g3 ?8 y9 _  a2 D4 C
目前主流的开发模型相信大家都清楚,这边简单介绍一下:7 j, ?2 q( S  x( z
, @8 Y* ~+ v5 O  \0 ~1 }) C
0 i6 ]# Y( c) l1 T, h; B
• 瀑布开发模型:生命周期很长,一般会完整的走如下流程:需求调研->详细设计->编码->测试->部署->运维,且下一环节需要等上一环节完成后才可以继续进行,往往需求阶段和测试阶段会占据很长时间,且需求调研结束后很少再做修改,因此,在一个长周期的开发完成之后反馈给客户,往往会进行一次较大的修改和调整,后期修改成本及其大。
& `- [- y2 g! m& ]* Z0 Q. z) R9 a3 @$ e) H5 K$ o$ a
2 a; L: `" E2 d! f& t
• 敏捷开发模型:这种开发模式以一种不断迭代的方式缩短开发周期,把一个整体大的需求分成若干小的需求,进行迭代开发,并将产品反馈给客户的时间缩短,不断从客户得到反馈,并且不断修改直至客户满意,这种方式大大缩短了客户和开发测试之间的距离,把修改的成本缩短到一个小需求的生命周期,节省了修改成本。但是并没有解决开发和运维之间的协同合作,因此,DevOps应运而生。/ a) Z0 G( Z( [. `4 C5 I6 k5 |/ O4 N

* o0 X4 a1 Z6 w( n* T$ `; q

0 ^0 e0 v0 Q; L  g7 z• DevOps模式:该模式强调一个运维和开发不断沟通的能力环,在开发阶段我们沿袭敏捷的开发模式,在运维阶段,我们强调自动化的运维,并不断讲已经上线的产品中的问题反馈给开发,以进行问题修复。+ a8 i: i4 c  r& t3 p6 A' R
2 O( q6 \7 p  n/ S) H/ F; B
' k: ]) v" p- r, M
我们可以看到,对于一个软件的生命周期,基本流程都类似,只是在各个阶段我们做了不同的优化,而且这种优化也是经历过考验的可以实施的最佳实践。
3 F! H9 y& K9 {6 G, ]) L4 U0 i3 l( g' f2 O' t5 w* s4 s  L
1.webp.jpg
6 H. x$ D  M1 m6 D
4 E1 s/ ^1 z7 B# T
7 t; r: o% M- U3 q
! `. |# T2 q  M- R: X

. V. L7 J$ \% o1 ]' X1.1 软件工程模型演变
# p7 ?$ F, y5 w/ v$ |; \9 h% T6 b. E8 {) r
7 ?$ Q3 `) S; e" M

/ c7 O( _" Q- Z

3 k5 N' B2 z  F4 ~! M- G8 k, ~3 ^/ I' y
2.什么是DevOps
7 ^( {3 H7 r% c; j# e' `$ {
+ J0 m: k3 E& n- Z$ ]
- T* R4 A! H5 ?* o5 W+ B

" B; O, g4 T/ x5 n! p
' B: Z2 N' g8 m* J$ e* q' f! h6 r
那么什么是DevOps呢?有人认为DevOps是运维+开发,有人认为是自动化,也有人认为是Ias,当然,这些认识都是有其道理,也是DevOps中不可或缺的一部分,但大多都是盲人摸象,没有对DevOps有个整体的认识,对于DevOps的认识,
/ \# Y! @# T* }; Y6 B9 j5 c: ]5 L9 Y

# Q; `3 ]( }8 m/ q# K# r7 i. |请转至第一章:深入剖析DevOps系列(1)/ N! Q4 J7 w" m7 Y+ \; {
: o2 K) ^; O9 S! H0 R! H

. R; j' F+ c  b# B. z& R$ F
1.webp.jpg

; R0 ]& Z7 H; Y* X# k+ m; z- o4 D9 C) D. S' e" G3 y
; y4 ?4 N! M# g& o0 p
1.2 谁应该关心DevOps?( E+ k1 K7 C7 R" }" m4 H" Q
+ W4 h* x) F  c1 d
: N" e7 F0 m: u( N

, u$ M1 Y3 m5 V$ B' A5 a% w5 T+ p3.Develop和Operation的历史问题
+ i  z( k! M, v
+ m1 |: a; b8 h# s, t* c! f& g

: H4 Z3 K2 I1 [9 j- f开发和运维人员素来就被一种叫做部门墙的隐形之墙所隔离,这种问题由来已久,
5 J# Y' F& v- k+ M
6 J; a, V6 S3 _, M" @8 M
* U4 I6 ?8 m" P
原因1:开发和运维的目标不一致,开发的目的是不断的增加新功能,不断完善需求,不断发布新版本,总之对于开发来说,唯一不变的就是变化,但是,对于运维来说,首要的问题是要求稳,因为一切问题的来源都是变化。) p& I; d+ M# p5 o4 U; y" y$ D

6 u5 l3 y, f7 v+ f$ R

$ E; S( Y* i0 n) ]% P原因2:两个角色所在的部门考核标准不一样,对于开发来说,新开发一个需求考核就递增一点,是个累加的过程;而对于运维来说,即使将发布工作做的极致,起点也只是0,因为,这本来就是运维应该做的,一旦出了问题,便会从0开始递减,是个递减的过程。1 C9 }) S0 V8 ?: E; d+ g7 l) L
1 _! |1 A7 V/ V4 t" d$ b
+ A8 M# `- H4 I) W$ J  B
2.webp.jpg

/ X% y+ l5 f, `
) {- c- `+ F+ x8 x6 x6 d+ e! v
. o1 w9 i4 R$ j/ I& t2 S
  d* z+ z* Y% a  [  G
1.2.1DevOps 是一角色+ A7 h2 w. k6 I+ ~) l- t

" p+ D6 }( e' [' l  x8 L
& v. s% Q5 n6 \4 a& R2 d+ f

5 T( n) k+ ?/ W1 |7 k4.DevOps要解决的问题
3 G7 ^  a3 q3 S; d9 @6 U  t

9 v! b; @# T! Q& ?6 C- h. S! R

4 W# m" _. v4 x$ UDevOps首要解决的问题就是Develop和Operation间的这堵部门墙,一种模式就是借鉴敏捷开发的模型,将运维人员纳入到整个团队,之于团队的定义,就是有着共同目标的一群人
, a% Q0 I3 r& ?: |4 b% ^
8 g; l9 f" g; W1 P& n
1 s- G- B1 p% d6 ~3 x* C0 d! V" c亚马逊有一种模式,叫做2 pizza team,用2个pizza就能搞定的Team定义为DevOps Team,当然,这个是一种抽象,目前最佳实践的DevOps team比例为1:4:1:1,即一个需求,4个开发,一个测试,一个运维,当然,可以根据不同公司的不同需求做一些调整。# B7 n* l8 D3 `; J* e1 W
. R5 E" F5 b; Q" B! @( t# Y
2 v0 D. j; B4 c" P2 a9 k0 b3 {

- o4 Q. \# b+ O5 i, A6 L. j
3.webp.jpg

5 Z7 \/ g( F; Z0 W8 [2 Y' l2 q( S. D6 u7 X3 x  x% `- E

; q' P' M# \- g% y. i" n4 p
9 [; r  K, a/ ?$ g* Y- N* o" K
" U8 B$ C" f: `9 L
1.2.2 DevOps 是一种工作方式
9 o' M6 m. S4 B8 {7 w7 R0 G, y5 v, Q  k1 _7 s$ h
3 Q6 {3 G: Y) X" u; E3 S. G& F, ~
- {/ x, G. z  l. V+ x) c
9 U# s0 d$ y; W, {$ O

" C" ^- T) \# ^# S* j; `) f0 p- p) L5.DevOps遇到的强力阻碍
/ [6 `: c) X0 I, C" _

$ T$ W6 V2 ^; z) K* g

1 ?! |. w7 x8 e) @  x* W: G# O# t# ^$ u
' y6 t( @& d" N6 ~
对于现在很多公司来说,存在很明显的责任推脱问题,相互推诿,相互指责,屡见不鲜,对于DevOps乃至整个公司来说来说,这不是一种好的工作状态,所以DevOps强调信任,沟通,相互学习和责任共担。开发,测试和运维之间的各种活动都需要把其他人作为关键干系人,做到测试和运维了解需求,开发和运维了解测试,测试和运维了解开发等等,当然,了解并不是让开发去做测试的事情,或者运维去做开发的事情,我们强调的,是沟通和相互了解~
% E0 S: }+ T+ V* Y0 \; E  z# y) X' l% u+ x  M9 G/ w1 N$ b
7.webp.jpg
& }7 E  d$ K8 e& l) U! @2 v6 _
! K$ E$ u7 W: B; m0 R% W% V
; X5 V/ v! w4 l7 z, w
% k6 N4 |8 |& n* m
1.2.3 Devops是一种组织文化7 O' I8 @) G4 E5 ?& S, f
5 Y2 H6 z& v6 s  Q* L

- h8 h+ P9 Q2 h/ }- s2 p
1.webp.jpg
* v& l: ?+ a4 T5 T4 Z
  d' J5 I' \7 x  l6 R

# J; v- m9 W# ^, m+ b: e; G4 c9 {8 B* J, L

* B$ f+ z" \$ m* a- C, @$ o) `& q1.2.4 DevOps 是一组技术/实践( i$ _2 y2 t5 _' T( j  Z! L9 c1 x
4 Q. n& X$ z$ [9 |* w

3 V- G$ X. p; S' Z* B) X! `% o( T* w
2.webp.jpg

% b9 ~2 p& H4 M. r1 D
$ d& K$ w2 g8 Z) D
/ p( `. w! O, u6 e% x
- N/ P- L' A1 r; Z2 X
; u# W/ Q% x, {
1.2.4 DevOps 是一组技术/实践(1)8 J5 y8 z* {1 A% V9 p* `) N7 o

! r# R/ Y( V) ~, i3 F. n

3 j, x1 ~2 F3 j) W, b- d: o1 W" F0 X
3.webp.jpg

+ F: t% @9 i# J$ ?, B; S
9 E( ^4 G( b" n! N0 O& G/ k, F  C* o" X

' C* A$ O+ M9 ], V; ?1 u" ]% j6 q8 a1.2.4 DevOps 是一组技术/实践(2)
) a: ~1 b! t+ [8 S1 X7 V" W* x$ u9 ?; X1 X4 B( M; `( X3 ^

4 S! p; N# X- ~0 _6 ?
4.webp.jpg

2 C% e8 O& _9 u# a, i) J
/ d* [- v4 }+ o0 I+ o/ Z

2 ~1 I- o7 a5 ?% j& d
. n  D1 U& R* [- r# m
/ t3 i8 k  j; K& R1 x/ p* x3 s) D: H
1.2.4 DevOps 是一组技术/实践(3). O2 s% I) d! d# R8 C+ S
/ f# N+ o; z9 D$ x, n
6 z! F) J0 S7 y( V
( A9 h: }, R1 O& c4 w* K
5.webp.jpg

: t$ [+ f5 Z: X& g* e; B0 ?3 f6 |2 b8 U) i7 p0 o
. v) E# X8 t/ y7 h9 P) T, o' v+ o( E8 l& N
; G. Z" C8 S. @* ^
1.2.4 DevOps 是一组技术/实践(小结)
  W" X$ [: k$ ]8 a: A* u/ e" K5 |0 O4 m4 h( s5 A) o

: ]$ n. Z& d* i3 A9 ^" P
6.webp.jpg
. [9 Q, ^$ S7 c2 t' a
' B: Q9 p. L: {# C) e' Z$ [$ B

9 n" t# T! {8 y0 u7 y" g! Y) K' J5 {3 r; l' e* ~( d7 j5 u
' D# y! H4 a: T7 _
1.2.5 小结: 什么是 Devops. m( V8 s$ S! x; M8 b: q& x
' X- D- e1 u! }6 J/ s
; {! n! `0 a% b! l
3 `' Z1 {+ U) m0 }( F9 ?

2 k, k( t7 l, j. C" G- X6 V
8.webp.jpg
+ z3 f) M- W0 K5 T1 s7 i9 ]0 _; l) n! Y
+ z+ r6 l, X  l" A6 B8 O

1 X" d0 m8 E$ H4 k" p  ]( X( m  }/ r* U

1 |0 S& B7 G9 u/ g, h1 E, f
$ M0 L$ T) c9 \: t9 @
2.1DevOps in Cloud(AWS)( i# e' _( `* i" V& C; C
# A( l. d( f7 k5 u8 B6 ?

8 {! T6 ]# ]' F# _, b' K, Q* N
! ^8 D( P$ c9 M+ K$ \
7.webp.jpg

" T( p$ [, S6 |7 N0 T8 t0 [6 _( o$ V2 x, d- B

7 f5 R% r& C3 H
/ t0 ^8 P! x( k0 s" i( |7 {. K
2.1.1DevOps in Cloud in AWS
6 o  O7 G1 H1 T' Z/ Q' y
" b( z0 A4 ]1 M3 Q4 r
& o) u3 ^2 b2 d, w" d7 e

; J4 i! |, u- c
9.webp.jpg

( Z: L/ }: A9 c
! ?) M3 C" y! n. ?) b
6 ^' w. e3 X6 U' w" Z
6 o) C4 O" }0 C, ~) E
2.1.1DevOps in Cloud in AWS+ J( t3 y  e+ k2 [* A

$ `$ x1 r+ V: V! b& s& g' C- N+ k
$ o8 ?+ u0 U0 m
1.webp.jpg
" l  k# a' M) U. b/ L6 v
+ H* L* s" f- K6 U$ H* t- t2 l( B. J

8 V3 i( F. Q% A$ J7 S  v, H
' t% W. [+ e! g

1 N, w1 }7 ?! ~. H8 o2 a2.2AWS 持续集成(CI)模型 * p  Y' f2 \7 Y) l
4 D) x$ J9 f$ V9 G9 f; L* L3 N
0 N" `7 u- }9 R' M: L* W
2.webp.jpg
0 i1 c# e9 V  c' g( r* \( s
9 p* s, ^( J. }$ n: V; i: a

0 \# c8 s$ ~1 ^: Z% G  {, {

1 E& u+ b) M" C+ G$ O! g; I2.2.1CI – Code Commit
9 U! P: h7 v+ o' o# u& k" t) o( M
6 j8 T/ I: a" n; J7 @/ q

& j' V3 E2 ?8 t. o# {; O) q
3.webp.jpg
; I2 `: `- j- w2 V) ?2 s8 k
0 M9 r7 H# a2 X) M2 a7 \8 O/ j
8 ~- O% W" \* W3 ?
% t2 R+ W8 J7 D* H7 I- y; k+ K! l

* `7 U7 N6 S8 e& p) d4 ]! _6 E2.2.2CI – Code Build
  |8 ?7 c1 f& w- }/ w+ w/ d9 f  S/ ]# p3 }- u" n8 m
4.webp.jpg

# H5 u( E& ^) p, p; M% c: F9 ]

& Z8 R1 ?. C7 h2 z( A) `

, N2 F# E7 [. z& O3 W# E( L0 ^) }. ~& F/ s2 M; J
  v" ]3 x& K5 t  F( {
/ Q; M% }4 S9 }7 q. }2 Z
2.2.3CI – Code Pipeline) T0 X( B8 G: J8 q7 n1 J& j

4 G$ @& g8 x+ b% ]- ~! A" d$ Z: g
& r% l& w( }2 s* L) V
5.webp.jpg

" ]; R# }8 |5 B$ D9 F/ J' q' M4 ~' h

# s8 N8 {' O$ T
- h% D* {* ]0 x8 _" V( m+ I: g1 Y+ E9 Z! P3 t( _+ {

9 ^7 u5 O* A  n( L" |! d, B6 [; v3 v2.3AWS持续集成(CD)模型, a( J" f7 D; b7 G+ j5 T$ |" k5 _
  l/ \- h- u4 z" n1 \: ~+ [  X, D, A+ x0 p
; v; W7 G& S" B4 n

" z5 G; T/ Y# E0 g4 ?3 a4 R
6.webp.jpg
: e6 a1 r! o& w

. t$ j- |9 b% c) B" a0 M' n8 [3 M. ?1 D( h9 u4 {8 t# l3 x& U* M: a" l
4 S0 h5 h  y+ k6 T3 E
2.3.1CD – Elastic Beanstalk4 C0 Z$ L2 v" s; y

8 f0 V4 ]" F8 B7 v- X2 z

4 V/ g) U- @  ~0 V
7.webp.jpg

5 ?6 b$ c/ d' ]; q7 }8 o* V
* ~5 q( O6 q9 x6 _5 N) |  a

3 L! z( Y) h- _9 T" m
3 ]) F* v/ X! X) B7 P- X
: {. r% Q- k4 L& W& w
2.3.2CD – OpsWorks
0 e/ O) N# X3 E  V4 u+ K
2 @( |' x9 S% G- [: f  s! ^

; [( v* ~% ?5 n' A, |# h; \) U! V0 n: B* r7 q6 w, i
8.webp.jpg

, R, o6 q( \! Y6 v4 B
: g0 x; S; g2 [* {' K
6 z( P/ Q7 f# j( N/ f  T. ]+ F

! e0 ^& \* j/ E7 Y% V: G7 F/ e2.3.3CD – Cloud Formation
  B1 ?9 m$ F; p1 L$ f6 U6 A* h# Z" m5 [, e1 _

" y) e0 L$ p4 J
1.webp.jpg
; K' H8 w1 I( a: ~! Q, j

4 \3 z9 _! s' m5 t0 H1 c! s# x# s' w( ^; D

* `$ N7 ]3 W+ [' A! X% \+ T$ l
, E- C3 F5 {  X2 Y, i2 P. e, y
2.3.4CD - CodeDeploy4 W9 W3 D/ D! L0 [; B0 j1 {# ?1 g

3 m* }9 a4 M0 |1 O7 e0 o1 S
2.webp.jpg

: B* ^" ?( A5 `& n

6 e' o6 X! U3 t  n: c
* C* |2 H9 C: k& v7 _& |3 |
; P8 g& U- G4 b0 g  P, G
5 H, I; e( u! d! `

0 r! m2 y) _2 M2.3.5CD – 小结
/ _4 P$ h4 s; L4 |6 [( k" j  X- P5 E8 Z; Z* S; i

; H3 J( c. R/ i
3.webp.jpg
( m1 M& |$ a% D& P! n% s
2 l- y( A  X' |4 w2 w6 F! P

/ O1 \- |0 N# m) d9 ?1 M, J" \  z  g) T3 d& [; E  T8 j( w9 W9 ~6 x1 K

% `! D/ L- W; U% {: [1 o# {& ]2.5Sample Pipeline in DevOps' g, A) M( J* D) V& I
" X& u( }0 {$ S. [% r$ `" k

$ G) N8 o' O  N* G  V8 b1 U# c) W6 i4 q8 }7 x, N# A4 R
$ O* a: _4 _$ B/ i& }

* I$ K5 w2 D: p

/ G- G/ }6 F: S) X
1.jpeg
1.webp.jpg




上一篇:DevOps 工程师成长日记系列一:必备知识与技能组合
下一篇:11
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

Baidu

GMT+8, 2022-5-16 23:07 , Processed in 0.123159 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

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