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

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

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

扫描二维码登录本站

QQ登录

只需一步,快速开始

搜索
查看: 490|回复: 0

DevOps入门指南

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

参加活动:0

组织活动:12

发表于 2018-8-22 10:34:37 | 显示全部楼层 |阅读模式 来自- 广东广州
本帖最后由 monicazhang 于 2018-8-27 15:04 编辑
% S* c) n: ]) x% W7 a3 R- r7 P6 l! @' {& d$ t
当我们谈到 DevOps 时,可能讨论的是:流程和管理,运维和自动化,架构和服务,以及文化和组织等等概念。那么,到底什么是"DevOps"呢?

8 M# c8 I' C5 _1 ?
, u% M, f5 W- S# ~; D  e0 l# }
什么是 DevOps

! q. s5 n5 @% `5 q! X" K; X( k

3 o+ ^9 e# `( m4 K- E: u  q
随着软件发布迭代的频率越来越高,传统的「瀑布型」(开发—测试—发布)模式已经不能满足快速交付的需求。2009 年左右 DevOps 应运而生,简单地来说,就是更好的优化开发(DEV)、测试(QA)、运维(OPS)的流程,开发运维一体化,通过高度自动化工具与流程来使得软件构建、测试、发布更加快捷、频繁和可靠。
, O2 L! H$ i7 z% S- J
0?wx_fmt=jpeg.jpg

$ d- u& y6 |' ?+ g/ a
1 u1 B3 S" M/ U  h1 q9 i, A' v
关于 DevOps 是什么,DevOps 的合著者 John Willis 写了一个非常好的帖子,在这里.
# \& D; Q3 \0 Q/ l# f

& F4 F0 \) i! H$ e/ }7 O: T' y
Devops 的好处与价值
' F$ L- o4 p9 p. o/ \
5 S  f$ N" q8 S' q; v" k1 Q
2016 DevOps 新趋势调查报告显示,74% 的公司在尝试接受 DevOps,那么 Devops 有哪些好处与价值呢?
: U! h  q" u# m4 y0 u# V5 Q  L
+ R. P8 i( ?+ a* V0 [2 i/ z% j
2 V3 A6 K# z$ Y, n5 @2 p
  • 代码的提交直接触发:消除等待时间,快速反馈

    : |9 H. V% X$ n- z1 E4 `
    0 I' g& }0 R2 C; j1 D9 B
  • 每个变化对应一个交付管道:使问题定位和调试变得简单
    ; N9 a* b* N# [0 |

3 N' W; p; X% d8 D7 c) G
  • 全开发流程高效自动化:稳定,快速,交付结果可预测

    * I2 Q! T2 {7 t( m
3 M. M) ?" U* }0 J% t3 |. y7 t) w
  • 持续进行自动化回归测试:提升交付质量
    ' T; |( G' G! h

    $ |. V  Y' V, B3 R8 K
  • 设施共享并按需提供:资源利用最大化

    ! E" v; Q7 w$ w7 q' e6 O
. F5 R' k7 M( J0 F) G
以上可以看出,DevOps 的好处更多基于在于持续部署与交付,这是对于业务与产品而言。而 DevOps 始于接受 DevOps 文化与技术方法论,它是部门间沟通协作的一组流程和方法,有助于改善公司组织文化、提高员工的参与感。
0 v5 W8 ~  A+ K. a6 ~4 N
8 O4 P, V+ x8 f6 g1 a! a; `" W! _
Devops与持续集成

6 t% a$ O9 E, K! J, c$ x

5 \3 Y4 O6 ~( z' ]7 D! n8 C" l
DevOps 是一个完整的面向IT运维的工作流,以 IT 自动化以及持续集成(CI)、持续部署(CD)为基础,来优化程式开发、测试、系统运维等所有环节。

1 ~4 g7 ~0 c: k" i

3 K# O$ y  M2 q' s% T  f
; x: P$ P4 B1 L+ ?
纵观各个 DevOps 实践公司的技术资料,最全面最经典的是 flickr 的10+ deploys per day最佳实践提到的 DevOps Tools 的技术关键点:

4 a$ n# u# E3 l, d4 S6 i
$ P4 O! S  B. l- b4 S
1. Automated infrastructure(自动化,系统之间的集成)  

0 }' d) d- Q2 {; B2. shared version control(SVN共享源码)  
* C) e9 ?- X) R; u- g+ B

