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

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

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

扫描二维码登录本站

QQ登录

只需一步,快速开始

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

DevOps入门指南

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

参加活动:0

组织活动:12

发表于 2018-8-22 10:34:37 | 显示全部楼层 |阅读模式 来自- 广东广州
本帖最后由 monicazhang 于 2018-8-27 15:04 编辑 * W9 ?' `! [- O$ ~% m

& K' Q) j1 j6 E: O
当我们谈到 DevOps 时,可能讨论的是:流程和管理,运维和自动化,架构和服务,以及文化和组织等等概念。那么,到底什么是"DevOps"呢?

% k& Y  Z. B& X" x
' L: a$ K( a  t' N
什么是 DevOps
- h% _2 z: \# Q

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

8 T3 g2 c# p2 ~( j0 e
0?wx_fmt=jpeg.jpg
" e; h+ y! j* r

- A3 {7 V& I; H. Y! F% A9 `. [
关于 DevOps 是什么,DevOps 的合著者 John Willis 写了一个非常好的帖子,在这里.

; O3 ^4 w$ X; I8 A; c! t9 k* z) s2 n' n, F7 E
Devops 的好处与价值

! x1 h3 f# t7 P1 A1 u  Y

' L+ D) @. |8 X0 R. E
2016 DevOps 新趋势调查报告显示,74% 的公司在尝试接受 DevOps,那么 Devops 有哪些好处与价值呢?

  u9 l( t! m/ p; W0 }

/ |: B0 D: C" x5 C
4 F0 v) _0 {& H
  • 代码的提交直接触发:消除等待时间,快速反馈
      }4 M9 x- ~) f( l0 V

    + W1 l( o2 [. p  X8 f6 I
  • 每个变化对应一个交付管道:使问题定位和调试变得简单
    . S4 l! U% E: |7 r, M

8 \8 J; [8 C7 u# `6 I, d
  • 全开发流程高效自动化:稳定,快速,交付结果可预测

    ; i9 E5 r8 b; ^8 g- M4 D

% f' |- Y+ R( ^- a0 r! [
  • 持续进行自动化回归测试:提升交付质量

    / x  }2 |$ L4 E  t; Y9 I8 N; e
    ( S6 n3 R( H& i$ u8 E
  • 设施共享并按需提供:资源利用最大化
    + {2 r; `! }  h# p; W% |7 F

* L: H9 Q8 G# N/ N' Q3 C
以上可以看出,DevOps 的好处更多基于在于持续部署与交付,这是对于业务与产品而言。而 DevOps 始于接受 DevOps 文化与技术方法论,它是部门间沟通协作的一组流程和方法,有助于改善公司组织文化、提高员工的参与感。

# e# L. ?5 h  g, L$ V* T2 n" d
4 Q# T8 W; K( f/ e
Devops与持续集成
( X9 p5 d4 J0 m  |

# e! g1 J( }  e/ M0 x; I# T' Q
DevOps 是一个完整的面向IT运维的工作流,以 IT 自动化以及持续集成(CI)、持续部署(CD)为基础,来优化程式开发、测试、系统运维等所有环节。
' y, g) d; h) K1 E" ^0 X
1 h- ^, E+ ~8 U* D% i2 s# t0 Y% f

9 D( T; A' n4 n1 ~2 S* P
纵观各个 DevOps 实践公司的技术资料,最全面最经典的是 flickr 的10+ deploys per day最佳实践提到的 DevOps Tools 的技术关键点:
" v0 O% F" r& v
7 Y) |: i, C* s2 {1 i+ V
1. Automated infrastructure(自动化,系统之间的集成)  
! a& j1 p" q6 ^3 m0 j7 t
2. shared version control(SVN共享源码)  

4 \/ t% e3 v- C: j' i
& a$ ?# Y0 c, ?8 M. Q3. one step build and deploy(持续构建和部署)  
) m) E/ ^: a7 {3 E

* j/ u% G9 Q1 h7 c1 ]( ^4 R4. feature flags(主干开发)  

0 S# ?/ m4 U# N& M6 ?: T4 F
% r3 R, r! }& b5 V9 Q: M' o5. Shared metrics  

- l" V  A- `! s) l7 W" v/ z9 j0 n' `4 J5 j! t
6. IRC and IM robots(信息整合)  
# O( Q+ _. h! d/ Y# R; b. d, R! P/ e1 Q* x
以上的技术要点由持续集成/部署一线贯穿,主干开发是进行持续集成的前提,自动化以及代码周边集中管理是实施持续集成的必要条件。毫无疑问,DevOps 是持续集成思想的延伸,持续集成/部署是 DevOps 的技术核心,在没有自动化测试、持续集成/部署之下,DevOps 就是空中楼阁。
( |5 C: s1 K+ }

- j, g1 r* L' k! P- w  c+ t  d. N
我们做了一款 Hosted 持续集成产品—— flow.ci ,它融入了 workflow 机制的持续集成(CI)服务,也可以理解为自动化流程平台,除了集成代码、编译、测试之外,还可以集成常用的工具、灵活自定义流程,帮助你塑造一个更优秀智能的 DevOps 环境。

' \& T% d" S% J  a2 ~8 e) j- D
0?wx_fmt=png.jpg 0 ~  u& o3 \  j& m

, K' n5 Z% e/ r2 T3 j* h3 Y  D3 I: `0 w2 t2 y) C) _( z0 l$ h, ]' V* Q
DevOps 的技术栈与工具链
: r" k& h7 k/ Q  U* l$ i7 i' F. J% L

: t% n" x3 j' H4 A
Everything is Code,DevOps 也同样要通过技术工具链完成持续集成、持续交付、用户反馈和系统优化的整合。Elasticbox 整理了 60+ 开源工具与分类,其中包括版本控制&协作开发工具、自动化构建和测试工具、持续集成&交付工具、部署工具、维护工具、监控,警告&分析工具等等,补充了一些国内的服务,可以让你更好地执行实施 DevOps 工作流。
0 R/ }7 a$ G' w# c# P: f
( U& s/ \! b+ Y) s) }
  • 版本控制&协作开发:GitHub、GitLab、BitBucket、SubVersion、Coding、Bazaar

    ! @" R* M6 T# Z: _
