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

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

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

扫描二维码登录本站

QQ登录

只需一步,快速开始

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

DevOps入门指南

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

参加活动:0

组织活动:12

发表于 2018-8-22 10:34:37 | 显示全部楼层 |阅读模式 来自- 广东广州
本帖最后由 monicazhang 于 2018-8-27 15:04 编辑
3 |1 G+ j  H' m. h2 [5 |- s) S8 L/ f' v* `; ]7 T
当我们谈到 DevOps 时,可能讨论的是:流程和管理,运维和自动化,架构和服务,以及文化和组织等等概念。那么,到底什么是"DevOps"呢?
- p- d5 ^# L4 E3 q: j7 L
6 D- b4 @6 z, ?8 `+ v5 ^# [
什么是 DevOps
" P7 V/ `4 r2 K5 z3 J! L

* I3 R  i* q+ K: K9 B( W; M- g! C
随着软件发布迭代的频率越来越高,传统的「瀑布型」(开发—测试—发布)模式已经不能满足快速交付的需求。2009 年左右 DevOps 应运而生,简单地来说,就是更好的优化开发(DEV)、测试(QA)、运维(OPS)的流程,开发运维一体化,通过高度自动化工具与流程来使得软件构建、测试、发布更加快捷、频繁和可靠。
% g7 C3 j& m; I% ]: U# A
0?wx_fmt=jpeg.jpg
6 i- L  X6 s+ G7 r5 c

: @6 W1 k! X/ f( E$ D0 {* M
关于 DevOps 是什么,DevOps 的合著者 John Willis 写了一个非常好的帖子,在这里.
+ a" |, o" @5 v4 q2 a
, r* J; [& w0 ], a) C
Devops 的好处与价值
- X1 b% T4 O5 |1 w; j* Z* ?( H1 D5 g% T
1 V) d. e' t2 h0 `
2016 DevOps 新趋势调查报告显示,74% 的公司在尝试接受 DevOps,那么 Devops 有哪些好处与价值呢?
4 `  M. a0 j' b7 x

9 `5 C4 E- O. p! e
- D, ?/ z% l, Q" b# q, Y3 o* |
  • 代码的提交直接触发:消除等待时间,快速反馈

    * V+ e+ g$ v7 |$ w
    - Q- r0 L& i8 c
  • 每个变化对应一个交付管道:使问题定位和调试变得简单

    / }* R1 E. A- _: [7 }- Y
" l. z. p$ J( {, x( w2 Z  y0 ]5 y
  • 全开发流程高效自动化:稳定,快速,交付结果可预测

    . R/ p: q. d, y5 L

