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

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

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

扫描二维码登录本站

QQ登录

只需一步,快速开始

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

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

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

参加活动:0

组织活动:0

发表于 2018-11-5 10:57:18 | 显示全部楼层 |阅读模式 来自- 广东广州
本帖最后由 adminlily 于 2018-11-5 11:01 编辑 " h+ D6 C, t: S

# k: Y! S' A( ^
互联网时代,随着业务的迅猛发展,企业越来越希望通过实施DevOps来提升研发、运维等IT部门的效率,支撑业务发展。互联网企业如何利用工具让DevOps落地?传统企业如何提升研发效能,更快速的互联网化?这些都是企业面临的问题。
; B) C5 B$ p. C! a( d

: T( x( H; Z' B0 o

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

( M% I% X$ {+ l" e/ H! x4 }

( u% B9 k1 `& w+ A
云效:互联网+时代的企业级研发效能提升服务

2 J* m; ~, u, W% T0 f( o

  c( m5 O& T$ A* K. W8 u
云效是互联网业务下催生的研发效能平台,2012年,云效孵化自阿里巴巴B2B事业群,为阿里内部提供研发效能服务;2013年,云效真正实现持续集成持续交付并落地实施; 2015年底,云效与首家互联网保险公司众安保险合作,开启商业化第一步,后来正式为互联网+企业提供服务。

3 J* {& b" Z" T) a& ~* ]0 g) Q

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

4 ^. L0 `% t; E, K4 r& x9 X

+ A% D" }2 c/ Q
云效2.0特色
0 w* U- h8 `  o5 o  r+ a7 D; C$ S

& @/ G+ y+ z, B7 H3 F2 ?0 v
  • 流式实时交付:集成验证速度匹配项目研发速度,为业务加速,改变传统周期性交付模式;
    ; y, ]/ g0 I6 Q# S3 T2 W
) c, @$ U6 [8 [4 C, R
9 \. m. [( S1 H. ?3 ?) \0 G
  • 自动化质量保证:构建自动化质量保证体系,提升研发质量,为质量护航,改变传统手工技术质量保证体系;
    " u1 j9 l7 ^9 ]% _
' Y1 t$ O- r8 n
6 X; ~6 \6 b9 \
  • 柔性化管理:大数据支撑的柔性化研发技术管理,管理策略可私有定制,改变传统团队统一技术管理模式。

    # P) Z$ ]: X# t5 }2 }3 o, g* h

1 p3 b- h6 v/ o

0 [/ ]1 l* j; `5 y
云效2.0策略
: f* V* u5 ~" O  l; X8 R
& w! m4 h0 j# u- u' ^4 o
云效拥抱传统企业,根据传统企业研发团队规模大小、研发人员技能高低等,进行定制化实施策略,赋能技术团队,使业务无线可能。
# ?/ }# T8 I# |& i+ h5 i9 M
5 T  Y% J4 o$ I1 `; v% Z
1.png
1.png

( i' `* I0 v$ p. w1 ]' F: j; r
落地效果
: _; ~, |% _! x+ h

, V: G# j) g8 X
在合作中,云效为众安保险部署4个月时间,测试环境和持续集成累计为众安提效232人日;云效为五矿电商部署测试环境累计超过6万次,UI自动化用例积累数量超过600个,实现了五矿业务场景的自动化的全面覆盖。

! r6 g8 B9 b. G; K- g7 v/ b( H, N

: d& ]+ R: E# B  @/ Z, ^
阿里巴巴DevOps落地实践
3 z% `. T) E$ U/ B  `

" l; Y, D0 P: [, o2 {
章屹:阿里巴巴高级技术专家。清华大学电子工程系硕士毕业,十多年从事软件的测试、开发、系统设计工作。现为阿里巴巴高级技术专家,工程效能部技术负责人,负责云效的技术规划和建设工作。
! q2 `0 ?/ [' f5 {1 A! K' ^

( i( F1 ?" I+ Z) [
在阿里巴巴内部推行开发自测、开发自运维的环境下,阿里巴巴DevOps应运而生。阿里巴巴DevOps面临这几个问题:1.开发的测试和运维能力培养问题;2.开发自测自运维带来的效率和质量问题;3.DevOps的实施进度问题;4.测试团队和运维团队的未来发展问题;5.技术的发展(微服务、容器化)带来的挑战。
' t1 f3 `& W, h0 i* i

) }" f6 x( {( U& a1 h
为了解决DevOps落地问题,云效跟开发、测试、运维团队一起,为开发服务,让他们自运维、自测,提升效率。

% o. a" Q- ?1 k+ U" I. S

  g+ Q6 d* a+ l" [  d
DevOps实施策略
; j- c$ g, c& m: U/ f! O7 L0 R6 B
. u% k3 c/ L/ S; M+ q: K
1.png
1.png

' {( F' b4 f/ c
如何赋能开发自运维、自测?
$ b1 c. k; j  |8 n
' F0 P+ Q5 P6 N) D" V. q: [
在赋能开发自运维、自测过程中,工具的价值最为凸显。
" X9 X- v, ?- n- G4 a$ r1 l

3 a4 v4 [) v/ J4 e( I% T/ H% \
  • 传统解决方案:大集成环境;固定发布时间(每周一次、两周一次、一年四次……);

    + U$ p5 Z6 s$ |. n, [( [- A. Q* _9 g8 n" ~
5 F+ m( B0 s. M( C

$ g( i4 x. I& I" G0 Y: F  i8 `
  • 云效持续交付解决方案:所有应用24小时随时提测并发布,无发布窗口限制;预发布集成环境,半小时完成自动化并无人值守。
    , }$ n, N  }* h5 ^9 y; s
$ x& I$ O' H+ {  q; A+ ?  p; `

% `/ |: M! o( L) i* |$ G) Z
DevOps实施结果

3 w5 i# ^; j7 W# \& u" Y# W
. s4 M7 y9 Z2 N
开发自运维之后,研发效率大幅提升:日均节省资源人数增长,集成验证发布耗时减少,专业性团队(性能、压测等)队伍在增长;质量得到保证:应用运维故障个数大幅下降;研发模式创新:自动化Case数量增加,50%项目小需求研发自测,测试不接手, 测试全监控。
7 w! E" Y5 S9 T2 q/ k
. |/ ^# D2 T9 M* O# H8 a! B
企业如何利用云效进行高效研发?
9 w% A& m, a- M2 C+ n
+ ?3 A: i$ ]* n1 Q$ ]4 _2 p5 }
苗欣:阿里资深研发工程师。主要负责云效平台解决方案服务输出。在自动化测试技术、持续集成等方面拥有多年实践经验,拥有多项技术专利。

; U( @& |( P( ~
# A, W# @- z3 g$ c( |$ v
云效,源于内部,是阿里巴巴技术部实现持续交付的统一协同工作平台,实现开发测试全流程自动化,支撑项目的持续集成与持续交付。目前客户覆盖银行、保险、券商、电商、新零售等。

1 ~$ M9 R7 z% R3 J7 h; C# U: z

, M: O  k8 @; ]- ?  V8 Y
一个项目如何在云效实现持续集成?
7 j, K+ Y( a. e5 |+ Y
" o5 |9 E7 H  {& [) w4 i
/ [. I7 P: S& I4 ]9 E, A
1.png

8 z' R  Q, U0 K, _2 o* @" O
视频演示链接:(进入页面后选择左侧帮助视频栏--云效研发整体流程视频)
http://ali-aegis.aliyun.com/help/help.html?spm=0.0.0.0.W35KAx

% _4 u6 t# q' {
# m' h% \" e, Q9 M+ V# L- W
视频解读:

( _' h" E* L, Z9 w2 @

4 B4 u3 B. h: l( t1 b  B
项目准备阶段:我们评审好项目需求,初步完成项目的资源评估,以及确定项目的交付日期后,即可在云效配置管理系统创建项目,填写项目成员,申请应用代码分支。云效提供配置管理功能,同时开放接口,支持对接外部的配管系统。
  q  l* `+ ?" X% q  q4 }) Q6 U
" W* D+ r! n9 t, T" N
开发阶段:开发在本机编写代码,每次代码CI后,云效单测集成系统会自动检测代码变更,几分钟后收到邮件提醒,在邮件中,可以看到单测用例,静态扫描等信息,也可点击项目或者数字链接到云效单测集成系统,在系统上我们可以看到每次代码提交运行的详细情况。

& ]1 m! Z& W4 y9 ^
3 [/ }9 v- f4 x5 c7 D1 w& p
测试准备阶段(含开发自测):开发在编写代码的同时,测试也进入测试准备阶段。测试在云效平台可以编写UI、接口、以及手工测试用例,用例编写完成后,还需要准备一些测试数据,在云效的数据银行提供了丰富的测试数据生成方式,我们可以根据配置单,快速生成所需要的测试数据。

6 Z) R6 z7 O5 ?9 z5 j5 Q
: s2 ?+ l& |, B6 r- V6 A5 P2 W
测试阶段(环境部署、接口、UI、手工用例测试):开发自测通过后,项目进入测试阶段。开发在项目中打一个测试包,打开环境管理,点击申请,这时云效平台会自动申请一台云服务器,选出刚打出来的测试部署包,点击部署,测试环境的部署就自动开始了。在部署过程中,可以实时监控部署日志,获取Hosts绑定信息。测试在平台响应“接手测试”,在项目中运行写好的接口测试用例,运行UI用例,以及在手工用例系统中,运行功能用例,及时提交发现的缺陷。开发在收到缺陷邮件提醒后,可以在平台修复缺陷。接口、UI、功能测试都完成后,测试可以在平台响应功能“测试通过”。

8 O( K9 x' S2 k
( ^( L+ M. [: Z) t3 B
集成测试阶段:开发在平台提交集成,项目进入集成队列,平台自动从应用的主干拉取最新的release分支,将项目中的分支和release分支合并,打出集成测试包,部署到集成测试环境,触发集成自动化脚本运行。项目成员可以在集成环境进行测试验证,验证通过后,平台上响应“验证通过”。配管将发布包部署到正式环境,触发代码合并主干。这样,就在云效平台上完成了一个项目持续集成过程。
7 p/ |5 p7 w' x7 H, S
% D  q: U3 _/ n4 t- C$ R/ S
阿里巴巴CI/CD之分层自动化
4 r8 v0 K1 ]" b  y  D
" H( |( F) r, g% j/ D" z  F
金桐:阿里巴巴产品专家。从事多年互联网系统的研发和测试工作,现在主要负责云效分层自动化测试的产品设计。

' d$ W4 F- S& O& G- B* y. c! W

8 r  Y1 S5 X  a/ i; J" X" \' e
手工测试效率低下,发布频繁,回归量大、成本高,重复劳动很枯燥。自动化测试,就是用机器执行替代测试手工操作的一种测试方法,能够帮助测试人员从重复、枯燥的手工测试中解放出来,从而节省人力、时间或硬件资源。节约劳力为(N-1)M,M为此项工作单次需要投入的资源,N为此项工作需要重复工作的次数。

3 H  I6 c1 D  s5 F

' a1 H! n- V2 v7 d* r
如果自动化这么好,为什么大家没有全部做自动化?因为自动化测试也是有烦恼的。主要表现在:成本高(代码能力、自动化框架、IDE 准备、调度、多环境),效果差(浏览器影响、执行机影响、依赖环境影响、脚本健壮性不强),覆盖率低(框架不万能、上下层难全、接口参数排列多),及时性低(代码变更频繁、遗漏的变更、项目结束才发现)。
9 l- e' v& s8 S( y1 [

- p; Q" _* Q- G8 Q& \1 b% m
为了降低成本,提高准确性,就要考虑降低人员成本、制作成本、运维成本、运行成本,同时扩大覆盖率、数据独立、提供好的方法和脚本。当然,就需要实行分层自动化。
" a! T4 j- g6 {! j- J

8 D% M3 {9 R! V# H0 ]+ W' F8 U
在理解分层自动化之前,我们先看自动化测试金字塔,其中UI代表页面级系统测试,service代表服务业务测试(接口测试),unit代表单元测试。金字塔越高,表示需要投入的精力和工作量越大。分层自动化测试倡导的就是,将系统分层,根据层次特点用合适的自动化方法进行测试的一种测试策略。

: {7 ]$ T; b5 \+ p5 h+ m* L9 r
( Y' V' i# c: ~; _2 I' R- D. ^8 O7 Y4 M
9 [  P# S3 a) o$ P' _; `/ D
1.png
阿里巴巴分层自动化在经过策略的沉淀调整后,又经历了长期的工具与流程实践,并从自动化成本和效果这两个点上突破,进行分层自动化工具和项目流程的双重革命,最终达到业内领先的研发测试比。在阿里实践分层自动化需要很多分层工具,包括配置管理Aton、UI测试的AUI、单元测试的Amon、环境管理的Aenv、接口测试SAT、性能测试Perf、集成自动化Pre等。

* D) `1 d2 y: q4 A. Q9 z5 \
" A- A! o* ^) C. y4 o7 H
这里来介绍几个革命性工具:

3 v5 W! f& Z% `7 m7 p- g) Z! H* u

: P% t% v% M1 P5 f# s( I! G
UI自动化—AUI
2 L; Q) S8 U$ \, V8 r" l
  H9 Z+ l* {0 j
创新型web-ui自动化测试框架,无需安装复杂底层环境和 IDE

& e" ]! `* }! [3 Z& [4 `9 s) J: j

) m. W+ E) {  t, n" s
创建和维护脚本,都无需接触代码,全部为 Web 页面可视化使用
" y/ _0 b. E* U/ F7 ?

7 N# e7 f- V/ E9 N. C  |' L" d% B! X
支持本地回放,支持云端执行,解放机器,释放双手

5 Q2 I  ]7 T) a" S4 S
" ^7 g, t2 H- |0 P0 l
支持项目持续集成,线上监控等各种复杂场景

: Q* R) h! ~" r+ A: {+ W
# f8 w9 }+ x% C( _/ F5 C! N
接口自动化—SAT
% L# T3 j8 Y# `$ D: D3 I" s

$ r: W/ o8 T1 G) C/ A' F+ l
可视化的接口测试,无需编写代码

, G4 e' [+ ]( K. B
, Y7 P' k% q3 H. p$ p# q$ H- b
支持普通接口调试和复杂后台交互的接口测试的用例沉淀

( }# Z6 O5 p& o1 h& n# ~2 ]
) E7 Z8 C$ S  O/ H$ L
支持主干,项目用例的沉淀与回归
' g- I, K# \6 T

! N7 L, i+ m, P8 |% i0 P% t2 c7 J
支持项目持续集成

6 B: S0 }, O$ m) I" M
4 Z  ~- u! X. w4 a
性能压测—Perf
* n$ J* ?  F2 I2 T  r5 |2 h

8 a# s, M5 @8 N) m+ ]- I* ]
基于 Jmeter 的性能压测平台
8 x) R5 V: c: W+ I  Y7 d
, {6 R! O5 l/ g( j" h
集脚本,场景,压测,监控和报表为一体,可快速施压的平台
/ f, E. f. \6 F. o# T+ K6 o
" t8 a: p: m, [
支持多种协议,适合 http,service 接口等测试
# Q0 a" s* J+ i2 [! _

$ h; W# q7 n% k% u4 n6 ?! M8 A
比 LoadRunner 易上手,更轻量

2 V* R9 x) K1 M" o  E
% ~  s# w) X4 q/ Y0 F# M7 a
单元测试—Amon
, h6 U" m' r+ F' e6 n

5 B8 L4 L. Q$ ^% \
可对代码主干及各项目分支进行单测集成
' _, r8 e) Y% z& z

; `) B, D1 @) o& V
对有代码变更的项目分支自定义频率集成
2 G0 c. p+ Z; i% j
  x& T6 h6 M4 ?1 i0 g
对有代码变更的应用主干自定义频率集成
# ]% k. ^" \6 [

2 b/ X! |  C9 G, o% G
拥有单测用例结果、覆盖率结果、静态扫描结果、sonar 代码分析等质量数据
& \+ \+ F" s+ l; a

  J, q0 S8 q4 i
集成自动化—Pre
, u- q4 |0 `) C: A- K8 D

