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

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

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

扫描二维码登录本站

QQ登录

只需一步,快速开始

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

DevOps入门指南

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

参加活动:0

组织活动:12

发表于 2018-8-22 10:34:37 | 显示全部楼层 |阅读模式 来自- 广东广州
本帖最后由 monicazhang 于 2018-8-27 15:04 编辑
0 F* F3 n( `5 ]! \! w
, R1 L- }! `3 ~$ V. j5 ^  D0 G
当我们谈到 DevOps 时,可能讨论的是:流程和管理,运维和自动化,架构和服务,以及文化和组织等等概念。那么,到底什么是"DevOps"呢?
7 @4 w: @( b5 D

1 w4 f% f6 x: }$ ~4 g7 m9 g
什么是 DevOps

! N5 R& m6 F* L7 C

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

* }/ |6 n5 k; K( U/ }6 F
0?wx_fmt=jpeg.jpg

. o/ v$ S+ v% o. e, {) ~$ U2 Z
2 d, S+ k# L' l9 g
关于 DevOps 是什么,DevOps 的合著者 John Willis 写了一个非常好的帖子,在这里.

. ]7 ?7 ~" t( d/ @# z
* U5 w0 _, {  p( F6 ?6 |2 s3 K
Devops 的好处与价值

- u. ~9 M! G6 {. a( a
: s) S2 }! X: N1 z! E
2016 DevOps 新趋势调查报告显示,74% 的公司在尝试接受 DevOps,那么 Devops 有哪些好处与价值呢?
  |. X$ k3 t% g3 I8 `
" C$ [4 z* r- l  N, R6 u

$ b, j" `8 d# ]7 ?0 Q+ o' P
  • 代码的提交直接触发:消除等待时间,快速反馈

    " m* M) _, N: o
    , H" Y' D8 B2 Q: W) r, q9 E" k, w
  • 每个变化对应一个交付管道:使问题定位和调试变得简单
    6 [" `1 ]* A) m" V" Z
; \1 M; W! b' W2 d7 H4 ~1 i( Z
  • 全开发流程高效自动化:稳定,快速,交付结果可预测

    * {1 I- P- d* Z5 y! g" [2 e
; J+ v. p. k# z
  • 持续进行自动化回归测试:提升交付质量
    7 p9 G$ A9 B& M' O

    % g4 H& S+ u, }0 a9 v
  • 设施共享并按需提供:资源利用最大化
    # u/ e1 s/ Q. P- j
% M, J, e( C; G2 m* a; p
以上可以看出,DevOps 的好处更多基于在于持续部署与交付,这是对于业务与产品而言。而 DevOps 始于接受 DevOps 文化与技术方法论,它是部门间沟通协作的一组流程和方法,有助于改善公司组织文化、提高员工的参与感。
  c( ~7 \1 ~4 _# @" O7 w8 u5 B
' M4 \7 K) o- o2 r
Devops与持续集成

5 |5 F. V2 E- o
/ Z* J, a' y! F, c
DevOps 是一个完整的面向IT运维的工作流,以 IT 自动化以及持续集成(CI)、持续部署(CD)为基础,来优化程式开发、测试、系统运维等所有环节。
7 g6 k( w% \) l4 k- c
& b: |2 T4 b  h+ H1 [: U

. C" g% p, g' e0 O! b& E
纵观各个 DevOps 实践公司的技术资料,最全面最经典的是 flickr 的10+ deploys per day最佳实践提到的 DevOps Tools 的技术关键点:
) w+ H2 ]. m: c0 G* d9 g5 l
' y2 I0 J, N1 d& m/ k
1. Automated infrastructure(自动化,系统之间的集成)  

5 v5 x2 x" j6 p% N) T' Y/ i2. shared version control(SVN共享源码)  

* V3 W9 \' o" r1 w( T. P% W. c3 b- Q! A$ n
3. one step build and deploy(持续构建和部署)  
3 @( u+ R' O% X4 V
1 W% P0 l& E- d$ G8 {9 s7 h
4. feature flags(主干开发)  

, i9 y% T! I  K: Z2 [; N  |4 [1 x" Z4 C& [, j! t" z3 ^
5. Shared metrics  

$ M+ H. s) m! m: j8 |9 b
% f- b2 i8 H" V9 r3 d6. IRC and IM robots(信息整合)  ; _1 @' g. N5 ~% {% V
" U4 N7 U2 m( J: c- D
以上的技术要点由持续集成/部署一线贯穿,主干开发是进行持续集成的前提,自动化以及代码周边集中管理是实施持续集成的必要条件。毫无疑问,DevOps 是持续集成思想的延伸,持续集成/部署是 DevOps 的技术核心,在没有自动化测试、持续集成/部署之下,DevOps 就是空中楼阁。/ ^- a& p" l% U- b& @
" {! r6 N: p* |' v! w
我们做了一款 Hosted 持续集成产品—— flow.ci ,它融入了 workflow 机制的持续集成(CI)服务,也可以理解为自动化流程平台,除了集成代码、编译、测试之外,还可以集成常用的工具、灵活自定义流程,帮助你塑造一个更优秀智能的 DevOps 环境。
! G7 Z0 [8 C7 r# B6 h! Q0 o
0?wx_fmt=png.jpg 6 q0 ^1 M3 r: y  |: J8 \

8 y3 I! `7 C( h  @$ C6 M! J( B' k/ P  ~) M! J/ u/ X" a, R
DevOps 的技术栈与工具链

" L- g5 W  r& f; t5 z# Y2 Q  x- N
1 G( O' F; M" S2 @: h4 g
Everything is Code,DevOps 也同样要通过技术工具链完成持续集成、持续交付、用户反馈和系统优化的整合。Elasticbox 整理了 60+ 开源工具与分类,其中包括版本控制&协作开发工具、自动化构建和测试工具、持续集成&交付工具、部署工具、维护工具、监控,警告&分析工具等等,补充了一些国内的服务,可以让你更好地执行实施 DevOps 工作流。

4 s8 |& Y1 b- m3 C+ L) X
8 u2 Z) Z2 R% A/ J% {6 t7 Y) I
  • 版本控制&协作开发:GitHub、GitLab、BitBucket、SubVersion、Coding、Bazaar
    3 g0 k: T% A" n* {: C9 f

, e; B' ]1 A8 \" A, Y- \1 k' `
  • 自动化构建和测试:Apache Ant、Maven 、Selenium、PyUnit、QUnit、JMeter、Gradle、PHPUnit
    4 ]6 G. L) O5 J8 w
$ V9 a# A% z- N0 |7 r
  • 持续集成&交付:Jenkins、Capistrano、BuildBot、Fabric、Tinderbox、Travis CI、flow.ci、Continuum、LuntBuild、CruiseControl、Integrity、Gump、Go
    9 \* D6 S$ l7 c9 W  Q
    % c' Q9 n. z  B" x, v$ A$ \; S% A
  • 容器平台: Docker、Rocket、Ubuntu(LXC)、第三方厂商如(AWS/阿里云)
    : X" y! g2 `9 c  _+ P
" y1 t3 s7 E5 {7 d2 T, a3 z5 U
  • 配置管理:Chef、Puppet、CFengine、Bash、Rudder、Powershell、RunDeck、Saltstack、Ansible

    $ w6 f: v9 h& v! u7 j5 c. \

6 ~$ m6 H% S* B* j& [0 a
  • 微服务平台:OpenShift、Cloud Foundry、Kubernetes、Mesosphere

    7 ]4 D/ g; q4 g+ A

9 g" [, g* _7 J' }
  • 服务开通:Puppet、Docker Swarm、Vagrant、Powershell、OpenStack Heat
    # p4 [9 n9 X% i& t6 G
    & h* @" F8 C& V% Q1 c% K8 g& C/ a
  • 日志管理:Logstash、CollectD、StatsD

    2 w9 ]; x- z5 [  H+ l) t; E2 s0 A

    8 |" [% }/ J. a. X$ b$ Q- d9 d
  • 监控,警告&分析:nagios、Ganglia、Sensu、zabbix、ICINGA、Graphite、Kibana

    ; d( i; m2 l* _, c

    8 a  h' h% s* X9 e* u3 E
( K+ D- K; O! r. S- ~) g. y
0?wx_fmt=png.jpg
5 B! W! ^# g* `- h

- ?; B  h/ l. u
顺便再分享一个 DevOps BookMarks,涉及了DevOps方方面面的工具和内容,有兴趣的同学可以去学习下。
) b6 D% [' Z$ A6 V4 y2 L% Y
" N; @# W2 W8 B  @; c9 m  M; Y
DevOps 最佳实践

$ q8 n1 k0 A* R5 c" M

3 N6 |! S8 i$ a+ c; ~
自 2009 年提出 DevOps 的概念起,很多公司都开始实施 DevOps,国外比较著名的有Amazon 、Google、Facebook 等,国内著名的有百度、华为、阿里等。Amazon 是 DevOps 最佳实践的最有说服力的代表之一。这是 Amazon 在 Why We Need DevOps一个月的 DevOps 快照:
  g) y' o8 o, V/ a) C1 r3 v% p" V

! m/ L/ G9 K$ C! i2 |4 g% r% ? 11.6 seconds :  平均部署时长 (工作日)
' }2 t- |9 R. N- X

3 u. d0 e$ v, \+ S% Y0 o* s1,079 :  一小时的最大部署量
: m* r: ]! ?! R4 @7 n
6 _) E: n+ S) N) [3 n
10,000 :  主机平均并发接收部署量

* n! j/ [; o% r% b5 y) j5 @& O9 y' f) W- o) h3 t
30,000 :  主机最高并发接收部署量

* p" K8 F9 X- l0 ]( V0 E4 K3 S6 Q& C0 W8 l/ f, S2 B
' l/ B" y* c0 v4 Y% r2 D

5 _1 |& U0 E! [! S3 Z. z- j. z
从早期的大型 SOA (Service Oriented Architecture)到 DevOps 文化的形成,Amazon 的每个工程师都可以完全独立地编写代码,测试代码,版本管理,部署上线,服务监测等任务。这套内部强大的 DevOps 文化最终形成核聚变, Amazon 一跃成为世界级别的云服务领导者 —— Amazon Web Services (AWS)。
" C5 G+ F# |! s$ l
! L% m# `3 G( v8 f  U4 E0 ^

. ^+ S5 B. A8 W. S  a" E  L  t* j
除了 Amazon 外还有一些国内外的 DevOps 实践公司,一起来看看。DevOps
3 u* _' a8 {" L0 D
; x) z. T' ^2 x2 U0 h0 Q/ R
  • Flickr

    # U! T! v% U! Q, I
最全面最经典的是 flickr 的10+ deploys per day,简直是 DevOps 教科书般的存在。

7 j! e2 ]0 \' a1 W3 A
$ p& `. U2 ~( R9 k
  • 百度

    9 l7 L7 ]+ _% f- }0 J8 c
百度技术团队是如何利用 DevOps,来看看解密百度持续交付方法与实践
7 @0 q- L/ h! Q

7 \7 v8 E  O+ Q3 y8 {, z
  • Netflix

    ) h( `) h0 E% O% p1 Z5 V/ e: c

    9 R# q1 R6 V* f' A
