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

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

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

扫描二维码登录本站

QQ登录

只需一步,快速开始

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

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

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

参加活动:0

组织活动:0

发表于 2018-11-5 10:57:18 | 显示全部楼层 |阅读模式 来自- 广东广州
本帖最后由 adminlily 于 2018-11-5 11:01 编辑 $ O$ ]" J8 }& w+ v  g1 S

2 }1 x! Z3 S; d! [% T3 R% {% U
互联网时代,随着业务的迅猛发展,企业越来越希望通过实施DevOps来提升研发、运维等IT部门的效率,支撑业务发展。互联网企业如何利用工具让DevOps落地?传统企业如何提升研发效能,更快速的互联网化?这些都是企业面临的问题。! v5 i, |. h0 o) u

: I, `1 R2 E; e4 k! i1 [

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

9 q1 P! A1 u6 \& p$ X' W0 z

' E/ N1 d2 ?9 z" z- B8 O  Z( h
云效:互联网+时代的企业级研发效能提升服务

# X4 b& K$ X8 K4 ]) ~* B, a
4 I  X0 H0 q( p0 H
云效是互联网业务下催生的研发效能平台,2012年,云效孵化自阿里巴巴B2B事业群,为阿里内部提供研发效能服务;2013年,云效真正实现持续集成持续交付并落地实施; 2015年底,云效与首家互联网保险公司众安保险合作,开启商业化第一步,后来正式为互联网+企业提供服务。
& U1 G1 M. H( a. d% g5 H3 T

! }5 j* H* b' ~: p1 y8 A
云效经过长期落地实践,沉淀出一套含测试策略、研发策略的工具产品,开始更好的支撑传统企业的互联网化。本次沙龙上,云效负责人章屹正式提出:“互联网+时代的企业级研发效能提升服务”新概念,为传统企业赋能!目前已经覆盖新零售、地产、券商、银行、保险等行业,为顾家家居、李锦记、世联行、国泰君安、光大银行、天弘基金等传统企业服务。
0 Q0 z" ^2 }0 t2 f2 w% G1 N
. [7 ]9 Q7 N" [* F
云效2.0特色

) C  |3 s. ^2 A7 H0 q9 o$ _! T$ `
( U/ X: e, ^6 @: A
  • 流式实时交付:集成验证速度匹配项目研发速度,为业务加速,改变传统周期性交付模式;
    5 @$ n) V6 b+ l& B
* G) Z. d/ c  k% B
, S0 R4 o9 ]# l2 l2 I
  • 自动化质量保证:构建自动化质量保证体系,提升研发质量,为质量护航,改变传统手工技术质量保证体系;
    ' v. h6 c3 Z4 |2 H: ]- Y3 H3 z, I
