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

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

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

扫描二维码登录本站

QQ登录

只需一步,快速开始

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

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

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

参加活动:0

组织活动:0

发表于 2018-10-19 10:49:29 | 显示全部楼层 |阅读模式 来自- 广东广州
本帖最后由 adminlily 于 2018-10-19 10:51 编辑
9 ~: _. @2 e+ K1 P  ?/ ?
8 ]! E6 T9 \6 y; B# b  H( ?% T: T
本文转自微信公众号:DevOps咖啡馆 ; 下面为原文。

, m8 [5 Z5 F: v" W; f9 o# ]( G6 T; ?
) \- Q1 t2 ]! T. G4 ~+ i( W1 r
本文总结自Topo Pal于DOES15和DOES16的两个演讲《Bankingon Innovation & DevOps》以及《DevOps at Capital One: Focusing onPipeline and Measurement》

. D2 z5 m; \! U$ e1 h
) J9 Y- c+ I6 u8 o
背景:Capital One(Capital One Financial Corp. )是一家以投融资及基金管理为基础,集国际贸易、项目开发、投资银行业务为一体的多元化国际企业集团,总部位于美国特拉华州。
( E: @( l! x. {, I
  e- o3 V5 K, [7 Q% h
DevOps缘起:说起来这家成立只有20多年历史的银行在美国银行业里绝对算是个初创公司。公司一直都是以信息技术的采用见长,尤其是在数据分析、数据科学方面,但在软件开发方面之前都是采用外包的方式,并没有被定义成公司的核心业务。但银行业的数字化趋势,尤其是手机上的交易量已经远远超越了传统的交易渠道,促使他们开始把软件开发作为重中之重来对待。
1.png

4 U! Y* @" K6 p- n/ C
创始人兼CEO RichFairbank能有如此深刻的认识很不容易

8 e" ^) X5 }7 q
/ ]8 ]) g( N$ n" c7 G/ V
痛点:Capital One的DevOps之旅开始于2014年。当时,CapitalOne的软件开发实践和很多传统做法没有什么不同:大量外包,瀑布模型,季度发布,手工流程,变更请求。和上一期介绍的KeyBank从大事故而痛定思痛不同,他们是从一个小问题触发反思的。在某次代码检查会上,大家发现一个测试失败是由于某个XML文件里的tag不配备造成的。按理说,这么小的问题改了再提交就可以了。但是因为开发工作是由另外一家公司负责,他们需要发起变更请求,而且代码修改后的构建流程(编译、测试、部署等)就需要至少2天时间。这个小小的问题让CapitalOne的技术团队开始反思他们的构建流程,并决定从这里下手。

1 v$ B) l) f$ S
0 ?9 r: i( k$ ^2 H3 a* A+ P# ]$ U
他们从一个小的团队开始优化构建流程(其实就是最小版本的Pipeline – 部署流水线),最终把时间从2天缩短到几分钟。于是,这个实践逐渐在CapitalOne蔓延开来,所谓星星之火,可以燎原。

: }' I9 Q/ e- n2 [  |5 G