解密Netflix 技术团队在整个 DevOps 过程中使用的部署工具和服务.

1 Z, i8 K; l: f; h

( P. L: H) M( y) l  F

6 [! V; ]2 L8 d+ i
- K+ c7 x/ e9 o0 I
  • Etsy

    & S/ Y/ a' K# P1 n# V
    , {" w  f3 ?, o5 K# o
2009年,Etsy建立自己的工具来更好更快地部署发布,「Etsy 如何应用 DevOps」值得一读。
# q% f  w# f0 n: ?
4 F/ S+ J" b! D5 N, s" Z( y; a/ T
  • LinkedIn
    9 u: ^5 G, J* H% k% s5 @& M( Y

    4 y/ c$ b1 d( u/ l' y! a- s5 z
2009年,LinkedIn 团队就开始使用自动化部署工具,用于管理在1000+节点环境下发布上千个应用/服务的复杂性。这是 LinkedIn 自己造的轮子 >>Deployment and Monitoring Automation with glu.
" S& Q4 m( [  {& V+ L# k5 J: e4 q0 _
3 _  O. `/ p+ ^7 _$ l4 o" Z
  • Airbnb
    1 T$ O2 w6 S& J5 T# M+ e+ w( y" R/ n
    / f2 X; @6 G% o1 |6 {, p# g- K
Airbnb 作为第三方平台公司,需要迅速发布多个小型部署。关于 Airbnb 的数据和基础设施,可以参考这个slides
* l& v. J/ g' i* |) ]! w4 ~
: y  I: C  {5 l
  • Starbucks
    ' u6 t  d* \& `; q- a8 ^  ^, c
    ! J) Z) R' M, ~$ d$ h
星巴克的 DevOps 计划>> Starbucks Announces #DevOpsTogether.

; i; S4 P9 @0 i/ f& ?- E9 O

+ ^3 }, G( f% C" w0 F. r! X( V8 l
  • Ancestry.com

    5 n' N9 V9 c5 M- c
    * l+ z( S( B, S9 }& j' `  n
Ancestry.com 是 DevOps 运动的早期采用者,是 Continuous Delivery 和 DevOps 运动的先锋。想了解更多关于他们的过程、迁移和 DevOps 文化,不妨查看一下他们的系列文章
- t! q& K8 V! ]2 \% ]
! \( a/ Q3 q7 |, f9 F( Z! F! x
DevOps = Culture + Tools
( A7 O2 W. }* g8 ]) R

! k2 ]% m+ R% K7 n8 C
7 ^5 z& m! p* W
如果想整个业务部署 DevOps,不但需要软性要求即从上而下的培养 DevOps 文化自上而下地进行探索,也有硬性工具链要求,才能获得更高质量的软件交付。
) x/ U' j$ y3 p: u
4 S# s! Y9 G9 `' m) X: c+ k

2 i0 k& b' U. z& u
最后,不论你是技术Leader,还是一名Dev、QA 或 Ops,实现全面的 DevOps 非常理想化也十分有挑战,希望这份 DevOps 初学者指南是一个好的开始
3 ^% _1 P% A  _5 h' p
+ x1 O/ @( k. q( R. a
原创:FLOW.CI
9 i' N# \2 Q9 ]/ w. a9 m6 a* Q
6 }; h# E/ v: l$ P" O
  Q$ d, K1 j( ?4 E! ?
/ Z- p9 O/ {$ b! p3 X* q7 U+ b5 [

本版积分规则

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

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

Baidu

GMT+8, 2019-3-20 03:26 , Processed in 0.213407 second(s), 29 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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