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

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

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

扫描二维码登录本站

QQ登录

只需一步,快速开始

搜索
查看: 793|回复: 0

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

[复制链接]
发表于 2018-10-26 16:14:04 | 显示全部楼层 |阅读模式
本帖最后由 adminlily 于 2018-10-26 16:21 编辑 : ~: m- J% z* }

5 W4 ?2 j5 C# J& S
背景:Capital One(Capital One Financial Corp. )是一家以投融资及基金管理为基础,集国际贸易、项目开发、投资银行业务为一体的多元化国际企业集团,总部位于美国特拉华州。
3 f" T/ b. H* r; h+ [- O

0 \) d" `# R0 H. X/ o5 {8 Q
DevOps缘起:说起来这家成立只有20多年历史的银行在美国银行业里绝对算是个初创公司。公司一直都是以信息技术优势见长,尤其是在数据分析、数据科学方面,但在软件开发方面之前都是采用外包的方式,并没有被定义成公司的核心业务。

+ @* O1 q) e' }- Q' q3 i

3 F! ~; `$ ?9 {' W
随着银行业的数字化趋势,尤其是手机上的交易量已经远远超越了传统的交易渠道,促使他们开始把软件开发作为重中之重来对待。
' O5 f9 r3 k  N4 W/ _+ d
% N2 ^) |9 d7 w
1.png

# |, y$ Y7 y# ~0 ~6 f2 ^1 f' h
2 V, M- ~1 y+ g- x) J# {
创始人兼CEO RichFairbank能有如此深刻的认识很不容易
: U8 f& c. w" |7 M  ?6 l
3 n+ w& f( Q) Y0 n8 M; K( U& h
痛点:Capital One的DevOps之旅开始于2014年。当时,Capital One的软件开发实践和很多传统做法没有什么不同:大量外包,瀑布模型,季度发布,手工流程,变更请求。

+ a! n& c$ m6 W+ u& t2 U. F; Q" h
! r* U4 ?+ j) P
和KeyBank从大事故中痛定思痛不同,他们是从一个小问题反思开始的。在某次代码检查会上,大家发现一个测试失败是由于某个XML文件里的tag不配对造成的。

. G7 X, _3 \) J  q" t: b

' _5 a0 F2 q3 g; t$ P3 d6 ]  r
按理说,这么小的问题改了再提交就可以了。但是:

# P' K; E: {5 |3 N

& ^7 a7 H6 K- x
1.开发工作是由另外一家公司负责,他们需要发起漫长的变更请求;7 `! O. `+ q1 {0 M7 O/ y9 x

, ]$ C# q; z2 k( Z; y+ R- {2.代码修改后的构建流程(编译、测试、部署等)就需要至少2天时间
& @6 s' m0 }! k. q
: G  |% O$ e# o9 B- a
这个小小的问题让Capital One的技术团队开始反思他们的构建流程,并决定从这里下手。
  S/ R4 T7 t8 h4 _

8 B* [/ w1 [* l( E1 {" J

0 Y* V7 [: \4 e
他们从一个小的团队开始优化构建流程(其实就是最小版本的Pipeline – 部署流水线),最终把时间从2天缩短到几分钟。于是,这个实践逐渐在Capital One蔓延开来,所谓星星之火,可以燎原。

! R, H# @& [* S0 q: _* `1 _) ?

0 i$ g0 e) F7 s
编者注:这是DevOps转型与落地的典型思路,小范围(局部)改进见效果,然后自发蔓延或者公司整体推广改进。

% C, J$ M/ V. |9 l/ Q

! j+ _7 g- R3 \# v
尝到甜头之后,Capital One开始认真思索企业级的DevOps策略。Capital One的DevOps框架涵盖了业务、开发、运维,最后加入了信息安全策略(对金融业安全监管尤其重要),他们称其为DevOpsSec。

