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

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

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

扫描二维码登录本站

QQ登录

只需一步,快速开始

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

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

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

参加活动:0

组织活动:0

发表于 2018-10-26 16:14:04 | 显示全部楼层 |阅读模式 来自- 广东广州
本帖最后由 adminlily 于 2018-10-26 16:21 编辑
2 i6 j( T$ Q/ G7 Y+ `
$ B4 d0 W5 o1 ]. `$ S( P( M* B- \
背景:Capital One(Capital One Financial Corp. )是一家以投融资及基金管理为基础,集国际贸易、项目开发、投资银行业务为一体的多元化国际企业集团,总部位于美国特拉华州。
# i& V0 M( V* S- j) I

8 L- n7 U* i+ i
DevOps缘起:说起来这家成立只有20多年历史的银行在美国银行业里绝对算是个初创公司。公司一直都是以信息技术优势见长,尤其是在数据分析、数据科学方面,但在软件开发方面之前都是采用外包的方式,并没有被定义成公司的核心业务。

8 ^  P, r3 O3 i+ q7 j" ~; F+ W
) b$ O# U. y  V$ D6 c& t
随着银行业的数字化趋势,尤其是手机上的交易量已经远远超越了传统的交易渠道,促使他们开始把软件开发作为重中之重来对待。
; ^% A$ T9 H( h/ _4 t
; B3 w& C8 m% G8 d  j! E
1.png

' J# J- V5 }; N: W! c; T; p9 d

4 B' I2 F! t; ~
创始人兼CEO RichFairbank能有如此深刻的认识很不容易

" y, Q2 E5 u% S/ u% R2 o
$ Z7 Y' E* I( h0 t
痛点:Capital One的DevOps之旅开始于2014年。当时,Capital One的软件开发实践和很多传统做法没有什么不同:大量外包,瀑布模型,季度发布,手工流程,变更请求。
4 d0 P+ K0 v- I0 t

: E6 B: b% W4 B
和KeyBank从大事故中痛定思痛不同,他们是从一个小问题反思开始的。在某次代码检查会上,大家发现一个测试失败是由于某个XML文件里的tag不配对造成的。
; f) {7 k, H- _' v7 M+ ~% w3 \

- a% L# m1 y) v4 g& B) f
按理说,这么小的问题改了再提交就可以了。但是:

3 u8 e3 o4 H* c
8 Z: b" Y1 }- w* [3 c
1.开发工作是由另外一家公司负责,他们需要发起漫长的变更请求;
" x% M3 l  f+ S$ [% A& C: Y5 k$ b& O3 W* H+ J( v, \8 J
2.代码修改后的构建流程(编译、测试、部署等)就需要至少2天时间
& ?' I# T! ], _$ p2 ~3 x
2 T2 b8 X- o" {/ K1 B/ |0 m
这个小小的问题让Capital One的技术团队开始反思他们的构建流程,并决定从这里下手。
/ n+ [; c+ n! K; |$ H- U

8 `! C: L3 K% U8 D0 U: X9 U! X( e

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

$ a/ D/ Q9 ~+ L4 z" N* j/ H$ t
$ m+ ~! V' t8 c) ]& L
编者注:这是DevOps转型与落地的典型思路,小范围(局部)改进见效果,然后自发蔓延或者公司整体推广改进。

% f0 g8 g9 @: B8 n# J
; ^+ q/ R3 C2 T: p! a; }& I
尝到甜头之后,Capital One开始认真思索企业级的DevOps策略。Capital One的DevOps框架涵盖了业务、开发、运维,最后加入了信息安全策略(对金融业安全监管尤其重要),他们称其为DevOpsSec。

8 v% F! p* f8 E0 s% Y
( G& I( e  v7 g0 Z
1.png
5 {8 ?/ ]% @& c5 z
8 i, m: m& Q' D) Z5 i
Capital One的企业级DevOps框架
% S( P8 o( J& A0 h9 G% ?" B" J

8 U/ ^4 Y0 a! x2 j
Capital One继续改善流水线的效率,除了开发与测试,要想真正打通流水线,还需要搞定环境/服务器的搭建和管理。之前新建一个服务器要走完62个步骤,耗时60天,开发团队的抱怨很大。

) h/ P! I" B9 t) e8 o

2 L( h# W. [) w- [" F$ l. ]4 P) J
Capital One决定:直接上云!

* W, _! b# L& p% p8 d! T+ X
4 u5 r2 K2 j2 M+ J+ O
2015年的时候还是只有开发和测试等环境在云上,到了2016年,生产环境全部上云了。
* D7 Q4 i# [* w9 m3 B/ I+ o

6 _# u7 a) A# e
1.png
; W3 c! s% }- b9 \0 X% u8 `

9 _& l2 q% g" @5 I
Capital One的流水线(Pipeline)

- F; J% h: f1 y5 n$ k- W
3 G# w6 R) g+ H4 S
另外,Capital One发现开源真的是宝。他们不止大量的采用开源工具(”Open Source First”,非开源系统会被严格审查),还积极加入开源社区。
4 f9 F9 ^9 l2 V0 ^' v  q0 o

4 i# m. t* ]% \( P$ F" c
他们发现开源自己的工具可以让代码质量大大提高,并且大大促进了持续体验和持续学习的DevOps文化。
4 X3 K' x1 c6 B# ^" ]
. O' t4 h5 K+ o0 H) K
1.png

' h& {+ ?. c& I% x3 A/ E0 m

  ?, i8 W& X* J" X4 {5 X
Capital One的开源第一(OpenSource First)策略
; d, @4 a# b# J- a
# p6 J* V8 W  L* l$ `9 ]
2015年取得的成果:

( b+ W9 ?& c, ]; x1 U& K/ V4 f- x
, h5 C, c( `9 G7 j
1.代码提交频率:从之前的不固定到每天100多次的提交
3 Q9 c  f. C' z, @7 M9 F
  s5 i% h9 N# x- S9 T4 h, L( U) m
3 C, y4 @( ~4 M* l" h3 Q8 K" s) ?2.集成频率:从每月1次到每15分钟一次

2 @7 f( r" i8 w7 M

- K* ?) ~5 @' w; R7 \9 m, L3.部署流程:手工变成自动化
: y% O- ~; ?( R% k8 s

8 U% Z; F& ^: x0 X5 Q  m4 j0 D4.部署到QA和和Perf(性能)环境频率:从每月1次到每天4次
# F. y. E" R7 h  \
2 M' h) j$ A) L2 f
5.部署到生产环境频率:从每月或每个季度1次到到每个迭代1次
7 I7 I) {+ l; [2 V# x' w) P: h8 ^3 P+ K9 E$ e/ N- D8 j
6.单元测试覆盖:从没概念到>90
%

0 a0 S* Q  G9 _8 s* R
: f, M. m. O  s
2016年继续改进流水线,已经能够做到:

4 N9 Z, Z) }+ ~# |3 o
+ F5 B$ t8 o  K+ X  z( c2 u5 }
1.发布到产品环境的频率:从每个Sprint一次到每天至少1次

1 L4 `5 ?) L) e; K
& F7 B$ H8 Z) n* W0 M0 e$ y
2.自动发布的应用软件数量达20个; y- q9 |+ Q) R% u- X
+ g" n$ z3 c! R) T

& C7 M; U" U6 S1 V; _3.一个应用软件每天最多可以发布34

# P: Y8 C0 _2 @2 G, t5 {; P" v

! q4 ~8 O& r6 A9 d0 a; X& j
所以说DevOps的转型可以很快。
' ^+ a$ a1 O! z( F9 @( W( m) M
' R5 r" M& b8 I" O8 @0 f
  Y9 B4 R4 G, |& w. m. P
现在,Capital One很骄傲地宣称自已有了和两年前完全不同的DNA:自己开发软件、所有环境都在云上、微服务、开源、DevOpsSec和持续交付。

9 e5 n& F/ ~. ?* P
) |( _* e$ F* u+ p
确实,Capital One在DevOps之路上是远远超越了很多同业的。尤其这一旅程也只用了2年多时间。

9 E; G* ?  t2 z; u) ?3 A* P3 i

