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

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

 找回密码
 立即注册

扫描二维码登录本站

QQ登录

只需一步,快速开始

查看: 1413|回复: 0

DevOps入门指南

[复制链接]
发表于 2018-8-22 10:34:37 | 显示全部楼层 |阅读模式
本帖最后由 monicazhang 于 2018-8-27 15:04 编辑
2 `" A+ C" a* @, D( J  U# ?& n9 s' A$ b; d
当我们谈到 ITILxf.com" target="_blank" class="relatedlink">DevOps 时,可能讨论的是:流程和管理,运维和自动化,架构和服务,以及文化和组织等等概念。那么,到底什么是"DevOps"呢?
( [5 |; }! Y+ y; |

/ r! j( W) U* f5 D6 D5 \3 U
什么是 DevOps

4 p9 q% p0 I( Q. Y. Q* x

7 _/ O6 e1 |$ r" R9 M. j
随着软件发布迭代的频率越来越高,传统的「瀑布型」(开发—测试—发布)模式已经不能满足快速交付的需求。2009 年左右 DevOps 应运而生,简单地来说,就是更好的优化开发(DEV)、测试(QA)、运维(OPS)的流程,开发运维一体化,通过高度自动化工具与流程来使得软件构建、测试、发布更加快捷、频繁和可靠。

' n, r, P2 k6 |8 g
0?wx_fmt=jpeg.jpg
0 ~/ {7 ^% b1 C2 @4 Q, }# h7 Y' ^9 S
3 C: h2 ]' b. d+ @
关于 DevOps 是什么,DevOps 的合著者 John Willis 写了一个非常好的帖子,在这里.

; E! J0 P' ]! t& z  j- J: v  N
  U) S* `3 ~, i; s6 R- E
Devops 的好处与价值
( l1 Y* o$ C. v
% u1 C, _" B4 m# r' I1 ^
2016 DevOps 新趋势调查报告显示,74% 的公司在尝试接受 DevOps,那么 Devops 有哪些好处与价值呢?

! S0 H' L$ f$ p( f5 W0 U+ w- t

0 Q% }8 H& E2 z2 g. E
* w* @/ _/ e( ]9 U* d$ ~
  • 代码的提交直接触发:消除等待时间,快速反馈
    2 z( r5 l2 l3 S+ [' Y" `4 l

    3 c+ W% h( e3 Q2 P1 I. v
  • 每个变化对应一个交付管道:使问题定位和调试变得简单
    . \" r# Z: z/ q+ h. Y1 Y# J( d

4 W; F% ]- \  R) U% C
  • 全开发流程高效自动化:稳定,快速,交付结果可预测
    7 d8 H- \# y$ n0 v0 n# t- B* O4 T6 `

& X4 O; t7 C% g, `# P- K: U
  • 持续进行自动化回归测试:提升交付质量
    - r( a1 p: M% i" l8 R) g
    " g+ Y7 I% N4 s# g. n
  • 设施共享并按需提供:资源利用最大化

    . s* i2 V4 o4 \* ?8 ?/ b6 U0 Q

- P" j8 R8 U2 A6 B4 S
以上可以看出,DevOps 的好处更多基于在于持续部署与交付,这是对于业务与产品而言。而 DevOps 始于接受 DevOps 文化与技术方法论,它是部门间沟通协作的一组流程和方法,有助于改善公司组织文化、提高员工的参与感。

' z% t* U, k& I; a% c2 |2 q* r2 C+ `9 W3 n
Devops与持续集成

  u3 D# ?& k' ^0 {

' B; J' g0 n+ p9 S; r& v* [
DevOps 是一个完整的面向IT运维的工作流,以 IT 自动化以及持续集成(CI)、持续部署(CD)为基础,来优化程式开发、测试、系统运维等所有环节。

3 k1 g1 t$ o8 a
  ^3 w% y7 v6 h/ |% ~5 A8 f. n
$ l% _3 s' @. s" [8 O1 A
纵观各个 DevOps 实践公司的技术资料,最全面最经典的是 flickr 的10+ deploys per day最佳实践提到的 DevOps Tools 的技术关键点:
' g) u1 F) J) A

+ N! M0 Y( _3 p' x) x$ Y  j 1. Automated infrastructure(自动化,系统之间的集成)  
% O- F( }4 K+ S# ~7 X7 k5 w
2. shared version control(SVN共享源码)  

* @  c: g$ N/ b5 @
( S: M: V/ [. j2 J5 F$ c3. one step build and deploy(持续构建和部署)  

; H. i4 c4 L$ ]& J) j; E  i
6 x4 y8 K' j, d$ W9 K4. feature flags(主干开发)  

! q, g4 m7 j' R, ~
$ E. G4 d- a' p5. Shared metrics  
  E" Y0 ~3 r. V$ U9 O% Z0 Y8 U0 a

: u  Q7 J3 ]  l/ ^2 }" Z6. IRC and IM robots(信息整合)  
. X/ t1 r  R2 \8 K2 t# Z1 h& u& _
以上的技术要点由持续集成/部署一线贯穿,主干开发是进行持续集成的前提,自动化以及代码周边集中管理是实施持续集成的必要条件。毫无疑问,DevOps 是持续集成思想的延伸,持续集成/部署是 DevOps 的技术核心,在没有自动化测试、持续集成/部署之下,DevOps 就是空中楼阁。
3 }' H+ H' O1 F2 o