0 t& v2 }$ }' c6 f3 }! f
+ _9 x* O# I3 A) L
1.png
1 N$ j( n( s# N4 [

8 h( B" t2 G& `  [9 `; G
Capital One的企业级DevOps框架
' i' C# Q8 `9 z& ]) D! v% U; E

7 u# L9 A4 r  E$ f* I# @5 N8 F
Capital One继续改善流水线的效率,除了开发与测试,要想真正打通流水线,还需要搞定环境/服务器的搭建和管理。之前新建一个服务器要走完62个步骤,耗时60天,开发团队的抱怨很大。
- @9 C$ X6 ?1 p) \4 B

8 ]) z1 }- Y+ {9 b3 h' [
Capital One决定:直接上云!

& G4 Q/ p- U3 Y$ N
; L# W3 ~+ \1 q4 f3 Q
2015年的时候还是只有开发和测试等环境在云上,到了2016年,生产环境全部上云了。
7 R; E" C! C, i8 U

1 z* l7 G1 ^1 S$ N3 K3 g
1.png
/ _# n9 o& ?$ Q+ f/ n( U# ~5 ?

' G: k8 d: N9 s6 `
Capital One的流水线(Pipeline)

, z+ c6 }6 j9 o& I: G
% m. K; L2 h4 d* d& }# ]! j" B; [& A
另外,Capital One发现开源真的是宝。他们不止大量的采用开源工具(”Open Source First”,非开源系统会被严格审查),还积极加入开源社区。
  [' T) c' W: H8 o: g$ [
' n  A$ L  J, j4 [+ ]
他们发现开源自己的工具可以让代码质量大大提高,并且大大促进了持续体验和持续学习的DevOps文化。

: F% d6 f! L) C7 J$ ^

/ ^% A3 o; W4 z, W& b/ j* G
1.png
4 D& v3 v1 y) X# I

9 X. R2 X8 j3 c
Capital One的开源第一(OpenSource First)策略
' U/ D4 v4 o9 T) X" l- y
' ^0 b2 e3 s0 S4 T
2015年取得的成果:

" p9 Q' p1 R/ N% I1 `
8 J8 v+ I* b+ s, K
1.代码提交频率:从之前的不固定到每天100多次的提交5 D( q* H/ `4 V5 E
! S8 ^8 Z; q8 C/ R. k
# ~2 J- h' H3 w2 e. b
2.集成频率:从每月1次到每15分钟一次
! D$ I  Y6 I  O3 [' B3 J

# I, P( [3 _6 a* C0 D8 R# L: w3.部署流程:手工变成自动化
* K' Y2 ?8 D4 S" |1 |( Q# c6 W! J
# S# O3 T/ K* r4 ]# s  T
4.部署到QA和和Perf(性能)环境频率:从每月1次到每天4次

- P; H; a8 W  e" W3 z4 L# z5 @6 X0 I
% _5 P; i# ?- T  D
5.部署到生产环境频率:从每月或每个季度1次到到每个迭代1次5 w* W- @/ c8 r& p8 w
6 P3 j1 D7 s; u/ R9 U# e) C* [
6.单元测试覆盖:从没概念到>90
%

7 [+ M6 g6 B' s& b6 b! U! i
# M+ \8 h# k8 \* {" z/ P" T% T
2016年继续改进流水线,已经能够做到:

- }( ~& N* P& d1 z9 m7 Y
$ c$ S  v0 z6 g5 ~, F; t
1.发布到产品环境的频率:从每个Sprint一次到每天至少1次
, Q" W6 V; N( A4 c) ?/ A+ u- g
5 k+ y; t) o+ V- d$ p' h* ?( ]9 Z
2.自动发布的应用软件数量达20个
) a3 ]' h# K5 U0 F. {! d6 `8 g- x/ G- q4 R1 D
6 Z1 i4 K" Y& _2 y+ p+ T
3.一个应用软件每天最多可以发布34
7 v( a) t6 J8 e* }' g" W/ N; z

