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

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

 找回密码
 立即注册

扫描二维码登录本站

QQ登录

只需一步,快速开始

查看: 2562|回复: 0

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

[复制链接]
发表于 2020-3-18 16:13:48 | 显示全部楼层 |阅读模式
本帖最后由 adminlily 于 2020-3-18 16:43 编辑
4 f$ Z* b7 P( l3 b
+ @9 B. h) ]! ^% C: N# Z
5 U/ S0 Y  H- g) _/ p  a" A
( _( Y" l: S8 |' o* @0 \1 w9 u
1.理论基础* s1 o( Q- i6 X) b# l7 t
* A! N# O( l8 F2 f; E5 w: C; U; ?
本篇是基于公司内部的一次DevOps分享,PPT是自己准备的一些内容。
' \; @$ M$ g5 |7 O6 D' k2 Y7 }; H9 V/ ^4 `! X& W# m3 `: }0 ~6 n
' b  }9 F7 Q( W+ @8 n
目前主流的开发模型相信大家都清楚,这边简单介绍一下:
7 S- n' }$ x: G. c, i3 x% y4 z# x, S8 k2 f. L; d7 B- t# P6 g7 Z0 G
# f1 T; H- f- S1 G, z
• 瀑布开发模型:生命周期很长,一般会完整的走如下流程:需求调研->详细设计->编码->测试->部署->运维,且下一环节需要等上一环节完成后才可以继续进行,往往需求阶段和测试阶段会占据很长时间,且需求调研结束后很少再做修改,因此,在一个长周期的开发完成之后反馈给客户,往往会进行一次较大的修改和调整,后期修改成本及其大。0 |" X4 A8 n0 g- U

4 }) Z& `; a$ v4 A7 g  ?+ v" |
4 C1 k0 d5 @% w# K; {: \- Y
• 敏捷开发模型:这种开发模式以一种不断迭代的方式缩短开发周期,把一个整体大的需求分成若干小的需求,进行迭代开发,并将产品反馈给客户的时间缩短,不断从客户得到反馈,并且不断修改直至客户满意,这种方式大大缩短了客户和开发测试之间的距离,把修改的成本缩短到一个小需求的生命周期,节省了修改成本。但是并没有解决开发和运维之间的协同合作,因此,DevOps应运而生。
9 y1 \+ y) ]& p2 |0 _+ c' C7 Z6 y; p/ n

' z) I# s5 r1 u2 o: K% ^$ P  _; Q3 A• DevOps模式:该模式强调一个运维和开发不断沟通的能力环,在开发阶段我们沿袭敏捷的开发模式,在运维阶段,我们强调自动化的运维,并不断讲已经上线的产品中的问题反馈给开发,以进行问题修复。
. Z0 ~& v' B- M/ ?4 D, D9 C
$ y4 ]! Q5 u7 n4 C3 M$ N

2 n! }2 @8 {! b0 ]' U- Z我们可以看到,对于一个软件的生命周期,基本流程都类似,只是在各个阶段我们做了不同的优化,而且这种优化也是经历过考验的可以实施的最佳实践。* E* G. R( F3 K& ^' a

& ^- s* k- H# M
1.webp.jpg

" K! E4 o  l& F! S$ h8 Q8 [

4 z6 {' |$ W2 Y6 ?- b/ s; ^& h7 ^4 C7 D6 X( z. k+ G: S( V

3 s0 U+ I. Z7 n  _  G9 v

6 W8 C/ |2 U2 b' |3 x; u* Q1.1 软件工程模型演变
2 y4 h5 H9 L1 W: G0 h( E. S. h; C( z$ _. n* h0 G
3 E0 S& ]4 E9 l% Q- J; k

( L2 c9 k7 C/ q! ?. R; ^6 j; J

$ }  |/ `7 Z, b# r+ [& ]  Q* ?9 v1 P8 ~' q9 P6 z: h1 h
2.什么是DevOps: B/ k/ o; T# X) Q  t

' {9 ?- Y* L  C6 K% P: @
2 T% V: J- ^! }$ a- G