7 m' y8 N8 ?# O( i8 @) {* }
  • 持续进行自动化回归测试:提升交付质量

    5 K' H7 y6 R9 _  ?6 ^) D
    ; Y) q/ w6 f/ h+ c
  • 设施共享并按需提供:资源利用最大化
    " x' \& J2 m$ Q5 P

) ~/ Z7 W6 k2 I* K3 [$ t* G( x% k
以上可以看出,DevOps 的好处更多基于在于持续部署与交付,这是对于业务与产品而言。而 DevOps 始于接受 DevOps 文化与技术方法论,它是部门间沟通协作的一组流程和方法,有助于改善公司组织文化、提高员工的参与感。
( g5 d6 u$ T9 T, f
; w5 T$ v" W& h5 y# h
Devops与持续集成
' `/ o7 B! @# @2 G
; ~/ |; J' \; }/ r, i1 |& j
DevOps 是一个完整的面向IT运维的工作流,以 IT 自动化以及持续集成(CI)、持续部署(CD)为基础,来优化程式开发、测试、系统运维等所有环节。

) X: r* z) j' B: J1 @

# k- J% k& ~- R/ }  A; C( d( H0 n. `( b' n; E
纵观各个 DevOps 实践公司的技术资料,最全面最经典的是 flickr 的10+ deploys per day最佳实践提到的 DevOps Tools 的技术关键点:
( l% v4 q2 x. N5 ]# E: X

; j+ R. J' A: f2 K4 `* Q) u 1. Automated infrastructure(自动化,系统之间的集成)  

  M6 V: Y$ e$ k( S0 x0 J- a, ?! W! v2. shared version control(SVN共享源码)  

, h# O1 s) K- r* x# h
2 z# g4 V0 a) p, W  T  O3. one step build and deploy(持续构建和部署)  

  Z( O- Z2 p. w7 o
" W7 V) [2 m- h/ Y3 B4. feature flags(主干开发)  
3 }5 ]- M# H4 \% N/ w2 D! M5 Q1 d

% R$ r2 `3 y3 g$ k6 X3 F5. Shared metrics  

; R3 @& \2 A7 z! Z! o4 d; ~" |- e' u0 \" z
6. IRC and IM robots(信息整合)  
( T9 w9 ^. Y! j, k& S  `8 ?" K( Z! Z" z! x, ~* F+ Y
以上的技术要点由持续集成/部署一线贯穿,主干开发是进行持续集成的前提,自动化以及代码周边集中管理是实施持续集成的必要条件。毫无疑问,DevOps 是持续集成思想的延伸,持续集成/部署是 DevOps 的技术核心,在没有自动化测试、持续集成/部署之下,DevOps 就是空中楼阁。5 W  W1 x' Q, B
6 J+ Y/ b( z2 H
我们做了一款 Hosted 持续集成产品—— flow.ci ,它融入了 workflow 机制的持续集成(CI)服务,也可以理解为自动化流程平台,除了集成代码、编译、测试之外,还可以集成常用的工具、灵活自定义流程,帮助你塑造一个更优秀智能的 DevOps 环境。

) Q1 I: p  V3 R" t" H* \1 p8 `; h7 y
0?wx_fmt=png.jpg 8 F: |7 P& ^% x  k1 Z

( [* P/ ~( E, q0 z( s  h0 e5 D0 g2 @! e; f' D) g+ n  D! O
DevOps 的技术栈与工具链

1 t9 w5 r% e* k. N& [8 y; N* w0 O
7 G1 W' p9 T1 a4 |; H0 x, q
Everything is Code,DevOps 也同样要通过技术工具链完成持续集成、持续交付、用户反馈和系统优化的整合。Elasticbox 整理了 60+ 开源工具与分类,其中包括版本控制&协作开发工具、自动化构建和测试工具、持续集成&交付工具、部署工具、维护工具、监控,警告&分析工具等等,补充了一些国内的服务,可以让你更好地执行实施 DevOps 工作流。

. r! j" V: u9 S
) s4 x* e8 S4 ?) Z, v
  • 版本控制&协作开发:GitHub、GitLab、BitBucket、SubVersion、Coding、Bazaar
    8 @* A) d. p& p; y4 _2 V( b! P& b

' Q' k- u0 o  R
  • 自动化构建和测试:Apache Ant、Maven 、Selenium、PyUnit、QUnit、JMeter、Gradle、PHPUnit

    * \2 R) i& b+ X
0 t; a( }/ A$ j9 }$ s
  • 持续集成&交付:Jenkins、Capistrano、BuildBot、Fabric、Tinderbox、Travis CI、flow.ci、Continuum、LuntBuild、CruiseControl、Integrity、Gump、Go
    , O( m  Q. M7 }. o

    ' L! E8 O0 a4 k: m" _- ?
  • 容器平台: Docker、Rocket、Ubuntu(LXC)、第三方厂商如(AWS/阿里云)

    $ v( ^$ a9 J# O9 F! `7 ~2 O9 g
' z4 _3 I3 \! q" H8 R- B
  • 配置管理:Chef、Puppet、CFengine、Bash、Rudder、Powershell、RunDeck、Saltstack、Ansible
    # O9 U# b2 D" v
2 h+ d% }% m3 M% U
  • 微服务平台:OpenShift、Cloud Foundry、Kubernetes、Mesosphere
    9 _' `6 X. t8 J' E  h' W

