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

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

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

扫描二维码登录本站

QQ登录

只需一步,快速开始

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

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

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

参加活动:0

组织活动:0

发表于 2018-10-19 10:49:29 | 显示全部楼层 |阅读模式 来自- 广东广州
本帖最后由 adminlily 于 2018-10-19 10:51 编辑
4 h% g# Z" ^) x9 J
: Z/ n4 u, q# m8 C
本文转自微信公众号:DevOps咖啡馆 ; 下面为原文。

6 Q1 F) \9 B' Z1 |6 A

6 J; j( q" \9 j4 f* `/ M* q
本文总结自Topo Pal于DOES15和DOES16的两个演讲《Bankingon Innovation & DevOps》以及《DevOps at Capital One: Focusing onPipeline and Measurement》

% S$ i5 v+ a5 Y) }0 M, X
3 I. A7 \! B# i5 x- n8 p! G
背景:Capital One(Capital One Financial Corp. )是一家以投融资及基金管理为基础,集国际贸易、项目开发、投资银行业务为一体的多元化国际企业集团,总部位于美国特拉华州。
5 \2 c) i' f3 W8 Q6 G$ J6 u
! F! g4 l; u% v" a% Z
DevOps缘起:说起来这家成立只有20多年历史的银行在美国银行业里绝对算是个初创公司。公司一直都是以信息技术的采用见长,尤其是在数据分析、数据科学方面,但在软件开发方面之前都是采用外包的方式,并没有被定义成公司的核心业务。但银行业的数字化趋势,尤其是手机上的交易量已经远远超越了传统的交易渠道,促使他们开始把软件开发作为重中之重来对待。
1.png

7 \* d0 U; b4 J7 l" Z* X
创始人兼CEO RichFairbank能有如此深刻的认识很不容易
! L# e5 v/ R9 f1 J6 N1 o' n# Z
3 k5 `0 k1 j9 q1 c
痛点:Capital One的DevOps之旅开始于2014年。当时,CapitalOne的软件开发实践和很多传统做法没有什么不同:大量外包,瀑布模型,季度发布,手工流程,变更请求。和上一期介绍的KeyBank从大事故而痛定思痛不同,他们是从一个小问题触发反思的。在某次代码检查会上,大家发现一个测试失败是由于某个XML文件里的tag不配备造成的。按理说,这么小的问题改了再提交就可以了。但是因为开发工作是由另外一家公司负责,他们需要发起变更请求,而且代码修改后的构建流程(编译、测试、部署等)就需要至少2天时间。这个小小的问题让CapitalOne的技术团队开始反思他们的构建流程,并决定从这里下手。
! l% U! N* N7 G+ G- a
# T( W" x; j# m2 \" @; w1 w7 N& v
他们从一个小的团队开始优化构建流程(其实就是最小版本的Pipeline – 部署流水线),最终把时间从2天缩短到几分钟。于是,这个实践逐渐在CapitalOne蔓延开来,所谓星星之火,可以燎原。

4 E3 d: S4 z  o0 I1 Y
* W5 v: Q1 t( d/ o1 T7 i
尝到甜头之后,Capital One开始认真思索企业级的DevOps策略。可以看到,这一企业DevOps框架涵盖了从业务、到开发、到运维,最后加入了信息安全策略(对金融业安全监管尤其重要)。他们称其为DevOpsSec。

/ F0 L0 {$ d2 @, \
1.png
Capital One的企业DevOps框架

1 ^# M" @5 o& _# i" B. O
7 t6 k2 b2 w6 `
Capital One继续改善流水线的效率。除了开发测试这些,要想真正打通流水线,还需要搞定环境/服务器的搭建和管理。之前新建一个服务器要走完62个步骤,耗时60天,开发团队的抱怨很大。CapitalOne决定:直接上云!2015年的时候还是只有开发和测试等环境在云上,到了2016年,生产环境也放云上了。
; ?$ p% r9 v- q' f7 `( z
1.png
Capital One的流水线(Pipeline)

/ P9 ?, G$ Q9 x3 m

+ `6 I5 E% M4 J. q8 Q, c8 H1 f
另外,Capital One发现开源真的是宝。他们不止大量的采用开源工具(”Open Source First”,非开源系统会被严格审查),还积极加入开源社区。他们发现开源自己的工具可以让代码质量大大提高,并且大大促进了持续体验和持续学习的DevOps文化。
6 M6 m+ O7 P; b8 A5 y' E
1.png
. e4 b- P" B) l4 p- k
Capital One的开源第一(OpenSource First)策略
& {  Q+ L: ^: |

7 c7 Y* V' z6 @- J' R+ X2 x' f- m
从2015年的DOSE大会上Topo的介绍,已经可以看到他们经过1年多的努力,已经做到了非常好的成果:

0 |* m8 S; N) j

( H8 N( ?- \5 a! h! m5 l' ^
·     代码提交频率:从之前的随意到每天100多次的提交
6 ~3 a; L) t* w0 P

; f( J5 r9 c# Y
·     集成频率:从每月1次到每15分钟一次

; X4 n& |0 ^5 D1 v

& Z6 C* J0 W8 `8 f1 q# |  p
·     部署流程:手工变自动化
5 P. t. E8 y" d3 n7 }

( r2 b, T" U. n' r8 X+ F: D3 E) D
·     部署到QA和和Perf(性能)环境频率:从每月1次每天4次
6 ^$ T% r. u4 e6 Q9 X( J
. y' d& u- O$ K0 r; ^8 l3 n( @
·     部署到生产环境频率:从每月或每个季度1次到到每个迭代1次

( ~" v( w9 h- e& r1 P
) P8 p1 B* M1 z# X
·     单元测试覆盖了:从没概念到~90%

  }6 V) a% S) b/ r5 N, i