* W) \5 @+ Z  D1 _
我们做了一款 Hosted 持续集成产品—— flow.ci ,它融入了 workflow 机制的持续集成(CI)服务,也可以理解为自动化流程平台,除了集成代码、编译、测试之外,还可以集成常用的工具、灵活自定义流程,帮助你塑造一个更优秀智能的 DevOps 环境。

7 }$ j# u( T9 D
0?wx_fmt=png.jpg   n8 g2 l/ K  X+ ]: y) u( @

0 M- `: y% A! P& c  ?9 {9 v. a; }* s6 J2 j! h3 B) ]& Q
DevOps 的技术栈与工具链
1 ~4 r1 t6 E# x* A0 u

; \8 H: y% G% X. n( g
Everything is Code,DevOps 也同样要通过技术工具链完成持续集成、持续交付、用户反馈和系统优化的整合。Elasticbox 整理了 60+ 开源工具与分类,其中包括版本控制&协作开发工具、自动化构建和测试工具、持续集成&交付工具、部署工具、维护工具、监控,警告&分析工具等等,补充了一些国内的服务,可以让你更好地执行实施 DevOps 工作流。

( m: U1 b) G* D6 I9 L. e1 C

" m. t* I/ |7 o. Y4 v
  • 版本控制&协作开发:GitHub、GitLab、BitBucket、SubVersion、Coding、Bazaar

    ( A" [7 g9 l7 I/ S- Y4 D" y% W
0 c2 _1 W% r! d) `- k5 i* k
  • 自动化构建和测试:Apache Ant、Maven 、Selenium、PyUnit、QUnit、JMeter、Gradle、PHPUnit
    ( c2 r" ^; A9 [7 K
% U; ]7 H( p. ]1 f' S
  • 持续集成&交付:Jenkins、Capistrano、BuildBot、Fabric、Tinderbox、Travis CI、flow.ci、Continuum、LuntBuild、CruiseControl、Integrity、Gump、Go
    ( m) l, q5 g6 N  K# e
    6 ~* @% u+ k2 g/ @
  • 容器平台: Docker、Rocket、Ubuntu(LXC)、第三方厂商如(AWS/阿里云)
    6 O: v9 w* v* ?% L

9 ?- a, x  i" t+ T0 W: E! S2 E: l
  • 配置管理:Chef、Puppet、CFengine、Bash、Rudder、Powershell、RunDeck、Saltstack、Ansible
    6 Z4 h; t$ {; M7 `! x1 N
9 `, b3 ]: I, ]6 o/ B
  • 微服务平台:OpenShift、Cloud Foundry、Kubernetes、Mesosphere
    9 Q% a2 e( W2 A" p: f: c& d( g- Y
4 p2 G1 `+ ]  g: [" u
  • 服务开通:Puppet、Docker Swarm、Vagrant、Powershell、OpenStack Heat
    2 S. u1 f2 R8 p! k
    : q$ H' ?* g! e( z6 Q" R) E
  • 日志管理:Logstash、CollectD、StatsD

    # h4 G  d/ ~5 D2 c( |

    ' ], A& j# }' t1 B
  • 监控,警告&分析:nagios、Ganglia、Sensu、zabbix、ICINGA、Graphite、Kibana

    1 R; \; K! j% `* I7 b' z. V8 n2 m
    3 G$ @8 N* Z. }* ^3 m$ ~/ w

