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

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

 找回密码
 立即注册

扫描二维码登录本站

QQ登录

只需一步,快速开始

查看: 3094|回复: 0

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

[复制链接]
发表于 2020-3-18 16:13:48 | 显示全部楼层 |阅读模式
本帖最后由 adminlily 于 2020-3-18 16:43 编辑 7 j# m1 K+ Y; m! n
8 c3 }4 i; v- ~
5 Z6 U) ~+ g; }- Z/ y# J) w
0 {3 b% E2 w, b( D% \% \
1.理论基础: ^8 `3 s8 P* m4 a
3 Z+ ~* R* ^0 J# q: T& `/ o1 ]
本篇是基于公司内部的一次DevOps分享,PPT是自己准备的一些内容。/ d7 W& s$ i2 y5 P1 J, U
" t+ O! A) m9 N2 ]4 J& d% o
% w! k" E# ^5 Z0 |+ i3 T9 `. A3 S
目前主流的开发模型相信大家都清楚,这边简单介绍一下:; P+ R9 O& A$ R

; q% p8 g: T# M: c2 p
. C# p' i. F% E7 u
• 瀑布开发模型:生命周期很长,一般会完整的走如下流程:需求调研->详细设计->编码->测试->部署->运维,且下一环节需要等上一环节完成后才可以继续进行,往往需求阶段和测试阶段会占据很长时间,且需求调研结束后很少再做修改,因此,在一个长周期的开发完成之后反馈给客户,往往会进行一次较大的修改和调整,后期修改成本及其大。
' V1 W$ y5 h; E
' f% u, O, \% G% `, z, a
8 P" @' T: y1 W, X6 j) R9 x
• 敏捷开发模型:这种开发模式以一种不断迭代的方式缩短开发周期,把一个整体大的需求分成若干小的需求,进行迭代开发,并将产品反馈给客户的时间缩短,不断从客户得到反馈,并且不断修改直至客户满意,这种方式大大缩短了客户和开发测试之间的距离,把修改的成本缩短到一个小需求的生命周期,节省了修改成本。但是并没有解决开发和运维之间的协同合作,因此,DevOps应运而生。
: h2 ?$ m& L3 l( ^2 \! d, T% b, j4 E$ _7 x) d4 w. Q2 e# E$ L
! L" e- ^$ K, e( R# a. f. ]# a. R- ?
• DevOps模式:该模式强调一个运维和开发不断沟通的能力环,在开发阶段我们沿袭敏捷的开发模式,在运维阶段,我们强调自动化的运维,并不断讲已经上线的产品中的问题反馈给开发,以进行问题修复。. v- d  y/ y( o; R. w( R  [
7 A$ ?0 ]  t4 X" m
3 L" L0 Q4 m, Y2 C5 S0 S
我们可以看到,对于一个软件的生命周期,基本流程都类似,只是在各个阶段我们做了不同的优化,而且这种优化也是经历过考验的可以实施的最佳实践。3 T1 O- O1 K. _5 d
9 N1 C- z; a+ l$ T, q" e
1.webp.jpg
' T" [' ~' U; N  |
. k. v1 x) O. @. n& J! D

. ]1 _7 Y: `) T; ?" i) s4 Y- b3 I# Y0 x

4 o' i5 G8 h/ G( _1.1 软件工程模型演变( v: {  c8 x7 M

/ F5 k4 Y' j: @8 V
: J/ o: V; t2 [' |: f

' u# D: k- {1 Y+ A- L& R& }* o

- c" F" o/ p8 p2 L: |' _
3 ?  X) S% {$ V  `2.什么是DevOps
( P6 ~: Z3 I; r6 p$ y
% }( Y+ a6 j, F, G7 t! X) {
6 t" o! {* @6 @+ @

% X+ j) P5 s* B# P! x

8 V1 ?  r+ x0 e& s9 e6 e  G; r那么什么是DevOps呢?有人认为DevOps是运维+开发,有人认为是自动化,也有人认为是Ias,当然,这些认识都是有其道理,也是DevOps中不可或缺的一部分,但大多都是盲人摸象,没有对DevOps有个整体的认识,对于DevOps的认识,
2 O# T' u: D: ], _9 `4 J
% `# [/ ~9 E  F6 e9 F- s0 q
- @- G/ X0 g$ a% a, y4 g7 l
请转至第一章:深入剖析DevOps系列(1)! `5 e7 U& a$ r+ Y

8 U7 ~$ r$ g. P; w& f' {, Z, K2 ]% R
& q8 P! x8 F( B1 c9 l' J6 E$ J, L
1.webp.jpg
( D9 K  L! }# ]+ z7 r; ?
; U5 Q6 `* n, u% a. N! v
, S7 t3 l/ @+ x" G
1.2 谁应该关心DevOps?
; q: u; [7 ~3 v5 z3 T1 O1 i' O, J7 R- h' _' n! B. o1 _7 H* ~
+ r5 v4 E$ M5 Y) L5 z) @2 y  e

+ Z/ k! e! L# G! J; G1 H3.Develop和Operation的历史问题
& a5 S$ I. V  ~

- Y1 }2 c" @# Y7 T. |+ A( j7 X$ U

. ^2 E% t0 f! ]开发和运维人员素来就被一种叫做部门墙的隐形之墙所隔离,这种问题由来已久,
7 b3 x' s9 _: w- z( T4 s0 ?7 }
+ U1 T' a9 x3 I8 P! m! M' Y* h
7 K. T  _7 B% \/ T* e
原因1:开发和运维的目标不一致,开发的目的是不断的增加新功能,不断完善需求,不断发布新版本,总之对于开发来说,唯一不变的就是变化,但是,对于运维来说,首要的问题是要求稳,因为一切问题的来源都是变化。
& h- J& F% V* i1 }6 P3 H+ |
4 l+ g5 [, n3 {8 ~
' I: `- R% z  n! I, ?' [
原因2:两个角色所在的部门考核标准不一样,对于开发来说,新开发一个需求考核就递增一点,是个累加的过程;而对于运维来说,即使将发布工作做的极致,起点也只是0,因为,这本来就是运维应该做的,一旦出了问题,便会从0开始递减,是个递减的过程。
! ?: k( ?+ W: z) |3 E
1 s! c& B- k  U& O5 d
( p  l) t7 L' O1 Z) v4 A  N1 u
2.webp.jpg

: y5 Z8 n* x: [7 V7 O
" \' s* k8 [# z% k' o4 K. j3 E
/ `0 r, V, g5 P* D( p" [/ e

3 g7 `3 o) ^; r, K2 F7 l) J, f: I! d1.2.1DevOps 是一角色
, T& k/ G; W5 D/ A8 a) v) n/ E2 S6 U1 g2 E, {6 @- n
! O! h/ P8 V/ p
( a' c$ g1 R% t$ D
4.DevOps要解决的问题
* }. \9 E+ H# j
. f2 p* c* k" ]" j1 Z2 G2 Z
  v( J/ v  d# l. C8 B
3 D9 ]' f, v! z
DevOps首要解决的问题就是Develop和Operation间的这堵部门墙,一种模式就是借鉴敏捷开发的模型,将运维人员纳入到整个团队,之于团队的定义,就是有着共同目标的一群人
9 ^: h0 M: M( L6 f8 z7 |5 e; P- z/ f7 g/ \; c# w$ r

5 t! }- B2 M9 P" _- `. H1 u+ C亚马逊有一种模式,叫做2 pizza team,用2个pizza就能搞定的Team定义为DevOps Team,当然,这个是一种抽象,目前最佳实践的DevOps team比例为1:4:1:1,即一个需求,4个开发,一个测试,一个运维,当然,可以根据不同公司的不同需求做一些调整。8 Q. v+ c7 W1 u' e0 e

! C3 m0 U# H# Z/ X7 s* w

8 H( b% S9 B% Y% Q/ }
1 q. |! F! R9 m
3.webp.jpg

* m7 L. w7 o) s- i8 Y+ h7 u' p8 H( ?5 v4 g
$ i+ k  X8 F& s; {- j* `4 t

) Z0 C, O0 U* j# P: }0 \% `5 r# M5 @

: X6 t( I( U. s0 {6 D1.2.2 DevOps 是一种工作方式% c! g8 y- I2 F3 w: G; i
$ \! _: Q8 |- b  s. \

1 C# W) N$ h0 A; B7 }# _
* Y- Y, E9 m) U% H! V( t! ~2 s
/ J8 f8 j. b5 o5 u3 K" f* N0 N
- h5 P6 t7 V1 \8 z7 r- \. _# z
5.DevOps遇到的强力阻碍; k7 o9 n4 j, f! I
1 z7 p/ m. j: Z! @" k1 A) y

" e) n2 m0 _; N9 y$ c+ U' ^0 h- Y7 _' [' r
  _; U/ \' W: v  X
对于现在很多公司来说,存在很明显的责任推脱问题,相互推诿,相互指责,屡见不鲜,对于DevOps乃至整个公司来说来说,这不是一种好的工作状态,所以DevOps强调信任,沟通,相互学习和责任共担。开发,测试和运维之间的各种活动都需要把其他人作为关键干系人,做到测试和运维了解需求,开发和运维了解测试,测试和运维了解开发等等,当然,了解并不是让开发去做测试的事情,或者运维去做开发的事情,我们强调的,是沟通和相互了解~# }" f4 ]- X. h" M
/ ~0 ^& W) {& I% ^, _# S! H$ R
7.webp.jpg
4 {/ |9 ]' m3 ?) z! `6 l2 }* ^

: m* f' m' W2 h% P4 z

3 T8 i- L( |4 I9 R1 L
" W% J+ d: c. ~, k( t  x2 P7 K
1.2.3 Devops是一种组织文化* }3 Y3 q+ u. r4 {: o% D* `0 i

5 f" \# x8 L: I- M
! g- o* @: S1 |
1.webp.jpg
9 c% }; _7 p$ T/ R' i

3 t/ j9 c: h& g9 n1 P. L0 Z: M) C
, v$ s) @2 v- j) s. v0 F) T
! t- x, Y$ m4 e" n2 _$ `. d
) L  c4 \, A8 d4 r
1.2.4 DevOps 是一组技术/实践
9 k) P+ f/ w5 Y: h+ P. h$ ^# g. A$ t9 {- F& f# J8 H9 v

9 s& d% v( S) c3 E* G6 B
2.webp.jpg

0 N8 t) n+ P$ [1 X: I" W% g
9 F+ @4 x& ^; w3 W- ~" }5 _

$ Q$ l9 M3 O- m- m7 L$ y& S/ F' w5 t6 `  a9 n' l5 B* r) m  }
+ n9 _* d) j1 B5 H& Z. \" ]- U
1.2.4 DevOps 是一组技术/实践(1)' Y. _  v, D2 {! q
- S- F- }/ y; X" W, T0 L

