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

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

 找回密码
 点击获取邀请码 - 立即注册

扫描二维码登录本站

QQ登录

只需一步,快速开始

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

DevOps入门指南

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

参加活动:0

组织活动:12

发表于 2018-8-22 10:34:37 | 显示全部楼层 |阅读模式 来自- 广东广州
本帖最后由 monicazhang 于 2018-8-27 15:04 编辑 1 Y; a" j1 \( V8 ]$ Z; z

+ v/ o/ \+ y( |: d
当我们谈到 DevOps 时,可能讨论的是:流程和管理,运维和自动化,架构和服务,以及文化和组织等等概念。那么,到底什么是"DevOps"呢?
1 {" n0 K9 x& m4 T4 E7 \1 B
1 F2 j+ C# P9 \
什么是 DevOps
6 t1 N4 w9 ]. }  P9 e

; ~0 D. p+ I8 `/ E& U1 I% m
随着软件发布迭代的频率越来越高,传统的「瀑布型」(开发—测试—发布)模式已经不能满足快速交付的需求。2009 年左右 DevOps 应运而生,简单地来说,就是更好的优化开发(DEV)、测试(QA)、运维(OPS)的流程,开发运维一体化,通过高度自动化工具与流程来使得软件构建、测试、发布更加快捷、频繁和可靠。

+ g* @% P& Y: E9 n; s. ~
3 @$ q5 l& S6 g( V( [
; m6 I  ?( f; p; w2 i
关于 DevOps 是什么,DevOps 的合著者 John Willis 写了一个非常好的帖子,在这里.

. D  b0 X) W( ]6 i- `
3 N! O" U/ C1 R- _
Devops 的好处与价值

0 ~! J1 c3 M2 Q8 B4 F9 ^

+ ?5 Z- z8 N) V- f2 H# e
2016 DevOps 新趋势调查报告显示,74% 的公司在尝试接受 DevOps,那么 Devops 有哪些好处与价值呢?
2 Y7 E0 J1 y" C: l; k$ u. [

7 c# ]6 E3 ~/ b- N" }5 V
3 ?5 |1 l+ o) a6 _* L/ a1 m
  • 代码的提交直接触发:消除等待时间,快速反馈
      i/ _8 `( I0 m6 U2 q0 f; X
    0 M- ]0 s3 y- P
  • 每个变化对应一个交付管道:使问题定位和调试变得简单

    $ T) {4 Q( p$ |3 N
+ g$ S; B& U, W9 n3 u" Z
  • 全开发流程高效自动化:稳定,快速,交付结果可预测

    . u- X$ M1 A% r8 h5 Y% Z4 Z3 U
& w  y0 S% W/ s# P
  • 持续进行自动化回归测试:提升交付质量
    9 y3 q& Y/ ^& q( A7 v( u$ v

    ) F& v, e9 C5 t0 u
  • 设施共享并按需提供:资源利用最大化

    & P% T6 [: {+ M9 |4 \* `3 A" z2 W. ^  O
$ n' F! \* h6 G0 t' [
以上可以看出,DevOps 的好处更多基于在于持续部署与交付,这是对于业务与产品而言。而 DevOps 始于接受 DevOps 文化与技术方法论,它是部门间沟通协作的一组流程和方法,有助于改善公司组织文化、提高员工的参与感。
' \* G0 c9 b* s5 w2 O( w
7 `; F  R+ ?# m5 G& U" [
Devops与持续集成
& X5 \8 O% d0 q. W& }; b8 S) {

* v% k' y& h1 h7 i: v* R
DevOps 是一个完整的面向IT运维的工作流,以 IT 自动化以及持续集成(CI)、持续部署(CD)为基础,来优化程式开发、测试、系统运维等所有环节。

2 _$ ?" T% S: ]: S

. s9 R" U+ G4 \) _! E/ G/ L# V
: W( o/ |9 s7 y& E
纵观各个 DevOps 实践公司的技术资料,最全面最经典的是 flickr 的10+ deploys per day最佳实践提到的 DevOps Tools 的技术关键点:

/ w$ ?+ v" f1 O5 k3 Z  U/ T

' B! S- Q3 f- @ 1. Automated infrastructure(自动化,系统之间的集成)  

' ^/ A: d: [, y2. shared version control(SVN共享源码)  

& `/ n% n; V4 ]- ]" a
* Z% ?1 T- {4 C" G3. one step build and deploy(持续构建和部署)  
9 S% j) M9 w3 l8 X$ ^% e+ m- N

