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

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

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

扫描二维码登录本站

QQ登录

只需一步,快速开始

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

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

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

参加活动:0

组织活动:0

发表于 2018-10-19 10:49:29 | 显示全部楼层 |阅读模式 来自- 广东广州
本帖最后由 adminlily 于 2018-10-19 10:51 编辑
! A1 w, a/ O0 e3 \! o, d2 e
! g" B: y. o" a% `1 W; g
本文转自微信公众号:DevOps咖啡馆 ; 下面为原文。

  C" n# B7 Y+ }/ V9 i

6 \- v/ B* I" D# C/ ]( x: a4 ~
本文总结自Topo Pal于DOES15和DOES16的两个演讲《Bankingon Innovation & DevOps》以及《DevOps at Capital One: Focusing onPipeline and Measurement》

" {1 G; i! C- v4 e8 w. Y' e- K
- o4 l1 ]% |5 s0 o, [; h6 y
背景:Capital One(Capital One Financial Corp. )是一家以投融资及基金管理为基础,集国际贸易、项目开发、投资银行业务为一体的多元化国际企业集团,总部位于美国特拉华州。

. s# P4 l/ Z9 D' o: O* i, @# }
# }# m1 |* g0 e8 j. h
DevOps缘起:说起来这家成立只有20多年历史的银行在美国银行业里绝对算是个初创公司。公司一直都是以信息技术的采用见长,尤其是在数据分析、数据科学方面,但在软件开发方面之前都是采用外包的方式,并没有被定义成公司的核心业务。但银行业的数字化趋势,尤其是手机上的交易量已经远远超越了传统的交易渠道,促使他们开始把软件开发作为重中之重来对待。
1.png
0 p1 w9 b) J& _, f
创始人兼CEO RichFairbank能有如此深刻的认识很不容易
* [" S( [6 @6 R$ ?* y! [
4 i9 _% k. D4 s5 g# Y5 S; m0 Z! F" c
痛点:Capital One的DevOps之旅开始于2014年。当时,CapitalOne的软件开发实践和很多传统做法没有什么不同:大量外包,瀑布模型,季度发布,手工流程,变更请求。和上一期介绍的KeyBank从大事故而痛定思痛不同,他们是从一个小问题触发反思的。在某次代码检查会上,大家发现一个测试失败是由于某个XML文件里的tag不配备造成的。按理说,这么小的问题改了再提交就可以了。但是因为开发工作是由另外一家公司负责,他们需要发起变更请求,而且代码修改后的构建流程(编译、测试、部署等)就需要至少2天时间。这个小小的问题让CapitalOne的技术团队开始反思他们的构建流程,并决定从这里下手。
$ G7 X' ], t  S+ Y! n
; s! C4 T, h9 N) T8 t' ^0 Q" Z
他们从一个小的团队开始优化构建流程(其实就是最小版本的Pipeline – 部署流水线),最终把时间从2天缩短到几分钟。于是,这个实践逐渐在CapitalOne蔓延开来,所谓星星之火,可以燎原。

& M" R+ f# E0 N5 {. J3 ]
  T8 P/ \& _6 J! Y4 C4 J3 U
尝到甜头之后,Capital One开始认真思索企业级的DevOps策略。可以看到,这一企业DevOps框架涵盖了从业务、到开发、到运维,最后加入了信息安全策略(对金融业安全监管尤其重要)。他们称其为DevOpsSec。

* D1 J3 |# c6 o" w
1.png
Capital One的企业DevOps框架

4 H) {9 [) L0 u9 S

8 L7 j" I# w, s5 k( T8 v+ z
Capital One继续改善流水线的效率。除了开发测试这些,要想真正打通流水线,还需要搞定环境/服务器的搭建和管理。之前新建一个服务器要走完62个步骤,耗时60天,开发团队的抱怨很大。CapitalOne决定:直接上云!2015年的时候还是只有开发和测试等环境在云上,到了2016年,生产环境也放云上了。

/ I! R; R4 i$ ?7 U' I' f( e% g
1.png
Capital One的流水线(Pipeline)
: C, ?1 {- a0 V9 o4 R$ u
" u0 I: z" f* J  [! f$ k; {
另外,Capital One发现开源真的是宝。他们不止大量的采用开源工具(”Open Source First”,非开源系统会被严格审查),还积极加入开源社区。他们发现开源自己的工具可以让代码质量大大提高,并且大大促进了持续体验和持续学习的DevOps文化。
: e- G+ g$ A8 D# j
1.png
2 T  \9 {4 E1 l
Capital One的开源第一(OpenSource First)策略

" X8 m5 F" I! q) T( a& d5 f( y
( R$ p# O1 U8 ]" B' J
从2015年的DOSE大会上Topo的介绍,已经可以看到他们经过1年多的努力,已经做到了非常好的成果:

0 I5 V' v. v7 J8 ?
3 Z9 a7 ]0 _1 W, m
·     代码提交频率:从之前的随意到每天100多次的提交
, E; m; m% Z2 y  Y
3 {) _* y6 Y1 a, ^
·     集成频率:从每月1次到每15分钟一次

: |0 z- w8 \. r" S

; V0 g: }5 |7 _) b9 ~  g% a
·     部署流程:手工变自动化

* `4 m3 [  r& [: m" ?
) `4 J. f6 P5 O& U+ x7 X
·     部署到QA和和Perf(性能)环境频率:从每月1次每天4次
& u. [. [" I$ A) C/ e; [. F
- V0 ]5 n9 t* O$ [
·     部署到生产环境频率:从每月或每个季度1次到到每个迭代1次

0 f7 A; C# L" i) J& f6 j
$ q1 L+ d5 c& o. M9 q
·     单元测试覆盖了:从没概念到~90%

3 U" S* ~( ]& ?) [

" A5 I& \# c" Z& t7 Y6 G, `
2016年继续改进流水线,已经能够做到:
5 s& A3 B. Q" f. E2 s- g( p

/ ?- R& d* E# N* {" |* h* G" w1 a
·     发布到产品环境的频率:从每个Spring一次到每天1+次

* x* Y6 v2 R2 R: R/ m
$ f3 ^  Q3 f: V1 v" |/ j9 H5 A
·     自动发布的应用软件数量达20个

$ g4 a, Q+ c, \

9 k1 o. C" O) Y
·     一个应用软件每天最大的发布次数达到34次
% K! g0 \# Q' b

4 e/ x* P9 F+ h% e2 s6 Y5 B
所以说DevOps的转型可以很快。现在,Capital One很骄傲地宣称自已有了和两年前完全不同的DNA:自己开发软件,所有环境都在云上,微服务,开源,DevOpsSec和持续交付。确实,CapitalOne在DevOps之路上是远远超越了很多同业的。尤其这一旅程也只用了2年多时间。

) t' ]6 v9 }1 T& k3 ], e+ p7 c
+ ]  @4 w+ ^3 n
Capital One认为转型有三个关键中的关键:

/ _$ c4 }/ x8 j& g# r) k: |

9 @& M# |; |3 V+ _/ g
·     外包转向自建开发团队(外包公司要努力了)
, w6 c. r/ d( e/ q+ r# J
& V, F; Q" z. e' _2 q* p# N
·     功能团队转成产品团队(一个产品团队就像一个多兵种的行动小组)

3 L, B; g: p3 c4 d
* L3 B2 b: t$ L, s3 y
·     不再区分Dev,Ops,QA,还是RM(Release  Management),大家在写代码,都是Engineer

; o0 v+ X: t9 a8 l6 d* E
1.png
转型的的三个最关键策略/实践
* c4 x& O4 Y- [" Z3 G; }7 R4 E
; s+ b; `: f) `& x4 }/ x9 M/ p) e
总结下Capital One的转型之路:
3 a9 @  ?3 V! V
1.png

1 v  N2 Z2 H7 G4 G1 X0 w- ~" g

0 M( `* o5 y( T) ^; i, i
Capital One的DevOps之旅时间表
6 `# O2 {8 J$ R, |! H
6 E" e4 {5 r$ B* t
从这两个演讲中笔者听到最多的就是流水线,开源和安全。尤其是流水线,Capital One的DevOps转型其实就是围绕着这个核心进行的,不断优化,持续改进,在整个公司推广。

  I0 o9 `, i7 V/ T

  Q* A2 s& ^" f' b) P. n
Capital One总结了要做到真正的流水线,以下15个特性是必须的:

( J3 D& m7 U' e; A
' ]; N+ }' f1 B, k$ `( l2 {& g
1.    版本控制

0 ?0 D: ?7 N7 e3 I0 P4 z$ j+ q& f
6 P; O4 D9 d( B' q- `# ?: C
2.    最优的分支策略

& f1 ~& X% O5 Z+ s$ G/ r3 i: C0 S
# l* Q! p4 X) B* x7 B7 x( s% P
3.    代码静态扫描

. e+ X; [0 E: h. l5 J
' }" \+ S# W1 d& d7 l5 K# a
4.    80%以上的单元测试覆盖率
7 h: F$ w5 l9 Y
! D# r) t( y+ V, n
5.    漏洞(Vulnerability)扫描
; H3 K7 v4 ], F2 V9 r% Z
/ x7 p" [5 y1 e5 r  E
6.    开源工具扫描

2 C, F. I5 _1 m: Y% u

( d8 G* Q3 Y, U  v! Z4 i! F  d; g& d
7.    制品(Artifact)版本控制

7 {4 C7 Z) e, A- Z% U* Y

8 p2 q( Q2 b9 s! O
8.    环境自动创建
# N6 G& p  M2 C% d4 S' V! R. u
6 M2 x& d# K  H' E. X* ]
9.    不可变服务器(Immutable Server )
3 Q/ m' @% C  m  ~9 p; W
7 S/ I3 ~6 P# W* c  J, S4 F
10.  集成测试

4 y4 r: o! A7 H) L
& D- |! h/ G: `: z0 n0 ?
11.  性能测试
! m" r7 F! R; Q7 L

; K* Y# x; w& o0 v
12.  每次提交都触发:构建、部署和自动化测试
' z( t" W9 `/ h' |1 U4 C/ j% m/ e

/ C( U5 b1 ^. `7 p( h; Z
13.  自动化变更请求
% A2 R3 t0 r# @0 O  b- C

% V; d2 I: t1 F% H" x* g: G
14.  零停机发布

/ @- ?( M- z4 }# a: ?

4 P- q  W5 ]& f  V1 ~
15.  功能开关
$ N1 \! h. v* A: F

* u  `1 O: b- T
读者可以对照检验自己项目的Pipeline是否达标。
0 s, u( b7 u* T6 t

; Q% t. \. k4 H
我们拭目以待Capital One在2017年在DevOps的转型之旅上会给大家带来什么样的惊喜。

, P  l: y; U) B0 Y

% r3 F6 q6 q9 o2 t) ]
原创:DevOps咖啡馆

; P: z, g  c8 A6 |7 Z5 p) ]

本版积分规则

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

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

Baidu

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

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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