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

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

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

扫描二维码登录本站

QQ登录

只需一步,快速开始

搜索
查看: 236|回复: 0

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

[复制链接]
发表于 2020-3-18 16:13:48 | 显示全部楼层 |阅读模式
本帖最后由 adminlily 于 2020-3-18 16:43 编辑
5 g0 c6 F+ N6 Z4 x4 D
0 C/ c( z6 c1 |# v- O. f5 I6 @# j
' }7 [7 C+ B) ?, Y

  J- P+ r2 L, O  V9 c# d: L
1.理论基础' _* n- X) d( }. J0 ^% m
/ H$ A, |* n. _9 \$ R" Y
本篇是基于公司内部的一次DevOps分享,PPT是自己准备的一些内容。. W; Y! e5 s" K6 n# b. ~) C

6 I' I& c2 G( n: G" o6 _3 B3 C
7 Q' G: P" j7 V8 U: U2 a
目前主流的开发模型相信大家都清楚,这边简单介绍一下:
7 s$ N* q$ Y$ e) C2 H: k  ~" C, E# l
; R: @; F4 ]/ }) }3 y% H4 U
( E6 U! [8 v) N$ A
• 瀑布开发模型:生命周期很长,一般会完整的走如下流程:需求调研->详细设计->编码->测试->部署->运维,且下一环节需要等上一环节完成后才可以继续进行,往往需求阶段和测试阶段会占据很长时间,且需求调研结束后很少再做修改,因此,在一个长周期的开发完成之后反馈给客户,往往会进行一次较大的修改和调整,后期修改成本及其大。
) v4 K+ ?0 g( o6 |
# P, p, X: A  p- K4 J( \

* Y% @6 P6 Z: Q) D• 敏捷开发模型:这种开发模式以一种不断迭代的方式缩短开发周期,把一个整体大的需求分成若干小的需求,进行迭代开发,并将产品反馈给客户的时间缩短,不断从客户得到反馈,并且不断修改直至客户满意,这种方式大大缩短了客户和开发测试之间的距离,把修改的成本缩短到一个小需求的生命周期,节省了修改成本。但是并没有解决开发和运维之间的协同合作,因此,DevOps应运而生。. Y& S+ P& x/ V% D7 ]

3 G+ H/ R; P. _