$ {( \: Y" G3 Q; x4 |4. feature flags(主干开发)  

) U" k2 _0 M1 y& t! |5 e. z& I8 K0 Z4 v8 {
5. Shared metrics  
. J( v# E4 a! h& d6 }
6 U9 N. A3 H. h% v& s3 @4 d
6. IRC and IM robots(信息整合)  
# @+ Y7 C8 t8 r5 ^0 j' I7 P, \3 I9 k, S) y& P, T
以上的技术要点由持续集成/部署一线贯穿,主干开发是进行持续集成的前提,自动化以及代码周边集中管理是实施持续集成的必要条件。毫无疑问,DevOps 是持续集成思想的延伸,持续集成/部署是 DevOps 的技术核心,在没有自动化测试、持续集成/部署之下,DevOps 就是空中楼阁。4 [# R# N; Z: k) k" I3 R* p" s5 S
- _4 }6 O: I- x; x
我们做了一款 Hosted 持续集成产品—— flow.ci ,它融入了 workflow 机制的持续集成(CI)服务,也可以理解为自动化流程平台,除了集成代码、编译、测试之外,还可以集成常用的工具、灵活自定义流程,帮助你塑造一个更优秀智能的 DevOps 环境。

& Z2 U1 j, D+ d4 w0 r

0 v- j% J# y( [% A3 R4 M3 d0 m

( T- u& A7 U& a3 F9 Z5 k
, d3 @7 Q, S. F& O0 s
DevOps 的技术栈与工具链
! E, C- R" j5 m
% `5 i0 e+ `* F
Everything is Code,DevOps 也同样要通过技术工具链完成持续集成、持续交付、用户反馈和系统优化的整合。Elasticbox 整理了 60+ 开源工具与分类,其中包括版本控制&协作开发工具、自动化构建和测试工具、持续集成&交付工具、部署工具、维护工具、监控,警告&分析工具等等,补充了一些国内的服务,可以让你更好地执行实施 DevOps 工作流。

, _  B: e: O( ]/ U8 y
0 }! k- R& h5 a: H3 D
  • 版本控制&协作开发:GitHub、GitLab、BitBucket、SubVersion、Coding、Bazaar
    ( Z2 a' T7 x$ w6 Y6 O' v
% J$ U/ \* N2 c" i- J: b( w9 i2 Y
  • 自动化构建和测试:Apache Ant、Maven 、Selenium、PyUnit、QUnit、JMeter、Gradle、PHPUnit

    " Y) x4 F1 o8 K0 ]* B
$ F0 F/ _& P+ t& t, W
  • 持续集成&交付:Jenkins、Capistrano、BuildBot、Fabric、Tinderbox、Travis CI、flow.ci、Continuum、LuntBuild、CruiseControl、Integrity、Gump、Go

    $ [" D9 y+ R6 N7 ~& N, j7 f- `2 U

    ! ?1 P( J' n2 v' E3 b
  • 容器平台: Docker、Rocket、Ubuntu(LXC)、第三方厂商如(AWS/阿里云)
    5 ^3 Y, b& ?4 ~+ k* ?: k! I
, d% H+ B2 r( e
  • 配置管理:Chef、Puppet、CFengine、Bash、Rudder、Powershell、RunDeck、Saltstack、Ansible
    / p/ U% R, ^3 c7 k( h

. G. j% W/ c* h
  • 微服务平台:OpenShift、Cloud Foundry、Kubernetes、Mesosphere

    ( l9 }: v- b8 {1 {8 w

9 v2 o# k3 |5 j6 ~. ^
  • 服务开通:Puppet、Docker Swarm、Vagrant、Powershell、OpenStack Heat

    . o6 |2 Z% R% g8 I

    ' e" j1 m- K% |5 y1 `1 ?
  • 日志管理:Logstash、CollectD、StatsD
      s$ Z  g9 I/ A

    : _: H# z+ a4 u  M6 A8 z
  • 监控,警告&分析:nagios、Ganglia、Sensu、zabbix、ICINGA、Graphite、Kibana
    4 z  Y$ j! S7 P+ X+ J7 ?
    9 P( ~0 v" @# @
1 h; P' |, K. J% r3 x
: s* ^7 w1 `* k  s
) T+ d5 z( v7 ]6 @
顺便再分享一个 DevOps BookMarks,涉及了DevOps方方面面的工具和内容,有兴趣的同学可以去学习下。

; ^/ `( A! @* e5 ^/ k5 R
7 V5 g4 _5 c, Z5 _8 B
DevOps 最佳实践

* e0 t( z! Q. y* N+ l- R5 ?7 `+ L
1 u1 b& E# y/ @: l
自 2009 年提出 DevOps 的概念起,很多公司都开始实施 DevOps,国外比较著名的有Amazon 、Google、Facebook 等,国内著名的有百度、华为、阿里等。Amazon 是 DevOps 最佳实践的最有说服力的代表之一。这是 Amazon 在 Why We Need DevOps一个月的 DevOps 快照:

7 j6 W1 V7 V9 S) t0 S8 S

& H+ Z3 R$ e3 v/ G 11.6 seconds :  平均部署时长 (工作日)

6 y: `$ n! R4 V) P4 H- g; y# z3 c3 }
5 q( C0 M$ V" e1,079 :  一小时的最大部署量
; |0 w8 V  ^4 c/ J, ]" Q( ?2 e' V
5 }: T. ]2 c0 b  C4 d
10,000 :  主机平均并发接收部署量

6 z0 d' b3 @$ O) t! z; k0 ^# e- v6 F. Q
30,000 :  主机最高并发接收部署量

, H6 A" r0 p! ~2 |8 z% J  q1 w# ~# [, `( C
/ h0 \8 L7 U' Q5 t- C2 ~

9 W: U8 r1 l% d; O% C, [) ?
从早期的大型 SOA (Service Oriented Architecture)到 DevOps 文化的形成,Amazon 的每个工程师都可以完全独立地编写代码,测试代码,版本管理,部署上线,服务监测等任务。这套内部强大的 DevOps 文化最终形成核聚变, Amazon 一跃成为世界级别的云服务领导者 —— Amazon Web Services (AWS)。
5 m, t& `8 I* e

# n/ q% m# t3 }3 l  j; V+ B3 `# w+ D# }( M4 z6 i* k1 z( r2 f* `
除了 Amazon 外还有一些国内外的 DevOps 实践公司,一起来看看。DevOps

8 h8 o* \, m  u4 x

+ U# [6 C3 R- C# w/ n
  • Flickr

    ) h% Q  ]+ P) e. G' g4 \
最全面最经典的是 flickr 的10+ deploys per day,简直是 DevOps 教科书般的存在。

& e0 i, y0 ?1 S# L: x3 K
0 K/ m( X/ t9 j3 w
  • 百度
    9 w9 A( i* h; j: z4 \
百度技术团队是如何利用 DevOps,来看看解密百度持续交付方法与实践
( \, t2 j" t* ^- {( z  L) f6 Q; P+ Q
* E% B) R# {6 y& }7 u0 j1 l
  • Netflix

    2 V: R& t) @# S& Y* Q: x3 l
    + d4 J- h5 {) Y4 }/ T) W) i
解密Netflix 技术团队在整个 DevOps 过程中使用的部署工具和服务.
! f' r! o+ E: L# Q
8 }) a  g; t! S, f

1 x" h( t1 p5 P, y- ?  k: M: B. i) _$ n# `- G# @" }
  • Etsy
    . B0 U4 D9 F. x! i# {1 u

    " ~* p/ a: \1 Y) ~" V+ n+ P
2009年,Etsy建立自己的工具来更好更快地部署发布,「Etsy 如何应用 DevOps」值得一读。
3 j" y: ]1 T/ [/ U! a
- a7 M: J: D, b
  • LinkedIn
    2 I9 o; H1 E2 m& @: s! b
    . M) G9 r, Z6 i2 U. d