, d* D9 @7 I9 [/ Y9 z* J/ o
  • 自动化构建和测试:Apache Ant、Maven 、Selenium、PyUnit、QUnit、JMeter、Gradle、PHPUnit
    ' g0 i  b, t, J8 ]
  Y9 ?" z8 H3 j! f: ?) O
  • 持续集成&交付:Jenkins、Capistrano、BuildBot、Fabric、Tinderbox、Travis CI、flow.ci、Continuum、LuntBuild、CruiseControl、Integrity、Gump、Go

    3 G8 U; L4 f5 f* d
    / q$ W( n/ M! w. N0 S9 \) F, }
  • 容器平台: Docker、Rocket、Ubuntu(LXC)、第三方厂商如(AWS/阿里云)
    ! N: ^! I+ |4 ~2 ]- a
9 o5 Q# e6 j  n9 y$ g- m! b
  • 配置管理:Chef、Puppet、CFengine、Bash、Rudder、Powershell、RunDeck、Saltstack、Ansible

    0 z. Z# B9 R/ l. i5 r% Y* t8 l
: N/ k% M# b' I( ~
  • 微服务平台:OpenShift、Cloud Foundry、Kubernetes、Mesosphere
    " H5 `; b! b! R0 Y2 y
* B9 e* L7 y+ }; k/ ~) L
  • 服务开通:Puppet、Docker Swarm、Vagrant、Powershell、OpenStack Heat

    % l2 A1 b1 \8 f$ L
    " E7 O& T0 M! s, z$ h2 j
  • 日志管理:Logstash、CollectD、StatsD

    2 ?# _: z% d' j3 ~1 N/ Y" X
    + [+ t0 Q7 C9 Z% W
  • 监控,警告&分析:nagios、Ganglia、Sensu、zabbix、ICINGA、Graphite、Kibana
    7 r8 K8 l8 ~# \/ e- y$ b
    % T) j) ?& t" s0 l1 Z+ G
" Y5 e9 t% b0 M1 }0 O- {
0?wx_fmt=png.jpg
3 I) o3 n0 E/ E) ]0 G

3 q& R6 w8 m9 u8 \' Q" u5 n
顺便再分享一个 DevOps BookMarks,涉及了DevOps方方面面的工具和内容,有兴趣的同学可以去学习下。
1 h& b" c1 j9 M+ e
; p; P9 }4 q' p, s8 V2 }  \4 q6 Y; k
DevOps 最佳实践
; B  `% V4 U2 I# N# p6 p1 H' O
/ p0 p! D% ]$ g& {  G
自 2009 年提出 DevOps 的概念起,很多公司都开始实施 DevOps,国外比较著名的有Amazon 、Google、Facebook 等,国内著名的有百度、华为、阿里等。Amazon 是 DevOps 最佳实践的最有说服力的代表之一。这是 Amazon 在 Why We Need DevOps一个月的 DevOps 快照:

5 U  \; t# J, k. F! {
% `* C" g8 r( P! Q" U0 `! Q
11.6 seconds :  平均部署时长 (工作日)
9 b7 w( V' O! J, |; S$ h( H
+ r% q, o/ H% }, t# P
1,079 :  一小时的最大部署量

2 X9 v9 Y6 ?7 J, ]1 @6 V7 F7 v' ^: m
10,000 :  主机平均并发接收部署量
, z( w& e8 e* {: f0 L
0 e% I3 R& b3 b4 |
30,000 :  主机最高并发接收部署量

! s, S& C# D& Y* m- M5 l5 l
2 a9 E( f- g2 t8 E
7 r  j, f( D3 J6 v, I0 O( r5 f; K/ O

' p; J# I! a# N& V/ R
从早期的大型 SOA (Service Oriented Architecture)到 DevOps 文化的形成,Amazon 的每个工程师都可以完全独立地编写代码,测试代码,版本管理,部署上线,服务监测等任务。这套内部强大的 DevOps 文化最终形成核聚变, Amazon 一跃成为世界级别的云服务领导者 —— Amazon Web Services (AWS)。
* R7 W# [4 r- X" N, O* r

# w8 u8 e$ K  b; y5 ^+ ]/ ~" a5 H* b( y8 ~* I! o+ {( p% K5 ]" v: R
除了 Amazon 外还有一些国内外的 DevOps 实践公司,一起来看看。DevOps
) B7 }2 Z: J6 d% ?, b1 e9 G. x
% F' e; s- Z4 a, m9 R
  • Flickr

    " ?/ w$ F- K9 p; x
最全面最经典的是 flickr 的10+ deploys per day,简直是 DevOps 教科书般的存在。

( s' [: c  h1 P
6 ^7 ~5 E* D+ g4 `  k
  • 百度
    - ]8 H/ d  @  z0 m: ?. G; K  q