1 Q- B  n8 J* f; ~* B
4 f" P2 v: \2 J1 b) K: ~! O
那么什么是DevOps呢?有人认为DevOps是运维+开发,有人认为是自动化,也有人认为是Ias,当然,这些认识都是有其道理,也是DevOps中不可或缺的一部分,但大多都是盲人摸象,没有对DevOps有个整体的认识,对于DevOps的认识,$ e' H7 e. j) _8 g/ v* b& l
. s& f8 I  C  i

9 ]/ G- [+ b5 r: S. s请转至第一章:深入剖析DevOps系列(1)$ I# x! y/ J. F8 Q6 _  T  p

' e7 h) I8 e. o8 i
/ m! E4 ~7 ^9 t4 k1 `0 w6 C
1.webp.jpg

, [" k$ J- I1 [- X4 t) j7 _* U
& m0 b3 Y5 N  N8 |3 q7 Y5 V9 D

9 j' e) k4 Q! y0 u. V1.2 谁应该关心DevOps?
3 k8 o" w3 c% m) S: H, c$ s+ T" ^! K
; h8 {- E, K% G- N% k0 s% z3 [

% c; R% W& @) I  E7 l* q+ w3 V
/ ]& C8 f- Y$ N- c3 b6 M) y' m3.Develop和Operation的历史问题3 N: M0 k1 k+ b. h9 L
8 ^- ~* a- s, i! x4 _% a4 I, M) X, l
1 g/ m0 Z( ^3 [
开发和运维人员素来就被一种叫做部门墙的隐形之墙所隔离,这种问题由来已久,
: l+ J3 O! [; x9 u, C0 Y% I" e' I, \8 d. w
$ k+ r/ r- Y6 g; Q( g
原因1:开发和运维的目标不一致,开发的目的是不断的增加新功能,不断完善需求,不断发布新版本,总之对于开发来说,唯一不变的就是变化,但是,对于运维来说,首要的问题是要求稳,因为一切问题的来源都是变化。9 A9 Y' c3 I2 d; d

" z6 L6 ?5 L; j* n  x' o) c

, i+ x& H+ l" x3 e- w! k- B. u5 m9 M* {0 |原因2:两个角色所在的部门考核标准不一样,对于开发来说,新开发一个需求考核就递增一点,是个累加的过程;而对于运维来说,即使将发布工作做的极致,起点也只是0,因为,这本来就是运维应该做的,一旦出了问题,便会从0开始递减,是个递减的过程。* @' z/ J6 ?! _& S2 @" D

# A* n; I  U, F! w' `* R* C
" Q7 |' G4 Z# A# x
2.webp.jpg
. t5 ]6 b/ h$ L* L; U