# r2 z# ^( h! U
支持多种自动化框架接入
6 Z' l  A" E$ N% \+ T3 m
* Z% z& }5 H* R4 S
支持项目集成相关所有自动化的自动统一触发

% w8 |8 h2 |% E8 L

; T8 b, _* E# I/ T; P8 B0 F
支持多种自动化框架不同环境触发

2 Q8 ^5 b  b0 v4 O6 X
; }' d; P8 h5 n6 d! t: }6 @+ W) W2 @$ P6 u
支持日常持续集成
. m6 w: O6 \3 B* B

$ o3 _1 h# ?1 Y5 f# [# W
支持自动化失败的原因汇总与总结

( ^+ U' x) c0 Q0 B
: T( r; O+ g; R" w# B) W+ s
阿里分层自动化实践带来了很有意义的成果,在阿里内部,大幅提高了研发测试比,减少了重复劳动带来的加班,同时带动了更多高效工具的诞生;在研发方面,单测成本降低了,覆盖率可视化了,自测有保障了,故障降低了;在测试方面,降低了测试要求,增加了工作成就感;对云效客户来说,给企业赋能,提高了研发测试效率。

) u; w. e  b- t% J/ L) T- y
7 q/ @# b; Z5 s, @7 J
原创:持续交付平台

% C- \8 t' S1 R; T: ^! K

本版积分规则

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

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

Baidu

GMT+8, 2018-12-15 20:01 , Processed in 0.230136 second(s), 33 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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