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

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

 找回密码
 立即注册

扫描二维码登录本站

QQ登录

只需一步,快速开始

查看: 2716|回复: 0

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

[复制链接]
发表于 2020-3-18 16:13:48 | 显示全部楼层 |阅读模式
本帖最后由 adminlily 于 2020-3-18 16:43 编辑
6 N( y( J! k# m+ z, h8 a9 x+ Q& s' j9 b+ _4 R' i

- ?2 L1 ~! g# [- q8 R; Y( n8 K; E: a' B
1.理论基础! z# Z- t1 g$ ^3 w+ }! F% X

0 z' F9 }# F0 H# `本篇是基于公司内部的一次DevOps分享,PPT是自己准备的一些内容。
8 D# \# E* Q* O6 {5 l: u  B2 s( T6 d$ W* F6 a+ M6 L

# q: C  x5 h5 H! s2 K" j& g2 D( e目前主流的开发模型相信大家都清楚,这边简单介绍一下:
0 l& ~: a% y$ d2 T5 e7 H8 F
6 _' V4 D& P: n* V: c# k7 N6 d
) ?5 Y. Z: V+ c% K" u' p
• 瀑布开发模型:生命周期很长,一般会完整的走如下流程:需求调研->详细设计->编码->测试->部署->运维,且下一环节需要等上一环节完成后才可以继续进行,往往需求阶段和测试阶段会占据很长时间,且需求调研结束后很少再做修改,因此,在一个长周期的开发完成之后反馈给客户,往往会进行一次较大的修改和调整,后期修改成本及其大。- |9 W. v& g, y, I. V2 H5 z

1 I( A; G8 ~* ]" s6 p! T- h8 ]
; T9 p1 X) }7 c1 D2 Z' ^) |% ~! }
• 敏捷开发模型:这种开发模式以一种不断迭代的方式缩短开发周期,把一个整体大的需求分成若干小的需求,进行迭代开发,并将产品反馈给客户的时间缩短,不断从客户得到反馈,并且不断修改直至客户满意,这种方式大大缩短了客户和开发测试之间的距离,把修改的成本缩短到一个小需求的生命周期,节省了修改成本。但是并没有解决开发和运维之间的协同合作,因此,DevOps应运而生。
: g6 S. f8 H3 Y7 v; Q
8 k/ y# v4 h. Z  L* t( n$ g- W

& T2 ~1 Q% [+ B* {8 ]# K• DevOps模式:该模式强调一个运维和开发不断沟通的能力环,在开发阶段我们沿袭敏捷的开发模式,在运维阶段,我们强调自动化的运维,并不断讲已经上线的产品中的问题反馈给开发,以进行问题修复。
' H  q2 {, d$ Y$ y" o
# `; R3 B5 V; j' m1 B4 O8 X! @
) h+ N- G7 N; h
我们可以看到,对于一个软件的生命周期,基本流程都类似,只是在各个阶段我们做了不同的优化,而且这种优化也是经历过考验的可以实施的最佳实践。# p0 i, R+ v  B+ y$ y! D

: u, a/ e; U2 ~
1.webp.jpg

2 t& U$ f0 w  ?5 `7 ]
! y0 {$ ^. A4 w
) q& U$ e0 e6 L3 ]8 `4 i

: |4 Q) {4 _% G: w; s
* V; C: M  j8 |1 e9 U8 }) R
1.1 软件工程模型演变1 z  Z1 ?- U1 ?2 g+ k

6 j- X1 O/ P& ]3 c! k
- ?; d% N- s& u+ r, A' q