2009年,LinkedIn 团队就开始使用自动化部署工具,用于管理在1000+节点环境下发布上千个应用/服务的复杂性。这是 LinkedIn 自己造的轮子 >>Deployment and Monitoring Automation with glu.

- G9 _6 s( S" p& e3 q& {5 S
5 I8 K2 M% S, k9 r8 W6 ^
  • Airbnb

    % e! i6 A4 _( n6 K3 |

    . D$ c4 B) D% y% h9 z, S
Airbnb 作为第三方平台公司,需要迅速发布多个小型部署。关于 Airbnb 的数据和基础设施,可以参考这个slides
6 d2 d, J. B; C* q. D9 A

$ M: k5 z# B* w6 |
  • Starbucks
    $ y. d5 H( h& K$ Q, E3 G. Q8 P
      ^# H0 a/ r" [( o! M- F: [
星巴克的 DevOps 计划>> Starbucks Announces #DevOpsTogether.

8 ?0 f" J+ P1 z
" B% r9 r5 N/ i# g' F2 {: h; d% n
  • Ancestry.com

      K/ J$ M2 A/ \
    7 R* o, w$ b5 l
Ancestry.com 是 DevOps 运动的早期采用者,是 Continuous Delivery 和 DevOps 运动的先锋。想了解更多关于他们的过程、迁移和 DevOps 文化,不妨查看一下他们的系列文章

# [9 m2 |7 u: p( P9 L* n# u, x
2 a; w! E3 x- T8 |
DevOps = Culture + Tools
# M: ~) Z6 j- k

, _9 y3 U% Z9 [$ E$ L0 E: \+ B' E4 n) P2 [2 Z) S  r) m
如果想整个业务部署 DevOps,不但需要软性要求即从上而下的培养 DevOps 文化自上而下地进行探索,也有硬性工具链要求,才能获得更高质量的软件交付。
- I$ t! W) v7 J, c0 M# h

/ R6 D' A( Z1 o- O% q5 `9 _: {6 F8 O  c" C6 ?6 u$ L- g. U. C6 |
最后,不论你是技术Leader,还是一名Dev、QA 或 Ops,实现全面的 DevOps 非常理想化也十分有挑战,希望这份 DevOps 初学者指南是一个好的开始

3 n8 D) {2 }% n3 X0 T% n) `- d! S* C2 D
原创:FLOW.CI) ~  G, e$ o' ^+ e; t0 G1 s4 {5 T

: ]  L: g3 |  @" Z/ ]0 K, q6 o% Z9 @& |7 ~

5 W$ c) Z! D3 E/ M* R- q

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?点击获取邀请码 - 立即注册

x

本版积分规则

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

QQ|小黑屋|手机版|Archiver|ITIL先锋论坛五万运维人社区 ( 粤ICP备17056641号|网站地图

Baidu

GMT+8, 2018-9-21 00:44 , Processed in 0.368918 second(s), 34 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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