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

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

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

扫描二维码登录本站

QQ登录

只需一步,快速开始

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

独家:DevOps在阿里巴巴的落地实践玩法及思路解析

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

参加活动:0

组织活动:0

发表于 2018-11-5 10:57:18 | 显示全部楼层 |阅读模式 来自- 广东广州
本帖最后由 adminlily 于 2018-11-5 11:01 编辑
1 x+ q  b$ p$ d! B' J" b2 B% \, |$ ^# {1 s: Y' l/ U% Y
互联网时代,随着业务的迅猛发展,企业越来越希望通过实施DevOps来提升研发、运维等IT部门的效率,支撑业务发展。互联网企业如何利用工具让DevOps落地?传统企业如何提升研发效能,更快速的互联网化?这些都是企业面临的问题。! I9 `5 _! _5 D

4 N; L( ~( [5 K7 C0 ^4 a" E& z9 Y( n

' l2 Q4 f  g% B0 O+ i! n
7月26日,阿里巴巴持续集成持续交付平台——云效,在深圳阿里中心举办了一场“业务为王时代,DevOps怎么玩?”主题沙龙,由阿里巴巴技术专家从云效新概念的提出,到阿里巴巴DevOps落地实践、到企业如何利用云效进行高效研发、再到阿里巴巴CI/CD之分层自动化,帮助参会者从理念、策略、实践、效果等方面,全面深入的了解DevOps玩法,以及具体如何落地的思路。

: ^0 m* U& J7 w) B
4 q$ {5 D$ {5 V9 W9 B* t
云效:互联网+时代的企业级研发效能提升服务

% C- D* @' Y8 W- C7 i
1 M, L$ \0 b, K
云效是互联网业务下催生的研发效能平台,2012年,云效孵化自阿里巴巴B2B事业群,为阿里内部提供研发效能服务;2013年,云效真正实现持续集成持续交付并落地实施; 2015年底,云效与首家互联网保险公司众安保险合作,开启商业化第一步,后来正式为互联网+企业提供服务。
$ h0 U+ g/ [" n1 ?

/ E7 Q: k9 a6 {- l
云效经过长期落地实践,沉淀出一套含测试策略、研发策略的工具产品,开始更好的支撑传统企业的互联网化。本次沙龙上,云效负责人章屹正式提出:“互联网+时代的企业级研发效能提升服务”新概念,为传统企业赋能!目前已经覆盖新零售、地产、券商、银行、保险等行业,为顾家家居、李锦记、世联行、国泰君安、光大银行、天弘基金等传统企业服务。

9 y) I$ t' Z' N, I, l8 K3 W" y
0 w+ y( f3 Z* S4 |
云效2.0特色
! j* c: d4 l$ h. l4 V/ x! T
8 b, r/ l, l3 F* V) ]& o7 F
  • 流式实时交付:集成验证速度匹配项目研发速度,为业务加速,改变传统周期性交付模式;

    ) p: h6 t  v5 ^1 h8 @5 J# ?( P6 z
2 \4 e: \! p0 _# n
& y. Z4 a- p  ]
  • 自动化质量保证:构建自动化质量保证体系,提升研发质量,为质量护航,改变传统手工技术质量保证体系;

    3 u' w# f7 s$ A, ]6 A" I
" H& t+ V2 r( O: @+ O7 I
  P4 W. `; X; E. ?0 c9 p! h
  • 柔性化管理:大数据支撑的柔性化研发技术管理,管理策略可私有定制,改变传统团队统一技术管理模式。
    8 o9 F) V+ c/ h; R
7 K: o  s, s* C9 |- ^5 K

6 O# X4 g7 g. @! ?% e  a" y
云效2.0策略

9 E: w' y3 B4 o7 x; s
0 t; L& E2 G# I- Q; n' f
云效拥抱传统企业,根据传统企业研发团队规模大小、研发人员技能高低等,进行定制化实施策略,赋能技术团队,使业务无线可能。
3 T8 T2 C7 D) j0 n8 j1 S4 W