9 [! j- T. c* f4 e( T. o7 @6 p; l1 t% d! V% [' c
8 S; }( R: y% ~8 n' {8 y# }/ e7 j
1.2.1DevOps 是一角色
/ p4 s# a) B. [# f0 s
! {* D2 I; w, b* b3 S. f
+ t5 ~8 H! W1 D4 F$ a' C

: F. d# `6 d- R& T3 V& J% t9 t4.DevOps要解决的问题
) G4 M  {! u$ o6 D0 i3 l

7 ^/ Q% F: i) M- v7 T5 x" K: W4 P0 D: z. j; A
8 h6 t/ u' c, Y7 B$ }
DevOps首要解决的问题就是Develop和Operation间的这堵部门墙,一种模式就是借鉴敏捷开发的模型,将运维人员纳入到整个团队,之于团队的定义,就是有着共同目标的一群人- A( @  A9 Q# {, p& @5 t

, f) o3 p6 c0 ?3 a" @$ w: k
0 O5 Z/ H2 X+ V亚马逊有一种模式,叫做2 pizza team,用2个pizza就能搞定的Team定义为DevOps Team,当然,这个是一种抽象,目前最佳实践的DevOps team比例为1:4:1:1,即一个需求,4个开发,一个测试,一个运维,当然,可以根据不同公司的不同需求做一些调整。
+ S0 L9 }2 k- ^# C( c, q7 [" K! S! @6 G$ n

1 B* w  Z( D/ @
8 N- L6 L+ ^" i9 k) ^
3.webp.jpg
" ~# r& _% a4 Y3 S& O

2 g* q' X- `# w7 R
; a6 r1 `3 I9 N+ n* h
1 G+ p) [+ C* _/ g( z

4 y: o. d( ]# ?1.2.2 DevOps 是一种工作方式9 @( N6 z$ z6 k* ~
% l  T. g5 z) w$ Z

9 i2 ?, m  @, O2 w' x9 g. x9 A" q4 r# H

8 T+ r  q& D0 ^* u! s" S+ o8 W% S' Z$ C4 G5 ?, [* q
5.DevOps遇到的强力阻碍! `8 R8 V$ S0 f

4 r- |; Y* V3 A+ Y9 p
+ z3 s; L# h3 A( i  Z

5 l1 H; t- C4 ]# ?  A& Q

3 \& K" W7 q% M. c* S对于现在很多公司来说,存在很明显的责任推脱问题,相互推诿,相互指责,屡见不鲜,对于DevOps乃至整个公司来说来说,这不是一种好的工作状态,所以DevOps强调信任,沟通,相互学习和责任共担。开发,测试和运维之间的各种活动都需要把其他人作为关键干系人,做到测试和运维了解需求,开发和运维了解测试,测试和运维了解开发等等,当然,了解并不是让开发去做测试的事情,或者运维去做开发的事情,我们强调的,是沟通和相互了解~
9 k3 d( ^, x/ x, G6 |: d3 e) m0 q* E
, h, O2 y" u; s% p, V
7.webp.jpg
( C$ l, A+ G) N: @' }2 N+ T$ Y

$ j1 j% L1 U- R

1 S% p! I" M5 w8 x# {7 |. j! t

* R2 o. W. C; N( v! O2 N% t. |) S6 ]1.2.3 Devops是一种组织文化
( u* S1 w( {0 c# e! }
. r6 f' w: Z4 ], A* a: R! }$ g% Q

: K1 e6 N) J! N1 H! H7 p
1.webp.jpg
# Q2 a7 j0 y. C

0 a& i; D' u$ e9 p% z5 Y, s* o0 N) J9 N7 }( r* ]& m

0 k' g8 x4 m0 d$ k2 B, \

+ y9 f9 k& A5 p6 z1 a1.2.4 DevOps 是一组技术/实践+ x  @& `- b7 c. e* ]- G9 D8 }
& Z( n9 @6 J8 M) T* y

( m' Q8 u5 \  ?8 k- f
2.webp.jpg
& r  M1 {& C% H. z# p0 y

: c! J& F1 b$ D- S! A: o6 d" G7 G; `# f0 i
+ d' V/ b" ~3 c

1 z3 y8 ]/ o2 e/ Z' x7 X, ^0 U& b1.2.4 DevOps 是一组技术/实践(1)/ p* {: M6 R0 g. a: ]8 N, p
% Q7 X  z+ B* x" R3 p: n6 `
# O& b9 L. I/ n, k+ R
' Y% p# z. |: s( o6 f0 E
3.webp.jpg

" P+ Y8 ?; ^# c4 g) I
$ o/ u3 q4 A. S8 v
# h" K" Y( V. K' z4 O( @
: z) j/ X0 l# }2 J) k4 r
1.2.4 DevOps 是一组技术/实践(2)2 t! {# o" P1 y7 i" L, W: e
* Y! Q3 Q/ l3 P

; B  W, d4 _' H& x# K
4.webp.jpg

9 C" l" d; }& K; e3 A( H
( Y2 v6 }' ?4 k& ^  O; j

' S9 [& X9 k6 X8 N  V& _% E# |6 K: E- k; s7 D# y

' s+ e* u8 w( ?% ?% C) H9 T( G! G" k1.2.4 DevOps 是一组技术/实践(3)
) o( m4 c* M0 N( g
  a# D( L! ~/ Z. E$ J7 ?

3 W+ {' y3 `" a0 O+ a2 \0 Q2 d# f  u& ^0 e
5.webp.jpg

' B- W1 l: E# F+ S% A5 K8 J# ~( L0 X
: D/ w) r+ }1 \" N

3 d1 x" ^# R- G7 e; o! y1.2.4 DevOps 是一组技术/实践(小结)
+ O) W) f9 i: I- T, A
3 e" R$ _% v7 X' C
, w1 z- x- p  s' Q9 e% Y
6.webp.jpg

