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

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

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

扫描二维码登录本站

QQ登录

只需一步,快速开始

艾拓先锋
搜索
查看: 491|回复: 0

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

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

参加活动:0

组织活动:0

发表于 2018-10-26 16:14:04 | 显示全部楼层 |阅读模式 来自- 广东广州
本帖最后由 adminlily 于 2018-10-26 16:21 编辑 * [; w5 M! M3 ~  A8 _, f
* Z2 q$ p4 C6 C; m& I3 ^  u5 `
背景:Capital One(Capital One Financial Corp. )是一家以投融资及基金管理为基础,集国际贸易、项目开发、投资银行业务为一体的多元化国际企业集团,总部位于美国特拉华州。

0 K/ f! J  J1 m# B
: X* H$ v- Q$ _% p7 v
DevOps缘起:说起来这家成立只有20多年历史的银行在美国银行业里绝对算是个初创公司。公司一直都是以信息技术优势见长,尤其是在数据分析、数据科学方面,但在软件开发方面之前都是采用外包的方式,并没有被定义成公司的核心业务。
; B" {& }( L- ?0 a* Y
1 Y9 g% C+ ~/ ^% n4 N5 b. N8 F% ~
随着银行业的数字化趋势,尤其是手机上的交易量已经远远超越了传统的交易渠道,促使他们开始把软件开发作为重中之重来对待。
5 u8 n, G7 r3 e1 [- E: ^( p

' f! v4 g, R, z. G7 b" W# _
1.png
" d6 A+ ]6 z* T5 F) h* |

4 l3 \- {3 [# {, n% \6 z# B. I
创始人兼CEO RichFairbank能有如此深刻的认识很不容易

% V) R( T/ h! b; P
) \6 ?' E7 `1 l. Z* S; q
痛点:Capital One的DevOps之旅开始于2014年。当时,Capital One的软件开发实践和很多传统做法没有什么不同:大量外包,瀑布模型,季度发布,手工流程,变更请求。

; t+ w# i3 j* G
4 Z: y8 a4 x" n: g( N8 s8 P
和KeyBank从大事故中痛定思痛不同,他们是从一个小问题反思开始的。在某次代码检查会上,大家发现一个测试失败是由于某个XML文件里的tag不配对造成的。

4 i' A' |8 w0 M" t
$ Y: V1 j4 G3 m# P0 h
按理说,这么小的问题改了再提交就可以了。但是:

1 y& o; }- L$ Z* Q! h8 i

% Q; O* `9 a+ Y, }
1.开发工作是由另外一家公司负责,他们需要发起漫长的变更请求;
5 h' w0 P0 K3 x5 _. e0 E7 B* F  Z7 `4 T! N7 s5 c
2.代码修改后的构建流程(编译、测试、部署等)就需要至少2天时间

: R4 z/ Z0 p$ n

6 H5 F. q3 ~) s2 a9 c7 F# L9 G+ d
这个小小的问题让Capital One的技术团队开始反思他们的构建流程,并决定从这里下手。8 d- C/ y2 K. Y, g4 J
9 L- R6 G/ K* u4 X8 ^* I: o0 R8 \

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

7 u$ A4 `2 y  K

: l) t, R6 S5 x
编者注:这是DevOps转型与落地的典型思路,小范围(局部)改进见效果,然后自发蔓延或者公司整体推广改进。

$ }/ d1 H3 m/ ^  _  x
/ c* Z7 C6 [" K$ l, }& W
尝到甜头之后,Capital One开始认真思索企业级的DevOps策略。Capital One的DevOps框架涵盖了业务、开发、运维,最后加入了信息安全策略(对金融业安全监管尤其重要),他们称其为DevOpsSec。
- C3 I. b. }. V, h0 K, D  U5 v1 t
. S, a% ^% A: |1 Y- l& Q$ Q
1.png

; D/ W2 k6 J. Z

9 F% b$ W, w; J) K
Capital One的企业级DevOps框架

5 Z+ b/ f' F: a# `& [2 G; j

4 c+ Q% a# ~4 Y7 g* K- P
Capital One继续改善流水线的效率,除了开发与测试,要想真正打通流水线,还需要搞定环境/服务器的搭建和管理。之前新建一个服务器要走完62个步骤,耗时60天,开发团队的抱怨很大。

3 N) M2 z0 j- t

