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

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

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

扫描二维码登录本站

QQ登录

只需一步,快速开始

搜索
查看: 612|回复: 0

DevOps金融行业转型案例:Capital One两年实现蝶变

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

参加活动:0

组织活动:0

发表于 2018-10-26 16:14:04 | 显示全部楼层 |阅读模式 来自- 广东广州
本帖最后由 adminlily 于 2018-10-26 16:21 编辑 3 U1 C  u9 |! |- n. Z4 M

( Y) }& k: V* u8 Y
背景:Capital One(Capital One Financial Corp. )是一家以投融资及基金管理为基础,集国际贸易、项目开发、投资银行业务为一体的多元化国际企业集团,总部位于美国特拉华州。

# J1 y: u8 q) w! \

5 t1 h7 U& o: a
DevOps缘起:说起来这家成立只有20多年历史的银行在美国银行业里绝对算是个初创公司。公司一直都是以信息技术优势见长,尤其是在数据分析、数据科学方面,但在软件开发方面之前都是采用外包的方式,并没有被定义成公司的核心业务。
: n* H. o. }) |) x

) o4 }4 @' b8 _+ R& Z
随着银行业的数字化趋势,尤其是手机上的交易量已经远远超越了传统的交易渠道,促使他们开始把软件开发作为重中之重来对待。