0 }, _4 B5 G( ~  [4 g
尝到甜头之后,Capital One开始认真思索企业级的DevOps策略。可以看到,这一企业DevOps框架涵盖了从业务、到开发、到运维,最后加入了信息安全策略(对金融业安全监管尤其重要)。他们称其为DevOpsSec。

6 D- o" e1 [9 O! z! Q$ Y2 v& i# M
1.png
Capital One的企业DevOps框架

" M4 F. S- j" |5 K/ A' g7 G. g
3 b8 \" }+ l  d% s* s9 f
Capital One继续改善流水线的效率。除了开发测试这些,要想真正打通流水线,还需要搞定环境/服务器的搭建和管理。之前新建一个服务器要走完62个步骤,耗时60天,开发团队的抱怨很大。CapitalOne决定:直接上云!2015年的时候还是只有开发和测试等环境在云上,到了2016年,生产环境也放云上了。
$ Q% Y9 \2 X3 {, x* \- g8 G- V
1.png
Capital One的流水线(Pipeline)
$ A) d% u% s3 w: m2 H

# Y, g" B5 r" C, P3 [
另外,Capital One发现开源真的是宝。他们不止大量的采用开源工具(”Open Source First”,非开源系统会被严格审查),还积极加入开源社区。他们发现开源自己的工具可以让代码质量大大提高,并且大大促进了持续体验和持续学习的DevOps文化。
5 F* c' l, Z4 I2 w4 c
1.png
" _* ]# @2 ]: I+ f
Capital One的开源第一(OpenSource First)策略

/ i) R; C  c- g' g$ u7 k' f

  B* x+ I  L" ?7 a: a  ]" D4 J" @7 o
从2015年的DOSE大会上Topo的介绍,已经可以看到他们经过1年多的努力,已经做到了非常好的成果:
/ P( K4 m! C0 }" a) x# N
4 G* q1 ?5 K  ^5 p7 M0 k+ L
·     代码提交频率:从之前的随意到每天100多次的提交
# w4 S! w6 {0 f$ O- X, ?" }

& [' a2 L$ V% u: q
·     集成频率:从每月1次到每15分钟一次
- i. u; ~% t0 @) g8 W/ u% m

$ W# |- X- G" d! Z& P" s4 b7 c  e
·     部署流程:手工变自动化

( f) z5 T. b% M# H) B' o7 e8 m
  r( B( e$ I2 x6 r" J
·     部署到QA和和Perf(性能)环境频率:从每月1次每天4次
$ {" Q; ?* i3 e/ |- s9 m. {
) _* \; G% y) G( W6 v
·     部署到生产环境频率:从每月或每个季度1次到到每个迭代1次
+ J( ?0 a7 |9 ]1 \9 U

8 P, F2 [& g3 J3 z" r8 q+ k2 T
·     单元测试覆盖了:从没概念到~90%
2 \& u% t* [8 H
, F+ R: z5 `9 s" f- X8 {
2016年继续改进流水线,已经能够做到:
7 a; V0 E  ~0 V/ ^
4 V) p; y8 G! e; C7 V
·     发布到产品环境的频率:从每个Spring一次到每天1+次

. k! V* ~& O( c9 C6 r. y& s% e
: i" n1 |; D3 i3 D7 B
·     自动发布的应用软件数量达20个

2 M7 C, T" l6 V! ?
. \" C$ z" j5 q2 d
·     一个应用软件每天最大的发布次数达到34次
2 V; k3 K5 w! T( R' Y1 ~, ^
- ^: Z& g  B# {% r  o4 R, W- L6 e
所以说DevOps的转型可以很快。现在,Capital One很骄傲地宣称自已有了和两年前完全不同的DNA:自己开发软件,所有环境都在云上,微服务,开源,DevOpsSec和持续交付。确实,CapitalOne在DevOps之路上是远远超越了很多同业的。尤其这一旅程也只用了2年多时间。

$ `4 z/ T+ [! }4 E( y4 S1 d. ]5 r
; \- p- @  r' T8 m4 c3 ]
Capital One认为转型有三个关键中的关键:
3 Y* q+ t3 [. r6 u0 n$ n6 e: L
0 C: [8 @4 O5 C( l+ u& B
·     外包转向自建开发团队(外包公司要努力了)

* o7 ^6 q7 D" _: u. H7 L
9 K; t& P, ?8 G9 s
·     功能团队转成产品团队(一个产品团队就像一个多兵种的行动小组)

6 T+ h. o. J) W' T7 |

2 X2 A* O; j) y8 @; c4 _4 g
·     不再区分Dev,Ops,QA,还是RM(Release  Management),大家在写代码,都是Engineer

2 B; ?, ]# h% x6 M& C
1.png
转型的的三个最关键策略/实践

! G) j5 w% U+ b4 S( x9 q
+ D& o: ?% h# p3 }5 Q2 w
总结下Capital One的转型之路:
" X) N2 o. `  A* y- {
1.png

- |: k0 S+ h6 U8 d+ J

3 S' f* {& F3 E" e8 d* ?
Capital One的DevOps之旅时间表

3 D" |/ `. M1 q0 _2 M0 r$ M* v2 u

4 @( J( k4 U( x5 e0 Q
从这两个演讲中笔者听到最多的就是流水线,开源和安全。尤其是流水线,Capital One的DevOps转型其实就是围绕着这个核心进行的,不断优化,持续改进,在整个公司推广。

3 W2 t' v$ p  H9 {. U2 {

" U5 M' q# Q9 ?$ t8 A! x6 K
Capital One总结了要做到真正的流水线,以下15个特性是必须的:

! |/ [% z( u! ~& Z4 ^, F, m1 k! U

% x( X& I$ W5 m, ?) `4 w, ^
1.    版本控制

; N) I1 Q$ s! E1 P0 A( m9 S

5 q2 w% D3 l; c" {5 I
2.    最优的分支策略

- F* \) T7 H3 c' Q  B; A, ^

) o! i3 _2 {- E/ q7 @
3.    代码静态扫描
* W$ K, U+ y$ l+ m2 R9 r) t
* Z! V9 @8 A. _7 S% D6 ~" N
4.    80%以上的单元测试覆盖率

* z0 Y2 i/ x- Y! ?* d

, s9 R6 r6 W* U2 [+ U1 `2 B
5.    漏洞(Vulnerability)扫描
. `0 Q% ^+ o1 r) ]! [. n
$ T! U/ O) d# P0 N: a6 P: t( O* D
6.    开源工具扫描

8 q0 r4 f/ b% T) F" S( r- P0 H1 o
: P% [* ~7 V8 P% \2 o4 S/ _
7.    制品(Artifact)版本控制

/ K% Y# I' E6 k/ {

  Q7 W  y8 t7 g% g& L* a
8.    环境自动创建
8 q: Q/ |, w! \8 P: f

8 I" r+ _# F7 x! ?# h. X6 _' T: W% x
9.    不可变服务器(Immutable Server )
" k1 B2 ~3 [8 M4 B4 g. C5 w
! O5 q+ f, U8 k
10.  集成测试

+ J! ?. ]* v6 Z7 s1 ]# r0 S( M

; R) V; ]$ s8 ~, Y, _5 L) O
11.  性能测试

" l. [$ R: m2 f
  g! g; B3 T: d6 e; @% l4 D* K
12.  每次提交都触发:构建、部署和自动化测试
' O5 ~2 N/ |& T9 a. |3 F$ ?# x4 ^1 H0 u
$ J" |' m+ b/ a
13.  自动化变更请求

7 Z/ h% }% b4 k5 n' I
0 P, C1 o. v/ z; D2 J) B
14.  零停机发布
1 U: {; k* K: [- |
3 X( X8 w6 w# r/ s- ~) f" \. r
15.  功能开关
! p& B, W7 ?, C: x
5 K. m  V. o1 w' j8 V2 P4 ^
读者可以对照检验自己项目的Pipeline是否达标。
" l6 O9 B5 |* O9 W( Z2 X
8 w/ ]( j' z$ \3 u: {8 J" E2 ?
我们拭目以待Capital One在2017年在DevOps的转型之旅上会给大家带来什么样的惊喜。
6 S& C/ I/ u; I$ G
1 y( w+ w# V+ x
原创:DevOps咖啡馆
9 M8 ]0 [2 k7 c: @7 Y9 B- [/ w$ P

本版积分规则

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

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

Baidu

GMT+8, 2018-12-15 20:02 , Processed in 0.250999 second(s), 31 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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