3 w' o) x* O) l* g3 k8 K: W3. one step build and deploy(持续构建和部署)  

6 r. z' h1 N* D6 r$ Z8 x8 o$ S
! ~7 c2 d" m# v( U0 L' M2 B4. feature flags(主干开发)  
0 ?% v# ]. z' w4 c' s. l9 O

, a& c1 Z: ?9 E1 F9 I5. Shared metrics  

# m8 e  r2 k) c( g/ {
" |: w0 }$ _! [  C' p# [9 f, T6 I( B6. IRC and IM robots(信息整合)  ; w6 j7 R! P' v# S

; R( a) j9 C: c) d- c: F' t
以上的技术要点由持续集成/部署一线贯穿,主干开发是进行持续集成的前提,自动化以及代码周边集中管理是实施持续集成的必要条件。毫无疑问,DevOps 是持续集成思想的延伸,持续集成/部署是 DevOps 的技术核心,在没有自动化测试、持续集成/部署之下,DevOps 就是空中楼阁。7 R0 S" y- `% z

1 S1 V3 g% H1 n1 g% j3 |) h+ p' r4 |
我们做了一款 Hosted 持续集成产品—— flow.ci ,它融入了 workflow 机制的持续集成(CI)服务,也可以理解为自动化流程平台,除了集成代码、编译、测试之外,还可以集成常用的工具、灵活自定义流程,帮助你塑造一个更优秀智能的 DevOps 环境。
: c5 @+ p( e, F/ q
0?wx_fmt=png.jpg 6 ^" E) [0 p( N# e
$ H, C" T9 i1 b+ V2 a% j
. ?: h+ v) M# J2 U/ d
DevOps 的技术栈与工具链
5 `3 ^1 X2 r- l' C7 H5 {

5 c! }6 \3 n) L1 `! a0 q# b# a
Everything is Code,DevOps 也同样要通过技术工具链完成持续集成、持续交付、用户反馈和系统优化的整合。Elasticbox 整理了 60+ 开源工具与分类,其中包括版本控制&协作开发工具、自动化构建和测试工具、持续集成&交付工具、部署工具、维护工具、监控,警告&分析工具等等,补充了一些国内的服务,可以让你更好地执行实施 DevOps 工作流。

0 N% W! L( {  j8 M8 ?
+ Q1 I$ r! i- e" r, z8 S# d
  • 版本控制&协作开发:GitHub、GitLab、BitBucket、SubVersion、Coding、Bazaar

    / `% T; z1 o+ g  |

4 S0 D3 e3 Z1 i+ J/ A1 i# _
  • 自动化构建和测试:Apache Ant、Maven 、Selenium、PyUnit、QUnit、JMeter、Gradle、PHPUnit

    6 J6 z; @! {/ U' i8 _
0 a2 t6 X+ [3 Q' v! ~0 L
  • 持续集成&交付:Jenkins、Capistrano、BuildBot、Fabric、Tinderbox、Travis CI、flow.ci、Continuum、LuntBuild、CruiseControl、Integrity、Gump、Go
    # k4 L- ^5 F- k: T5 z) a, F8 B

      D+ |5 r. s  y
  • 容器平台: Docker、Rocket、Ubuntu(LXC)、第三方厂商如(AWS/阿里云)
    % u0 i7 H; O- C% n$ [

9 K- s6 L" Y1 A- ]4 R& O
  • 配置管理:Chef、Puppet、CFengine、Bash、Rudder、Powershell、RunDeck、Saltstack、Ansible
    - }. ?+ q# s/ ]9 b$ g' f+ d

" N! u3 g& x2 t  ^
  • 微服务平台:OpenShift、Cloud Foundry、Kubernetes、Mesosphere

    0 l( S2 v3 L! ^9 `

& M" D% w, |$ H* y& k! O  b
  • 服务开通:Puppet、Docker Swarm、Vagrant、Powershell、OpenStack Heat
    5 _9 X! B0 v! p5 w; C* g4 @
    , J8 j+ p, h1 C, x
  • 日志管理:Logstash、CollectD、StatsD

    1 r2 N/ N, B+ Q5 L, B
    " e! M! X$ p* p% U! ^9 `4 h$ `& t
  • 监控,警告&分析:nagios、Ganglia、Sensu、zabbix、ICINGA、Graphite、Kibana
    # o, A  Q4 a  E- \

    . q$ r8 y9 e4 B) }- a3 @1 e3 u