0 @2 f2 c$ g7 X& E& P
2016年继续改进流水线,已经能够做到:
. Y* S. x& I* D
7 d' O; f1 Y% h3 \+ O- k
·     发布到产品环境的频率:从每个Spring一次到每天1+次

9 y. K! x' X/ d9 S" e

0 P- _! Z* R* L' X
·     自动发布的应用软件数量达20个

  S, z6 b& ~0 d+ P+ Y

, r  ]: }0 I6 P+ p
·     一个应用软件每天最大的发布次数达到34次

8 u, i0 [% I% b) j( E1 q

8 j2 |$ q! _5 U. G# L. u9 y8 L* P6 R
所以说DevOps的转型可以很快。现在,Capital One很骄傲地宣称自已有了和两年前完全不同的DNA:自己开发软件,所有环境都在云上,微服务,开源,DevOpsSec和持续交付。确实,CapitalOne在DevOps之路上是远远超越了很多同业的。尤其这一旅程也只用了2年多时间。
0 h) B3 ^; P" i$ I- S

6 I) x5 z& M5 B8 o& a' B
Capital One认为转型有三个关键中的关键:
  t* z  y6 w$ d; U4 C
% ?8 z: T. @6 I* N9 X8 S
·     外包转向自建开发团队(外包公司要努力了)

" q: A! V# T, l; ~+ z4 l. Q

8 X1 R9 S! m/ v7 \3 d" w
·     功能团队转成产品团队(一个产品团队就像一个多兵种的行动小组)

0 o! G% y4 d5 A3 R8 {* s

3 B1 i4 E; N" L! B
·     不再区分Dev,Ops,QA,还是RM(Release  Management),大家在写代码,都是Engineer

% {0 l; P, y' W& l- |3 A/ i
1.png
转型的的三个最关键策略/实践
& [6 Y% R* i) K$ p
# c+ d' r5 J3 c, X( f& W
总结下Capital One的转型之路:

: Z- Y9 E1 z6 ?& ]
1.png

$ a% M; }# ]# _& l" g6 c

: g# H" ]/ P  {: G! @: U
Capital One的DevOps之旅时间表

+ ]' `8 R6 x  _( X) ]) V( m
! c2 A* U4 l& `  E" i0 [+ P3 g
从这两个演讲中笔者听到最多的就是流水线,开源和安全。尤其是流水线,Capital One的DevOps转型其实就是围绕着这个核心进行的,不断优化,持续改进,在整个公司推广。

6 ?; M- E+ ?# k. A; Q$ I( Y
- I4 t  P9 v/ J6 U% [1 k( i
Capital One总结了要做到真正的流水线,以下15个特性是必须的:

+ d% Y5 }( G9 K3 b  p; n

% r7 w) a, ~  Q2 g% w
1.    版本控制
, ]% ?: x! t, s8 v; _
4 I  X! @# E0 f3 ]* t2 i  [) H; z
2.    最优的分支策略
% ]& G" r, S3 p/ U% T* U8 E

$ ]1 U" H/ S; l8 @
3.    代码静态扫描
' w- N$ m$ F& S% i3 H% b& U; S

# e% H9 \3 ?) |5 e7 `
4.    80%以上的单元测试覆盖率
) q5 ?) B* k7 z4 k
+ f" N  D, Z1 Z; q! q
5.    漏洞(Vulnerability)扫描

# Y5 u$ H9 X: j; c/ R

, j/ l1 H7 c9 F" s8 Y
6.    开源工具扫描
& L; M! o  G, v0 k7 K9 b
0 D# W/ S6 I- L- [
7.    制品(Artifact)版本控制
1 B& R+ t0 N; D4 C
9 m* H6 M( G3 _- v. X
8.    环境自动创建
* g; w* z6 M5 N  Y, Z1 _! n
; r! [( ?2 z' `2 A% a  t
9.    不可变服务器(Immutable Server )

) K& A% Y" d9 n1 g% x/ j

8 g$ A* I! Y+ y0 t
10.  集成测试

1 J  X( C$ q& Q  h% d, `" k

/ K3 G8 C/ z' {( X
11.  性能测试
, O" e& q+ q3 p0 K) r9 ?5 n
7 y& d5 `0 r7 L1 Y$ i" F" X
12.  每次提交都触发:构建、部署和自动化测试

4 ]( ?1 ~  t& g6 K, E! J
' V% n% O& w8 ?3 u6 X
13.  自动化变更请求

4 C% d- O0 X( d$ S
! Y& u, U9 k1 G+ N8 \6 g
14.  零停机发布

4 r* C) G# B& O/ U, T
2 C: ]5 w1 b5 r' b/ A
15.  功能开关

2 q& W4 D/ P( j

7 m) B( R$ \# E" J' @* P+ X3 @
读者可以对照检验自己项目的Pipeline是否达标。
- g. V2 {" s0 L9 N( R3 {- W# u* h
# s* P( Y% [" s
我们拭目以待Capital One在2017年在DevOps的转型之旅上会给大家带来什么样的惊喜。
0 w$ @1 {  L$ D1 a1 t" P* G8 \. }

- p$ g( I0 ~) a
原创:DevOps咖啡馆
5 _' t8 P9 l5 m/ c# Q2 p( K

本版积分规则

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

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

Baidu

GMT+8, 2019-2-24 13:45 , Processed in 0.204192 second(s), 29 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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