" `5 \  N' A9 c6 ~$ C  G3 F' C
1.png
1.png
; y" O9 r2 P& z+ z" I6 u( s1 R
落地效果
6 P/ w! R$ j# A! k* Q( g1 Y

' }" j) J8 D( Q$ o5 I, {4 X
在合作中,云效为众安保险部署4个月时间,测试环境和持续集成累计为众安提效232人日;云效为五矿电商部署测试环境累计超过6万次,UI自动化用例积累数量超过600个,实现了五矿业务场景的自动化的全面覆盖。
, A8 G8 H9 B0 \/ B4 [9 f* Q7 a

# F9 r: b) u: h" k; ?
阿里巴巴DevOps落地实践
" @: U5 U; y4 N

8 l$ n/ C1 B3 j0 O5 ]
章屹:阿里巴巴高级技术专家。清华大学电子工程系硕士毕业,十多年从事软件的测试、开发、系统设计工作。现为阿里巴巴高级技术专家,工程效能部技术负责人,负责云效的技术规划和建设工作。

. N( {# }# \" A. P" q
: p/ H8 j/ @, {7 X
在阿里巴巴内部推行开发自测、开发自运维的环境下,阿里巴巴DevOps应运而生。阿里巴巴DevOps面临这几个问题:1.开发的测试和运维能力培养问题;2.开发自测自运维带来的效率和质量问题;3.DevOps的实施进度问题;4.测试团队和运维团队的未来发展问题;5.技术的发展(微服务、容器化)带来的挑战。
' H" {5 v4 \& m0 I6 K* [

: V9 I$ }% D& a) |
为了解决DevOps落地问题,云效跟开发、测试、运维团队一起,为开发服务,让他们自运维、自测,提升效率。

/ f5 L2 y! n; `) E9 h5 ~) j
/ C' E5 e' b# c: w' q, t
DevOps实施策略

8 M9 t  q' T) F6 X  R. Z0 e' ~
" Q5 ]0 H4 i" P% C
1.png
1.png
! h. d2 D* h+ ?* @1 R' a  @
如何赋能开发自运维、自测?

4 U5 Z& H0 M5 |6 T# x

& K4 o. ]' }- a2 X+ n2 V( _
在赋能开发自运维、自测过程中,工具的价值最为凸显。

/ Y/ d& ~( L# ]
7 S8 c( @- z1 r8 i0 u0 Q
  • 传统解决方案:大集成环境;固定发布时间(每周一次、两周一次、一年四次……);

    " ?+ b0 u8 i( d1 N' A

0 K2 |* x& T5 {

+ E/ @3 O) S: e1 R+ e  O8 J& R
  • 云效持续交付解决方案:所有应用24小时随时提测并发布,无发布窗口限制;预发布集成环境,半小时完成自动化并无人值守。
    8 K) N3 H5 j' E- c0 [8 X
$ g7 d5 D' T5 D# c" m8 X& @

& @( q( _5 |$ g( Z0 J( g: h
DevOps实施结果

6 z7 q2 }3 ^1 n$ s0 d, {( _* v

0 m5 Y9 d3 P+ E' J) R, _
开发自运维之后,研发效率大幅提升:日均节省资源人数增长,集成验证发布耗时减少,专业性团队(性能、压测等)队伍在增长;质量得到保证:应用运维故障个数大幅下降;研发模式创新:自动化Case数量增加,50%项目小需求研发自测,测试不接手, 测试全监控。
& h3 A+ N- ^0 K$ Y

- G% x) r$ q4 F# U; T1 o& j4 a. v
企业如何利用云效进行高效研发?
! k4 i1 }1 h6 n4 M; a4 N* v
8 @9 v$ m. v9 I# `* ~9 n( N8 s5 N
苗欣:阿里资深研发工程师。主要负责云效平台解决方案服务输出。在自动化测试技术、持续集成等方面拥有多年实践经验,拥有多项技术专利。
& d5 X, u$ B8 ~  [6 }5 y" K
2 u+ }1 _; P: B9 N0 k) r$ ~
云效,源于内部,是阿里巴巴技术部实现持续交付的统一协同工作平台,实现开发测试全流程自动化,支撑项目的持续集成与持续交付。目前客户覆盖银行、保险、券商、电商、新零售等。
2 p7 h: F4 m5 ~+ r& N7 }' o* N