/ [6 F) d" V/ M4 R( d. P

3 {2 r3 k/ z6 j7 ]  x5 o# c$ E. \4 U# q7 A. f7 I- i+ l' Q/ J
- X8 R$ |: d- @* y/ V# C

8 T0 V: l! B2 A' r) t% h* w1.2.5 小结: 什么是 Devops
" u1 O( P0 q5 Y7 v& E+ S$ P& F0 Q8 m  D; [& X7 j' s$ j
5 d- T. h; }/ {% a7 \9 L& w! A

3 j0 i! n' N6 E
) n$ w* |3 G4 n7 M( H  K; l
8.webp.jpg
4 c! b5 r& {1 d* [$ v5 A
# S  l7 S2 F2 q
4 ^' M* `7 M" O" m" x5 Y" c5 o) B
8 D9 f2 [; W; S6 B6 r% ^2 E
% k; {: w6 Z; }+ c- y. P# q

  {: s2 X/ m4 h0 \+ u2.1DevOps in Cloud(AWS)7 e& o" [4 N5 \$ E
( _# j- Q/ d4 N# s

9 X2 |6 C- Q/ Y  r/ {9 a% Z& p1 \  ^1 N5 s& s
7.webp.jpg
8 e; ^2 z. @* W8 E! g% g
& n8 w( p1 W! O7 ^
3 t1 E( }+ s, v! |9 ]' v$ g- u
3 \# `5 A' U( p2 E% _" v1 l6 s6 [
2.1.1DevOps in Cloud in AWS
& a1 B, n3 h2 A- b2 U6 a. G
& Q0 y  i$ r9 C  g* r
$ L" K8 L4 \3 F5 d! N' X3 k
& [' l! H' R3 [2 d, L
9.webp.jpg

& W, V, g" o: m. s) v; p& s7 t  J9 u9 j+ E- K
# G" i! j2 y! R9 t+ K
9 I& m5 D5 G6 p7 T3 x  @
2.1.1DevOps in Cloud in AWS' U. A) v: o$ Q. L# a

4 u4 M# J. d$ S

2 G$ w; A* P: X: R8 R6 q
1.webp.jpg
3 h7 e; d7 k) y- m* W. I
6 a; B& f0 B8 {7 O" E+ P
% ]1 K) |0 |) G0 d8 Z: }( s# q4 G/ A

  k3 z6 H. W( G0 [4 z& u" |

. ]' i( N* u$ h2.2AWS 持续集成(CI)模型
) f* B9 L3 h0 F  n8 Q
8 q& t% ]$ u+ j# n; m) q
8 V: K/ P' V4 a) p' j" P/ U
2.webp.jpg

1 F6 O' F6 J  J" W) f
0 f7 e1 t; P( t9 {1 A8 g% t" V/ I8 x8 O! Q' J0 x  j# N
+ ], Z$ g+ Z: z; L* J9 i
2.2.1CI – Code Commit, Q* q& Z7 F& e3 X: Q

7 N# f& e! K  g
% z# x1 L9 A5 T/ e: E3 [! p0 W
3.webp.jpg

& d! L* l7 @5 ^0 `
( b; A. A* E, A8 C8 Y
# W6 D+ y" x$ }0 Z
- q+ D9 q8 w, v& T4 _

% h4 U6 o( i$ C* x, \2.2.2CI – Code Build
( X1 i+ E# r1 V' R5 o4 u- B7 d  z) T7 j
4.webp.jpg

! Q5 t- t/ j6 J1 K* x* U

! h8 H0 O0 m  u* J! s3 {, n2 F. |
: }4 d$ u' j- g* ]

2 z6 L6 C1 v! w. o
" N, E* d/ ~& d. i6 X, _
( Q2 n+ T# U7 S" j& o, R7 w1 _; a4 |) Z
2.2.3CI – Code Pipeline% e( x1 C1 Y4 Z8 P' P9 G! H

1 A- S) H5 f$ h# N+ z/ d* |
' y; v4 w) ~0 ^6 x# V5 P
5.webp.jpg
0 f7 w+ m$ u' R$ O

0 i& U2 J+ M* n7 j# J
. }/ N4 V2 G  A/ M! X* a7 v4 L6 P
7 A# w& P' S8 ~3 Z

  g+ S. T. T' f: ~# m0 {9 X$ W2.3AWS持续集成(CD)模型  e, ^9 o2 k: [) \9 P. r

- f0 y% n9 M! s
3 l4 F$ j2 z4 q  B
" }+ @/ ]" ^  k. s
6.webp.jpg
) t/ x# f" B) K  Z! g2 O% _

" r7 |$ ?8 K. H! d) j2 ^; a. G
  s8 B# Z! E0 h3 j/ h4 I
9 ]8 ]2 ^1 A2 n
2.3.1CD – Elastic Beanstalk# ]  |# I& Q! ~0 B0 f
) G: z" i# C- x. D

! a* Z; B$ o4 M  `4 d9 a
7.webp.jpg
7 k# n0 l7 l; f  m
; h( x( q' L. V! \' Q
2 X' w6 K9 A7 V% D: K& W6 V" @) M
6 |' t! D, i1 v  A- n1 W: w

0 h% O; D- L% S2.3.2CD – OpsWorks/ d' {, h# _6 l5 _' g. t
1 [$ s+ D5 ~. c$ O

% m3 \: H+ g3 w2 ^7 {: G8 A* P/ C$ @7 Y3 v5 ~  u, o; E
8.webp.jpg
6 c- _9 K: M: v/ s* s' ?
5 @. W* R# x; m" {
, _4 [! o0 H) h. r* G8 j
& r3 P8 F  W1 @; P- B
2.3.3CD – Cloud Formation  m7 d8 K. J/ ~8 O1 x3 Y
- h. Y, y5 T3 ]% {& G" q

  U2 ?4 g' a8 D. V7 W: o& M9 D
1.webp.jpg
$ u* c# ]' C+ L: L- w( h
; s) X7 F& |% _* N. V
& t$ n/ G8 g: [0 e) @2 l
+ T3 [; Y' ~5 _' g
  m, g2 x6 v/ j5 m5 P
2.3.4CD - CodeDeploy
0 X. s7 v% n( X4 g& R. p0 n; y& I; I; H# u5 S
2.webp.jpg
" Q' r0 B" o+ K! l6 q
% D4 v6 n/ f) ~* A4 `& Z# X

- ]7 M! U: v4 P. T
. \; x$ N$ ^1 O, j) M; L+ c# f/ }1 b, b) ^0 [3 o- T
3 O9 G4 ~& X% G% x! `( J
2.3.5CD – 小结/ J" g) z; U( d: l0 s, j

* ]* A3 e7 R' H4 m0 f9 V
( a9 A" a+ V: f0 \+ H- W
3.webp.jpg

/ Z+ q; a1 [, U5 f  \. E

$ S4 C& j0 V! w( O
5 [8 u9 E% P3 w+ a( O$ X0 T9 Q7 b. u. R- L: g& j7 B' u
( F! b( e& b* o$ r; k" d
2.5Sample Pipeline in DevOps
* ^' v# K7 W) ?1 K, Z# N& W+ C" N+ v* W8 D5 l/ J/ F

9 j7 G% N2 U; I: U0 Y$ l- D4 `+ e1 Z3 K* ?7 t1 _$ c- h6 L
+ ?( q. {7 o0 Z" ?- z

* b7 P+ `% \* G' J9 w! q  D

" s+ |# w: P4 d1 a7 s' e4 J. y
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-8-6 07:51 , Processed in 0.132044 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

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