百度技术团队是如何利用 DevOps,来看看解密百度持续交付方法与实践
! G3 U* z$ X  Y1 s1 G, }- [% H

0 L3 t; j: m  [1 T7 _9 ?. D
  • Netflix

    & r; B! l" B/ n% T- l! y) ^1 g

    2 \  D7 e; Y9 N* D& k  M6 U; F
解密Netflix 技术团队在整个 DevOps 过程中使用的部署工具和服务.
* E! S9 M& r5 N' E" s
% ^! J# ~& t- Z4 p# r# _9 [
" |* l& D/ p: e& \5 t2 A; j" l3 m' T6 Y

6 ^# ?3 M! w" a" ~. D
  • Etsy
    # [& Q6 ]7 b0 r

      |' l7 w8 x* h% Q: s
2009年,Etsy建立自己的工具来更好更快地部署发布,「Etsy 如何应用 DevOps」值得一读。

5 f/ j. O& l4 l; o3 K
# Q( W/ s2 P9 |/ I& T+ A" ?
  • LinkedIn

    4 x+ }- e- P0 `6 D7 h

    + k) w4 B' U! k" H  b
2009年,LinkedIn 团队就开始使用自动化部署工具,用于管理在1000+节点环境下发布上千个应用/服务的复杂性。这是 LinkedIn 自己造的轮子 >>Deployment and Monitoring Automation with glu.
: |0 U- @& h  ^

- g0 }, L: G$ H& R' G# D/ p- |2 O- S
  • Airbnb
    ! S) o/ p1 _) z- c4 |" E/ X( d

    , R& V% [. b0 a8 O/ `7 n/ `0 H
Airbnb 作为第三方平台公司,需要迅速发布多个小型部署。关于 Airbnb 的数据和基础设施,可以参考这个slides

1 b+ W  h7 z- x: @+ L4 _2 z3 A* {
- s+ q3 [- H' p; Z; @9 E% ^. z
  • Starbucks

    4 _0 D3 q* V( p! I
    * J0 F7 W' d# u/ g7 T% a3 F
星巴克的 DevOps 计划>> Starbucks Announces #DevOpsTogether.
7 H4 D6 ?, A$ E1 J
  c* T1 _9 b! O! ^" s3 T
  • Ancestry.com
    . m2 E9 A/ B5 T1 V3 I8 d8 `
    8 R$ R. ~. N; S! D0 }5 {
Ancestry.com 是 DevOps 运动的早期采用者,是 Continuous Delivery 和 DevOps 运动的先锋。想了解更多关于他们的过程、迁移和 DevOps 文化,不妨查看一下他们的系列文章

/ L3 U2 E# A- G. v1 u1 X
9 ^1 `% Z: t* _
DevOps = Culture + Tools
* ?! o7 T# U& s* Y
% Q4 Y1 o# J4 ?9 M( a4 d

" r, y3 ]) W0 S9 t8 u9 `7 R
如果想整个业务部署 DevOps,不但需要软性要求即从上而下的培养 DevOps 文化自上而下地进行探索,也有硬性工具链要求,才能获得更高质量的软件交付。
. U& E% M; z7 p: _; R

# t1 ~6 L- V, J9 p- R9 a
5 }9 s+ G+ K" L. w4 _
最后,不论你是技术Leader,还是一名Dev、QA 或 Ops,实现全面的 DevOps 非常理想化也十分有挑战,希望这份 DevOps 初学者指南是一个好的开始
7 E- n# P. k7 \  Q+ w3 k
+ u+ y9 a7 z$ c0 j% e+ y4 ~
原创:FLOW.CI7 J7 ^( @9 K& u9 ~+ O5 H4 S7 V
. t3 v" ?, |0 b8 n7 S
' D- s% x8 E: M
3 `8 \" t3 W1 X: n" w$ P

本版积分规则

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

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

Baidu

GMT+8, 2019-5-24 13:22 , Processed in 0.220350 second(s), 29 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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