* I( G1 h: }+ m- \8 `  A
  • 服务开通:Puppet、Docker Swarm、Vagrant、Powershell、OpenStack Heat
    . \! R: K+ f; T
    8 h- Y- {. o# X, Z% _
  • 日志管理:Logstash、CollectD、StatsD
    ( {6 m5 Q  s% e

    ; K" q* J# z1 W, m& K2 O8 j1 N( P
  • 监控,警告&分析:nagios、Ganglia、Sensu、zabbix、ICINGA、Graphite、Kibana

    6 q" l" y  j2 o( N% K% R
    ) ]+ Q6 f6 i. r

! ^8 t4 e) {6 k9 ]7 E# m
0?wx_fmt=png.jpg
$ ]4 P1 O9 |" n  b7 x

7 d& |/ M  I: w; ~3 N3 g! \/ f
顺便再分享一个 DevOps BookMarks,涉及了DevOps方方面面的工具和内容,有兴趣的同学可以去学习下。

5 W; m+ X2 R2 C$ h- W: F; U$ v* |
( Z9 _' r7 A9 w: T3 [. h8 v
DevOps 最佳实践
0 M# e. E: y1 u* ^+ ^- H9 Z

+ O1 h) ~. ]" U, N
自 2009 年提出 DevOps 的概念起,很多公司都开始实施 DevOps,国外比较著名的有Amazon 、Google、Facebook 等,国内著名的有百度、华为、阿里等。Amazon 是 DevOps 最佳实践的最有说服力的代表之一。这是 Amazon 在 Why We Need DevOps一个月的 DevOps 快照:

* k7 ]6 D# j7 ^3 s1 A

5 p6 t8 v6 h% R3 o' ] 11.6 seconds :  平均部署时长 (工作日)

8 u5 G7 M* W: O. O4 g/ I. y% a+ w- F* @3 G- {0 n  F2 @
1,079 :  一小时的最大部署量
" u( a7 K9 R4 ~; Q4 ~# Y( Y
7 j& \- F. R% {: n% p
10,000 :  主机平均并发接收部署量
6 }3 N+ v- I' k6 C# |; ?

  C- ~+ b5 g8 d6 ]  _: s% k30,000 :  主机最高并发接收部署量
$ x' J6 `6 c! S/ ?$ C

  a# i" V. |1 d2 j6 U

* m0 K: @' D4 V, Y( R- s- C) \3 w- c
1 p* S5 A% y0 S6 v2 Y" e" l
从早期的大型 SOA (Service Oriented Architecture)到 DevOps 文化的形成,Amazon 的每个工程师都可以完全独立地编写代码,测试代码,版本管理,部署上线,服务监测等任务。这套内部强大的 DevOps 文化最终形成核聚变, Amazon 一跃成为世界级别的云服务领导者 —— Amazon Web Services (AWS)。