- I/ s. p' B  u
0?wx_fmt=png.jpg
; [: J) t6 ^- c/ V) S

" I& V  J3 ~' Q4 e+ X
顺便再分享一个 DevOps BookMarks,涉及了DevOps方方面面的工具和内容,有兴趣的同学可以去学习下。

; Q+ s3 C* |3 M, S# R; V- B5 x
5 z* x: O" _8 k7 K' k; l
DevOps 最佳实践

; |* ~5 Z1 ^! ~. ~5 S
5 z5 U" ]6 W( `/ w# ]
自 2009 年提出 DevOps 的概念起,很多公司都开始实施 DevOps,国外比较著名的有Amazon 、Google、Facebook 等,国内著名的有百度、华为、阿里等。Amazon 是 DevOps 最佳实践的最有说服力的代表之一。这是 Amazon 在 Why We Need DevOps一个月的 DevOps 快照:

# s# I/ x% @6 ^6 W: v) W
: E  e0 f8 L3 z/ |
11.6 seconds :  平均部署时长 (工作日)

9 O) U; I* w; Z
) d8 B8 u4 G" m1,079 :  一小时的最大部署量
: X( k; z9 S6 m# z9 t
3 L# _% ^3 r2 U1 q9 g+ H% q) m
10,000 :  主机平均并发接收部署量

0 U. L7 i2 m( Y) A" i
, c5 C/ w) I, |. f9 B30,000 :  主机最高并发接收部署量
! f8 Q8 I  A5 |+ y* o: S, {% J
* h* l9 X1 m. p! D

2 @/ K* j/ A- |$ w" a0 X: l, u6 q: w+ v) j+ R
从早期的大型 SOA (Service Oriented Architecture)到 DevOps 文化的形成,Amazon 的每个工程师都可以完全独立地编写代码,测试代码,版本管理,部署上线,服务监测等任务。这套内部强大的 DevOps 文化最终形成核聚变, Amazon 一跃成为世界级别的云服务领导者 —— Amazon Web Services (AWS)。
' ]" U* U# v" b- B" c4 T- T% p+ d( S
% d6 i& z' n' r! N7 T% O: v. u

; V) C; w" C8 E2 r6 e% v4 b9 D1 q
除了 Amazon 外还有一些国内外的 DevOps 实践公司,一起来看看。DevOps

