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

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

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

扫描二维码登录本站

QQ登录

只需一步,快速开始

搜索
查看: 503|回复: 0

Capital One (美国第一资本金融公司)的DevOps案例

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

参加活动:0

组织活动:0

发表于 2018-10-19 10:49:29 | 显示全部楼层 |阅读模式 来自- 广东广州
本帖最后由 adminlily 于 2018-10-19 10:51 编辑 1 o8 l9 K; D) j$ ?/ Z; D, f

: [( L& b5 @. B: S  @) |. U
本文转自微信公众号:DevOps咖啡馆 ; 下面为原文。
# v6 @% ]6 i: `* o! j( n( e

, b: f8 B  h, ^8 r8 }/ P% U
本文总结自Topo Pal于DOES15和DOES16的两个演讲《Bankingon Innovation & DevOps》以及《DevOps at Capital One: Focusing onPipeline and Measurement》
1 H0 x/ p9 V& ?" w, M& G+ g- m7 J  F

- D: v$ X7 y# ^4 ?3 e: x- x
背景:Capital One(Capital One Financial Corp. )是一家以投融资及基金管理为基础,集国际贸易、项目开发、投资银行业务为一体的多元化国际企业集团,总部位于美国特拉华州。

* @: G$ @! ], w9 ?
* o* F0 k7 H2 r
DevOps缘起:说起来这家成立只有20多年历史的银行在美国银行业里绝对算是个初创公司。公司一直都是以信息技术的采用见长,尤其是在数据分析、数据科学方面,但在软件开发方面之前都是采用外包的方式,并没有被定义成公司的核心业务。但银行业的数字化趋势,尤其是手机上的交易量已经远远超越了传统的交易渠道,促使他们开始把软件开发作为重中之重来对待。
1.png

: V& Q5 z9 P9 D/ E9 m! [
创始人兼CEO RichFairbank能有如此深刻的认识很不容易

1 A' Z5 q+ h6 u* ~/ N. j* _

# |0 D  U% q( u' V. c6 ?
痛点:Capital One的DevOps之旅开始于2014年。当时,CapitalOne的软件开发实践和很多传统做法没有什么不同:大量外包,瀑布模型,季度发布,手工流程,变更请求。和上一期介绍的KeyBank从大事故而痛定思痛不同,他们是从一个小问题触发反思的。在某次代码检查会上,大家发现一个测试失败是由于某个XML文件里的tag不配备造成的。按理说,这么小的问题改了再提交就可以了。但是因为开发工作是由另外一家公司负责,他们需要发起变更请求,而且代码修改后的构建流程(编译、测试、部署等)就需要至少2天时间。这个小小的问题让CapitalOne的技术团队开始反思他们的构建流程,并决定从这里下手。

5 A  E9 i' Z: \. q$ j- V) i

# ]! b6 E4 N1 i1 \, C
他们从一个小的团队开始优化构建流程(其实就是最小版本的Pipeline – 部署流水线),最终把时间从2天缩短到几分钟。于是,这个实践逐渐在CapitalOne蔓延开来,所谓星星之火,可以燎原。

4 [* T( N2 c1 A! ]
% O  n- f- N) b
尝到甜头之后,Capital One开始认真思索企业级的DevOps策略。可以看到,这一企业DevOps框架涵盖了从业务、到开发、到运维,最后加入了信息安全策略(对金融业安全监管尤其重要)。他们称其为DevOpsSec。

+ d0 C* _- n* j
1.png
Capital One的企业DevOps框架
6 Z- d* t3 ?3 h9 z0 J

1 D- F9 P. ?0 W
Capital One继续改善流水线的效率。除了开发测试这些,要想真正打通流水线,还需要搞定环境/服务器的搭建和管理。之前新建一个服务器要走完62个步骤,耗时60天,开发团队的抱怨很大。CapitalOne决定:直接上云!2015年的时候还是只有开发和测试等环境在云上,到了2016年,生产环境也放云上了。
+ ^. q. }0 C9 n7 p" Y% X
1.png
Capital One的流水线(Pipeline)

