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

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

 找回密码
 立即注册

扫描二维码登录本站

QQ登录

只需一步,快速开始

查看: 1803|回复: 0

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

[复制链接]
发表于 2018-10-19 10:49:29 | 显示全部楼层 |阅读模式
本帖最后由 adminlily 于 2018-10-19 10:51 编辑 9 S! `- }- K4 l
! g8 ]2 N5 c6 k4 }
本文转自微信公众号:ITILxf.com" target="_blank" class="relatedlink">DevOps咖啡馆 ; 下面为原文。

* l% \% e! h" c' b
. R# }( `4 B+ g6 \  Y4 i
本文总结自Topo Pal于DOES15和DOES16的两个演讲《Bankingon Innovation & DevOps》以及《DevOps at Capital One: Focusing onPipeline and Measurement》

6 _: w5 C2 j5 U1 _
/ S7 O/ E8 u* H! }4 D1 ?6 [" W
背景:Capital One(Capital One Financial Corp. )是一家以投融资及基金管理为基础,集国际贸易、项目开发、投资银行业务为一体的多元化国际企业集团,总部位于美国特拉华州。

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

. C# v/ L! Y; h5 y7 t- j
创始人兼CEO RichFairbank能有如此深刻的认识很不容易

* m8 \' y! _& Y0 i; R1 Q

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

9 k7 [% \- R3 S$ C$ L

9 G* P- m! M: I+ W
他们从一个小的团队开始优化构建流程(其实就是最小版本的Pipeline – 部署流水线),最终把时间从2天缩短到几分钟。于是,这个实践逐渐在CapitalOne蔓延开来,所谓星星之火,可以燎原。
* |" e8 t  C4 J. Z) G4 H
7 L; U4 j: {0 e6 M0 ]
尝到甜头之后,Capital One开始认真思索企业级的DevOps策略。可以看到,这一企业DevOps框架涵盖了从业务、到开发、到运维,最后加入了信息安全策略(对金融业安全监管尤其重要)。他们称其为DevOpsSec。
# E: r3 q% `3 \5 M5 F+ d6 K( {
1.png
Capital One的企业DevOps框架

5 W1 m& r3 \2 L% ?, I1 x& o

) Q& ?/ c: A2 @- G2 S% S
Capital One继续改善流水线的效率。除了开发测试这些,要想真正打通流水线,还需要搞定环境/服务器的搭建和管理。之前新建一个服务器要走完62个步骤,耗时60天,开发团队的抱怨很大。CapitalOne决定:直接上云!2015年的时候还是只有开发和测试等环境在云上,到了2016年,生产环境也放云上了。
' K; k6 O4 v' i) J. j! d3 Z+ L
1.png
Capital One的流水线(Pipeline)
: u9 t, x' e" f% V; M. V. E8 ?" E

2 X7 ^- ?' p4 z: b9 m4 a$ X
另外,Capital One发现开源真的是宝。他们不止大量的采用开源工具(”Open Source First”,非开源系统会被严格审查),还积极加入开源社区。他们发现开源自己的工具可以让代码质量大大提高,并且大大促进了持续体验和持续学习的DevOps文化。

$ E/ k. i$ J9 ~; q  q
1.png

; ^5 v, X5 @/ {$ s3 Y& o' f& F6 Z8 v
Capital One的开源第一(OpenSource First)策略

1 t) a; V4 M% ~1 x* U, @! O

+ w  K5 `% i, P
从2015年的DOSE大会上Topo的介绍,已经可以看到他们经过1年多的努力,已经做到了非常好的成果:

9 n& J" v1 r* Q$ u) \7 ~
, P; q- Q, y4 j  f( A  u
·     代码提交频率:从之前的随意到每天100多次的提交

  P9 \3 I$ V/ `2 ?( _
3 X3 e" I7 m4 N/ Z# [: ?4 W6 o
·     集成频率:从每月1次到每15分钟一次
& e: @# y6 f, _! V) x+ ^

1 U' w$ s5 {' i; T  e
·     部署流程:手工变自动化
# J" c8 O. N5 f6 H

) Y  F" H4 b% ~, {. z0 O
·     部署到QA和和Perf(性能)环境频率:从每月1次每天4次
# {" }. e6 }6 x" F  ~9 z( w
+ x2 m3 k& d( |: y& d7 P
·     部署到生产环境频率:从每月或每个季度1次到到每个迭代1次

2 i% y/ M- O7 X) H6 t  [

6 A# P) a8 m7 i% u4 H. p
·     单元测试覆盖了:从没概念到~90%
+ u0 e2 j2 ]7 d1 R/ }$ c
( {! k0 u) n4 G$ I" u& w( y
2016年继续改进流水线,已经能够做到:

7 o; @9 E' c: u8 b% o
) E2 f, s9 J4 O& N7 O8 V1 O
·     发布到产品环境的频率:从每个Spring一次到每天1+次
5 h  Z1 O+ B, X  S$ z1 z: ?! z

# @" B# n7 U' f& m3 C5 S) j
·     自动发布的应用软件数量达20个
' K. L2 P/ r# K0 _% V* t8 L+ a

" w  m: i2 O, k% p1 L2 ~, H9 Z
·     一个应用软件每天最大的发布次数达到34次

& a6 A) w1 s4 Z# a# h+ G& z) r

