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

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

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

扫描二维码登录本站

QQ登录

只需一步,快速开始

搜索
查看: 681|回复: 0

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

[复制链接]
发表于 2018-10-19 10:49:29 | 显示全部楼层 |阅读模式
本帖最后由 adminlily 于 2018-10-19 10:51 编辑
% `* f& C' g' e1 i# h7 n( P9 `6 i, H
8 z0 U, J' W5 p/ {- G! Q" a
本文转自微信公众号:DevOps咖啡馆 ; 下面为原文。

; I- S$ P( H1 ], Y5 J

  ^  @! p! {  e$ P$ y  v) T
本文总结自Topo Pal于DOES15和DOES16的两个演讲《Bankingon Innovation & DevOps》以及《DevOps at Capital One: Focusing onPipeline and Measurement》

( W: t! I: v0 a) t/ M1 T
4 @2 _' Q4 }# U
背景:Capital One(Capital One Financial Corp. )是一家以投融资及基金管理为基础,集国际贸易、项目开发、投资银行业务为一体的多元化国际企业集团,总部位于美国特拉华州。
7 `5 j( o1 I& _$ y

  l& S4 a% ^2 m7 O
DevOps缘起:说起来这家成立只有20多年历史的银行在美国银行业里绝对算是个初创公司。公司一直都是以信息技术的采用见长,尤其是在数据分析、数据科学方面,但在软件开发方面之前都是采用外包的方式,并没有被定义成公司的核心业务。但银行业的数字化趋势,尤其是手机上的交易量已经远远超越了传统的交易渠道,促使他们开始把软件开发作为重中之重来对待。
1.png

0 `6 F. \# ]! s( v2 l
创始人兼CEO RichFairbank能有如此深刻的认识很不容易

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

! z5 m: j  `  o  p) V( n
8 v2 ]6 _3 n3 s! u$ P5 d, C4 e- Z
他们从一个小的团队开始优化构建流程(其实就是最小版本的Pipeline – 部署流水线),最终把时间从2天缩短到几分钟。于是,这个实践逐渐在CapitalOne蔓延开来,所谓星星之火,可以燎原。
  m9 f9 O# W. p+ ]9 p
  e" P( A4 @* b. m8 {
尝到甜头之后,Capital One开始认真思索企业级的DevOps策略。可以看到,这一企业DevOps框架涵盖了从业务、到开发、到运维,最后加入了信息安全策略(对金融业安全监管尤其重要)。他们称其为DevOpsSec。
6 Z- s" B% b! S9 O8 C
1.png
Capital One的企业DevOps框架
% P5 v% P/ Q, q7 s

' ]: ^4 ?% z4 F& l! Y) \% ], @) [1 S/ F" M
Capital One继续改善流水线的效率。除了开发测试这些,要想真正打通流水线,还需要搞定环境/服务器的搭建和管理。之前新建一个服务器要走完62个步骤,耗时60天,开发团队的抱怨很大。CapitalOne决定:直接上云!2015年的时候还是只有开发和测试等环境在云上,到了2016年,生产环境也放云上了。
* Q5 w# s  y  D: o! t
1.png
Capital One的流水线(Pipeline)

, B- G& r/ w  H& C3 d

! R& ?  \) S" \* D/ z7 X
另外,Capital One发现开源真的是宝。他们不止大量的采用开源工具(”Open Source First”,非开源系统会被严格审查),还积极加入开源社区。他们发现开源自己的工具可以让代码质量大大提高,并且大大促进了持续体验和持续学习的DevOps文化。
. J- p/ v$ `6 l2 d
1.png

. C  Y2 n# |) {- u$ d
Capital One的开源第一(OpenSource First)策略
7 Q  A5 W3 x' W& p
! v) ?+ V* n& k, h0 F
从2015年的DOSE大会上Topo的介绍,已经可以看到他们经过1年多的努力,已经做到了非常好的成果:
6 n5 U, j, l5 C& k: N, b
7 p" F. B6 h: Z* C. G! l  }& a3 n
·     代码提交频率:从之前的随意到每天100多次的提交
5 [8 M+ y  u+ P# I
3 j) ?( V3 p) L* m; i6 e$ L/ g
·     集成频率:从每月1次到每15分钟一次

0 k7 K$ y6 b3 I
5 V2 P7 `/ S% x! j* H
·     部署流程:手工变自动化

7 P: ^$ B2 L4 `7 E+ B4 m