* {. X6 L# e: ]& b& A# v% A' S6 x

/ D' u& b, d$ E  v& B/ V
  • Flickr

    " f$ f3 b' J; ?. p/ ?
最全面最经典的是 flickr 的10+ deploys per day,简直是 DevOps 教科书般的存在。

" N7 l6 w5 Z: _1 A3 E5 G, B

' Z# e1 x+ P, F, [/ c
  • 百度

    5 m  B$ J0 m. a/ v0 Z
百度技术团队是如何利用 DevOps,来看看解密百度持续交付方法与实践

0 W. v6 o$ f# @7 L4 _

! ~! s6 J* \- |+ w' W
  • Netflix
    ! u& I- z8 Y' \- a9 R8 k
    * p. S3 R: e$ q/ L
解密Netflix 技术团队在整个 DevOps 过程中使用的部署工具和服务.

$ F. Z/ O( b2 i* ~

6 K/ W9 J, O1 O- d

, S, @* O8 R5 y8 w6 j, k  U% G) h% r( ^6 I3 Z7 D- t3 E1 @
  • Etsy

    9 b$ P; U5 ]0 u" d: C
    9 M/ h2 \' r$ Q- H* W
2009年,Etsy建立自己的工具来更好更快地部署发布,「Etsy 如何应用 DevOps」值得一读。

! j3 V5 ~3 u5 t  x! G2 e7 F3 t" _
& z4 m- J# d8 D
  • LinkedIn
      D; f- u0 U3 {$ l

    3 ^( N5 p/ v6 D( h$ _/ e2 e$ u6 Z
2009年,LinkedIn 团队就开始使用自动化部署工具,用于管理在1000+节点环境下发布上千个应用/服务的复杂性。这是 LinkedIn 自己造的轮子 >>Deployment and Monitoring Automation with glu.
8 u0 |0 U  Q: f. \* J1 J* S

8 @2 g1 J* D, I7 x5 s7 p  v
  • Airbnb
    : x  U1 @5 T3 R+ g

    - W4 D8 @& e4 v8 }# n# Y
Airbnb 作为第三方平台公司,需要迅速发布多个小型部署。关于 Airbnb 的数据和基础设施,可以参考这个slides

4 W1 Z) @9 \. X" O

  V' U$ O- \# N" I( s1 Y
  • Starbucks
    0 c# k6 Z) s6 _- e
    + L& a+ d) _6 M
星巴克的 DevOps 计划>> Starbucks Announces #DevOpsTogether.

8 K. |5 t  R) L3 K7 X

: K7 c% F9 R8 Y% X
  • Ancestry.com
    . d: z( z+ J2 z
    4 }4 A; R9 m- i) [. ^! Y. I, J
Ancestry.com 是 DevOps 运动的早期采用者,是 Continuous Delivery 和 DevOps 运动的先锋。想了解更多关于他们的过程、迁移和 DevOps 文化,不妨查看一下他们的系列文章

, h; V, {, F4 v( h/ x8 \! D: g. [/ x5 i
DevOps = Culture + Tools

  j# T3 ~! w* J( U+ A- c0 p; }
' v, s- `# E8 o8 x5 B
0 Q4 _* i' j, a* y+ ?
如果想整个业务部署 DevOps,不但需要软性要求即从上而下的培养 DevOps 文化自上而下地进行探索,也有硬性工具链要求,才能获得更高质量的软件交付。

# r" H1 e8 Q5 o4 s4 V% i
# O" S& p1 J+ }1 J7 |

5 @  I. [( u  p  V3 _
最后,不论你是技术Leader,还是一名Dev、QA 或 Ops,实现全面的 DevOps 非常理想化也十分有挑战,希望这份 DevOps 初学者指南是一个好的开始:)

3 R" l! R( S; @9 l+ z5 J4 w* Y* ^6 C' v& q, }* R; T
原创:FLOW.CI7 U" j7 l9 e$ L- Y' H( V
0 Z% j( P: g# H7 s/ R6 q9 ~
3 E0 G9 a6 q6 Q' n

% ]  ~9 n# g& g6 x




上一篇:为什么说DOP课程(即DevOps Professional)更适合DevOps的快速入门?
下一篇:DevOps如何在公司项目中落地实施
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

参加 ITIL 4 基础和专家认证、长河ITIL实战沙盘、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, 2022-5-23 04:03 , Processed in 0.123479 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

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