( `5 ]. W, K- ~/ h0 V

5 e; l+ Y# Y- e8 K% f
/ l2 S/ w2 n& Q7 Z5 j; ?) |+ `2.什么是DevOps
5 [. j) k5 r+ I0 ?9 X: F

2 c. G9 U( {# L# p5 h2 y  Y  E/ s

7 f- r; ]$ V# }$ E$ d& B  F! B) [
% ~7 d9 }5 |, v# ^  i
那么什么是DevOps呢?有人认为DevOps是运维+开发,有人认为是自动化,也有人认为是Ias,当然,这些认识都是有其道理,也是DevOps中不可或缺的一部分,但大多都是盲人摸象,没有对DevOps有个整体的认识,对于DevOps的认识,
- j6 x: ]' ~6 {, r  l2 _
* l8 a) e8 ]! ^1 L- f
# D1 d" R" C+ u$ Z: M5 s  g
请转至第一章:深入剖析DevOps系列(1)- G' ^3 z9 a; N1 J8 r
' G8 X' n0 o; ]1 S, j5 c

/ u6 T2 y' V* Y# C. j. v$ T& u2 C! r* t
1.webp.jpg
/ {1 f) B& `# y

0 K' q( u5 r4 G, w0 H+ Z, D, Z
( I( i# }' m# f
1.2 谁应该关心DevOps?
0 F7 x0 t! R- r
8 Z3 f  C7 f& ?! p" {, ?" i. q  G3 o
+ k! c. m: T( T6 M2 r& }
6 y8 Z& Q6 }/ j; v9 f
3.Develop和Operation的历史问题
3 H" u. x) ~8 }5 S5 Y
' A2 y" B, ~( ~! \* D
$ L$ V* K4 I5 D: K0 o2 k4 }
开发和运维人员素来就被一种叫做部门墙的隐形之墙所隔离,这种问题由来已久,
1 m+ a6 x0 Y6 }1 o
. M% Q* W' J) A; s" ]
8 d( O/ {5 j: n4 M2 j9 g/ k& L8 D3 @! L
原因1:开发和运维的目标不一致,开发的目的是不断的增加新功能,不断完善需求,不断发布新版本,总之对于开发来说,唯一不变的就是变化,但是,对于运维来说,首要的问题是要求稳,因为一切问题的来源都是变化。' m# {& z8 I, \: p
% ]8 I* @3 v2 K) d
, s2 S: F1 G: h0 s9 R8 @
原因2:两个角色所在的部门考核标准不一样,对于开发来说,新开发一个需求考核就递增一点,是个累加的过程;而对于运维来说,即使将发布工作做的极致,起点也只是0,因为,这本来就是运维应该做的,一旦出了问题,便会从0开始递减,是个递减的过程。4 K* e. V2 n6 z% K) L; e6 z
; a8 s# a3 {. v( Y
( ~3 F! v# f# c6 B7 f2 e
2.webp.jpg

+ V& T9 ?5 C2 e1 D8 s  Z6 a, G
+ O& t8 H$ x; P& J- k' H5 F- l
( Q( y1 P1 y6 q# B" ~, a

( J. p5 @) H# @7 Q1.2.1DevOps 是一角色  w. W$ f: A# R* A6 x" Y5 L; @
1 u. J; Y3 {1 N, ^9 W
5 R  |; E. i! b! _1 p7 R" J
6 q0 P' s0 G- B' m& f9 d; A
4.DevOps要解决的问题8 S$ |$ P* w, |0 N2 a
: N: ~7 h0 n5 }+ O

+ n- Q( j8 b+ B3 {2 Z& \

) A: c0 N4 j' lDevOps首要解决的问题就是Develop和Operation间的这堵部门墙,一种模式就是借鉴敏捷开发的模型,将运维人员纳入到整个团队,之于团队的定义,就是有着共同目标的一群人# C8 a8 B; r* K1 c$ t/ _- G

( P  Q* w. J; F+ V; d: o: z. b& n; l7 z+ {$ W* V. \
亚马逊有一种模式,叫做2 pizza team,用2个pizza就能搞定的Team定义为DevOps Team,当然,这个是一种抽象,目前最佳实践的DevOps team比例为1:4:1:1,即一个需求,4个开发,一个测试,一个运维,当然,可以根据不同公司的不同需求做一些调整。
+ T3 N: ~  K" a* g8 P4 X% I% ]0 {3 W1 t: |8 J/ C7 ^8 b

7 N; P. n6 z. |

* S, X: \& X% B  T+ t, V; L
3.webp.jpg

2 |% u2 |3 V$ E0 E- {! q) h
+ S1 w& n- A9 g

1 V: }0 b5 u0 V1 ?9 Q# Y- l4 j9 |
" I! P; \. Q& _  Y( N
+ W/ b7 ~+ v: `" |  K
1.2.2 DevOps 是一种工作方式
9 i$ P. @) r0 J- y; g
3 ]: ?% G3 ^3 o* |2 \1 ~7 _