* k1 p7 G/ M1 S0 B4 l
·     部署到QA和和Perf(性能)环境频率:从每月1次每天4次
1 k! c) b- y- B% J+ j3 \

) f$ y: [3 r# I
·     部署到生产环境频率:从每月或每个季度1次到到每个迭代1次

- C* \. ?# b  P8 B& v, p; M7 p

" Q8 h: H4 T0 h
·     单元测试覆盖了:从没概念到~90%
: ]+ Y: q! P1 T: E/ [

1 t+ Q! Q/ E0 W7 o9 {3 |) f
2016年继续改进流水线,已经能够做到:

' O; }) ?& @9 S! m- t# _

* V# }" Q5 n0 O0 M/ ]+ [, C+ u
·     发布到产品环境的频率:从每个Spring一次到每天1+次
& |" k3 h% S* _  H& l

. M0 [! t: {, J
·     自动发布的应用软件数量达20个

2 t3 ^8 X. u: M6 Q7 `& o! s

4 L% O6 h+ K* a3 G) M* h
·     一个应用软件每天最大的发布次数达到34次

) }6 y" d% ^' b) s* [' P4 E- P1 |. D

  b. ~, g; N; Y6 c3 A/ T
所以说DevOps的转型可以很快。现在,Capital One很骄傲地宣称自已有了和两年前完全不同的DNA:自己开发软件,所有环境都在云上,微服务,开源,DevOpsSec和持续交付。确实,CapitalOne在DevOps之路上是远远超越了很多同业的。尤其这一旅程也只用了2年多时间。
1 j0 e- e: ^& M; y; a
! o, a1 w  b$ @2 Y" ?( q* r
Capital One认为转型有三个关键中的关键:

- N8 H% S& S1 v1 F1 s4 A2 z$ G* x
3 Z/ Y3 b4 n2 ?. a
·     外包转向自建开发团队(外包公司要努力了)

& Q& Q) v/ s. q8 f6 g

# g' x3 A% p/ g. t: F1 g8 G7 z# q
·     功能团队转成产品团队(一个产品团队就像一个多兵种的行动小组)

& ?/ B8 O; J; Y0 P! b2 a

0 a+ q% E) Z4 G" J* m
·     不再区分Dev,Ops,QA,还是RM(Release  Management),大家在写代码,都是Engineer
4 O8 c+ Q3 K( m- F
1.png
转型的的三个最关键策略/实践

6 K' z% z7 z3 g- M7 }7 z

- y0 ^6 s+ e# G* c
总结下Capital One的转型之路:

) [+ _% ?1 ^1 E3 [2 d4 N
1.png

$ b  x4 t+ v3 F5 A2 r1 f, w

( q9 E& v& _& l5 u/ J1 b' y5 {
Capital One的DevOps之旅时间表

$ ^+ g6 m5 ?5 z) n" ~0 W0 _+ H9 B9 ?
- Q& h8 Z3 U1 A$ Q7 ^. h9 c9 x
从这两个演讲中笔者听到最多的就是流水线,开源和安全。尤其是流水线,Capital One的DevOps转型其实就是围绕着这个核心进行的,不断优化,持续改进,在整个公司推广。

) v# J: i5 a- n* |7 x- E
" e$ M0 Q& }! \7 }! Y
Capital One总结了要做到真正的流水线,以下15个特性是必须的:
+ E3 x$ v6 N6 ^

% F9 M- r% w) i
1.    版本控制
. ^9 @: C8 U9 b4 C* B

6 z+ w' O, R5 f/ O  E
2.    最优的分支策略
8 i: ^8 r! N7 v) T, L7 U
1 ]' {/ k+ b+ |# W7 f+ W
3.    代码静态扫描

' s+ D, I8 T  j' S& ~, `

3 Y  f% K! H# L/ s$ D3 @
4.    80%以上的单元测试覆盖率
* A/ H! G0 ]2 D  q/ }

0 H  P4 _6 W0 [2 t
5.    漏洞(Vulnerability)扫描
0 K' ?, K) O" |% B2 t- [
9 T- O4 ~' t3 b9 Z! m
6.    开源工具扫描
) x. P' X) ]: ]# d* b  _
3 j$ c" `' Q9 w5 k* H  ?& q! _3 e: |
7.    制品(Artifact)版本控制
4 P' _/ {! u  E$ k. H
2 {# L3 u4 l5 q  \
8.    环境自动创建

; G8 |* u" L$ j6 x/ P

! a0 w  I( Z0 w
9.    不可变服务器(Immutable Server )

' q9 Z7 L# @4 ~2 L1 F/ k4 w8 F
2 f' u" C) y- T5 r* X- L: ?! p
10.  集成测试
9 X' v! q2 M5 l
9 o: A, d; Z" W6 |( F- t; w
11.  性能测试
. V- ]" e) I- F; K* n( w

! j# V8 E* s0 i' Q, f2 f  a9 @
12.  每次提交都触发:构建、部署和自动化测试

' Y; d( w% S9 ]: J4 Q# s% Y% ]
  X8 D( Y3 k: p2 V* |
13.  自动化变更请求
. g& n" [" l5 o* ~. u
9 D, T" h' ?& @: w
14.  零停机发布

4 U, e4 J% S5 l) |: z
3 }$ e! p& j( H/ u8 q( U: w
15.  功能开关
" w! K+ O4 Q- E3 z
5 U: O6 p0 |: o* [# [( V  I
读者可以对照检验自己项目的Pipeline是否达标。

8 l: B* a4 Q( u5 w: x
' K$ X- y3 r3 E$ b9 x2 C
我们拭目以待Capital One在2017年在DevOps的转型之旅上会给大家带来什么样的惊喜。

6 C: K3 \3 k: H$ @) i
( ^/ Y  R4 y/ _+ K
原创:DevOps咖啡馆

9 Q% Z4 {$ A1 C1 a; Z1 b8 k+ V2 {

本版积分规则

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

Baidu

GMT+8, 2019-9-23 06:57 , Processed in 0.143928 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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