+ o! W% f, u: M3 Q; H7 L% f. G
3.webp.jpg

. b4 Z4 Y) K/ y( H/ y* V. j/ V3 N4 N% _2 M
6 `; ~6 R2 H6 `, Q8 ?* _
# a7 }% q  I2 ^( h( G; b+ o
1.2.4 DevOps 是一组技术/实践(2)
+ ]' W3 L7 _  E2 Q& ]
& G# X5 f7 Y% n  L' k) Q, p6 ^1 {7 v

0 G7 T9 U4 n' ?* L9 K
4.webp.jpg
' w5 _& R5 e; Q' k/ P) J
& x3 b7 |/ K7 w' p

) o  Q* l1 p# I6 n+ n4 _2 h4 X$ x/ d
4 U! H& H% x+ O" k, z. ?  t  G
1.2.4 DevOps 是一组技术/实践(3)  |3 n0 K- I' U( F

3 y( l* k' P; J4 i

2 ]+ z+ a* ]$ K0 D; S  i4 Y4 C1 m; q/ H  }
5.webp.jpg

; m: G% r4 y) h) I5 ^, Q& _0 ~# b* H$ H4 z
, T( b- ~) z4 u% \" t% o
2 w0 E+ m! A. p' P
1.2.4 DevOps 是一组技术/实践(小结)
  r% [8 Z: P6 s* l
- o/ {$ R) O4 F/ D/ I6 X9 M7 S
5 @, ^9 d, {+ o: ]/ T( N
6.webp.jpg
9 M& q6 U5 a% d% y- C. v
" f' m8 G# q! q6 K! v* D

1 ]$ L, @8 K7 H) Q6 g0 ]6 |; R1 o( C  w; o% x7 Z
" G5 d" F2 k- v8 ^4 l
1.2.5 小结: 什么是 Devops
5 Z/ {$ S$ P: V7 g+ z3 q
. @8 x% d! Q$ o6 q6 k- g

3 ]4 O; Y4 m& F+ R- s+ X& g3 l" l5 H6 o

; q4 x- G, Q& X) F/ R2 H* R! R4 ^+ ^) L
8.webp.jpg
- d* l7 p2 H$ t% D
1 v; v( Z9 h; o6 x% F' I) N% r
% Z7 i# E" Z) ~, L6 r' t, t
3 y( z6 A/ |$ f: K8 `) {
  R& X8 s3 h* V0 ^5 Y. t
& @7 d4 G: k. g( n7 E- l1 ]* T
2.1DevOps in Cloud(AWS)
" r4 a0 t# w) o# U+ {+ c8 O4 b, y- J  J' [7 Z% }' I% B

5 ^0 D: ]& M. @) @4 |; D2 k: I; e
% Z/ ~8 Q" A' _7 J- O7 d0 W2 ]$ U$ L
7.webp.jpg

8 x8 o# P5 A  I; ~
! q& V- J9 q+ ]6 E7 a  }/ @' [% J2 p# R, \- U

4 c. H6 T: z) F- t( t2 F2.1.1DevOps in Cloud in AWS. k6 a8 q2 d% l
& }  C8 }# B% U1 R
# y( i- l1 y1 \2 D' ?
7 g3 z7 u$ q  u4 |5 O. N3 J4 S
9.webp.jpg

7 u! `) @2 g. C3 a% ]
" Y2 @- z2 P/ g9 S
' e% E; j4 @- _" k' J  [+ O

# X. L. {/ v9 T; ^5 b2.1.1DevOps in Cloud in AWS
* }, g2 G) S5 C$ A5 L  G
. q0 S, t* e8 f
% A  _# G8 v* A9 _, n( R6 s
1.webp.jpg
& |( `: G+ ]* \4 }# P! n
6 y2 c! l/ N7 y$ T
9 \) B3 i6 w" X" u" \
6 o' y: j: ?; N. l

# V( D$ l$ @1 ^; v/ ^2.2AWS 持续集成(CI)模型
( U& h3 O$ |1 s: e
1 s* t, W/ `6 d/ ^4 w9 R+ j  M( E
% `$ F* x" p( @& i
2.webp.jpg
4 w! n( e0 _% o0 f5 G

6 Q1 u$ N- ]3 n0 A/ u! a2 p5 y
$ `  m0 R* @. r6 z2 U& B+ D- i  b
9 N) z4 X1 ~$ L8 I2 w
2.2.1CI – Code Commit! I& q$ @8 d0 l6 E( t3 w) a

4 D) O# e: |& l7 b) `' k' j5 X: D- O  P

