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

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

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

扫描二维码登录本站

QQ登录

只需一步,快速开始

查看: 2419|回复: 0

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

[复制链接]
发表于 2020-3-18 16:13:48 | 显示全部楼层 |阅读模式
本帖最后由 adminlily 于 2020-3-18 16:43 编辑
5 x8 d3 _  z3 Y# x! P
: p! Z8 D* V2 j- k( w1 T$ G# I' {
; |- L( q1 t3 O- V& U
0 c5 h& e# ]  ~  A  @' Z! k1 V8 i
1.理论基础" _% U, U# I+ H  R5 y7 J
3 m- D3 l% M+ ~: ^0 h
本篇是基于公司内部的一次DevOps分享,PPT是自己准备的一些内容。
4 C' n0 a/ x  s/ H- c: B$ h; C0 p7 m/ r7 y2 ~* ^$ p3 u

$ \$ k  g5 [  x目前主流的开发模型相信大家都清楚,这边简单介绍一下:& F" b: ~, ^* q4 M5 J& ^$ _4 t

1 z( Z$ A. Z# Q; s  |- Y

0 @. T, @* Z& T6 G; ]& z• 瀑布开发模型:生命周期很长,一般会完整的走如下流程:需求调研->详细设计->编码->测试->部署->运维,且下一环节需要等上一环节完成后才可以继续进行,往往需求阶段和测试阶段会占据很长时间,且需求调研结束后很少再做修改,因此,在一个长周期的开发完成之后反馈给客户,往往会进行一次较大的修改和调整,后期修改成本及其大。) ^& A4 j+ @2 Q) ]0 b
) k* H- w: \4 [/ x* Q

( u7 e9 r% x+ Q" {0 R9 E3 X' D/ `; k0 q• 敏捷开发模型:这种开发模式以一种不断迭代的方式缩短开发周期,把一个整体大的需求分成若干小的需求,进行迭代开发,并将产品反馈给客户的时间缩短,不断从客户得到反馈,并且不断修改直至客户满意,这种方式大大缩短了客户和开发测试之间的距离,把修改的成本缩短到一个小需求的生命周期,节省了修改成本。但是并没有解决开发和运维之间的协同合作,因此,DevOps应运而生。
8 D. M7 J4 u  j# L" z: l0 e& L7 |5 x" f& t# a1 F+ X1 F
. e9 L/ h) W" `6 D  s
• DevOps模式:该模式强调一个运维和开发不断沟通的能力环,在开发阶段我们沿袭敏捷的开发模式,在运维阶段,我们强调自动化的运维,并不断讲已经上线的产品中的问题反馈给开发,以进行问题修复。
  n! i/ P& T$ c: Z8 V- T, H1 n4 s3 v# _# @& r$ ~; g$ D: T; N2 k

( i# @8 V. L% s5 @我们可以看到,对于一个软件的生命周期,基本流程都类似,只是在各个阶段我们做了不同的优化,而且这种优化也是经历过考验的可以实施的最佳实践。' |( }+ n2 V+ L$ c8 L
; w1 l- s: |% {3 E3 U4 n
1.webp.jpg
, o3 E, Z2 l* H

+ Z' G2 {8 Z" |" B8 Y4 u0 J5 L) G) y2 [1 m2 ~+ G# d
8 U5 V( Z' }5 t3 J6 A
# E* ?; m: d7 |1 `( p+ }. j) F
1.1 软件工程模型演变
" |" K$ w' O( y1 N) k0 ^4 D3 w$ Q7 z: f/ c  J; P& G

- D! P: ^0 s! g/ |- E& M3 ^3 h# m* k1 L. s

3 \, z5 ]5 ^8 G+ L5 @
% T2 ?6 g: c9 w2.什么是DevOps2 e& o6 ~2 ^& o2 X1 p0 _! ]. ~6 M
2 _5 m8 c, B4 j" U0 M: \2 H

, k0 u3 v0 ~8 M9 u: `
; z# C  o4 [' Y, y7 q+ U( ~

( b/ }" R6 K+ ]" ^" b8 I那么什么是DevOps呢?有人认为DevOps是运维+开发,有人认为是自动化,也有人认为是Ias,当然,这些认识都是有其道理,也是DevOps中不可或缺的一部分,但大多都是盲人摸象,没有对DevOps有个整体的认识,对于DevOps的认识,
7 ?1 h5 K3 |; t; U
% C* u+ J  M# Z9 ^6 _6 ~1 |& K
) u( i* l% l8 `4 B
请转至第一章:深入剖析DevOps系列(1)
+ x4 f& ?: i- \; Q$ ?) z" n6 P
& ?6 H- D8 `% E+ q2 c0 ]6 j8 B
: j* P: W* o# R1 I+ A: S4 u
1.webp.jpg
* c% `: \+ h( v& E; I* }

; c" M+ M6 a6 E! ~
7 X2 A: V" K0 m
1.2 谁应该关心DevOps?$ N8 K) q& Z  f# G

