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

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

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

扫描二维码登录本站

QQ登录

只需一步,快速开始

艾拓先锋
搜索
查看: 199|回复: 0

DevOps入门指南

[复制链接]
来自- 广东广州

参加活动:0

组织活动:12

发表于 2018-8-22 10:34:37 | 显示全部楼层 |阅读模式 来自- 广东广州
本帖最后由 monicazhang 于 2018-8-27 15:04 编辑
! f, Q" ]4 Z8 y' C: U0 E3 p
  ?3 [  {* J4 m# m& V
当我们谈到 DevOps 时,可能讨论的是:流程和管理,运维和自动化,架构和服务,以及文化和组织等等概念。那么,到底什么是"DevOps"呢?

- Q  n3 `! d" ~) G- B/ X* \+ F/ u8 g( B& P
什么是 DevOps
, i/ ~: `  `. K2 g* U

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

' o* M! m  ]" w& |3 @% I
0?wx_fmt=jpeg.jpg
+ s& L4 ?. }) n

* Z! N7 r8 ~/ a, U4 V
关于 DevOps 是什么,DevOps 的合著者 John Willis 写了一个非常好的帖子,在这里.
" I* x9 s0 K7 E
* z/ \# h9 X7 A* R4 b
Devops 的好处与价值

6 B0 L3 @+ Z" ^4 j
4 U+ d- E: E4 ~' b% f5 `
2016 DevOps 新趋势调查报告显示,74% 的公司在尝试接受 DevOps,那么 Devops 有哪些好处与价值呢?

6 \& A7 ?+ |: F5 h* E3 @

- W1 s3 P% b0 w7 S6 G0 q
- F3 I5 G' c: Y2 w0 E  A2 V# ^
  • 代码的提交直接触发:消除等待时间,快速反馈

    / t/ L9 ]. p5 P# H% v1 _7 a

    4 u7 S/ [3 |4 q/ G& }- D
  • 每个变化对应一个交付管道:使问题定位和调试变得简单
    ) n. E1 y: r: N. K
3 b6 e7 q4 i& `6 E, M6 K. x. K9 Z
  • 全开发流程高效自动化:稳定,快速,交付结果可预测
    , Y2 O5 b3 y' @3 ]0 Z( q' y. j

2 O' R/ i, }* Z) n: t. |) {
  • 持续进行自动化回归测试:提升交付质量

      z/ O% t' t: a
    6 D9 s& X" g/ u- H  h. o4 c) ]- L3 o
  • 设施共享并按需提供:资源利用最大化

    5 M4 s! b0 Q9 G# z# }/ y" K
: m5 z! Z; w2 x( F2 Q* p
以上可以看出,DevOps 的好处更多基于在于持续部署与交付,这是对于业务与产品而言。而 DevOps 始于接受 DevOps 文化与技术方法论,它是部门间沟通协作的一组流程和方法,有助于改善公司组织文化、提高员工的参与感。

9 V5 m7 I- v+ F" I6 S# ?# X$ ?, D. n4 F; s, K# }3 B# n
Devops与持续集成
8 ?8 M+ K5 Q' z, E) ~
( q" U/ E; M) u8 w9 q; K: ^3 L
DevOps 是一个完整的面向IT运维的工作流,以 IT 自动化以及持续集成(CI)、持续部署(CD)为基础,来优化程式开发、测试、系统运维等所有环节。
: Y* T2 K7 c) A# ~0 X
7 Y  w2 @2 S* G5 I3 U

6 C; J/ |  D, ?' U9 w
纵观各个 DevOps 实践公司的技术资料,最全面最经典的是 flickr 的10+ deploys per day最佳实践提到的 DevOps Tools 的技术关键点:

  m8 k- o/ r- f2 o8 s
% i! l+ G9 I, {
1. Automated infrastructure(自动化,系统之间的集成)  

3 U; S" B+ r. V- z8 j  }' L2. shared version control(SVN共享源码)  

5 a* T+ Y5 [( h& v9 _! z; F" U2 {  d. e
3. one step build and deploy(持续构建和部署)  

! t' Z/ Q. f" M0 P: H" ~* X% k' {, h! }
* L7 ?+ p: U! O/ `4. feature flags(主干开发)  

# x1 d* z9 ?4 z' X! p: }' `: g6 x2 T* b9 v1 G* J# N
5. Shared metrics  
$ t, k5 \& U3 N  ]; i0 N
! K; ^& }; J) \) o) ^  g
6. IRC and IM robots(信息整合)  
2 x* R& ^& {* r" P1 W- \4 E( p; ~7 x
以上的技术要点由持续集成/部署一线贯穿,主干开发是进行持续集成的前提,自动化以及代码周边集中管理是实施持续集成的必要条件。毫无疑问,DevOps 是持续集成思想的延伸,持续集成/部署是 DevOps 的技术核心,在没有自动化测试、持续集成/部署之下,DevOps 就是空中楼阁。
; ~! \2 k& X, P

/ E5 |& W# k/ Y- i3 y
我们做了一款 Hosted 持续集成产品—— flow.ci ,它融入了 workflow 机制的持续集成(CI)服务,也可以理解为自动化流程平台,除了集成代码、编译、测试之外,还可以集成常用的工具、灵活自定义流程,帮助你塑造一个更优秀智能的 DevOps 环境。
9 O. M. V: u; G8 W
0?wx_fmt=png.jpg ; C8 Q; X  L' X; T4 S' h) |