1 K+ ~9 _" Z' m. V0 u+ t
- I/ X  D9 t2 H5 k0 a0 t, Q) s. _

# w8 v  W. s4 E- Q2 V* d% E& @( ^- X9 U
5.DevOps遇到的强力阻碍
) ]0 g& e! ?" z* D
  V9 z- F: E! r7 R9 w% M7 g
/ q' s; @, M2 u0 u; ^3 O1 Q
8 x. N/ D, w% J! j& C# d3 C8 R6 I

% ?" [( C2 N2 N' J0 h6 j对于现在很多公司来说,存在很明显的责任推脱问题,相互推诿,相互指责,屡见不鲜,对于DevOps乃至整个公司来说来说,这不是一种好的工作状态,所以DevOps强调信任,沟通,相互学习和责任共担。开发,测试和运维之间的各种活动都需要把其他人作为关键干系人,做到测试和运维了解需求,开发和运维了解测试,测试和运维了解开发等等,当然,了解并不是让开发去做测试的事情,或者运维去做开发的事情,我们强调的,是沟通和相互了解~7 G' C1 s  L3 O. X# V1 O

2 I$ [( Z* s) h2 s1 h: U
7.webp.jpg

. X7 m* A& F  k; k4 k; v: `: |

* {" I: V( `' }% a7 {
; u) k. X7 Y1 B) R& F, `
2 O+ e& j& R; X1 f6 f; ^- [
1.2.3 Devops是一种组织文化# n  I) r' }  g/ Q

- b2 s# \+ F  A

/ m: Q$ P) b+ N! M8 c( L% W' g
1.webp.jpg
1 z- Z; W: j) I) T0 \: A  ~
6 P: J4 M0 E3 A& s9 T8 \

$ q& M9 G( I; \, e$ t; {
* [2 o& g9 Q1 W0 k! {
- m4 C! A1 y4 g& T
1.2.4 DevOps 是一组技术/实践
% u# Q6 ~" \- c" k+ R: V1 u+ C# C; k, {
& Q. [+ a2 \/ B4 p9 W4 E
2.webp.jpg

( A' q( ?1 P: ]. f  j, x
" E1 u2 r) ~( U, O7 [, r& T0 U
  A# N( E4 S: Y" w/ t
3 v" J/ p" ^5 \) }1 K4 T, u2 b

7 X1 e/ E, s7 v. n, ?+ T1.2.4 DevOps 是一组技术/实践(1)1 P2 y* j) J: ?4 f4 x

$ g; s4 \* E/ v8 k

, T' Y4 C4 r; c# x* K' |/ T5 J6 o# Y; x
3.webp.jpg

- {4 O: `; p3 |* \+ b, B* o# I3 G3 ^) O

+ H# u3 {$ |$ B, C4 i# ?+ {