# w9 T; H  e" l. j$ d7 {3 x" X2 r• DevOps模式:该模式强调一个运维和开发不断沟通的能力环,在开发阶段我们沿袭敏捷的开发模式,在运维阶段,我们强调自动化的运维,并不断讲已经上线的产品中的问题反馈给开发,以进行问题修复。# q% ?: W' [0 Z$ T! w
2 G7 [, R' e( u" T* w
. P& T$ I1 O" Y. F5 @, I% b, J9 \
我们可以看到,对于一个软件的生命周期,基本流程都类似,只是在各个阶段我们做了不同的优化,而且这种优化也是经历过考验的可以实施的最佳实践。+ N  R4 k& x( j& E2 z$ d$ |( }5 [
7 L: j, Y# O  V& y6 x
1.webp.jpg
: I& C, T; K% t: [+ C

/ P( N1 q7 p9 S1 [  E& [
9 Z/ B  h& f+ J8 j! X/ Z9 u; f3 }2 @, d' U8 {# [
9 `, Y6 z! T% R* r2 ?- e% d) S
1.1 软件工程模型演变. g. B3 l% o' y' E8 T' i' x3 [
0 }9 y) G8 ~2 C) k

& a8 O# W5 j4 |9 Y8 m
& J- q3 f; P! d5 y  e0 t# T

5 N. X! N) ^0 J3 `; [/ [7 a+ `) A- k- V3 X
2.什么是DevOps7 ?6 x- p, c2 [  ?+ L* R) P
# D& ]; z3 f3 M$ k
8 b9 z- U& q+ ~

5 h( r$ m+ B: L

; c% L1 v1 V" i5 u0 Q0 b8 F- k那么什么是DevOps呢?有人认为DevOps是运维+开发,有人认为是自动化,也有人认为是Ias,当然,这些认识都是有其道理,也是DevOps中不可或缺的一部分,但大多都是盲人摸象,没有对DevOps有个整体的认识,对于DevOps的认识,
/ I4 B/ |7 `' [+ z* H' S
7 H4 X( {7 D' ~1 S8 ]" y

0 x: @7 t! L8 t4 e) D5 m请转至第一章:深入剖析DevOps系列(1)
0 L* Z. h+ `  p+ K- q9 t2 |
8 j) F& y' N9 ?, Y  Z5 U5 b8 o
! y+ ?3 e* q' P' B
1.webp.jpg

+ Z) ~7 h$ S7 X2 z2 g$ ]8 W7 @6 F6 w

. F4 t4 u  _/ g2 u& K( q! ?5 q1.2 谁应该关心DevOps?" M& R( `, K/ F% y

+ l$ ^( C8 n1 f. X2 ?6 r

# H; t7 \* A, T  T5 `) Y
' g  v9 z% ^& v( f4 M4 v# Y3.Develop和Operation的历史问题
; s& u! L% Y5 U  k2 y+ t# {1 y
2 W( r- I6 ?; u) y8 U
: K1 {2 d% T& i* S$ N
开发和运维人员素来就被一种叫做部门墙的隐形之墙所隔离,这种问题由来已久,8 u, L) A+ v! D2 O0 X0 n3 w9 \
) k" R* b! _1 s. @- q. S& e
! Z: v3 r& O; l4 n/ U% x
原因1:开发和运维的目标不一致,开发的目的是不断的增加新功能,不断完善需求,不断发布新版本,总之对于开发来说,唯一不变的就是变化,但是,对于运维来说,首要的问题是要求稳,因为一切问题的来源都是变化。
1 L+ G% O+ J0 U- @3 y" _5 a. ?; @7 i3 h, j2 b; ?1 f
4 f* k8 d4 |# h2 |$ m% \
原因2:两个角色所在的部门考核标准不一样,对于开发来说,新开发一个需求考核就递增一点,是个累加的过程;而对于运维来说,即使将发布工作做的极致,起点也只是0,因为,这本来就是运维应该做的,一旦出了问题,便会从0开始递减,是个递减的过程。- D, B$ l% u/ x$ N9 A. v3 V8 ?

8 V' @) a0 S, y, @4 V6 g/ l

- I/ V" _9 o3 B, j/ X
2.webp.jpg
; W! U! e: z7 H5 c

/ s$ I1 R% G: H3 i5 d* T+ e, `6 q' \5 w3 y9 J# d
% e. p. v. y* T/ G4 E
1.2.1DevOps 是一角色
5 a2 X, d, n: I7 E% \* v- [
& m* L0 `7 P7 ^

9 r, m8 t- G- N- x
; ^1 M1 S( Q) E7 f7 R4.DevOps要解决的问题. j) i8 t- A' R$ u! O' I' {

6 q: a4 ^0 j; ^9 r( Z8 Z: t) F1 n5 x' @$ L7 Y9 C7 K4 W
1 l! J: B, [4 A
DevOps首要解决的问题就是Develop和Operation间的这堵部门墙,一种模式就是借鉴敏捷开发的模型,将运维人员纳入到整个团队,之于团队的定义,就是有着共同目标的一群人
1 ?/ V) H: N7 u7 ?+ O* g" {3 T+ J! E5 x9 T* z

) I* t, i/ R5 ^) T" e, S亚马逊有一种模式,叫做2 pizza team,用2个pizza就能搞定的Team定义为DevOps Team,当然,这个是一种抽象,目前最佳实践的DevOps team比例为1:4:1:1,即一个需求,4个开发,一个测试,一个运维,当然,可以根据不同公司的不同需求做一些调整。
) T% C; w/ \3 o' M- v: U5 f* r" `& j: R
0 O( m  |& V) N9 x
, o$ X" T; ^8 I7 z- ~9 e; O
3.webp.jpg
, W; `1 B) j0 C) \

! B7 w$ a, |+ }) L- @

  j3 V( `+ e$ ?1 F- t* t9 s% }
6 v/ C6 ^' d. n( F, _2 C/ h

" Q! r" z/ f$ V8 |( b" U. x1.2.2 DevOps 是一种工作方式
" T& i. Y% F8 N8 C: o- s2 z/ W, J9 J

2 x% F: v9 u# v( G1 P; B6 m
4 M" W5 T/ y$ q* Z; \0 `

- E: ?. u/ `; `
7 F: f! D/ f* G* q1 p8 ?, L4 I5.DevOps遇到的强力阻碍+ c" i! E, T4 r/ p. ]' A" Q, b
0 m9 L; w! Q  N) s  V2 z* {
3 o& V1 i) d7 h
; W! j3 _- P7 c: T* @( e" w: R

$ ]" n$ s' H9 D对于现在很多公司来说,存在很明显的责任推脱问题,相互推诿,相互指责,屡见不鲜,对于DevOps乃至整个公司来说来说,这不是一种好的工作状态,所以DevOps强调信任,沟通,相互学习和责任共担。开发,测试和运维之间的各种活动都需要把其他人作为关键干系人,做到测试和运维了解需求,开发和运维了解测试,测试和运维了解开发等等,当然,了解并不是让开发去做测试的事情,或者运维去做开发的事情,我们强调的,是沟通和相互了解~9 G& F( R2 m: [, [0 `" F$ C# B
5 R3 R1 X& M  o' @5 k
7.webp.jpg
5 N1 D, t  {+ H( ]# S

9 ~: \7 t1 r. r) p. S# A3 }
# x0 J$ g& o( X# t
! ^, t, O' \, M! U2 w1 P: B
1.2.3 Devops是一种组织文化
& [' x; j5 e* g" Y# Q. @) _  i
2 a3 y- R1 U* Z

4 Z$ g0 n3 s* R, t. s
1.webp.jpg

' p8 G1 ]5 Z" L% d

3 `2 `3 p" j- g, i1 w! E( w. i. G! D3 ~  T8 T2 ^. ~) ^6 I

) v' q9 \4 d3 ]) o1 J0 u

' ~6 T- q4 O# ~1.2.4 DevOps 是一组技术/实践. A& [+ K, I! |7 B  [6 ?- [8 B
: p4 `+ y! u% m6 H1 O' i/ `( t

8 l" A9 _9 D" \! @
2.webp.jpg

8 e0 W: G' x% g8 E8 M
: z. ~% d5 v% i7 O

6 M% j2 Q% i. |! L( P4 v, X& l8 ?# P% }
' c9 Q+ k* D( [" ^" `
1.2.4 DevOps 是一组技术/实践(1)
, \, r% b9 k3 ]2 {$ `
& c8 z8 X+ m) N! @0 J

7 G& M+ S6 I7 W& \( y) O' O8 ?" B* t" b" A+ V+ Z0 A* ]- z
3.webp.jpg

2 L" C4 W4 k. n9 x: b0 U# t9 O& d
1 Y, v0 w+ A! t; a- O7 P  f6 Z- ?5 F/ ]4 {: R2 |( ~$ p1 B5 D- r
7 N* ^) V7 ?, A+ X* a! y
1.2.4 DevOps 是一组技术/实践(2)
) o* ?8 v. K$ g2 `6 ?& y( `
5 b; F0 Z! `$ Z# M. U0 I
6 ^7 ?" ~0 j- R% ]0 j' {/ G
4.webp.jpg
# T) ]2 ~+ Y6 I* {& F# C6 {4 P

4 O: e+ q; Q. X9 I3 Y/ F
1 I, B+ n7 c; T7 }/ O5 K5 Y' `, w+ M% R/ p) h3 x; P& q
! t6 X; N; c1 i) G; @; T5 }
1.2.4 DevOps 是一组技术/实践(3), D( f  F+ [, m1 }5 E
( x+ O0 K/ f+ F
1 ~' h/ R& S8 `8 E

1 ~! A4 Y( m- t! C
5.webp.jpg

4 `+ ~+ B5 v. C7 b& i; ]2 @* G- |+ j
% \: g( B9 d! v

/ H. }  o4 A% t$ d7 ?1.2.4 DevOps 是一组技术/实践(小结)$ Z: \- q9 V6 u

  k6 D4 M0 m) t- h% e6 m' m
1 y" H* }4 P. c' m
6.webp.jpg

- _  ]8 u$ s2 {, R) T4 a, ]7 J5 j5 C

5 i, P8 r. n4 p1 z' H# F1 c$ S& O2 {! [% j
* H9 u; ^- _, A/ n# ?3 d- g. K( O
1 {3 d" m. }: z2 A3 ?" i+ t
1.2.5 小结: 什么是 Devops( P' C3 _* O! A4 m: }6 B9 W
4 P+ G; u* F5 \4 w

; N1 B$ g* g! {9 `3 ]& z9 d) \0 K" e* f" u( ^

, V, k4 {, D. q* c2 |/ Y  Q8 _: c6 R
8.webp.jpg
' E$ N5 `; c' R' ]

0 i7 c; A. }* k8 t& G
4 ^' m8 \/ b0 |
' D; S4 \6 y0 r( |8 s

8 a4 k6 c* y6 ]* B7 _
' {/ _! }4 Q+ N
2.1DevOps in Cloud(AWS)$ [: h% D7 n8 |$ R/ y3 D7 b: S5 k
' _; }! H% ^' x5 l6 i9 i% Y
1 s" P+ F& o3 J+ @) G+ T0 q6 }

4 K2 v. C% h5 M# y0 @
7.webp.jpg
( Q" q: e- m7 W/ Y7 h: S
8 g* i! _# a+ d3 I( m. u$ d

! v; t. m+ u9 C! U5 u7 c+ `

" D2 ~- u" m0 m% S/ x2.1.1DevOps in Cloud in AWS
& s: A  W) v% k7 `8 K3 M! a" G! w7 U: z/ L& b; h

! q0 Y6 }/ ?' i
3 `0 X, _4 p$ E( N2 E: r
9.webp.jpg

' l) Q/ r4 ?4 F6 R' a* t' q1 G5 |. Q
3 n9 g" T& S. p, c8 {/ W  v- u9 Y% t7 H: _2 p- X$ T1 s- e
6 a4 p5 Q4 i" Z. s- l, j' }  |1 X
2.1.1DevOps in Cloud in AWS! C( v6 e8 B1 _) `* O* S3 L8 ?) @& Z

6 P& {& ~/ k6 i/ N2 M/ p
: J! X' i6 L4 ^6 ~" s- A2 L1 U
1.webp.jpg
  N! }6 {' \( c9 Z1 T& q1 }; F
% Z4 [% s# k: e8 G) |, _
! F+ t  `7 \5 o0 U. G+ v% k% ]
; r1 s& h. R  f0 H/ f
- ]( L  f2 i2 r1 t5 ?" X
2.2AWS 持续集成(CI)模型 - k. O5 q- W2 T- [1 r
0 `, a1 f4 @6 k1 t+ _" n& Y

' ], ^1 ^6 ]8 A5 N+ k
2.webp.jpg

; `0 U$ A6 S# {- R, n1 M. Y: ^( p% f- y3 Z! B

$ L, c" E& F# W9 I6 x' y9 M
3 n+ k# v' _# j
2.2.1CI – Code Commit
9 X% |3 q0 E; f5 X5 n! k. o1 U9 t+ _% c# K/ `/ x
- \1 n" T3 N) f2 g
3.webp.jpg

( q4 T2 i2 P9 ]/ o4 S" ]1 D6 i
1 o0 e/ r# W( L/ |( N# X6 P

8 F  D3 S- W, c% @- a4 X
% P6 V; A0 N' b# a

- j, |9 S4 m& r, ]% c& R2.2.2CI – Code Build
* l+ W* n% T; u9 {: d( V9 G, _' G8 ?5 ?5 I1 V
4.webp.jpg
7 B$ j& y, F! Y% h; w7 t

# u! U4 o+ S1 z! W, E. ~

1 b0 j) W0 e' T3 q/ ?) L8 n0 q0 l6 U* R9 b& l+ y
$ d: }# _$ d$ e  _( |8 C9 A5 r6 K

$ Q8 _7 H: o& W8 r( W% C" V' L2.2.3CI – Code Pipeline3 {/ ]- ~9 c$ v: u( R/ P$ `1 U8 J

7 x: }% O( a$ c" K6 M, A
% V7 L# r6 ?* i9 r# T6 `$ |; B2 [
5.webp.jpg
% H8 Q7 \$ D9 @) O2 J

: t$ y! T3 ?  O/ f' A9 {
& p0 i! p: j1 v& H" U, C
! S  [' e% s+ [6 f4 K

0 }/ L) V6 _$ H3 y: t2.3AWS持续集成(CD)模型9 m7 _: i. y; ^1 Z( ~' q- n
( r& W4 [" G' ?
8 g/ @) G3 B! E8 {$ x) @# g

/ G8 Z4 l+ L8 I8 r! E( O
6.webp.jpg

; l, l, q4 Z- F4 N% r8 H2 r, l7 }; I+ R1 K# x/ A3 T, s: h6 b1 G
  z$ {. k; d, y1 s+ d7 i. N! f

5 o1 ~! j7 R5 P2 L4 a3 @# m! u" u2.3.1CD – Elastic Beanstalk) E" l# ]% B# v2 N

0 g+ B2 ]8 P- T; L5 t/ K
% t+ _* k* I1 D% z1 x" T# L8 `' z
7.webp.jpg

5 F' Y( H+ K" V6 h4 s# i
" W! r" T+ j. Z  F  }. H) e

( j( ^; W! B8 V: Q- k8 e
6 ?2 M! S1 U* a

7 ?$ R" \/ q) e  h5 U2.3.2CD – OpsWorks2 _3 s" n' V7 f5 d  J4 S) z

8 g6 Z+ }  L, g$ l+ ^9 n

! S* b( t% G! D5 [' M+ T  ?9 r
9 X7 K' B8 V3 F$ T1 p! K" f% b3 Y
8.webp.jpg
  F& `6 s2 n1 b+ W8 D! B3 q! |5 {
( g, K( O& h: x& w8 n2 @5 g
8 e2 ?6 ~' j9 l! N+ T  L+ n7 w

- l9 n8 {6 `7 \* U9 [2.3.3CD – Cloud Formation
, {; I  T4 [, {" W1 D
3 O3 g) m- Q# h% |- r- U) L
  T% y* t: L9 F: M$ ?! W
1.webp.jpg

9 K% n2 P2 k% Q4 X$ I

, R( f9 \3 `/ J& [2 }& Y& k1 x4 Y8 @, ^; v/ Q, {) _
5 q; r; K, b0 G, t) f6 n+ d  c
* a4 v' X5 r! N( H9 h* X
2.3.4CD - CodeDeploy
: ?7 E( |8 D9 }' o  y5 A/ p8 C1 @% j9 P5 c$ o- k
2.webp.jpg
" d. a; t7 p. o
+ _! W! f7 |6 u4 b

! X  l( T0 N  M) R/ y. w' n( a! q
! f/ _9 a) T5 L8 w
+ x2 o, f8 r. W
: P- J  z% E  t0 t- J2 X
2.3.5CD – 小结# r( T/ _: l% G; t9 q1 u

/ E$ P/ U  u" I! H9 i
# S" Q+ h3 N. R" \) V
3.webp.jpg

0 x9 b. \: C3 U4 f4 H; d( m. `
: W4 ~5 q! U) m( X3 w5 K

# I; w- Y, k3 B  |& K4 F
. I% ~* L; h3 L9 S3 t. s8 Z
  W+ o0 i; L6 U' `! b7 J: a
2.5Sample Pipeline in DevOps  Y; M. h7 i6 g, @/ d
4 S$ x6 l$ m6 |1 Q0 ^- ^

4 ], U/ O7 U2 R2 y% T# ~% o2 C2 M& j0 J

1 l4 G6 U, N* O1 \/ j1 @4 l( t5 T# w

5 L7 t  ?( R8 I- [  h
5 S: W! p4 s- l
1.jpeg
1.webp.jpg

本版积分规则

参加 ITIL 4 Foundation和中级过渡MPT认证、DevOps专家认证、ITSS服务经理认证报名

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

Baidu

GMT+8, 2020-3-30 05:09 , Processed in 0.160341 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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