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

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

 找回密码
 立即注册

扫描二维码登录本站

QQ登录

只需一步,快速开始

查看: 2093|回复: 0

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

[复制链接]
发表于 2018-10-26 16:14:04 | 显示全部楼层 |阅读模式
本帖最后由 adminlily 于 2018-10-26 16:21 编辑   n8 T, s( G# O% M

! {. t8 H5 S, N( Q( ~, g+ h
背景:Capital One(Capital One Financial Corp. )是一家以投融资及基金管理为基础,集国际贸易、项目开发、投资银行业务为一体的多元化国际企业集团,总部位于美国特拉华州。

$ D, V. I2 H' |

9 F$ ^0 W0 H3 B, C1 Y! c/ [
ITILxf.com" target="_blank" class="relatedlink">DevOps缘起:说起来这家成立只有20多年历史的银行在美国银行业里绝对算是个初创公司。公司一直都是以信息技术优势见长,尤其是在数据分析、数据科学方面,但在软件开发方面之前都是采用外包的方式,并没有被定义成公司的核心业务。
9 ~* ~9 a/ m' Z8 H# H, d
7 @9 P1 }* R  `2 Q2 }
随着银行业的数字化趋势,尤其是手机上的交易量已经远远超越了传统的交易渠道,促使他们开始把软件开发作为重中之重来对待。
. S% x: E) }( o8 Y

1 H5 [) P% x3 A! z+ @
1.png
8 ^1 e0 s; C: I4 [) b

. F! X- {$ y2 B8 f6 H0 t
创始人兼CEO RichFairbank能有如此深刻的认识很不容易

: h0 F3 y/ v* {# M+ N4 i) i6 t6 @
. S# J- c" J/ q6 G
痛点:Capital One的DevOps之旅开始于2014年。当时,Capital One的软件开发实践和很多传统做法没有什么不同:大量外包,瀑布模型,季度发布,手工流程,变更请求。

* J3 _) \; D0 {
- \# ]3 G, P" r! H
和KeyBank从大事故中痛定思痛不同,他们是从一个小问题反思开始的。在某次代码检查会上,大家发现一个测试失败是由于某个XML文件里的tag不配对造成的。
2 S7 {  b# p+ L8 }/ t+ K3 b; j

5 X- ?9 f: X) R
按理说,这么小的问题改了再提交就可以了。但是:

: J3 Y1 [  a0 A
' Q/ n, Z3 l2 c7 e: }+ |- w3 i
1.开发工作是由另外一家公司负责,他们需要发起漫长的变更请求;0 W) Q4 X9 T* H
7 C3 M0 ~+ N: w" m* J
2.代码修改后的构建流程(编译、测试、部署等)就需要至少2天时间
7 i1 k' n3 J+ C: ?" y% \% k
9 |, d! r" H0 o
这个小小的问题让Capital One的技术团队开始反思他们的构建流程,并决定从这里下手。  O8 L7 @; Z  E8 i" I0 M

1 j) A* |5 ?2 z7 b

, c6 N: j3 _. F' A! d( n
他们从一个小的团队开始优化构建流程(其实就是最小版本的Pipeline – 部署流水线),最终把时间从2天缩短到几分钟。于是,这个实践逐渐在Capital One蔓延开来,所谓星星之火,可以燎原。

2 K2 ?) k" j5 T0 M4 b

& t* j/ C7 R0 S4 d2 v- Y1 u& U  _: v3 `
编者注:这是DevOps转型与落地的典型思路,小范围(局部)改进见效果,然后自发蔓延或者公司整体推广改进。
' N2 Z5 y1 x" |4 V

7 i) q  l  {$ A' F" V
尝到甜头之后,Capital One开始认真思索企业级的DevOps策略。Capital One的DevOps框架涵盖了业务、开发、运维,最后加入了信息安全策略(对金融业安全监管尤其重要),他们称其为DevOpsSec。

& c- @* B5 D# ~
2 ?$ p1 j2 H, {8 a4 j, U0 Q0 J
1.png

! [. S8 d) p8 U- r: G9 E; R
0 s, ~/ f$ T8 c1 y
Capital One的企业级DevOps框架
2 `  s# b! T1 K- l5 ~

% ]( M8 @3 R$ e/ Q* ^
Capital One继续改善流水线的效率,除了开发与测试,要想真正打通流水线,还需要搞定环境/服务器的搭建和管理。之前新建一个服务器要走完62个步骤,耗时60天,开发团队的抱怨很大。
8 G" l, V; n2 t0 t" l) e$ v$ {! @% k

* \4 ~" w6 K, _9 d/ U/ ^9 g, z' y
Capital One决定:直接上云!

* }! H* m5 d# P' x/ n5 t, r
: q8 i' B! v0 y
2015年的时候还是只有开发和测试等环境在云上,到了2016年,生产环境全部上云了。

; ^2 G" u9 S% ?
/ ^4 {0 r9 P. m( A+ |) h
1.png
$ D3 {7 H. {) E. J: U# V
% ^' T! R) }* r0 m7 G" s
Capital One的流水线(Pipeline)
/ G$ j$ t+ s$ Y, B9 J

( W% y1 Q6 O+ v6 Q( d& V0 x3 k
另外,Capital One发现开源真的是宝。他们不止大量的采用开源工具(”Open Source First”,非开源系统会被严格审查),还积极加入开源社区。

) a" w) J1 w4 c2 ]5 C. t
$ ?- ]* C! j3 o5 X, N" k8 i- s" q
他们发现开源自己的工具可以让代码质量大大提高,并且大大促进了持续体验和持续学习的DevOps文化。

  K) x5 M& b8 b* u3 s- S; Q

6 I6 I( x6 {, @0 ?2 f
1.png
0 N$ s  C* ^. a0 x( x- T
. a8 f* m- v2 ?! m* W# l" z
Capital One的开源第一(OpenSource First)策略
* _4 Y) _8 ~* j- l; [5 r9 q& q
" U8 k( v8 F  E3 A3 i2 [3 ?
2015年取得的成果:

8 r- T- \/ P* _7 C! U7 |: h5 _9 h; n
2 {4 E% X2 I6 V$ u
1.代码提交频率:从之前的不固定到每天100多次的提交+ ]! j" v2 q6 Q$ w8 z* ~4 e
2 c/ B8 a9 Y! R" z

, d/ f# Q8 d% i( a  q* m2.集成频率:从每月1次到每15分钟一次
; e3 \* i" m! m' O* _+ ]4 `

( B0 ?8 R6 ^7 Z# m; {3.部署流程:手工变成自动化
3 O. Q' C% o1 I+ s' A, j% D

( D: E" z* o$ V4.部署到QA和和Perf(性能)环境频率:从每月1次到每天4次

9 V' J8 z( o! p) V- J2 ~1 w8 [

" T7 \% M( }  K) j& C5.部署到生产环境频率:从每月或每个季度1次到到每个迭代1次
# n/ D: r, z  B% @: h' [' C) T; b0 u/ \& A" i7 z. P6 k
6.单元测试覆盖:从没概念到>90
%

% ]3 N6 X7 B% p* i' d

6 b7 [9 q' \* F$ n
2016年继续改进流水线,已经能够做到:

9 v$ P5 o. p1 [% v
1 P. L$ k8 ]* l
1.发布到产品环境的频率:从每个Sprint一次到每天至少1次
1 k, O3 g) w8 a5 v; o! G& F
- ~) P) W) {, `' w( {9 N
2.自动发布的应用软件数量达20个
6 ^1 _( p( g" N/ @* W6 F3 t8 X9 I0 g, [6 W

" p( X/ @& W: q1 a3.一个应用软件每天最多可以发布34

7 F0 `# t! _* l0 v

( `  y; S: [/ D5 d
所以说DevOps的转型可以很快。
( q: ^% t: g8 }4 C) T  f- f
$ N% U4 ]* t3 d- ?5 G* t$ u
; G2 E' E+ s0 G3 }! v
现在,Capital One很骄傲地宣称自已有了和两年前完全不同的DNA:自己开发软件、所有环境都在云上、微服务、开源、DevOpsSec和持续交付。
+ J: N  p  @: S! |# A8 v
5 v6 x, @' o% j. a
确实,Capital One在DevOps之路上是远远超越了很多同业的。尤其这一旅程也只用了2年多时间。
5 ~, \: `0 X. I8 m+ `1 M
6 p$ @: i9 I* {2 T  _& p9 c
Capital One认为转型有三个关键中的关键:

8 f; b; l6 h& @7 f
# T* b! q* u: M- c3 ]0 J4 {% n+ g' b" V
1.外包转向自建开发团队(外包公司要努力了)

  V( V" x3 t! v2 Q% s4 J0 d3 v  v

" Q5 g; |* ^6 Y" z% h  c! V( ~; A2.功能团队转成产品团队(一个产品团队就像一个多兵种的行动小组)
& C7 t6 r, @5 |( B2 B0 X
3.不再区分Dev、Ops、QA、RM(Release  Management),大家都在写代码,都是Enginee
r
1.png

0 f5 b! E1 L' A0 r  y# M% {( n6 y
" ?3 E; ?: e' \
转型的的三个最关键策略/实践

$ b+ T3 y" O1 |/ H+ }. h! Y. `7 }2 Z
+ v) Y1 N( S) m; m% ^: s- C3 _' n
总结下Capital One的转型之路:
1.png

, g6 Q1 @9 R+ M  W( G

6 @! G+ q( w: A3 e2 E( [
Capital One的DevOps之旅时间表

3 r4 t2 K$ `/ M" ?7 G5 I( c
) |2 _5 H3 d8 ^1 e
从这两个演讲中笔者听到最多的就是流水线,开源和安全。

9 m7 Y! d2 J6 m1 ?  F+ t
9 d& v  _* F: T) H  k% W  I1 G1 Q; @
尤其是流水线,Capital One的DevOps转型其实就是围绕着这个核心进行的,不断优化,持续改进,在整个公司推广。
, ~3 ~$ F( w: Y( f* w- g
  m# w5 q" Q: T' E1 G* S
Capital One总结了要做到真正的流水线,以下15个特性是必须的:
3 c2 r3 i6 i  G1 p3 r# ^

5 s& w" j4 }- H  @% W& ^* p5 \1.版本控制
# q5 _. U! l* P' r
7 T- ?. a! T2 o# m
2.最优的分支策略
& e  c  g2 a) M& q6 F
. R$ d9 Z) I( E2 j7 S# b
3.代码静态扫描
8 g; w9 t& @: l9 T) k4 w

  ^# L! L0 H! i/ ?4.80%以上的单元测试覆盖率

  U) ?* a3 W) o; U5 M- c. V) Y8 }
. J4 n5 W& q% v% L
5.漏洞(Vulnerability)扫描

: C) k0 |' V. W* J- n

  |& H: T% L( a: e4 U6.开源工具扫描

) U) K7 `( V3 D5 [; r' C

. S% o3 p: _: i1 y3 j& A& `7.制品(Artifact)版本控制
# p1 G4 o( x: e) X- o- k
6 o3 D" @2 Q$ p; |& _, Z. A2 K
8.环境自动创建

1 V: s' a3 C; e, z& R- m8 h! Q+ ~
% v4 _  v! B3 A2 K# F
9.不可变服务器(Immutable Server )

7 D0 s/ s0 }5 Q2 c! a

% R% R3 J) ?, L" r5 n* R10.集成测试
5 W* C( a# |' B1 o" P# Z

+ U- E: R9 I3 L" n* |11.性能测试

  B! G' l0 c0 ]* Z

: [/ k; r; x8 R+ r# r: X12.每次提交都触发:构建、部署和自动化测试
: }: {8 f0 W( X3 m4 |

7 D! T1 o1 k$ s2 A8 H+ R2 s8 ?$ V. b13.自动化变更请求

5 o3 S# u; w4 k) [) p
  N. R( z( K' r& v  P
14.零停机发布
/ z& n5 L9 k+ V6 B1 u  b

5 {; q4 \2 h; @5 |  I功能开

/ l6 X2 S- a& U, t' V5 F! E

% w- _1 b! k! f2 Y  v
读者可以对照检验自己项目的Pipeline是否达标。

3 q9 H3 }* [$ z: n+ A4 U. n& A

# P0 ]; X) D; \  D" u  U
我们拭目以待Capital One在2017年在DevOps的转型之旅上会给大家带来什么样的惊喜。

- ]$ L) @7 R# w, L: m$ Q6 A
( w3 B5 X0 g" p3 U: Y( J& P; ]
本文总结自Topo Pal于DOES15和DOES16的两个演讲《Bankingon Innovation & DevOps》以及《DevOps at Capital One: Focusing onPipeline and Measurement》
( v) n. Q) C( ]! [2 O$ M+ F. y
, p5 `) K; B$ y! ]& ]5 a
原创:许峰




上一篇:看某企业案例 DevOps 转型路线图
下一篇:蘑菇街的DeVops实践
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

参加 ITIL 4 基础和专家认证、长河ITIL实战沙盘、DevOps基础级认证、ITSS服务经理认证报名
本站关键字: ITIL| ITSM| ISO20000| ITIL培训| ITIL认证| ITIL考试| ITSS| ITSS培训| ITSS认证| IT运维管理| DevOps| DevOps培训| DevOps认证| itop| itil4| sre| 开源ITSM软件

QQ|ITIL先锋论坛 ( 粤ICP备11099876号 )|appname

Baidu

GMT+8, 2022-5-23 03:29 , Processed in 0.113840 second(s), 31 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

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