6 i9 O+ b# I5 G/ h" E
Capital One认为转型有三个关键中的关键:
8 ]3 `! G8 ~  X3 H3 J: P, S( P

; d4 l1 m( a$ Q- Y: N1.外包转向自建开发团队(外包公司要努力了)
, p# z$ j! h7 Y: f! s) r

( l6 {5 p/ V" _% W  g2.功能团队转成产品团队(一个产品团队就像一个多兵种的行动小组)
1 {  a; w' S# h, ^& j+ B  O
3.不再区分Dev、Ops、QA、RM(Release  Management),大家都在写代码,都是Enginee
r
1.png

. L# o. p% t4 [9 N  ~, q* L# q$ Y

! x# e: f3 W4 f
转型的的三个最关键策略/实践

; S0 B4 G: K( }7 F5 e/ ~
& q9 f* w# W/ I" e/ n
总结下Capital One的转型之路:
1.png

9 I% q2 ?. [  k2 d4 d
/ X( ^- ?% S+ u: l9 _( n
Capital One的DevOps之旅时间表
% u9 E2 c' O5 r) V
# @% D' G6 A3 i# U# x# V3 F$ _7 t
从这两个演讲中笔者听到最多的就是流水线,开源和安全。

) V9 c; E2 o" w/ z4 D8 {
9 [# Y1 k* G% t2 O; J% h- ?
尤其是流水线,Capital One的DevOps转型其实就是围绕着这个核心进行的,不断优化,持续改进,在整个公司推广。

( t) a# [, U2 J6 @8 X0 _* H

: c, N; e' ~: `" g  b8 n
Capital One总结了要做到真正的流水线,以下15个特性是必须的:

$ P0 [* u0 ~9 T5 r; n

; t; E3 ?' a$ U! t7 o( D+ I1.版本控制
8 B' a3 I' q3 p0 k! \
/ j6 X3 T0 b+ T$ s6 E5 m8 l
2.最优的分支策略

& G6 j7 q; k8 G

) z4 f7 ?3 L# [/ B3.代码静态扫描
% T+ }9 k, s4 ^& o& h! z' f
; D% u  k+ c: g3 g+ ^1 A4 @
4.80%以上的单元测试覆盖率

* g" U7 K. V8 J8 Q3 ~/ [

3 f; V! y$ E/ e3 ]5.漏洞(Vulnerability)扫描

) M' C9 R. Q, _9 l8 u

9 S9 u! P- Y2 ?$ `, {6.开源工具扫描

  L1 a* k' m0 f5 [$ D& T# Y7 z
6 F% ?4 [" h' U7 `
7.制品(Artifact)版本控制
3 e: [1 b6 r% i

# z1 ]# J3 m( |8 N+ D8.环境自动创建
. u9 h: S6 |8 E! g3 f

8 [9 X( [1 t% k" H: k9.不可变服务器(Immutable Server )

! Y: o7 F) L: V9 ^0 }/ D0 o; P
! [4 i( I  s* k0 I
10.集成测试

8 @: w7 \9 U6 h! p  {$ u

$ f& m; e! j, B& I1 X: O) ?1 w: i! `11.性能测试

- U/ w$ s5 m" y* Y, |
( g( c+ u  D: G( B  }2 R
12.每次提交都触发:构建、部署和自动化测试
2 m" A6 M+ A! W2 x& s* ?
+ j/ w1 }+ A; \9 M: j: O1 u/ n
13.自动化变更请求
6 t1 ~( |3 Z2 u5 U( @9 s. e

! G' A+ s& [, ^" x/ `* c14.零停机发布

% |( V& t5 V& B1 Q% z1 f( x7 W. J

1 W7 L& l5 n  {: I0 V' D+ M功能开
2 D; Z3 e$ c6 z9 T1 F
2 {9 M' f# d1 B4 l( ?
读者可以对照检验自己项目的Pipeline是否达标。
& S" P5 I$ f' f- d" _- O. M
+ [6 T7 q9 q! e; ^  L
我们拭目以待Capital One在2017年在DevOps的转型之旅上会给大家带来什么样的惊喜。

: h! `) ?4 |. P* h$ {# L- J

8 M' z( c+ ~8 Y5 u
本文总结自Topo Pal于DOES15和DOES16的两个演讲《Bankingon Innovation & DevOps》以及《DevOps at Capital One: Focusing onPipeline and Measurement》

" S5 k+ a( e9 [( w( a& E3 m% u9 h: \
+ h: E) [' b( P- r
原创:许峰

本版积分规则

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

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

Baidu

GMT+8, 2018-12-15 19:52 , Processed in 0.295916 second(s), 31 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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