* {0 w# Q" C, A* v5 k
+ m& d- d8 V- |7 G: @
1.png

+ F- D1 k" {$ y2 c$ Q" v# i6 h' w

% g1 n  q+ e" U
创始人兼CEO RichFairbank能有如此深刻的认识很不容易
! J! e- }) @% W3 X  `, a

/ {( d) [$ i1 d. K. y
痛点:Capital One的DevOps之旅开始于2014年。当时,Capital One的软件开发实践和很多传统做法没有什么不同:大量外包,瀑布模型,季度发布,手工流程,变更请求。

& b& I0 n/ H% T8 `* {( Q
& p, v; {' A( @& O+ {. X* p/ ~
和KeyBank从大事故中痛定思痛不同,他们是从一个小问题反思开始的。在某次代码检查会上,大家发现一个测试失败是由于某个XML文件里的tag不配对造成的。
2 E, }! ^3 z% D1 w: G0 T: q
8 \- n/ P, X/ A5 I" y: Y
按理说,这么小的问题改了再提交就可以了。但是:
4 B  Y0 w4 V2 W* ?
( F; V2 b8 p& Z3 m0 i! q
1.开发工作是由另外一家公司负责,他们需要发起漫长的变更请求;+ e' g+ v% O3 J* m* F

& R1 O9 h8 @: z2.代码修改后的构建流程(编译、测试、部署等)就需要至少2天时间

% W+ I* I/ e8 C' h4 g
- W5 I# O2 {: Y0 J& U, [
这个小小的问题让Capital One的技术团队开始反思他们的构建流程,并决定从这里下手。
. Q" r- h, Y# T2 g: Z# S+ Y& p/ A
) c; h* e3 Y/ f* M+ r" d3 t8 U
5 r8 B( p2 _) _# g: M- e& _
他们从一个小的团队开始优化构建流程(其实就是最小版本的Pipeline – 部署流水线),最终把时间从2天缩短到几分钟。于是,这个实践逐渐在Capital One蔓延开来,所谓星星之火,可以燎原。
" O0 d7 K2 O# u( U
6 W# q- p+ U7 w' ?5 m5 M# f# w
编者注:这是DevOps转型与落地的典型思路,小范围(局部)改进见效果,然后自发蔓延或者公司整体推广改进。
+ d8 B. v3 ]  ^+ a, i+ z/ F% M7 K

# |! g: F" d$ s( m
尝到甜头之后,Capital One开始认真思索企业级的DevOps策略。Capital One的DevOps框架涵盖了业务、开发、运维,最后加入了信息安全策略(对金融业安全监管尤其重要),他们称其为DevOpsSec。
  w$ _: P+ n: G9 u

5 [0 _# H  Z5 e8 L% D! ^
1.png
, J, H) T/ ~" w
! g# q  \. F6 t$ t6 `1 C' q+ Q6 C
Capital One的企业级DevOps框架
6 [5 C5 B& Q  k6 D1 \- d' N( n
" i( d& d3 y- z2 |; J
Capital One继续改善流水线的效率,除了开发与测试,要想真正打通流水线,还需要搞定环境/服务器的搭建和管理。之前新建一个服务器要走完62个步骤,耗时60天,开发团队的抱怨很大。
: ?' g+ ?2 m/ M/ R

2 H8 D/ R4 z9 E5 Z6 Q: J/ P2 I
Capital One决定:直接上云!

0 q: C0 J  B4 K( K& ^2 {* O
1 ]0 ?% d+ m$ d
2015年的时候还是只有开发和测试等环境在云上,到了2016年,生产环境全部上云了。
( X" t3 K4 g; x' j2 L; C& L* j
$ }* D& w& d& C- T2 V. o
1.png

# ?! Q; E: r4 f5 D6 u9 d

; Q6 g; P8 \; a+ A4 \( M
Capital One的流水线(Pipeline)
4 Q; f; v' _5 x
: n* l: N9 u6 r! C' H
另外,Capital One发现开源真的是宝。他们不止大量的采用开源工具(”Open Source First”,非开源系统会被严格审查),还积极加入开源社区。
! `: ~. O+ M5 p/ I* N& U

, ]& R) S3 e: N6 I; Q/ w' V8 [) T
他们发现开源自己的工具可以让代码质量大大提高,并且大大促进了持续体验和持续学习的DevOps文化。
6 N& n) W% a: y% \! m/ Z# v1 f

7 Q- y; |* f3 j# Z. R  d
1.png
! k7 H) m! @, S+ k4 e9 ?- D
+ U& d' Q9 F6 g/ d0 l
Capital One的开源第一(OpenSource First)策略

; }+ Y$ x: ~2 n" A1 e% m, x7 Q

( N: s7 y% I# [2 C4 d9 W4 W- O
2015年取得的成果:
8 k, W2 x4 {" s! H8 z8 E* p3 }
/ S+ a5 n# _& C& G$ q( U
1.代码提交频率:从之前的不固定到每天100多次的提交+ C- h  H& {; ^' [

9 K: D" Y4 I( L: y( y5 I; I7 Z! M+ |- ]5 s4 q7 |8 |2 c
2.集成频率:从每月1次到每15分钟一次

+ i" B" h$ f4 X$ w

# B- x4 Y3 N) m2 _9 S% m8 k7 `3.部署流程:手工变成自动化
# u, m, Y: Q. ]& h. M2 i0 K

3 m9 Z3 |1 l5 g4.部署到QA和和Perf(性能)环境频率:从每月1次到每天4次

. D4 B$ L- z3 [0 x" p. o

; Q3 ]1 y$ b$ P7 z5.部署到生产环境频率:从每月或每个季度1次到到每个迭代1次- S( L% M' e$ d7 i6 y

  c0 j& z: U4 }' j3 E& G6.单元测试覆盖:从没概念到>90
%

: m* M) {' |6 n- @9 }
8 ^. S) e7 q6 a! b0 U
2016年继续改进流水线,已经能够做到:

- E- @8 A% M( p8 G! N1 A: x) r
! _1 K! ^3 l: ^/ A
1.发布到产品环境的频率:从每个Sprint一次到每天至少1次

. `1 X3 z3 o4 q3 h4 k
: E( I5 ~3 t& \/ p; L8 _
2.自动发布的应用软件数量达20个
  B0 m+ D" _; g1 w8 @% T4 U; K
  Z3 Y; \4 G3 v2 U' [& T
( n( K. W4 z( j3.一个应用软件每天最多可以发布34

5 l0 M5 k( ^9 v! g3 @

, l( m9 `$ d( A; y6 K9 E; G5 f
所以说DevOps的转型可以很快。' L$ P2 S6 I1 K
$ t4 K. H) `( B; C
3 \) I4 Y/ p2 r: s9 Z4 I3 o' z6 T
现在,Capital One很骄傲地宣称自已有了和两年前完全不同的DNA:自己开发软件、所有环境都在云上、微服务、开源、DevOpsSec和持续交付。
, O- m% _6 }; C# i5 t. b! M
8 D7 Q1 U* \3 i* `0 @. L# d; o
确实,Capital One在DevOps之路上是远远超越了很多同业的。尤其这一旅程也只用了2年多时间。

/ F( F3 G4 c1 Q, e
/ N$ W2 D+ f  B( B  x' b- I
Capital One认为转型有三个关键中的关键:

! }) W. u0 ?- V
& ?& ]" U4 f1 L' j
1.外包转向自建开发团队(外包公司要努力了)

2 Q4 H) W. g% Z* u; p/ ?2 V% [

4 {' Z/ }' Q2 i) y; D- `2.功能团队转成产品团队(一个产品团队就像一个多兵种的行动小组)

: |+ I, O; ]" c) |9 Q+ _: b/ J0 q3.不再区分Dev、Ops、QA、RM(Release  Management),大家都在写代码,都是Enginee
r
1.png
. ~0 f: ~9 k* E) z3 S
7 p; x" ]4 ]5 ]& L" K% ^
转型的的三个最关键策略/实践

# _. C! r6 L( [! H3 t5 L6 o4 h
6 l+ G1 q' a, w% j9 r/ k
总结下Capital One的转型之路:
1.png

& ^+ ]+ y2 l! n4 g) `' |' Z; f
% t% m/ k' x* h  d& t# g! Z
Capital One的DevOps之旅时间表
$ o! @& X  E, n% ], C
7 ?$ n, ]: g' G- L  S& R2 r
从这两个演讲中笔者听到最多的就是流水线,开源和安全。