' l$ V% ?! U: a6 ?/ T. m1 ]: h
0?wx_fmt=png.jpg
3 X/ B# V3 x& J& u( }& F; Z' |8 j

: `) \/ n1 p, a. ^' ^8 c' e
顺便再分享一个 DevOps BookMarks,涉及了DevOps方方面面的工具和内容,有兴趣的同学可以去学习下。

9 b- V8 j8 [: ~2 n* Z% R9 X% q" T- A/ m- X6 P. t
DevOps 最佳实践
6 [- Q! M) y" ^+ |* C5 {) w
# G* f6 v8 ~! w0 f( }# T
自 2009 年提出 DevOps 的概念起,很多公司都开始实施 DevOps,国外比较著名的有Amazon 、Google、Facebook 等,国内著名的有百度、华为、阿里等。Amazon 是 DevOps 最佳实践的最有说服力的代表之一。这是 Amazon 在 Why We Need DevOps一个月的 DevOps 快照:
/ i! ^$ F3 H4 H# T) s

. Z3 A( ~: k0 u" f9 [ 11.6 seconds :  平均部署时长 (工作日)

2 @% A3 C# D2 G
7 r% L* T$ T) q1,079 :  一小时的最大部署量
7 c& M' U8 B. e, F- ]; n  R8 _
8 v' u( _  ]* o& o
10,000 :  主机平均并发接收部署量

$ ^' H0 ?6 {. P2 Q2 x& B" O1 O% s
$ ]( H4 h$ ?  f$ t( d1 o30,000 :  主机最高并发接收部署量
7 O, E$ S% U, F" P4 U  N* o

0 r4 J1 h  _: w8 p! P
+ {% F2 v9 j: C. f( a2 P
. @& ?- _0 X3 C/ f6 l
从早期的大型 SOA (Service Oriented Architecture)到 DevOps 文化的形成,Amazon 的每个工程师都可以完全独立地编写代码,测试代码,版本管理,部署上线,服务监测等任务。这套内部强大的 DevOps 文化最终形成核聚变, Amazon 一跃成为世界级别的云服务领导者 —— Amazon Web Services (AWS)。

9 v% ^, P% R8 i( k- E& n4 e
3 o6 X- ]* u0 s& ?

( O) b$ B: h4 N- l8 }* g  J
除了 Amazon 外还有一些国内外的 DevOps 实践公司,一起来看看。DevOps
. v! M; ^% K% |' ^, N' B! s( [

. y2 ]9 k( R7 G: {; m. Z& d# |
  • Flickr
    * o% {  R1 A4 J9 U  ^! w
最全面最经典的是 flickr 的10+ deploys per day,简直是 DevOps 教科书般的存在。

6 S9 S+ K! O$ |0 P; Z( I1 w- s

+ a! M, M" V8 G: ?# ~+ u0 b6 D
  • 百度
    , d9 I- q8 T  R; Q. I( `