4 L7 m. o2 L8 }' _7 a5 c% I
% M8 ?, e/ P! H
另外,Capital One发现开源真的是宝。他们不止大量的采用开源工具(”Open Source First”,非开源系统会被严格审查),还积极加入开源社区。他们发现开源自己的工具可以让代码质量大大提高,并且大大促进了持续体验和持续学习的DevOps文化。
1 ~: b4 N& s3 K9 `( d& P
1.png

" S/ V2 z, _/ @! w
Capital One的开源第一(OpenSource First)策略

* d- R' p) X: L
! o' q& ~; Y* X, @* Y) }  l
从2015年的DOSE大会上Topo的介绍,已经可以看到他们经过1年多的努力,已经做到了非常好的成果:

8 b$ A2 S6 X' h& h- S

8 Y! T8 a- {, q9 p+ P$ e
·     代码提交频率:从之前的随意到每天100多次的提交
- ?% {' R# n7 P4 h

" h' C0 N" ~# k( q- P# c' }- k. h
·     集成频率:从每月1次到每15分钟一次

3 C, W* g/ \# G4 k1 d9 `+ ?) m
4 G* ^4 n  J9 S' G$ T
·     部署流程:手工变自动化
* D) b7 a2 R% A( L4 `6 T: ~) Z* Z
3 }+ ^/ A' u$ F' n( U
·     部署到QA和和Perf(性能)环境频率:从每月1次每天4次
3 m  D8 W% V, O% f8 G1 t6 d

& P$ r1 ~1 L3 ^# b3 [$ y) B
·     部署到生产环境频率:从每月或每个季度1次到到每个迭代1次
! |3 b' h' j, R

. k$ v4 }* S6 ~3 J- q
·     单元测试覆盖了:从没概念到~90%

1 P; i5 `( E; E1 R1 D3 Z! T9 I9 ^- e- i
  K* r1 v  D( r7 Z$ C
2016年继续改进流水线,已经能够做到:
6 N, s( Y$ L) G% C0 v0 ^% O) y
  [7 I3 F1 X8 O4 l
·     发布到产品环境的频率:从每个Spring一次到每天1+次

. w1 A& U) o' I9 U* h

  t8 Q! d% k' M* d3 [4 z: n, g$ f# O
·     自动发布的应用软件数量达20个
* _5 d' ^  W: F/ m# n
' f  y! N8 @! u1 A
·     一个应用软件每天最大的发布次数达到34次

& s! l* k9 t3 [# P( J4 _( t

- L/ z* x9 O/ @0 ~! Z9 R; `8 k' a
所以说DevOps的转型可以很快。现在,Capital One很骄傲地宣称自已有了和两年前完全不同的DNA:自己开发软件,所有环境都在云上,微服务,开源,DevOpsSec和持续交付。确实,CapitalOne在DevOps之路上是远远超越了很多同业的。尤其这一旅程也只用了2年多时间。

- t6 p+ d; L$ j: }
: D7 v5 |% k# r% f3 s/ n
Capital One认为转型有三个关键中的关键:
6 e+ f! n8 l$ W8 Y9 J* g  L
2 [* K% Q7 N0 [. n! M
·     外包转向自建开发团队(外包公司要努力了)
3 u! o  {3 B# @
% Z1 I/ `, d# s- Y8 n/ R
·     功能团队转成产品团队(一个产品团队就像一个多兵种的行动小组)

- w/ S4 q: E( m$ V

8 x# i' a) n# D2 {
·     不再区分Dev,Ops,QA,还是RM(Release  Management),大家在写代码,都是Engineer
5 _3 `! j! w5 L# G5 \4 R3 v& E
1.png
转型的的三个最关键策略/实践
  |3 {1 X; h9 {

+ y2 t' [, J" s
总结下Capital One的转型之路:
- a; ^$ d$ k+ T: v; P5 ^% u
1.png
4 c9 C2 V2 L  a, c6 t

/ J; C! Z% `/ d8 u: v; N' q+ z
Capital One的DevOps之旅时间表
6 g. j- _, J; U2 q  R

7 p+ ^" o6 K% Q: b
从这两个演讲中笔者听到最多的就是流水线,开源和安全。尤其是流水线,Capital One的DevOps转型其实就是围绕着这个核心进行的,不断优化,持续改进,在整个公司推广。

: ]0 i- S* S/ a* S; d, h
" ~2 d0 D  w; g0 ?
Capital One总结了要做到真正的流水线,以下15个特性是必须的:
) C$ p  ]% F, x% R$ d
  A- M0 `" u% o# z9 Z4 k2 C
1.    版本控制

  w9 @; l: u  C$ q% k: ]( y0 S

# P. i) Y% Y# K! W
2.    最优的分支策略

/ j! R3 l3 r3 [& {5 s' x! r( v

2 x- ]' Y9 N9 r) @
3.    代码静态扫描
# U, U( H8 m1 j$ I+ {
: }9 j0 A) W0 k9 v) C# D0 n  M
4.    80%以上的单元测试覆盖率

' j- o2 W' I/ U8 z" i( s% }0 p- k" a

$ f- N+ z: T: T8 V  Q5 S9 w
5.    漏洞(Vulnerability)扫描

8 A# n& S& {: z
; p9 B; ~) @( A0 p" n) o
6.    开源工具扫描

* K+ Y" a% K$ ?$ i, m
8 O( @( ~" k  N
7.    制品(Artifact)版本控制

- ^* b7 N4 L+ c8 W8 Y6 ]2 G

5 i6 b. L6 g9 G. d3 @+ n
8.    环境自动创建

9 C# n- v- f( c& p5 l1 ]) k
+ a+ m. e/ d2 h0 e# ~( R
9.    不可变服务器(Immutable Server )
5 w  O; \, Q6 f0 x2 l" j, W; H
) D2 Y  Y% _  e7 u7 l3 m
10.  集成测试

; r. N4 t5 J3 r' n& E6 g' |

3 R3 O- [2 f4 _0 L, R1 r
11.  性能测试
, @& ~) |6 P; z5 z% B1 E
: y5 h# |! V9 s
12.  每次提交都触发:构建、部署和自动化测试

5 p" ?, z. H5 I3 X; A

! L* H3 E& P) Z+ y9 u- f
13.  自动化变更请求
& e2 X: E2 h. u" v) N
6 x. z1 z4 d1 c5 r! Y! B% p$ _1 W
14.  零停机发布

# q6 E& R; H4 R; \* b3 b9 l% y! A

8 c& A- l, U1 {8 g8 p
15.  功能开关

" M8 r: ~! \7 b; d# P& e8 K
9 z: G* s# o; G" k+ Y4 G/ l! o1 i
读者可以对照检验自己项目的Pipeline是否达标。

* T3 j* O  ]+ i7 d7 j' h
3 ?0 |( s. D* D! B' v* n
我们拭目以待Capital One在2017年在DevOps的转型之旅上会给大家带来什么样的惊喜。
. w$ B' |5 R- E

, B: o4 o+ k+ p0 M/ c( J
原创:DevOps咖啡馆
; \6 V& K. U- `# y+ o9 C# o

本版积分规则

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

Baidu

GMT+8, 2019-6-17 23:08 , Processed in 0.202828 second(s), 29 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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