% @3 z/ V7 k) F$ G( R3 m
所以说DevOps的转型可以很快。; h! h# x8 X! R
5 h6 g- d: d" J

# }, x( ~! q+ r0 T2 P5 W
现在,Capital One很骄傲地宣称自已有了和两年前完全不同的DNA:自己开发软件、所有环境都在云上、微服务、开源、DevOpsSec和持续交付。

% `7 _  l8 h4 t, w, T* Y
6 n& x! ^9 [+ ?. o+ C0 b9 O1 o7 t% ?9 w
确实,Capital One在DevOps之路上是远远超越了很多同业的。尤其这一旅程也只用了2年多时间。
7 A6 y/ g! x: v# K4 X; n  g) V
) K7 l1 A+ |  \, F! o5 v
Capital One认为转型有三个关键中的关键:

/ \: f$ ]3 g0 ?' I2 s. r

- u, D: c, i- ~* |1.外包转向自建开发团队(外包公司要努力了)

4 W6 j5 }$ j. f1 }
; T. C  b8 J9 I: Y& {. ?4 Y7 _
2.功能团队转成产品团队(一个产品团队就像一个多兵种的行动小组)
& Q- Y9 K: h* [# ]' Z1 p& ?( U# s
3.不再区分Dev、Ops、QA、RM(Release  Management),大家都在写代码,都是Enginee
r
1.png

; G; d1 {. a  B: O
5 V' I0 p6 e+ p- }' Y; ~
转型的的三个最关键策略/实践
: [: m5 A4 m/ R- l% [

+ r5 D! G, \( R' m# l
总结下Capital One的转型之路:
1.png
. d2 n' p2 a5 @+ Q, S0 O6 J, ?  g

/ L. H* l& C2 U% \7 z6 h2 c
Capital One的DevOps之旅时间表
4 r; S! b  s, q( Y4 f4 f4 D

8 X: k0 x6 {' o
从这两个演讲中笔者听到最多的就是流水线,开源和安全。
4 [! U2 q4 u+ b4 W
) j) P( I  n2 V! h8 d
尤其是流水线,Capital One的DevOps转型其实就是围绕着这个核心进行的,不断优化,持续改进,在整个公司推广。

( D( ^4 q' ^" a; l6 O: f

) l1 M3 @& E) f5 ?; i5 R9 V7 T
Capital One总结了要做到真正的流水线,以下15个特性是必须的:

" j$ u* w- C1 B* |! G- H; n. t
. C1 I# W& ~5 O2 K; r  E+ f
1.版本控制
+ T! h( u0 k0 b+ R  Y$ K4 \! ^# t3 d

/ E. j0 I1 O9 E0 U6 V' X6 e6 D2.最优的分支策略
. J; P: x$ P8 J; d: n
! V* ?8 G, s, ^. U. r) S
3.代码静态扫描

: V& j" H8 r$ K5 |; P
: r7 V4 L4 o3 k/ _4 {* \
4.80%以上的单元测试覆盖率

! t' U  S* M  n. {

( {5 a# g. m& F; s% d% m: x5.漏洞(Vulnerability)扫描
) v* |- n$ u9 K

9 [# U- @1 R/ d: R6.开源工具扫描

: V& f( O5 I6 b# ?7 t

% T/ q) l" Q0 N  l7.制品(Artifact)版本控制

2 @, B! \" g% |# z( v8 H

( m& @# P+ Q% Y! V8 U8.环境自动创建
) _* T; }3 M( q4 n- _' s: D$ C
9 b+ @: _3 M  ~
9.不可变服务器(Immutable Server )

2 }; N( N2 n1 R7 A# v
! Y- o7 v3 [* w$ ^
10.集成测试

7 P' _! P+ L0 B' L! K
: |. s; |6 r, e
11.性能测试

' R9 v& l) ]# H- @" w! C7 t' C

5 `( P+ _" T/ {12.每次提交都触发:构建、部署和自动化测试

. c( y6 ?6 q, b5 A

+ f+ f' X$ w  m' ^13.自动化变更请求

6 N4 o' f+ j  K/ N
' }. ]; i4 h' e0 f- G+ [
14.零停机发布

" \, P- |# n4 K$ {- j0 ^

- B7 K! H* u' Z$ Z功能开
: n1 J' S9 z" g8 }; S9 m

! T6 L# O+ w1 o5 z& H- n4 Y1 L8 Z% F
读者可以对照检验自己项目的Pipeline是否达标。

* r& s8 [$ Q; l! U0 ~- C7 x

9 h4 x, d# G% h
我们拭目以待Capital One在2017年在DevOps的转型之旅上会给大家带来什么样的惊喜。
+ l* K; L$ s" m0 K2 W

5 l# Q, ~0 Z' n4 ]! q6 k
本文总结自Topo Pal于DOES15和DOES16的两个演讲《Bankingon Innovation & DevOps》以及《DevOps at Capital One: Focusing onPipeline and Measurement》

, {9 p9 C. X- G* N* g' v7 z, A/ i. k3 S0 {0 h+ I9 Q6 t
原创:许峰

本版积分规则

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

Baidu

GMT+8, 2019-9-23 06:53 , Processed in 0.150360 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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