9 D2 P2 G8 V/ M6 I% N6 l& J
2 R- v. K8 n* f# M
  • 柔性化管理:大数据支撑的柔性化研发技术管理,管理策略可私有定制,改变传统团队统一技术管理模式。
    4 @$ H( p  H; D3 a; b! U7 \( ^
/ B' Z. F: l. r, v) o: n: W
1 @; U5 P  ?/ e
云效2.0策略
& x: @7 `* ~% J2 i* g$ ~, k5 G) \7 d

- `( b, w- _; R$ L; N" x3 G2 \9 ]
云效拥抱传统企业,根据传统企业研发团队规模大小、研发人员技能高低等,进行定制化实施策略,赋能技术团队,使业务无线可能。
% ?. \3 {) U1 s
9 C% H; L9 R( D4 q4 Y/ b: q; e
1.png
1.png
$ ^5 o( b6 V/ ?! R% @0 d
落地效果

' a1 g& i' \+ N1 N
) {6 z. o: E# I4 V5 J
在合作中,云效为众安保险部署4个月时间,测试环境和持续集成累计为众安提效232人日;云效为五矿电商部署测试环境累计超过6万次,UI自动化用例积累数量超过600个,实现了五矿业务场景的自动化的全面覆盖。

* h6 i, b- `/ K  m* z% N
% w3 @; P7 {" [) d8 S$ y9 R( i9 Q
阿里巴巴DevOps落地实践
; T: f! A+ O! S- j0 T$ D0 J
2 o$ _: m& L6 t. ?. f7 f* v, V6 ^2 `% b
章屹:阿里巴巴高级技术专家。清华大学电子工程系硕士毕业,十多年从事软件的测试、开发、系统设计工作。现为阿里巴巴高级技术专家,工程效能部技术负责人,负责云效的技术规划和建设工作。

( b, D% e3 H6 a) G- g8 |1 e

3 W2 n0 e4 B( d9 d" J: R1 ?& l
在阿里巴巴内部推行开发自测、开发自运维的环境下,阿里巴巴DevOps应运而生。阿里巴巴DevOps面临这几个问题:1.开发的测试和运维能力培养问题;2.开发自测自运维带来的效率和质量问题;3.DevOps的实施进度问题;4.测试团队和运维团队的未来发展问题;5.技术的发展(微服务、容器化)带来的挑战。
/ c5 D  L& z0 s6 s/ d

( u4 R3 T3 j1 d
为了解决DevOps落地问题,云效跟开发、测试、运维团队一起,为开发服务,让他们自运维、自测,提升效率。

7 m( r% _5 J, s& b

" |2 o# O" d" {4 \: ]; ?
DevOps实施策略

$ @/ _5 z9 |- Q/ x& O' ~7 d

( b5 |! h* |) i
1.png
1.png
7 r. i( V: l% {  Z2 b- X$ i
如何赋能开发自运维、自测?
+ x8 I- {8 d* p$ U" f2 k+ z6 K& A

3 t9 Z, e* O# \$ ^' S0 }1 M
在赋能开发自运维、自测过程中,工具的价值最为凸显。

9 Y9 c; q7 V; r
. V  J5 V. R$ N* |0 r
  • 传统解决方案:大集成环境;固定发布时间(每周一次、两周一次、一年四次……);
      b" Q% L. r8 f  c  k7 n; p

1 Z9 L3 O3 E9 ~1 D
/ n; f9 T/ d  }
  • 云效持续交付解决方案:所有应用24小时随时提测并发布,无发布窗口限制;预发布集成环境,半小时完成自动化并无人值守。

    0 p6 j- Q& ?: D6 A8 @" d/ c6 V7 i
, r! p( t. @2 K& l; {3 `

9 p( Q# i% L# l9 K
DevOps实施结果
) n6 T& u7 {# |1 o
+ v5 @' S0 _$ j) j6 z% s9 x
开发自运维之后,研发效率大幅提升:日均节省资源人数增长,集成验证发布耗时减少,专业性团队(性能、压测等)队伍在增长;质量得到保证:应用运维故障个数大幅下降;研发模式创新:自动化Case数量增加,50%项目小需求研发自测,测试不接手, 测试全监控。

, c' m  r9 R0 m+ T
) o( e: N9 I5 {
企业如何利用云效进行高效研发?

; C1 l0 E; y) U
' ~3 }% ^' B) c9 \2 ^+ O
苗欣:阿里资深研发工程师。主要负责云效平台解决方案服务输出。在自动化测试技术、持续集成等方面拥有多年实践经验,拥有多项技术专利。
3 M+ a8 [% v, Y' D* v$ i9 V

& P( {* y% j8 c  I+ c! @, _
云效,源于内部,是阿里巴巴技术部实现持续交付的统一协同工作平台,实现开发测试全流程自动化,支撑项目的持续集成与持续交付。目前客户覆盖银行、保险、券商、电商、新零售等。

4 l. l; \( U- ~* z' c5 D  _+ @
/ l9 d% D0 x9 q0 d
一个项目如何在云效实现持续集成?

- i; B9 d0 Q( i$ H

0 Y' O, q* H( K0 y! K6 l  Y: G2 A0 ?3 v
+ c2 m+ X: v1 J/ K8 C* Q- }: d, M
1.png

7 l3 b/ B5 R* @/ }, g# H+ a4 d# u. L
视频演示链接:(进入页面后选择左侧帮助视频栏--云效研发整体流程视频)
http://ali-aegis.aliyun.com/help/help.html?spm=0.0.0.0.W35KAx

: C" J4 m1 A1 P8 Q# Z! P( X

' f7 p' |; O( `# `# O5 Q
视频解读:
$ @/ ^/ n+ V# M0 ]

% _+ ]! k# }; d" T
项目准备阶段:我们评审好项目需求,初步完成项目的资源评估,以及确定项目的交付日期后,即可在云效配置管理系统创建项目,填写项目成员,申请应用代码分支。云效提供配置管理功能,同时开放接口,支持对接外部的配管系统。
; G5 Q, s' z$ D" a$ n) u4 R8 f
4 F9 t) c' D" Z6 }% V: }  Y- n5 D
开发阶段:开发在本机编写代码,每次代码CI后,云效单测集成系统会自动检测代码变更,几分钟后收到邮件提醒,在邮件中,可以看到单测用例,静态扫描等信息,也可点击项目或者数字链接到云效单测集成系统,在系统上我们可以看到每次代码提交运行的详细情况。

, \! D; o& F3 u- _' o& P4 R

% H. q/ z4 ?4 E  J2 x
测试准备阶段(含开发自测):开发在编写代码的同时,测试也进入测试准备阶段。测试在云效平台可以编写UI、接口、以及手工测试用例,用例编写完成后,还需要准备一些测试数据,在云效的数据银行提供了丰富的测试数据生成方式,我们可以根据配置单,快速生成所需要的测试数据。
8 |2 s: s6 m' [- N

  k* P" d- N0 n
测试阶段(环境部署、接口、UI、手工用例测试):开发自测通过后,项目进入测试阶段。开发在项目中打一个测试包,打开环境管理,点击申请,这时云效平台会自动申请一台云服务器,选出刚打出来的测试部署包,点击部署,测试环境的部署就自动开始了。在部署过程中,可以实时监控部署日志,获取Hosts绑定信息。测试在平台响应“接手测试”,在项目中运行写好的接口测试用例,运行UI用例,以及在手工用例系统中,运行功能用例,及时提交发现的缺陷。开发在收到缺陷邮件提醒后,可以在平台修复缺陷。接口、UI、功能测试都完成后,测试可以在平台响应功能“测试通过”。
1 B1 f7 A( ~( z
( p+ Q" V! ^9 O& D2 {; D$ i
集成测试阶段:开发在平台提交集成,项目进入集成队列,平台自动从应用的主干拉取最新的release分支,将项目中的分支和release分支合并,打出集成测试包,部署到集成测试环境,触发集成自动化脚本运行。项目成员可以在集成环境进行测试验证,验证通过后,平台上响应“验证通过”。配管将发布包部署到正式环境,触发代码合并主干。这样,就在云效平台上完成了一个项目持续集成过程。
7 W/ ^: k/ e3 B# X
( O6 P# H. h5 P$ I0 I* P3 _# _" d/ V
阿里巴巴CI/CD之分层自动化
: D: t) z. r* Y5 q. d* Z* b% i! }

" H2 ]( p! {6 D/ F
金桐:阿里巴巴产品专家。从事多年互联网系统的研发和测试工作,现在主要负责云效分层自动化测试的产品设计。

9 X- |* C( L( `6 Y! R% Q
& V  `) L+ d* _3 g" H1 Q, w, s
手工测试效率低下,发布频繁,回归量大、成本高,重复劳动很枯燥。自动化测试,就是用机器执行替代测试手工操作的一种测试方法,能够帮助测试人员从重复、枯燥的手工测试中解放出来,从而节省人力、时间或硬件资源。节约劳力为(N-1)M,M为此项工作单次需要投入的资源,N为此项工作需要重复工作的次数。
3 D6 j! P& ?7 q# ^0 x0 i" F: ]
2 p' N4 Y: z! x/ S) @) P8 `
如果自动化这么好,为什么大家没有全部做自动化?因为自动化测试也是有烦恼的。主要表现在:成本高(代码能力、自动化框架、IDE 准备、调度、多环境),效果差(浏览器影响、执行机影响、依赖环境影响、脚本健壮性不强),覆盖率低(框架不万能、上下层难全、接口参数排列多),及时性低(代码变更频繁、遗漏的变更、项目结束才发现)。
6 B5 e5 J' V6 C+ e
' p4 k7 D% y. ^9 ~8 i/ n
为了降低成本,提高准确性,就要考虑降低人员成本、制作成本、运维成本、运行成本,同时扩大覆盖率、数据独立、提供好的方法和脚本。当然,就需要实行分层自动化。
0 f( T) [, _4 b4 A' s# x3 b, M1 J0 ]

( y! E* z8 j" e$ o) [
在理解分层自动化之前,我们先看自动化测试金字塔,其中UI代表页面级系统测试,service代表服务业务测试(接口测试),unit代表单元测试。金字塔越高,表示需要投入的精力和工作量越大。分层自动化测试倡导的就是,将系统分层,根据层次特点用合适的自动化方法进行测试的一种测试策略。

  A4 L# R9 z. W- \1 d6 S1 u

5 ]  o  B& I9 z4 ~: {& K
$ U& d! L( X: {( c
1.png
阿里巴巴分层自动化在经过策略的沉淀调整后,又经历了长期的工具与流程实践,并从自动化成本和效果这两个点上突破,进行分层自动化工具和项目流程的双重革命,最终达到业内领先的研发测试比。在阿里实践分层自动化需要很多分层工具,包括配置管理Aton、UI测试的AUI、单元测试的Amon、环境管理的Aenv、接口测试SAT、性能测试Perf、集成自动化Pre等。
) Z' Z+ O2 h# e- w+ o! B- |

8 U  i/ [1 r0 ]! j& ]# f
这里来介绍几个革命性工具:
* i# L! ?4 b6 \
0 ^) q$ J0 B, ~! ^
UI自动化—AUI

. A$ r' x, o* H" W

2 v7 |  k$ z0 q+ ]: J
创新型web-ui自动化测试框架,无需安装复杂底层环境和 IDE
- @; C% w3 O: ]4 i  n, r- ?
8 a. P0 n: e$ {
创建和维护脚本,都无需接触代码,全部为 Web 页面可视化使用

) V$ g- y9 R. B8 o+ j4 K
$ d  H" r+ I2 z) F: d4 i5 y
支持本地回放,支持云端执行,解放机器,释放双手

; C7 ]+ \! c, Y$ x
" g6 t8 t7 U8 m! D" q
支持项目持续集成,线上监控等各种复杂场景
7 N% F# P9 B7 z5 b9 |
. _1 _& M# Q4 E3 `2 Y: h' X
接口自动化—SAT

4 n( b/ E9 g( D) y6 n4 l
' D7 _1 t% Q4 Z9 g( C/ Q' ?
可视化的接口测试,无需编写代码

9 v8 K( e6 x8 d
3 x$ ?  f2 j% N! e1 h2 ?3 y1 N/ Q- B
支持普通接口调试和复杂后台交互的接口测试的用例沉淀

+ L% a4 F1 \/ F1 `0 `( t
( }2 j8 v* M% j& b7 ]2 {2 p$ X# W
支持主干,项目用例的沉淀与回归
/ |9 O- i% j' j6 l

  ^" ^, S# L1 \; k" Q3 G! |
支持项目持续集成
; Q& z1 o: u6 Y

) q  D( Q& V- y7 Y7 W
性能压测—Perf
: z$ }0 V) V4 V* n4 T  x$ G
9 f" U) I+ ~% o& r
基于 Jmeter 的性能压测平台

7 ?6 K: ~8 L- N( f9 w4 q# I

$ U7 L: X. L( G9 @, ^* a
集脚本,场景,压测,监控和报表为一体,可快速施压的平台

3 s( ~! F$ f# i8 ?$ b4 i

( v: A5 [! U& d+ J
支持多种协议,适合 http,service 接口等测试
( r$ d( j0 d7 d; R& v0 I8 u) ^

+ A' h$ t/ @( U- q
比 LoadRunner 易上手,更轻量

+ m4 O5 X' x4 j
3 ?) i8 D9 L$ {$ {" W
单元测试—Amon

0 \' ~9 }7 `* \7 B% x2 I
$ v, ?0 ~9 F9 U
可对代码主干及各项目分支进行单测集成

9 _) ^" H: L0 @' `. Y" n
7 ~8 Z" K4 f% H' T0 q
对有代码变更的项目分支自定义频率集成
+ O0 w6 r, K- W8 d

- \5 Z" F4 w! |& f2 \0 q* \% x; I
对有代码变更的应用主干自定义频率集成
/ g5 D* W* n* x4 {' p
5 \$ [& L/ m7 X$ p) w
拥有单测用例结果、覆盖率结果、静态扫描结果、sonar 代码分析等质量数据
3 ~( }8 K$ T5 z" m! ~2 u5 w3 v2 o# k
/ s* o$ z, x. j8 o% F
集成自动化—Pre
* Y0 R, z- U" N3 _) n# I: f
7 _: d6 y- t  m3 u+ |
支持多种自动化框架接入
% g. a" E. s5 N3 m( f& H) f

) k- o3 Z, |3 W) m0 Z- e
支持项目集成相关所有自动化的自动统一触发
9 [9 F% R6 ], r1 f, ?: L! w
7 E) V/ P! n- b6 Z7 |
支持多种自动化框架不同环境触发

7 @+ x6 Z) J6 A( \; n; f

$ l' |- ?4 ~: M) w  b& h0 {
支持日常持续集成

+ J& s7 \8 X. N1 l

: I9 }3 R3 [) ?; s* w
支持自动化失败的原因汇总与总结
5 q5 X) |! t) U7 n
! [. R5 O- L- u& O) ]3 Z
阿里分层自动化实践带来了很有意义的成果,在阿里内部,大幅提高了研发测试比,减少了重复劳动带来的加班,同时带动了更多高效工具的诞生;在研发方面,单测成本降低了,覆盖率可视化了,自测有保障了,故障降低了;在测试方面,降低了测试要求,增加了工作成就感;对云效客户来说,给企业赋能,提高了研发测试效率。

, V% {, j' t- m% ]7 m1 H& ]  S3 y
& n& |/ D" g5 {1 l" t( l. p
原创:持续交付平台

1 B2 n; i. P- t5 g- |

本版积分规则

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

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

Baidu

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

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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