. L$ s& u! ~  w- S
一个项目如何在云效实现持续集成?

( m; R1 n4 d+ Z3 k1 U
1 w4 m: c! n" A
' ]1 s. Z/ s8 s( O* v
1.png
7 w' m! i$ i" `- D- k
视频演示链接:(进入页面后选择左侧帮助视频栏--云效研发整体流程视频)
http://ali-aegis.aliyun.com/help/help.html?spm=0.0.0.0.W35KAx
+ x; w5 q4 c6 X' v2 t0 o0 Z. L- Y6 p
% ]% b# @5 n2 p' \8 Q  t4 I
视频解读:
$ H  w( ~2 `0 K& ~

8 }' R0 H" k* u- h7 y: G' I- F
项目准备阶段:我们评审好项目需求,初步完成项目的资源评估,以及确定项目的交付日期后,即可在云效配置管理系统创建项目,填写项目成员,申请应用代码分支。云效提供配置管理功能,同时开放接口,支持对接外部的配管系统。
: q7 a6 L3 m  V" p  f2 [$ J0 b
. `' d; J+ r; X  ^& R  \" `2 m# p' L
开发阶段:开发在本机编写代码,每次代码CI后,云效单测集成系统会自动检测代码变更,几分钟后收到邮件提醒,在邮件中,可以看到单测用例,静态扫描等信息,也可点击项目或者数字链接到云效单测集成系统,在系统上我们可以看到每次代码提交运行的详细情况。
4 ?+ I8 g( [0 y1 q/ F' r

5 A( X" @% X3 W( t/ T0 }
测试准备阶段(含开发自测):开发在编写代码的同时,测试也进入测试准备阶段。测试在云效平台可以编写UI、接口、以及手工测试用例,用例编写完成后,还需要准备一些测试数据,在云效的数据银行提供了丰富的测试数据生成方式,我们可以根据配置单,快速生成所需要的测试数据。
2 T8 s- t& \$ }
  j, @9 b1 @3 T4 l7 v
测试阶段(环境部署、接口、UI、手工用例测试):开发自测通过后,项目进入测试阶段。开发在项目中打一个测试包,打开环境管理,点击申请,这时云效平台会自动申请一台云服务器,选出刚打出来的测试部署包,点击部署,测试环境的部署就自动开始了。在部署过程中,可以实时监控部署日志,获取Hosts绑定信息。测试在平台响应“接手测试”,在项目中运行写好的接口测试用例,运行UI用例,以及在手工用例系统中,运行功能用例,及时提交发现的缺陷。开发在收到缺陷邮件提醒后,可以在平台修复缺陷。接口、UI、功能测试都完成后,测试可以在平台响应功能“测试通过”。

5 M# I! o0 Y; @$ l

1 j: Z! A1 m5 q( `) C9 o: [3 A
集成测试阶段:开发在平台提交集成,项目进入集成队列,平台自动从应用的主干拉取最新的release分支,将项目中的分支和release分支合并,打出集成测试包,部署到集成测试环境,触发集成自动化脚本运行。项目成员可以在集成环境进行测试验证,验证通过后,平台上响应“验证通过”。配管将发布包部署到正式环境,触发代码合并主干。这样,就在云效平台上完成了一个项目持续集成过程。

9 W9 R3 i: L/ Z9 ~0 }
& m( U4 d9 }" b' h; q
阿里巴巴CI/CD之分层自动化
6 u: `5 j* x% J( _; B
. g8 e$ N* J2 G7 b
金桐:阿里巴巴产品专家。从事多年互联网系统的研发和测试工作,现在主要负责云效分层自动化测试的产品设计。

1 j, _8 D* n! r" f7 z  G

8 N0 w4 D+ A. q# G: R- z$ }
手工测试效率低下,发布频繁,回归量大、成本高,重复劳动很枯燥。自动化测试,就是用机器执行替代测试手工操作的一种测试方法,能够帮助测试人员从重复、枯燥的手工测试中解放出来,从而节省人力、时间或硬件资源。节约劳力为(N-1)M,M为此项工作单次需要投入的资源,N为此项工作需要重复工作的次数。

% I/ x/ o, l8 {; C6 b& V# f

- ~' Y; S# U/ e" _9 X9 B' n
如果自动化这么好,为什么大家没有全部做自动化?因为自动化测试也是有烦恼的。主要表现在:成本高(代码能力、自动化框架、IDE 准备、调度、多环境),效果差(浏览器影响、执行机影响、依赖环境影响、脚本健壮性不强),覆盖率低(框架不万能、上下层难全、接口参数排列多),及时性低(代码变更频繁、遗漏的变更、项目结束才发现)。
5 E$ R7 ^, b% K% _& z% t# \* l+ S
# n( r9 ~( m: V; R
为了降低成本,提高准确性,就要考虑降低人员成本、制作成本、运维成本、运行成本,同时扩大覆盖率、数据独立、提供好的方法和脚本。当然,就需要实行分层自动化。
- Z2 R/ {/ ^& P! d4 p$ D+ ]7 Z( ?
3 G2 m  ]$ _0 i* B5 e2 u. Q* W
在理解分层自动化之前,我们先看自动化测试金字塔,其中UI代表页面级系统测试,service代表服务业务测试(接口测试),unit代表单元测试。金字塔越高,表示需要投入的精力和工作量越大。分层自动化测试倡导的就是,将系统分层,根据层次特点用合适的自动化方法进行测试的一种测试策略。
3 M$ E) Z! P; B8 k
7 V- c( r5 f$ z5 q- K# q+ v. u7 r
' g. W# q) w7 o; W
1.png
阿里巴巴分层自动化在经过策略的沉淀调整后,又经历了长期的工具与流程实践,并从自动化成本和效果这两个点上突破,进行分层自动化工具和项目流程的双重革命,最终达到业内领先的研发测试比。在阿里实践分层自动化需要很多分层工具,包括配置管理Aton、UI测试的AUI、单元测试的Amon、环境管理的Aenv、接口测试SAT、性能测试Perf、集成自动化Pre等。
2 o; p- f0 b$ ~4 O( [3 h# A
1 x' ?; M2 T9 g3 @5 Z1 r
这里来介绍几个革命性工具:
) V6 O  I8 Z* g  W/ g( Q8 x

& V. L+ w. J. I  q
UI自动化—AUI
* ~' R- w  a) O/ r
9 {4 d6 f$ r1 q: E/ Q8 k8 a
创新型web-ui自动化测试框架,无需安装复杂底层环境和 IDE

) R% z) x0 N* X; j2 d3 E" v

& O" q0 W' h. ^
创建和维护脚本,都无需接触代码,全部为 Web 页面可视化使用
+ p* x- r" a! S

  ?( `! n. [4 P7 y0 q4 p" M9 i% e. ]
支持本地回放,支持云端执行,解放机器,释放双手
" M0 U( ]; w% L# O" ~
/ K9 S1 k1 I& C. s; e5 n
支持项目持续集成,线上监控等各种复杂场景
) o! q: j. K6 ?. Q0 O; V$ M2 e. k/ j
$ Q  s5 R: d( I. P
接口自动化—SAT
/ x7 u/ f: i7 [9 e. o$ N) K( x) O

. q( \+ a) w( z3 I: q
可视化的接口测试,无需编写代码

1 u, S1 d: n# Z8 q4 l7 p0 }

* k( P: i: Z2 q) _! z8 O9 E
支持普通接口调试和复杂后台交互的接口测试的用例沉淀
* o4 \2 e5 c( m" e
" K, k+ W( ^3 ^! F
支持主干,项目用例的沉淀与回归

3 _9 j1 Q. D; |; S  C9 s0 T& ~
) o& R' l2 m. n1 g( k
支持项目持续集成

$ q( [. C) J% m7 r
( m% F. [7 }  P+ F0 l7 q, n3 Q
性能压测—Perf
! f( J' x* x2 u- y- S! m

7 b# r  T7 ?7 j. I7 t
基于 Jmeter 的性能压测平台
/ e; \7 S9 h( ?# a+ |& d
; H6 W) m8 e- s- [" Q
集脚本,场景,压测,监控和报表为一体,可快速施压的平台
5 Q# _: B" T9 Z+ I& ^

9 _! P5 W- `# m2 Z8 R/ q0 L
支持多种协议,适合 http,service 接口等测试
+ Y9 y3 t  h8 a/ U' `, A. |
  K8 G  K1 o' r# b3 W/ _/ c& }: ~0 D
比 LoadRunner 易上手,更轻量

: s9 N, h: f' D8 [6 M+ j
0 @  }+ N9 i) K) T0 f( f7 A% e/ h
单元测试—Amon

7 v3 x' q" z. [( p& q

5 i9 P" U" ?2 R* g& i! T% K/ n
可对代码主干及各项目分支进行单测集成
: h0 w  }0 A3 l+ G' s3 x7 M# r
. f5 T# q9 m5 J; v  F2 w
对有代码变更的项目分支自定义频率集成
2 c6 ~8 x9 g( q& S$ `
6 h& w/ g) O3 G# t  a3 V8 m
对有代码变更的应用主干自定义频率集成
5 e( T0 z) ]7 h
) e$ u7 G) B! Z
拥有单测用例结果、覆盖率结果、静态扫描结果、sonar 代码分析等质量数据

' }5 T# E; c! q0 }5 o

' \' G6 ]5 Z: ~- W# C' c
集成自动化—Pre
8 u  h# f0 X! z7 `7 K

) U& H, z* K. w
支持多种自动化框架接入
* f2 D: u9 b0 O3 V" _. B

0 J3 v; B' p' v7 d* b
支持项目集成相关所有自动化的自动统一触发
2 _( X/ L: i& z* G. g

! e# V9 V+ C# @9 r, L: N% b8 s: Y% `
支持多种自动化框架不同环境触发
/ ]1 X2 G5 r7 a6 ^6 m
' b; m4 d# K1 J7 P5 k2 Q
支持日常持续集成
) ~- q7 d5 X% L6 A7 i- L2 b5 p
1 Q" i0 a, n( r
支持自动化失败的原因汇总与总结
/ P3 V2 Z$ Y; a& R
) Y4 E* Y1 ?' r; L" H- L6 n4 B
阿里分层自动化实践带来了很有意义的成果,在阿里内部,大幅提高了研发测试比,减少了重复劳动带来的加班,同时带动了更多高效工具的诞生;在研发方面,单测成本降低了,覆盖率可视化了,自测有保障了,故障降低了;在测试方面,降低了测试要求,增加了工作成就感;对云效客户来说,给企业赋能,提高了研发测试效率。

8 i* C* Z& |# \: z& y
; N5 {. ~6 H3 S0 C+ @. w
原创:持续交付平台
# H3 c$ t& B: @+ L* U* {4 N) r7 J: Q

本版积分规则

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

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

Baidu

GMT+8, 2019-4-25 00:21 , Processed in 0.316231 second(s), 29 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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