2 C* ~! I" ~  p3 b; M  C6 E6 y7 A$ n- N1 C9 E' F+ Q: \" R
DevOps 的技术栈与工具链
1 }# D0 j* ?5 }- G

) z# K% _" a- a/ ^( P
Everything is Code,DevOps 也同样要通过技术工具链完成持续集成、持续交付、用户反馈和系统优化的整合。Elasticbox 整理了 60+ 开源工具与分类,其中包括版本控制&协作开发工具、自动化构建和测试工具、持续集成&交付工具、部署工具、维护工具、监控,警告&分析工具等等,补充了一些国内的服务,可以让你更好地执行实施 DevOps 工作流。
* p) a) C. [  B& B# p$ U' b
8 A( ~1 A! a8 W  j  w
  • 版本控制&协作开发:GitHub、GitLab、BitBucket、SubVersion、Coding、Bazaar

    4 @& F8 l* H& L

. B" H3 N, t- G
  • 自动化构建和测试:Apache Ant、Maven 、Selenium、PyUnit、QUnit、JMeter、Gradle、PHPUnit
    - Q5 |5 s% n9 I- z  y

5 E; {. W1 j% g7 G) \9 y( [6 z
  • 持续集成&交付:Jenkins、Capistrano、BuildBot、Fabric、Tinderbox、Travis CI、flow.ci、Continuum、LuntBuild、CruiseControl、Integrity、Gump、Go
    " y' C1 D7 D8 @9 {. ?" r1 c, t
    * [: H0 e1 m1 J0 u6 E
  • 容器平台: Docker、Rocket、Ubuntu(LXC)、第三方厂商如(AWS/阿里云)

    ; y; \6 @$ p: [7 E2 _6 o' h/ s! x$ @

7 U( i5 v1 U! \0 Y# e% A
  • 配置管理:Chef、Puppet、CFengine、Bash、Rudder、Powershell、RunDeck、Saltstack、Ansible
    ; b: y+ G7 _6 k$ T' R: e
9 ^- c4 Q9 B8 C+ C# `3 T1 |2 U
  • 微服务平台:OpenShift、Cloud Foundry、Kubernetes、Mesosphere
    ! \0 D" p. v6 s  J
& k' p. d3 o$ [" D
  • 服务开通:Puppet、Docker Swarm、Vagrant、Powershell、OpenStack Heat

    " R; C4 E" t* l. P+ V

    $ r& `" x  k$ k* f  D  J
  • 日志管理:Logstash、CollectD、StatsD
    9 \  |. c7 N0 G! ?% Q% E5 K
    1 }9 f4 B+ F7 Y: Y+ s. w8 t2 i! K
  • 监控,警告&分析:nagios、Ganglia、Sensu、zabbix、ICINGA、Graphite、Kibana
    2 A: f3 E6 m, S; V* o/ r
    6 `( B$ c6 |5 S$ ^% g' }

2 o/ Q: a' I% e6 U0 O8 k7 b+ R
0?wx_fmt=png.jpg

9 O1 U2 Y; {$ H  t9 K
2 f0 S" [6 ]! q
顺便再分享一个 DevOps BookMarks,涉及了DevOps方方面面的工具和内容,有兴趣的同学可以去学习下。
) [$ Z6 S: o& T

; L; ?: y5 G) _! l8 S
DevOps 最佳实践

  F' }# p' V0 ~! w/ ?
+ n" @1 E& A3 U; U5 c& F
自 2009 年提出 DevOps 的概念起,很多公司都开始实施 DevOps,国外比较著名的有Amazon 、Google、Facebook 等,国内著名的有百度、华为、阿里等。Amazon 是 DevOps 最佳实践的最有说服力的代表之一。这是 Amazon 在 Why We Need DevOps一个月的 DevOps 快照:

+ [9 C- l9 h0 H5 S$ Z

4 P5 Y5 u7 P% j4 i2 a0 L* H 11.6 seconds :  平均部署时长 (工作日)

3 i1 h2 x/ W( Y  o+ F. L# j7 r" O; R
1,079 :  一小时的最大部署量
) O- N2 _1 P0 q6 U0 ~1 a
& g* f, y4 ]. m; M, M
10,000 :  主机平均并发接收部署量
3 m) K. s) L5 u& I3 O$ g

/ I3 z' O* N; O- ~% q) [30,000 :  主机最高并发接收部署量

" G' R$ g; |0 c* o9 ^4 b& W& J  B" S
# \" `7 @) o5 F  L! @4 G) x  F! [

) B6 W/ Z3 s( ]. K* R9 g% A
从早期的大型 SOA (Service Oriented Architecture)到 DevOps 文化的形成,Amazon 的每个工程师都可以完全独立地编写代码,测试代码,版本管理,部署上线,服务监测等任务。这套内部强大的 DevOps 文化最终形成核聚变, Amazon 一跃成为世界级别的云服务领导者 —— Amazon Web Services (AWS)。

  U0 {5 e* Z: d" d
% a7 Y: r/ y: M2 E* p

. H0 ?* P0 _' G! P) A; u
除了 Amazon 外还有一些国内外的 DevOps 实践公司,一起来看看。DevOps

$ ?9 g0 t* y* d$ K+ w
  R6 G  L6 n3 Q9 B4 z0 ^
  • Flickr

    8 I0 E( v; W3 L) M  J/ H1 L
最全面最经典的是 flickr 的10+ deploys per day,简直是 DevOps 教科书般的存在。
$ V$ r* z4 j% e

8 x) U3 o/ j0 I- _' L# j6 p
  • 百度
    " B  e2 T4 [. }5 `3 m
百度技术团队是如何利用 DevOps,来看看解密百度持续交付方法与实践
9 u1 y2 l* |. y+ ?9 A
7 m" {- g) D7 m
  • Netflix
    * v- c2 t4 }7 C" u: m4 h! \9 q) A
    + y- g- [" k& n* p
解密Netflix 技术团队在整个 DevOps 过程中使用的部署工具和服务.
7 l* p3 H+ _, f  L% ?

3 }# H1 X: }8 L, x$ k' O& H
; l7 F6 e6 S1 Q* R; H
! H% M& M* F" B! d+ {
  • Etsy

    / ?2 c' m9 a" ?; ^
    ; X1 r+ `4 k0 z, B1 j
2009年,Etsy建立自己的工具来更好更快地部署发布,「Etsy 如何应用 DevOps」值得一读。
) @/ K; @: K6 p0 @

' {6 U9 C3 A4 q3 r) n! L
  • LinkedIn
    + G1 T& h1 e/ H( ~

    , _: P+ L/ R& j; C) g, E
2009年,LinkedIn 团队就开始使用自动化部署工具,用于管理在1000+节点环境下发布上千个应用/服务的复杂性。这是 LinkedIn 自己造的轮子 >>Deployment and Monitoring Automation with glu.

; b: v' `" \0 x8 _5 l
0 ~5 Y) c1 G2 e2 `7 k
  • Airbnb
    $ M1 }6 G# V' z8 L3 U. I

    / h( H" x  T& ]; F& |! v8 l2 W
Airbnb 作为第三方平台公司,需要迅速发布多个小型部署。关于 Airbnb 的数据和基础设施,可以参考这个slides
: ~  V4 I4 x) g3 {8 T4 Q0 b3 W
- s0 n% \! ~% Y( Q2 L: a" E
  • Starbucks

    3 q' a& P  M* h; v  C
    ! a1 M6 d- g0 w* ?% L
星巴克的 DevOps 计划>> Starbucks Announces #DevOpsTogether.

- Q/ |2 t$ w( @- E0 g
/ ^* z& `* V, V% Y5 b9 }
  • Ancestry.com
    3 ^( `, D) B; g* ?. N

    3 x; m, g* n6 \( M
Ancestry.com 是 DevOps 运动的早期采用者,是 Continuous Delivery 和 DevOps 运动的先锋。想了解更多关于他们的过程、迁移和 DevOps 文化,不妨查看一下他们的系列文章
: R. j& k% K0 e8 L$ I2 T+ X, f( T. z

2 H) Z7 c! q: M
DevOps = Culture + Tools

, T9 Y  S* U" V- e7 d

% e1 y) Q. Q! z" X7 F: O/ G# j5 G- Q: n3 m+ {
如果想整个业务部署 DevOps,不但需要软性要求即从上而下的培养 DevOps 文化自上而下地进行探索,也有硬性工具链要求,才能获得更高质量的软件交付。

3 F5 a3 O) |2 G& ?7 ]5 P: U7 X5 V
" G9 @. }3 _0 U% c. h
9 K. N1 y. O$ P8 `7 C; a
最后,不论你是技术Leader,还是一名Dev、QA 或 Ops,实现全面的 DevOps 非常理想化也十分有挑战,希望这份 DevOps 初学者指南是一个好的开始
5 a+ @% E8 X- }' O. u' O6 M3 \6 ~

0 |* f" N; Q4 W4 F4 Z/ w$ J原创:FLOW.CI2 S/ q2 b. ~, n* b* q8 H

* u. ?' {1 z. j: X! O# a1 }  ]- I# t* {( C) [# K

8 N4 Q$ \: m1 ?: Y$ w, D5 B' C! w

本版积分规则

选择云运维时代的王牌讲师-长河老师,助你轻松入门ITIL Foundation培训课程

QQ|小黑屋|手机版|Archiver|艾拓先锋网 ( 粤ICP备11099876号-1|网站地图

Baidu

GMT+8, 2018-11-14 13:04 , Processed in 0.211834 second(s), 31 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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