% i* n, |7 ]9 ?( I) a( B) L
& N+ l: ?3 u8 m3 h
8 f' c: u4 B* c0 G& u
3.Develop和Operation的历史问题
/ R0 o7 |2 M  S8 F1 A4 J6 k

3 B( w5 n9 V2 H

, W. |; D( ?+ c4 B$ I, z4 t" }( n开发和运维人员素来就被一种叫做部门墙的隐形之墙所隔离,这种问题由来已久,8 q& N# v7 N+ s1 S3 @& O

% _1 g$ F0 m3 d; n! c, Q- \
8 z6 Q* m4 m& k
原因1:开发和运维的目标不一致,开发的目的是不断的增加新功能,不断完善需求,不断发布新版本,总之对于开发来说,唯一不变的就是变化,但是,对于运维来说,首要的问题是要求稳,因为一切问题的来源都是变化。
8 C& X$ g  N1 D* r* Z. S2 {' w9 c3 \) c! Z1 U

" k5 P& J9 G2 }* {' i* Q原因2:两个角色所在的部门考核标准不一样,对于开发来说,新开发一个需求考核就递增一点,是个累加的过程;而对于运维来说,即使将发布工作做的极致,起点也只是0,因为,这本来就是运维应该做的,一旦出了问题,便会从0开始递减,是个递减的过程。' ?' c! a% m# m, B4 y

. `  T5 ?2 P8 C* Y
" N, X: X+ Y' N, M6 h, Z8 ^
2.webp.jpg
4 g* N. F0 G/ c3 t1 j; L
3 F5 {  E( v' n# t* o

. j/ @2 B2 E' J0 u2 y% v

7 f) d1 y! P# ~! i1.2.1DevOps 是一角色1 a( l* V+ e- B/ R3 r  ]

! N4 a# G* Q2 {. h  \& K) R& a
: t( h! O) {9 }/ `) p# J% Y) l

4 ~" r4 j7 m. [4.DevOps要解决的问题* v) o/ p% s' ^; r: d

  l7 M; d' p+ E( E$ `
- I( `; ^% I  K1 s3 w

/ n6 ~4 }3 m" k3 y* P0 uDevOps首要解决的问题就是Develop和Operation间的这堵部门墙,一种模式就是借鉴敏捷开发的模型,将运维人员纳入到整个团队,之于团队的定义,就是有着共同目标的一群人
; h1 F3 N: E8 t# @5 M9 P' S5 [, f4 u* K! F9 [8 x8 H6 t
, }+ B' X1 l  ^- S4 ]0 X# c
亚马逊有一种模式,叫做2 pizza team,用2个pizza就能搞定的Team定义为DevOps Team,当然,这个是一种抽象,目前最佳实践的DevOps team比例为1:4:1:1,即一个需求,4个开发,一个测试,一个运维,当然,可以根据不同公司的不同需求做一些调整。. N) V2 T3 D/ `3 D! l

9 L# C+ A9 s# u+ B! ]# Q1 z; Z

" f7 \5 [0 F+ ^7 t+ M7 c

* {# n' d& q0 u( O1 D7 f! o, i. B
3.webp.jpg

% h& U0 D6 O+ d9 r
, @1 t& u$ l6 P
8 U5 z. F! A& c* v% g0 ]" h

  O$ k7 ?7 a2 T8 J% h5 m  e  _, ^
2 O: X: c6 T& n& h1 D2 l% W
1.2.2 DevOps 是一种工作方式
# a  S" e2 k) |
! w! N% B9 |6 L' Y+ r' a8 f( d8 X
8 o, w+ [  Q4 [+ S8 p6 G  w

8 k2 @+ V* {7 y& B' O5 z

$ V4 ]! L- d2 t; ?, U. w4 n; K4 E0 B6 X
5.DevOps遇到的强力阻碍; O' E% q2 `7 _/ k' |5 f) i

* k' `. {" K) f) n* n
9 z, n' K" L; G. w) S1 W

* c# i, b" Y$ h! M

' o: }. f8 v7 x$ v$ K+ e对于现在很多公司来说,存在很明显的责任推脱问题,相互推诿,相互指责,屡见不鲜,对于DevOps乃至整个公司来说来说,这不是一种好的工作状态,所以DevOps强调信任,沟通,相互学习和责任共担。开发,测试和运维之间的各种活动都需要把其他人作为关键干系人,做到测试和运维了解需求,开发和运维了解测试,测试和运维了解开发等等,当然,了解并不是让开发去做测试的事情,或者运维去做开发的事情,我们强调的,是沟通和相互了解~( p% V- c; e8 s+ G1 S6 z7 x

* ~0 O* @" l# M# V
7.webp.jpg

/ G- C! }6 k9 o2 D+ O# ]& G/ v" U
( E/ y( w) w) {# w# ?
/ y3 h& B8 h6 B* I% o+ s1 w& p
$ k7 C- K6 R8 ~
1.2.3 Devops是一种组织文化0 V& h8 a) P6 x, [9 [; C

0 f0 S. r! W7 S- I% a4 q

$ S0 V1 a' X' L9 |) H  m
1.webp.jpg
5 N9 q+ ?2 L/ e. U' V/ q
# U* v& W( @& @6 e
: N" B" x( n- r2 h6 }( o! C8 {1 {1 ~

' B) ]& T4 Q8 K, Y3 c: ~
: c/ L2 T  S: t/ C' e3 C' t9 g! K
1.2.4 DevOps 是一组技术/实践
' k9 L9 P: F/ A, M) j, ]5 @
: s3 Y5 \: A' D+ k) _6 b7 _" C
: C( E- Y; E+ c+ m4 P# R+ P* v
2.webp.jpg

# D1 E6 O" Y" V

. z) J7 e2 B1 |/ w: `4 O. I. g0 R2 Q  q! {$ R5 {

( ]4 b) C. V! [

8 i4 Y) E$ t+ k8 n) z1.2.4 DevOps 是一组技术/实践(1). F' b$ u3 r. F. k# ~

: g: ^" ]' D$ e* [

, D! L% v% t) H4 _# R" n1 `+ y) m4 W5 P) w3 H. d* |8 a' [, S
3.webp.jpg

% u1 G, ?, X# w) i
( l7 G3 h1 w/ k" k
* E! x- V2 a+ l  H
- t$ t% w: N  c3 o: z
1.2.4 DevOps 是一组技术/实践(2)1 ?2 t5 ^4 V- i: T7 j  w& d

$ i7 V- i& O0 k3 J) X0 N4 L

3 j4 b9 ~5 ^2 ~+ f2 v& m' ]% Y
4.webp.jpg

* E) N+ C& O0 B4 w% f
2 W8 ]# d/ K! k" E

' l4 c' ]0 i& w( W
% p; a. A( A: ?. s2 _3 j# E
# ?# G: X0 w  C0 [1 O8 v( L. j
1.2.4 DevOps 是一组技术/实践(3)
" U1 G3 s; O8 k( x/ \
4 }2 l# w! ]$ z+ `5 Z
' U1 e$ \' B: {1 q3 S/ h

  T( i3 R9 o' j( e& t) Y8 W
5.webp.jpg
" g" d0 V' Q5 d! a4 k& M  L3 U' s8 M
% F' D1 x: g2 K+ J
  _  p8 e  x9 e

8 S9 y; h9 k* n, K& R- Q1.2.4 DevOps 是一组技术/实践(小结)
; X6 I# e5 i* b: n* g" g# d
2 C( I! V; [: R" h9 L1 Y/ x
5 ]: H$ F# K, K' B% \
6.webp.jpg
2 \, T& n! h  G0 P" I( Q

* Y: [9 @& J0 A% x+ i5 G- \
, z" R8 M9 c2 h% K4 k) P' }5 s! m3 C# e$ _! ^

+ |9 U! E3 c6 {) B/ D1.2.5 小结: 什么是 Devops
# k, Y' [( \# G4 ^, ]  w3 o; \5 l8 |" Q; ]

( [# P5 K4 h. B% S' C+ r1 O7 E: ?# Z! m

+ G* v5 C" n! D' r5 x3 _  Q
8.webp.jpg

7 y: m7 Q; B" ^
7 q+ j, z' k; c6 k% ?$ }
( q2 w' r% M9 G* L$ x8 W

. p) W3 ?7 M3 m+ s
1 [& T+ y9 v8 h9 x& c0 A/ N0 T8 g

4 C  ]" M2 W. n" H2.1DevOps in Cloud(AWS)- b' |, _! W9 r! B

  Y. t: `/ U, G0 }; x9 _1 S9 |
  U' Y- N% e3 [; M4 c

) V" J* o, F! ?% z4 Q, F
7.webp.jpg

$ R9 f' W. W' |# s* \% B
& Q/ p* ], o5 S+ O5 K
7 s$ w1 O$ d3 e" T, w/ |

7 H0 ~1 C  u  @3 n1 ?( y" E( P2.1.1DevOps in Cloud in AWS# J- s/ M& C: b; T5 x. [& M

' y# m9 u$ ~6 y1 C7 X' R! J1 S
) ^# W! U* s* c! P3 T

! E0 i% [1 u9 u
9.webp.jpg

6 P1 ~4 H6 F) ~; b* J. ?) q9 k  ?2 U* m/ ?' u' M) W( ]
& S) L; n" C! @, V5 a  Y( |
  \% M: r& V# X$ [3 |
2.1.1DevOps in Cloud in AWS" h. V3 \. N- d2 l

# s. q0 m) d+ T( \! `& u

" J2 F! G, N2 B5 ?8 C: t
1.webp.jpg
; ?9 q7 x9 R3 I) Y
, r" X: ]' e# ~$ h- {
! V/ b4 L0 r8 m

; c0 M7 W/ [; }" K" M) T
, q* _5 }) k* X# A3 _6 s3 W
2.2AWS 持续集成(CI)模型
, S# Y/ U6 w2 h0 i  X
; c( x9 j  D5 i/ i/ S- |8 D9 S. M, ~$ V! ~" T: j+ z* g
2.webp.jpg

  X+ s0 r7 l: k4 h8 W0 b' j
, r- E* w/ p! Y3 k! ~0 P9 s8 c; Q
7 X# ?( V2 \5 Z

) R. e: h  n+ D: s2.2.1CI – Code Commit
3 ~, X( v0 ]3 e% U! A" P* Q) {. ~% ?7 s

& y( T/ t  M$ |* g3 G+ {) c( r: a
3.webp.jpg
0 h# O, l' M- K# b4 O6 L4 ]
7 ]4 p) i2 F, S  O' w- B; g& D8 l

% m- H* t& l: O, M" M$ K! `# ~% S

7 E" m- j1 Q2 f6 O3 P. |2.2.2CI – Code Build5 |( D3 ?/ ]; I+ J/ m5 I9 M

$ |7 l8 @' p2 o* p4 a8 p9 D, J2 l
4.webp.jpg
- V  Z: L; C) `8 l; a4 ], W- G- x
, z0 p' R$ G$ f- n

( t9 N4 i; c9 B, Y% t' o" y& r) W8 ]+ H& W

* I, T0 L7 [0 H- g, C# N9 H( h
" J) ]. m! k! _' I/ D
2.2.3CI – Code Pipeline
( P* u8 y: u* E7 k5 O8 w0 u0 C- j3 a8 B/ s
& B, n& w8 @5 E( C$ X; p) a7 p" t  F
5.webp.jpg

2 f5 M9 y1 `7 @& R9 I2 Y7 v
! c+ X# z, N+ H: u

1 J. _$ A% |2 ^& h* ^
- Q0 O: I' K6 ]+ n( P
5 i  k" M4 X0 N6 F5 g5 g
2.3AWS持续集成(CD)模型. f. U0 w$ H# i

. {7 V3 Z  [8 r# {

+ n0 T, H7 C- f" I# A% ]- Z. Y
3 O; H: Y: L/ W- b  M4 L
6.webp.jpg
' o( j- r5 R5 D- Q! M) I& q: s7 }3 o
' X: @" c5 i) e/ M# c' G
9 {' S2 R  c6 S( O* s, v
9 W: Z4 w1 _6 X/ |# P
2.3.1CD – Elastic Beanstalk
; p1 Q* b( H; @  h7 P4 r* n2 d+ h6 C2 C/ ]" ~
  z3 ], }  f* }9 C
7.webp.jpg

7 U( y- G( j: L! n7 F

7 K4 f1 y$ W+ U8 r8 N- A' I, U' W5 o. ~  o- D$ `( j$ t

: \# M5 n8 ?5 X. f) h

# ]9 v+ o; P$ y& F7 j# a: n2.3.2CD – OpsWorks
/ c. K4 V+ O6 [5 E7 c% R  r* {; [  a* [0 f- W4 }
  ~: Z5 D5 A2 v- v

- D8 A7 @; w2 H$ G7 y. G3 h: Q. g
8.webp.jpg
6 _4 c1 t6 [4 ?
- R/ o. O* `1 [: r7 _8 @5 C
5 E' u. @' y* o4 _

% t* o, T7 R4 T" q) g2 V0 m- \/ X* z2.3.3CD – Cloud Formation
$ n( e" N$ ?9 I; F0 w# L$ O2 L3 ?7 [7 M+ ?  f& o, _

- G  `8 Z; T4 S  s& q: U
1.webp.jpg

' Q% v/ T8 f* b1 i
1 G" _3 b" E2 @& L. R) ?

9 j  _- I& v: q1 N: D1 ]" N" G  d9 s% z6 c3 \- v

* m! Y' {$ T, z# B# E3 K! f2.3.4CD - CodeDeploy5 C+ q: Y7 T% M' u; g' \5 }

, Z# D& H6 q9 |3 y3 `
2.webp.jpg

; }, i, Q5 a8 v

: B5 R- s/ D. D) r
* ~0 }. G; i  Q& v

% r- }( u( f- x6 W- _4 u! @
4 i+ Y8 G4 D0 X8 `9 L/ q- U

  K! y  @5 I, I8 M3 _- }9 {+ o2.3.5CD – 小结9 N7 W& e1 X" k! Y. P

, X; Z  B+ p3 _) u: X, f* _
" i5 q9 T- z5 P# h# z- S9 [$ }( U
3.webp.jpg

6 y; ?0 D+ M1 {& X2 h) W+ s
, L& \( V& L3 j2 A. L! x

3 ~( y. V* p# V3 U" Z* ]$ ]
0 g' e) W! X" F9 o/ m4 z$ _; T

4 R( }0 n7 n8 x% d! D$ @! j2 N/ _2.5Sample Pipeline in DevOps. I9 \$ x# r, R% r) i2 S4 r
2 X: C6 y8 i( g3 [: q, d
. R1 j- Z, c+ W8 k* h

% d4 v( }0 ]* _  Q% T* t/ `) N" f0 j
0 n( S4 j7 G; j" C  o

% C1 j/ ]( r! \: ]  {
$ X% l- g. f& T& V
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-5-7 02:32 , Processed in 0.171607 second(s), 33 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

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