0 N& a, w% [! P# _3 m& u, s) {
3.webp.jpg

% ~9 P3 r5 P2 ^6 J
+ |5 h( O5 y# K" [
, E: ?; D1 i  ?$ q+ @5 C& J+ f( Z

9 X) f2 e8 n/ L  {
' ]( v5 ^! U! e$ Q; ~  [
2.2.2CI – Code Build
2 Z* L5 @9 v) K) j: v" ~4 M! b0 @* m0 s) X
4.webp.jpg

) F+ b0 O% f3 O7 n/ n
; ?  H* c1 o; Z7 V4 v
6 d" K2 _9 l" w6 Q( _9 _
  }6 L  [4 _* Y  k9 j
9 \8 o# H. ^9 B; C& h

: l4 y" J0 N. Q; p2.2.3CI – Code Pipeline
: _$ l; s% ?( K1 O. o6 [  }8 d! B7 {% ^/ M0 u. G( {, l
% u8 t. U3 G+ t2 F
5.webp.jpg

9 s5 a# N, v! [+ b/ _( Y# |* l

* B/ Z( k5 k9 K. F! t) ~7 u
3 H, n1 A: I& G9 x1 x  e8 v4 c2 l' g0 ?. O) Q; G$ W

- q& |" n8 c/ e  B0 ~2.3AWS持续集成(CD)模型
3 U, [  r5 I' {8 {
6 R' T7 K3 J$ ^5 @
9 M* [" n3 p& K# k- \

7 j- K7 j$ [# q1 B( z
6.webp.jpg
9 s4 p# x5 F& K+ }

; B$ ~  }# E& g! g2 H  o: p  R
. H3 V! [/ j5 i. u. E9 k
9 y- R2 k, W$ _
2.3.1CD – Elastic Beanstalk1 g* }! J* Z; {* U1 @: l4 I: a

6 l" U; U" N2 U$ k6 |: T

& u* v. \7 r! Y7 D/ d% |& S
7.webp.jpg
, \9 O" D5 z0 O5 d/ g7 C
/ E) F+ B& T% L/ s
, j$ M4 B5 t0 X! s3 ~

! _7 ^+ K8 D1 C7 Q0 G- \; |

  ]8 o- y1 m  t( m9 D1 t2.3.2CD – OpsWorks  d$ K- M- ~. g' z+ l1 Q4 v* d

* L0 {, k& H& _8 I
9 _0 ^- v" Q8 s: K- Q

; ?* e8 a. \1 H7 D, {8 d$ e
8.webp.jpg

- F/ e& w# K( o0 E7 U3 G8 i
" {) }1 b1 ]( q0 F3 P" B& @  S" z) X' D* T3 R5 t; o/ F
7 X5 H- x% F4 Q0 L7 m9 x  R
2.3.3CD – Cloud Formation9 ^% H. a4 D5 c! b& F  L; e, v( r9 a
  y" [  M5 G4 r8 p" Y" k
- d! ~; @+ D; D) U* U- T
1.webp.jpg
" _, N2 O1 y5 l$ \/ [# `
; X) @; P! ?. X, p# j% m
& J  a( j4 m  d& p" @# u* g9 }
5 p8 s/ {2 r: t9 J3 e! N

" t3 y! \) b  U6 v2.3.4CD - CodeDeploy9 \" \9 m$ |8 ^# ~* u1 s7 j

: ]! u+ C( d& b/ h: }! g/ P
2.webp.jpg
- q3 X; K% z, y: c' h/ o

8 x; ]$ g/ _. _5 _& B

2 T" K! X  }" N+ m$ f+ q9 ^$ g1 p! W" m

: `1 N4 ?9 @. z7 k/ O3 w; P5 K
! X7 j6 D' g) j' u" v/ s
2.3.5CD – 小结* F+ a+ t+ t% A+ F: ]& z
8 @7 Y' U: M2 L5 N* ]
! Z0 y/ k+ v0 u) i
3.webp.jpg
9 j0 J) g( ?8 }# H

$ M  g; G8 X& N. Y
$ [$ F  L7 c7 B& X7 m
1 s. m" X; [" z  V% f7 u% d1 p
; f) A5 u$ Z' ]+ z3 d  b& f; a# F
2.5Sample Pipeline in DevOps; ^# Z+ Q. v/ f

+ b$ N2 n1 |+ N- g' t1 @7 w) N' E* R' M% _- p! [

) h* g8 I1 i6 I0 E$ R( B+ ^/ M6 G* E! R7 z! m+ @: X

4 X1 ?2 n6 P, \5 r7 n  d' Q

3 \' B* O- q$ E
1.jpeg
1.webp.jpg




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

本版积分规则

参加 ITIL 4 基础和专家认证、长河ITIL实战沙盘、DevOps基础级认证、ITSS服务经理认证报名

QQ|ITIL ( 粤ICP备11099876号 )|appname

GMT+8, 2022-9-26 20:28 , Processed in 0.104004 second(s), 32 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

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