6 w( |: @/ A' @
+ x: ~- H7 k0 v! ^8 H* v
9 w1 S7 X9 o% `& D
除了 Amazon 外还有一些国内外的 DevOps 实践公司,一起来看看。DevOps

3 _) _, q6 B9 @5 b, ~/ L
! t% E4 q" o& v3 u* M5 V9 v
  • Flickr

      n7 y' n, S# |' h' n, h* [
最全面最经典的是 flickr 的10+ deploys per day,简直是 DevOps 教科书般的存在。
" T+ h& j! s2 l) ~2 X9 S
$ O. ~- W6 q/ E  [, O
  • 百度

    # e" T2 F( }0 t; v  k
百度技术团队是如何利用 DevOps,来看看解密百度持续交付方法与实践
' f" Q& r7 x4 j# X3 D- N( S' j
  K6 o5 U" h% a: a: A% j$ a7 w7 d
  • Netflix

      J. m& w. g2 }) ^" u3 Q

    & ?# n3 f2 @/ k! d7 L
解密Netflix 技术团队在整个 DevOps 过程中使用的部署工具和服务.

/ X  l# B" s5 R. R- q* l9 n* s2 Y
. M' u5 m  J" c2 d
' D1 L# ~, ?& {! S4 W* h0 J$ z
+ d8 {* U% x( X2 c+ z* ~
  • Etsy
    * v/ b2 m  R. P" t( h. g; F
    ( z& P. T1 z$ v# S: V
2009年,Etsy建立自己的工具来更好更快地部署发布,「Etsy 如何应用 DevOps」值得一读。
3 t* u$ Y. X# }" P7 Y; R

1 e# R; k' k4 F4 c# p& d9 Z
  • LinkedIn
    0 e. T' k8 d# e9 \6 V, y3 W

    $ V0 Z1 C6 w( v7 L' r8 a, [  |
2009年,LinkedIn 团队就开始使用自动化部署工具,用于管理在1000+节点环境下发布上千个应用/服务的复杂性。这是 LinkedIn 自己造的轮子 >>Deployment and Monitoring Automation with glu.

" m! ?" {9 n9 d6 U# ~" \
6 e) N6 i& K, p" ~: ?! `3 B
  • Airbnb

    ) B4 E! Q7 o4 F- u% h, B: ~
    4 |( E/ \( K9 i& Q7 _2 ^
Airbnb 作为第三方平台公司,需要迅速发布多个小型部署。关于 Airbnb 的数据和基础设施,可以参考这个slides

" F6 v& J7 {% E+ o7 \

5 A8 |: I, V# i( N  k: K" [
  • Starbucks

    * o( F8 n+ q8 f/ g1 ], N( E
    - }, y/ H% x" J# L7 U6 _9 k5 \
星巴克的 DevOps 计划>> Starbucks Announces #DevOpsTogether.

# ?! t2 ~5 g& b) c
/ v8 }) D7 }( r2 S# T0 V
  • Ancestry.com
    + N: }# }5 [, M$ u; X

    " ]1 ~3 A" D9 \% N: d) G. n
Ancestry.com 是 DevOps 运动的早期采用者,是 Continuous Delivery 和 DevOps 运动的先锋。想了解更多关于他们的过程、迁移和 DevOps 文化,不妨查看一下他们的系列文章

, A* u% c  G5 o0 u0 K
& E) a* W' B) c- t& z( S$ c  Z
DevOps = Culture + Tools
& B: `- V5 B, g9 `1 W3 n% _
6 Z0 }3 K- D* H: e* @2 x, Z0 H. _
$ d6 i0 ^0 I( [: T
如果想整个业务部署 DevOps,不但需要软性要求即从上而下的培养 DevOps 文化自上而下地进行探索,也有硬性工具链要求,才能获得更高质量的软件交付。
/ }0 e+ a9 F4 p, K
  r: |( ^5 n1 }, z
, Y! {( W) q* Q- C* i/ ]$ `) A
最后,不论你是技术Leader,还是一名Dev、QA 或 Ops,实现全面的 DevOps 非常理想化也十分有挑战,希望这份 DevOps 初学者指南是一个好的开始

. S0 U1 H. n% w2 g; b6 F9 W* f( W  F' M: y& O: d  e) Q
原创:FLOW.CI
2 D9 l% B: n  Y& ?$ d+ c( N

0 _$ m: P& q" L4 M; b% @" ]! ]/ u0 F+ S2 l3 ?& i( |$ C4 `5 U& Z
2 |9 r6 D+ A, h* r3 D

本版积分规则

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

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

Baidu

GMT+8, 2019-1-23 22:14 , Processed in 0.306971 second(s), 31 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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