3 U) A' `" x/ \6 L9 ]8 w
所以说DevOps的转型可以很快。现在,Capital One很骄傲地宣称自已有了和两年前完全不同的DNA:自己开发软件,所有环境都在云上,微服务,开源,DevOpsSec和持续交付。确实,CapitalOne在DevOps之路上是远远超越了很多同业的。尤其这一旅程也只用了2年多时间。

0 d' \0 e2 O& O1 g5 K  E- O

; \3 D. u+ {  G6 _( p
Capital One认为转型有三个关键中的关键:
1 S& S" T" s0 y6 z$ P
: h4 {* |3 K* d0 ~! m
·     外包转向自建开发团队(外包公司要努力了)
4 i, {7 V& e$ s6 ~) Y. M
' ^5 n# v$ _! H9 V! B* R$ B1 U$ Q
·     功能团队转成产品团队(一个产品团队就像一个多兵种的行动小组)

. m) L$ y4 g, U' p

3 L1 x& z; K1 s7 r; A+ {
·     不再区分Dev,Ops,QA,还是RM(Release  Management),大家在写代码,都是Engineer

# L; ~7 }. Z5 b
1.png
转型的的三个最关键策略/实践
, |( d- U6 E$ Y! [0 d  x- r; a6 A* A

# }5 i8 h2 z# f
总结下Capital One的转型之路:

+ R; v! X% H3 ^% n& v
1.png
7 G3 t; W! Y9 m" F8 @- A3 `
& z% A4 \( p0 t# S4 d
Capital One的DevOps之旅时间表
) P+ z# Y3 P- z* k. G2 j

$ v2 e! T% {/ {0 M$ Q! U; r! ?3 e
从这两个演讲中笔者听到最多的就是流水线,开源和安全。尤其是流水线,Capital One的DevOps转型其实就是围绕着这个核心进行的,不断优化,持续改进,在整个公司推广。

7 W$ g% H' f" G; n9 ]0 A
0 o2 K& v1 B5 [5 L- `! A% E1 i
Capital One总结了要做到真正的流水线,以下15个特性是必须的:
: k. D: d! f9 O
2 q1 ?; r7 R' q$ S) {
1.    版本控制
$ w% J9 ]! _' ~* d0 [, x
4 j- M8 N2 V7 u
2.    最优的分支策略

- a! x' k& K7 K7 X
& O9 e: T8 M. L& V; i/ l0 M
3.    代码静态扫描
1 k; X1 q, G9 w7 k3 |7 c

+ K) U1 k" x# r& S! a
4.    80%以上的单元测试覆盖率
& E4 I5 F" Q) B3 w
; u& o/ u" v3 @, u" p
5.    漏洞(Vulnerability)扫描

8 A1 [/ `5 U+ b8 v

  T: P, v  q& E0 n5 d7 I4 [
6.    开源工具扫描
! d1 |; Q6 B* E6 J

8 H8 B) u+ k+ O8 S
7.    制品(Artifact)版本控制
) ^. |* e7 m" C% p. i
! J1 f+ ~& {% I* B4 _, _# s
8.    环境自动创建
7 ]7 @2 |; x( F, T
: ]& e; J- o" U3 g' H9 \
9.    不可变服务器(Immutable Server )
$ }  o6 Y8 B* t. ]0 f4 X

( x* e& F5 i" D( l) [
10.  集成测试

, @; z# g- n; d; E2 `8 C/ Q
4 C; \& Q& `6 F% g/ _  ]
11.  性能测试
- V% Y4 d. f4 k5 U! ?; ^9 C

9 a, N8 I% N: c% r, z$ K+ e. V" m
12.  每次提交都触发:构建、部署和自动化测试

5 |* b+ O$ M- X6 c! F8 C
( b: R- v- k, o! L3 ^, g3 |0 t
13.  自动化变更请求

. ~% u4 c: ?' p$ g6 m7 r! U
( D5 ^, T9 `/ T* K8 K
14.  零停机发布
8 {9 N( f% k0 q8 v! g! j. i  M3 m3 s
) E1 E5 R/ d/ I* _1 j6 B
15.  功能开关
, [% G! v) [! T+ m$ ?6 u6 f) _1 _
  H5 @" y  ~( V  c" q  Q" u
读者可以对照检验自己项目的Pipeline是否达标。

+ X) q  s) y. H. {( |

- q$ n8 X8 M% y$ _- `
我们拭目以待Capital One在2017年在DevOps的转型之旅上会给大家带来什么样的惊喜。

! q$ i) [7 {- y

5 e' h' u( B/ p( A- e. \9 d3 q
原创:DevOps咖啡馆
% ?! O9 M& |3 _- H& f; @' e




上一篇:敏捷文化--我们在实施DevOps时遇到的挑战
下一篇:了解「持续交付」和「DevOps」的前世今生
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

参加 ITIL 4 基础和专家认证、长河ITIL实战沙盘、DevOps基础级认证、ITSS服务经理认证报名
本站关键字: ITIL| ITSM| ISO20000| ITIL培训| ITIL认证| ITIL考试| ITSS| ITSS培训| ITSS认证| IT运维管理| DevOps| DevOps培训| DevOps认证| itop| itil4| sre| 开源ITSM软件

QQ|ITIL先锋论坛 ( 粤ICP备11099876号 )|appname

Baidu

GMT+8, 2022-5-23 05:06 , Processed in 0.118408 second(s), 31 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

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