3 ?9 K2 ^" I0 m9 s
Capital One决定:直接上云!
9 H0 ]6 A' e: w! N2 Q1 A
" V1 }: z$ ^! O7 V
2015年的时候还是只有开发和测试等环境在云上,到了2016年,生产环境全部上云了。
. V$ u$ g/ T7 U1 w
9 s" p( ?% @/ g1 n* B) a  F& F# g
1.png

" ]% T$ P( ?. r" H. H! k
* T/ R1 a" G: C
Capital One的流水线(Pipeline)
1 I/ z8 O6 t1 _: a' s; O
. S! L+ W/ |# h# `5 m; H
另外,Capital One发现开源真的是宝。他们不止大量的采用开源工具(”Open Source First”,非开源系统会被严格审查),还积极加入开源社区。

6 M! z, w' Z6 U) k5 x) e& Q0 b

% T; K' S9 q3 f# t' y" \( ?
他们发现开源自己的工具可以让代码质量大大提高,并且大大促进了持续体验和持续学习的DevOps文化。

1 |7 H- D1 J& P- Q% n
5 C$ ]0 X/ ?/ W1 _0 l
1.png
3 |2 N! q' d) @2 E

2 h' d2 U0 v5 \5 j& M
Capital One的开源第一(OpenSource First)策略

- Q# T" M+ r* U9 w3 g; k+ R; l
1 U+ _) ^+ _. g: Q
2015年取得的成果:

& F, l. f& A) V1 }
' q* x6 N3 b. |/ h" W% E& y; d
1.代码提交频率:从之前的不固定到每天100多次的提交1 z2 f6 g( R$ F* o* ~0 W1 ~
2 g* r! ~! T! y. ^% }
8 r# E5 I6 o6 V: j5 g- x7 v) H
2.集成频率:从每月1次到每15分钟一次
7 y9 J/ r7 k; s0 o. ^  s$ z! s

4 O! A% w, c+ g# l& B( B6 n3.部署流程:手工变成自动化

6 Y4 M0 d# u. v  f

3 C' A8 [8 \4 Q& a4.部署到QA和和Perf(性能)环境频率:从每月1次到每天4次
: O9 L' e- O8 v! S
! K: C# F* O; Q# G. Z) D
5.部署到生产环境频率:从每月或每个季度1次到到每个迭代1次3 Q4 x( [% N5 k, G1 t2 m) w. y7 }) Q
8 D1 t' g! S; i
6.单元测试覆盖:从没概念到>90
%
: P( Q* O: h8 n- u, F

7 @& H$ l& O1 L* G6 F* {+ T
2016年继续改进流水线,已经能够做到:

& Z) `7 I) D8 X0 s: w+ S+ ^
2 e4 a& \) b/ r5 z2 p
1.发布到产品环境的频率:从每个Sprint一次到每天至少1次
5 x  @- M: e7 U

  M' y+ M: c; I2.自动发布的应用软件数量达20个
6 e+ W% i8 X9 h  o- M; ^& z% s
% D& Z2 ?6 T3 s: D% J9 E: H% V) }' H  G/ Z* v9 B
3.一个应用软件每天最多可以发布34

  v8 V& r9 Y' U! D" B

2 a7 C! N" G9 y8 y- _5 V! y" P
所以说DevOps的转型可以很快。3 Z0 k  _+ m1 f, P
& ~; U) I, u+ {" C  B0 a8 y$ X
: v* M! {. C4 N' [! c7 i8 V1 A4 J
现在,Capital One很骄傲地宣称自已有了和两年前完全不同的DNA:自己开发软件、所有环境都在云上、微服务、开源、DevOpsSec和持续交付。

4 S0 W: {2 M2 l. }. q& {

1 X' L8 r9 Z; Z* z! X
确实,Capital One在DevOps之路上是远远超越了很多同业的。尤其这一旅程也只用了2年多时间。
6 R0 i* D- h( q6 O9 S! {' K
* r3 V, r5 F  X( i: S
Capital One认为转型有三个关键中的关键:

5 V5 C- t/ `) F  q
) m5 p1 R* i" `( |1 l
1.外包转向自建开发团队(外包公司要努力了)

! I; U# F! Z2 `  ~+ l, p  m  s2 B
# a( @. r: n& A$ K1 w
2.功能团队转成产品团队(一个产品团队就像一个多兵种的行动小组)