8 {4 ~8 x$ p  ~: [1.2.4 DevOps 是一组技术/实践(2)
4 m4 o% Q% K: N; _7 D
& F! a( n3 r& ^- Z

3 T4 q0 B9 V4 k6 q
4.webp.jpg

* h  S7 a) D, X

' E+ z+ X1 [2 Q! C8 {; e$ ^1 M' L( X/ `) A, `& {5 x
0 W' m/ R/ Y/ R+ J: X
% ^/ `8 w* X+ S/ C2 G: G, e
1.2.4 DevOps 是一组技术/实践(3)
! k7 H% Q. s9 m
: ~% n, @6 B+ A

  ^4 Z# p& i. f8 i! [7 E; Q) Z7 m6 i2 a" f
5.webp.jpg
) H2 }( u. N: g+ a
5 G7 M3 B  L$ [4 ]

# G! u+ w* @. @, P1 Y

6 |9 C$ d2 ^$ G1.2.4 DevOps 是一组技术/实践(小结)
2 W7 q- ]8 N1 a* |' _  p0 v% E6 T7 b+ u. _+ z9 O6 O

2 E, U8 Y; o  ]$ m) H
6.webp.jpg
$ p- a/ u+ n/ a# R5 o( r
- y! v/ V! ?. h1 s6 i- w. O1 g

" m5 [8 W1 [' `4 c5 M
( D- S1 w6 W. t( p' S

/ X* x7 w9 A  _! V6 g! ^2 X1.2.5 小结: 什么是 Devops: J' N( g) P2 w+ R# ~
7 g+ |5 o) g' M% n4 o: X, O+ q

6 J$ M3 i' o6 P# M# t9 G# Q8 J4 V8 g+ F! }$ V
) l* z- y, o' s3 l% _: [$ T
8.webp.jpg
8 Z  a! n! t# @8 @* b4 l

8 a* Z4 r( {$ _
$ N: z! R& |: y

4 `/ e( k7 H: K+ p8 D
4 ?' m* ?  C2 W  u2 q1 s! u! o# k

% s* S) I) l1 {+ R! Z# j+ ]2.1DevOps in Cloud(AWS)
* C* k. _8 G. X9 @/ @/ W! Y
. t! Q& l0 G  B  }- R
$ i; A3 V8 Z# Z+ U
* }0 d& f6 y) l. E9 ^. f8 A7 g2 f6 v
7.webp.jpg

6 H" r2 a7 {  K9 @7 z% n6 R5 B* ], |6 `2 V  Y# l& H

' e# D+ T- d1 }& }/ g

# ^4 a4 B& R5 w- b8 f2.1.1DevOps in Cloud in AWS
; R( b9 X4 t  V, M0 ~
' S3 b8 Q) J, q

) q( J$ F& D4 P: x! Q0 F7 ~( Y9 Y$ H7 i+ U: B7 \
9.webp.jpg
5 o6 X) y6 |; F

5 N7 U0 _9 c& t/ s( A( k$ _' B# |0 p3 O- ^9 {4 C# G
6 k& }  d+ N9 @4 s9 M
2.1.1DevOps in Cloud in AWS
% m! ?0 q  o2 K) H$ C5 f1 `% O" ~& N* a
- ]0 `. R/ C' i" C$ h
1.webp.jpg

3 U4 B4 r1 b$ Z5 E
. D7 N1 v/ T" M3 y( \

- v; z" Q6 Q' s1 ]
$ c$ @% S4 Z$ R9 c& w
1 `* \1 ~+ \+ E
2.2AWS 持续集成(CI)模型   b: J/ W! \' i3 e" e1 v
* T7 K1 ^% Y- ^" z- {1 P- f( m9 a6 R# y
: i1 i# Z: {9 U5 x
2.webp.jpg
) y8 x. A& m; u, _, e# U% N; u
7 B9 m2 X# V8 v; c0 j
% h* X' \( x8 U& j- S% g2 m5 l9 L% j
' w8 L1 r* b9 v
2.2.1CI – Code Commit+ s: J" N. d  N6 N% K; m# ]) J

# Z9 K0 ?) B" @8 ?  ~/ G1 f

4 x" Z( G. A4 T3 d
3.webp.jpg

+ ^9 g0 v2 l: p
& ~9 B# l+ k1 q8 ~  t* E& v% v. M9 I
7 E' [: i2 L( y' M3 b6 A1 v! v, B

, L% `/ b% S' d  i
1 j( l" u# l4 Y. ~
2.2.2CI – Code Build8 J( V+ p8 o1 }. S7 q2 B9 q

" \5 O( }6 V1 R; o
4.webp.jpg

7 _& [7 X( k' x& w
. E( H: f' r7 a* l

% F5 W2 ]- D; X: j0 ?
, P# f8 y" H0 f0 K* q
; i& Z; u  A. ]7 x9 L; [, M2 L
' a' Z( `9 r$ w- K( n
2.2.3CI – Code Pipeline0 l; n6 \+ a; g. p5 u$ y$ q: Y9 n

8 h3 t* k% d$ F- Y# g1 S

2 \5 |" k* f7 R( @# U% c6 k0 H
5.webp.jpg
6 U% }! y" [7 ~+ Q6 a
$ S3 p% J2 u  l% i* W! v# i

: Z, _+ x* X# ]- O* q0 H2 @7 @
* q, [" C( ?: @/ ]* B4 j

2 R" X* d8 s2 t7 W/ u- @3 T6 W2.3AWS持续集成(CD)模型
' o- ]( ?' q+ |( g
( N3 f2 O6 w+ T; u4 u- L* ?- V9 X

% S) h1 U- [* _, Y& x" P
: N) o2 A6 B2 j. E( j& _$ b
6.webp.jpg

2 x" A: h( U5 C  w  ~- j% i$ b  k6 W6 D% i3 T2 j% w% s; t: _5 i
8 n* ]5 C4 p! x5 z( y
4 z( {/ N' J. z6 y- k6 c4 R( y6 L: u
2.3.1CD – Elastic Beanstalk' V7 |2 I/ i' L- C: D0 ~6 c

% z/ x+ I& D' x& C; i' |

0 H8 m  T! ?& P0 O5 N# [) R
7.webp.jpg

6 e& I0 X5 y, S: E2 i& R, X4 O% `8 I; G

. T7 L& o6 `& C* ^' S! @0 s1 b/ V6 E; p8 \3 ]4 h" i9 _

& g; H+ R* h  u+ @  Z

3 E: X6 J7 i, A; d0 l6 ~+ ?. R2.3.2CD – OpsWorks
) K) V5 J; E0 B+ y+ [1 {
& g) r/ Y, Q$ m" z1 `! H& X
6 d/ A1 I: N5 @% m4 d- G! @
3 a) z# ~6 u$ B( m' \
8.webp.jpg

  u( y1 ~4 |6 x* x: U3 Q! x7 r
' f( Z8 Q% n0 ?" l& \
! r" i/ \4 }# L) ~) y

) M" b% t' S: x5 P0 U+ i6 S2.3.3CD – Cloud Formation
* W8 E( v* @4 j3 v5 W3 J: H# o0 i7 [# [+ s/ O. a7 K
# B* k. _/ J: V
1.webp.jpg
+ H! d$ `4 l3 d

4 K5 ]. j2 K% Q
1 h& Z5 q9 m! A; W3 k# N$ b3 ]4 ^6 a& q2 [
% w: u* ?3 Y1 e
2.3.4CD - CodeDeploy( R. k. \+ H0 l' h  F* O6 l+ f

* |$ x2 ]5 L2 c8 ~$ c
2.webp.jpg
* m7 u  W  s& \( |" Q( T* t

/ [9 U) V( T2 F- b

2 v: C6 G) E2 Z8 {$ w
6 e' K! L. _! X+ `7 q
& ?8 A* K. c# v4 e
, U% y4 y: l% l. Q) H2 M# Z
2.3.5CD – 小结
  l1 w  D/ {3 U
/ r" B0 I$ s  g  C- H& Y

* O( F5 R# p  C. S, f9 }
3.webp.jpg
; Z- w1 X8 J+ X$ R8 L" Z
' n8 n8 b* H4 q1 q$ H: G7 ?

8 ^- F7 J' g1 Z; s6 r/ z) s
' H/ N3 \. k/ p, ~/ H
% Q( w9 L! s3 Y, U. U  G
2.5Sample Pipeline in DevOps
* X- K5 B7 i8 |! a! p  v5 B7 ?* h5 j$ ^4 v+ h

! J# N5 W3 P  a( J+ j$ s" Q8 j* [* Y0 U: D: ]+ s

' e* i, j% C+ Q, b; p* \0 R; }3 }
' i- P9 f% [6 [/ Q" H
( F, a* f; G0 A
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|ITIL先锋论坛 ( 粤ICP备11099876号 )|appname

Baidu

GMT+8, 2021-12-2 23:39 , Processed in 0.141401 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

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