百度技术团队是如何利用 DevOps,来看看解密百度持续交付方法与实践

( c3 h/ G; K% x$ ~2 |8 i8 l( x

$ `. Y3 l; \! ^) D, Z
  • Netflix
    ( X0 l/ Y, S. U

    / E) D/ ^% U' e
解密Netflix 技术团队在整个 DevOps 过程中使用的部署工具和服务.

  l$ h6 Q5 E" S+ |" ]3 }3 m) S- n2 n
5 g2 i. W1 n$ Y2 A0 p
% E) b- y7 m+ X( Y' o
* U, F0 O6 H2 \: i( z' a0 b$ c2 V
  • Etsy

    8 h2 u) H& T% [, q8 c0 x
    8 m# t; C4 ~# J4 |( |7 y
2009年,Etsy建立自己的工具来更好更快地部署发布,「Etsy 如何应用 DevOps」值得一读。
. J" m5 H0 K3 |$ R

2 I, K6 F' |' d( y* R0 H
  • LinkedIn

    4 X6 ~. D3 X) }. n8 ~/ p

    7 Y7 a7 h- n% U2 n/ M- W  ^6 L
2009年,LinkedIn 团队就开始使用自动化部署工具,用于管理在1000+节点环境下发布上千个应用/服务的复杂性。这是 LinkedIn 自己造的轮子 >>Deployment and Monitoring Automation with glu.
: w  Z; B( M3 a4 s/ z  ~2 P

2 j9 Q( f+ M9 F2 e4 A/ U
  • Airbnb

    & t( P- s1 y2 A. B9 O9 ^; m
    8 b9 R$ i8 [$ |$ G# a5 C
Airbnb 作为第三方平台公司,需要迅速发布多个小型部署。关于 Airbnb 的数据和基础设施,可以参考这个slides
! A- O! `0 }0 p) x/ d( M1 a

; }! Z/ d$ f& y! x
  • Starbucks

    + U& F) I' i$ X0 I9 h9 s

    1 l; d' V3 Y* z. ~
星巴克的 DevOps 计划>> Starbucks Announces #DevOpsTogether.

: @% X# R1 M! ]: E& ?% d' y1 |

* T% v6 k% h6 A$ g4 g1 v
  • Ancestry.com

    ( p% o8 S- N! \0 E0 V, l

    " c. R+ S3 P% U. X
Ancestry.com 是 DevOps 运动的早期采用者,是 Continuous Delivery 和 DevOps 运动的先锋。想了解更多关于他们的过程、迁移和 DevOps 文化,不妨查看一下他们的系列文章

. m- K3 d2 h: E9 m
/ ?/ k6 @% F8 x' N6 J9 Y9 X" {
DevOps = Culture + Tools

" M# p+ `: y# R4 L/ M' K' [
( y! |( ^* m8 G
/ |5 @  F- `. U5 j  d. u' y. g8 Q8 l
如果想整个业务部署 DevOps,不但需要软性要求即从上而下的培养 DevOps 文化自上而下地进行探索,也有硬性工具链要求,才能获得更高质量的软件交付。
/ I+ m: _) }9 E( i# @; [( a

/ b6 F4 W# J! o4 Q* c- [
" M4 a& k4 |: v/ U
最后,不论你是技术Leader,还是一名Dev、QA 或 Ops,实现全面的 DevOps 非常理想化也十分有挑战,希望这份 DevOps 初学者指南是一个好的开始
3 ]. p! l0 B( v' \8 A- S

" ]+ E! ^0 m; j, N, s原创:FLOW.CI: w* ^7 f- p5 v3 I2 f2 g$ W
' G( [9 D6 L6 J( Z) N. H2 Z7 n1 P
2 w! O% d) w9 Y. @( T* y

" V/ n/ ?3 [1 V$ o" y! c1 j

本版积分规则

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

Baidu

GMT+8, 2019-8-17 21:09 , Processed in 0.228256 second(s), 29 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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