3 @2 A) j1 u# C% w* f% U1 E3.不再区分Dev、Ops、QA、RM(Release  Management),大家都在写代码,都是Enginee
r
1.png
$ E1 j1 l' ]7 S. W

* r% Q+ r3 ^, ^. m4 P* ~% A2 ?0 u
转型的的三个最关键策略/实践
6 h  W9 z- N, y/ ?& k" L1 [

5 e  {5 y6 F1 r! U, M
总结下Capital One的转型之路:
1.png
- [+ ]# u) B. J$ N8 u4 C3 ~
2 C9 s5 L; ?* j4 B
Capital One的DevOps之旅时间表
8 k0 }4 Y2 @/ o& j: I2 \

) B$ s# U" n$ G8 X5 p' g$ ~
从这两个演讲中笔者听到最多的就是流水线,开源和安全。
3 W& T8 a# I9 X8 L, b3 f/ l$ b- P
3 [2 l1 Z2 s/ ]+ ]5 z7 Q0 N& n* A0 `
尤其是流水线,Capital One的DevOps转型其实就是围绕着这个核心进行的,不断优化,持续改进,在整个公司推广。
& z) j% h/ c2 J' ~
5 Q, }2 L6 a& M+ C$ A
Capital One总结了要做到真正的流水线,以下15个特性是必须的:

, I7 v% B8 A+ J" R" ^2 I
; V6 \+ n8 _/ i9 A% H
1.版本控制

3 j0 `6 v+ ^7 a( x! X( G5 K) A

3 n6 ~6 N- r& {* ^% d2.最优的分支策略

, |; [7 N# Z  w, V
) a5 T. \2 c, {* _/ g
3.代码静态扫描
' d, E! E8 R- T# j9 ]" a& Z3 c1 l: ]

6 b( ?8 K! k# G3 N. Q4.80%以上的单元测试覆盖率

/ T/ M" U; h3 ?: J+ \3 B0 b

  `9 ~; |, {# w& f9 p5.漏洞(Vulnerability)扫描
* M4 `3 x6 e  {8 P: [/ W+ t4 G
* {! M; a. J# y1 ?" {" X- K6 }. V
6.开源工具扫描

2 J/ T" ~. l3 U3 o

: |. E5 }2 l6 s% d. u* w7 b7.制品(Artifact)版本控制
/ f7 W; @& O' I7 G
' w: k" B9 ^' \
8.环境自动创建

3 n3 g' Y; L: y! J4 \' [  u# S! y
: ^0 B; [# X; F6 U. r
9.不可变服务器(Immutable Server )
' C/ X: |" N2 k4 E5 V6 K
; t- K3 M/ w, \5 d( }: t" {# K
10.集成测试

; x# O4 k+ `) m$ [3 ^& q7 G
6 Y. \" X; f1 _. e7 l
11.性能测试

) m' m& o1 @! x; y

5 N, [4 s! w0 _, Q9 f9 L12.每次提交都触发:构建、部署和自动化测试

$ m- I3 C7 E4 ^/ {9 C
4 c/ z8 a/ j; ]5 N1 O, E$ i
13.自动化变更请求
, [1 s" U6 r! M0 A% v" T/ f8 s4 n+ H& u

0 j$ x9 b% B* l( Q! E: b14.零停机发布
2 A% Y5 H: a' m. M

- q( b" e/ u! L0 v0 {  ~* R功能开

# w5 }4 b4 E& t0 [

4 b" S6 Q" w# K: ?: z6 a, j- d. D% L
读者可以对照检验自己项目的Pipeline是否达标。

& S* \) S$ b. c4 V. T2 R
9 q% m: M) P/ b, {. D
我们拭目以待Capital One在2017年在DevOps的转型之旅上会给大家带来什么样的惊喜。
6 D* Z* Y" [- [
- _1 p, [# ]' d& b( X2 d1 K
本文总结自Topo Pal于DOES15和DOES16的两个演讲《Bankingon Innovation & DevOps》以及《DevOps at Capital One: Focusing onPipeline and Measurement》
4 Z5 g$ d& B9 t$ e; S  M2 m6 \

4 k+ h5 j% s/ @! l; t% Z2 e7 r
原创:许峰

本版积分规则

选择云运维时代的王牌讲师-长河老师,助你轻松入门ITIL Foundation培训课程

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

Baidu

GMT+8, 2019-4-25 00:17 , Processed in 0.199928 second(s), 29 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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