8 l: i# a; ?& Q8 H$ U/ u. c

0 B$ e+ }( \9 L5 @
尤其是流水线,Capital One的DevOps转型其实就是围绕着这个核心进行的,不断优化,持续改进,在整个公司推广。

- @: g9 P; X2 E& w# R& L
- F  {5 C) w: Z
Capital One总结了要做到真正的流水线,以下15个特性是必须的:

! w9 M- ^4 `9 ?, d" |
, ]% \$ R+ x% u9 m% w
1.版本控制

5 R: N/ r# g3 f( }" w" M. Q
* j% l# ^+ n5 ^# C. |4 @+ ^! m6 A
2.最优的分支策略
& t8 D4 a% O; `9 O4 y) L: U" ~4 v

1 o$ l" x) J% ~. N0 R- C3.代码静态扫描

% }4 I8 c# F' L6 g2 c2 e

$ f  J8 r  m# e6 j$ Z* a% A* G4.80%以上的单元测试覆盖率
" h8 A1 g7 U3 J5 s% p/ t
6 X$ q" B$ m& B) g7 _7 u+ O
5.漏洞(Vulnerability)扫描

" h' Z' I7 W" t2 s% q0 P3 \
3 H2 G; a* e5 Z3 v8 ^1 V
6.开源工具扫描

+ I1 E7 _" x$ w# S) B, L* o. j8 X

/ a( ]( T. O# K6 ?& \7.制品(Artifact)版本控制

( A7 c% P' y$ x+ u1 W- }

, I1 [: d* @; g8.环境自动创建
, U' N) ]0 N2 C" P

4 W  l' Z$ e0 O/ K) H9.不可变服务器(Immutable Server )

$ j8 H% Z! _6 A

& ^5 B# R% j/ N1 S10.集成测试

$ X2 V) U: `1 G6 b1 C
  B6 P7 Z0 ~! ?* b7 Z  W$ t
11.性能测试

( u6 _; M6 I& H- d2 u  c% o" f

* m" }1 Y  z; c4 b12.每次提交都触发:构建、部署和自动化测试
) H0 N6 ^( Y( Q+ J. e

/ K# b- l( l8 G0 h$ s1 G13.自动化变更请求
& Q! L( Y* p2 `' L# B, d$ f

& ?* r/ i8 B1 V2 u14.零停机发布
, f/ j$ X! Y( E" r5 ?

+ u4 t8 _  x  o功能开

. _: u& c9 n$ d: d/ k

* F; ?& I1 G/ L! [; E4 y
读者可以对照检验自己项目的Pipeline是否达标。
4 A' U. o0 J+ n% r. P6 z' f

- `; U+ N, d5 I5 W: ]
我们拭目以待Capital One在2017年在DevOps的转型之旅上会给大家带来什么样的惊喜。
7 S6 p2 \3 ^0 [2 k. U( Y  F
2 p6 R( v& }1 k
本文总结自Topo Pal于DOES15和DOES16的两个演讲《Bankingon Innovation & DevOps》以及《DevOps at Capital One: Focusing onPipeline and Measurement》

6 l% w1 F3 x0 l6 u' f9 Z, |- K
6 U8 F# L6 `& w* _8 `% x
原创:许峰

本版积分规则

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

Baidu

GMT+8, 2019-6-17 23:03 , Processed in 0.250859 second(s), 31 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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