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

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

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

扫描二维码登录本站

QQ登录

只需一步,快速开始

搜索
查看: 395|回复: 0

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

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

参加活动:0

组织活动:0

发表于 2018-11-5 10:57:18 | 显示全部楼层 |阅读模式 来自- 广东广州
本帖最后由 adminlily 于 2018-11-5 11:01 编辑 , @$ {4 @) l% @+ H0 R
- W; V, k9 p! K3 e) y9 M
互联网时代,随着业务的迅猛发展,企业越来越希望通过实施DevOps来提升研发、运维等IT部门的效率,支撑业务发展。互联网企业如何利用工具让DevOps落地?传统企业如何提升研发效能,更快速的互联网化?这些都是企业面临的问题。
5 G" H8 y7 T! i6 n; N6 U5 X
$ l$ S) t% f; k1 w8 Q3 w1 ^( r! `
% Q( N9 c8 N9 v4 M# ]
7月26日,阿里巴巴持续集成持续交付平台——云效,在深圳阿里中心举办了一场“业务为王时代,DevOps怎么玩?”主题沙龙,由阿里巴巴技术专家从云效新概念的提出,到阿里巴巴DevOps落地实践、到企业如何利用云效进行高效研发、再到阿里巴巴CI/CD之分层自动化,帮助参会者从理念、策略、实践、效果等方面,全面深入的了解DevOps玩法,以及具体如何落地的思路。

, Y8 G! C; [9 J& _" W- [4 X( @
1 Z, K; ?% `% O0 v. R
云效:互联网+时代的企业级研发效能提升服务

# ?3 d, k  R6 v0 t6 B8 a8 X

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

- w1 g2 V; b, Q5 |$ Z
' R2 R$ ?9 |) d  b, s
云效经过长期落地实践,沉淀出一套含测试策略、研发策略的工具产品,开始更好的支撑传统企业的互联网化。本次沙龙上,云效负责人章屹正式提出:“互联网+时代的企业级研发效能提升服务”新概念,为传统企业赋能!目前已经覆盖新零售、地产、券商、银行、保险等行业,为顾家家居、李锦记、世联行、国泰君安、光大银行、天弘基金等传统企业服务。
; c4 P: T4 w, E" c+ ^5 N7 i
3 s# L: n1 q! {7 n7 \6 y
云效2.0特色

$ m, a" n3 b, y9 x

( F% z0 |1 i7 z4 ?( t! N6 c
  • 流式实时交付:集成验证速度匹配项目研发速度,为业务加速,改变传统周期性交付模式;
    3 }8 J8 `" y2 q' _( r. t% G& }) o
" D7 I1 Y% o6 r' A
% p9 s- O2 r! ^! G0 a, y
  • 自动化质量保证:构建自动化质量保证体系,提升研发质量,为质量护航,改变传统手工技术质量保证体系;

    % R2 ]1 T4 @4 z

* {: H  J0 z4 j# f& ^3 d$ [

' H. y. @, s! p) k
  • 柔性化管理:大数据支撑的柔性化研发技术管理,管理策略可私有定制,改变传统团队统一技术管理模式。
    : e+ c* B" d# o2 z8 i
5 I, x( j3 A+ _% @+ i9 G
# ]1 B! E8 f. N' q9 K0 X/ C; x
云效2.0策略
* c' ~& i% C4 e: \6 t; N# `8 z) m

6 ?/ F4 N( P3 u$ M
云效拥抱传统企业,根据传统企业研发团队规模大小、研发人员技能高低等,进行定制化实施策略,赋能技术团队,使业务无线可能。

% U4 }3 E2 s3 ?# H$ T) b

, W  S1 Y8 @* L+ J, o
1.png
1.png
- W1 L  b( K& ~# U  r
落地效果
( m) j7 x  U1 a" h" H

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

6 S: }* t' S1 Y1 v9 k0 f+ M2 O' b
" o3 C! C4 f! J1 x  i
阿里巴巴DevOps落地实践

  E6 h& T, K4 N6 ]/ A

) s% Y( o3 w2 X. q
章屹:阿里巴巴高级技术专家。清华大学电子工程系硕士毕业,十多年从事软件的测试、开发、系统设计工作。现为阿里巴巴高级技术专家,工程效能部技术负责人,负责云效的技术规划和建设工作。

1 P  Q! P2 H# l8 x( J2 z

8 T7 \# }8 R" R, i" n
在阿里巴巴内部推行开发自测、开发自运维的环境下,阿里巴巴DevOps应运而生。阿里巴巴DevOps面临这几个问题:1.开发的测试和运维能力培养问题;2.开发自测自运维带来的效率和质量问题;3.DevOps的实施进度问题;4.测试团队和运维团队的未来发展问题;5.技术的发展(微服务、容器化)带来的挑战。
6 y; |1 D' F9 h. g

* ~0 q+ P2 Z1 W# g
为了解决DevOps落地问题,云效跟开发、测试、运维团队一起,为开发服务,让他们自运维、自测,提升效率。
1 n$ }: V" l+ @0 @2 [  X- w# Y
# F7 B0 L- D5 B/ Z! n
DevOps实施策略
" `) U* _6 z+ Q9 p' g

. [  o' x1 @$ O; H+ y) H
1.png
1.png

1 s, n% B- |$ V( {3 W0 {
如何赋能开发自运维、自测?

0 n/ ^+ r6 d& Z4 g
; e% O) B0 P0 \( _* n+ b
在赋能开发自运维、自测过程中,工具的价值最为凸显。

, B. G, H9 Y% z8 Q! l* d. ^+ I
  S1 `& E6 H0 F5 q- z7 _8 `
  • 传统解决方案:大集成环境;固定发布时间(每周一次、两周一次、一年四次……);

    8 v5 J0 I4 N1 {3 ~% r
6 B" D$ V; ]+ [2 G2 Q* A4 L
: M$ g* C7 t/ C3 u4 L6 }( i
  • 云效持续交付解决方案:所有应用24小时随时提测并发布,无发布窗口限制;预发布集成环境,半小时完成自动化并无人值守。
      _1 s/ B: o' t( Y+ R! w/ \

$ U! ~: U: o' j& y

3 u# \9 \( _7 P; P$ `8 f
DevOps实施结果

' G4 h6 `6 R( K( f

4 U+ P" Y' M, h, B$ M- ^2 B% ^
开发自运维之后,研发效率大幅提升:日均节省资源人数增长,集成验证发布耗时减少,专业性团队(性能、压测等)队伍在增长;质量得到保证:应用运维故障个数大幅下降;研发模式创新:自动化Case数量增加,50%项目小需求研发自测,测试不接手, 测试全监控。
8 t; }9 k! v2 L) P5 d! L5 Q
* M  }+ A4 L3 s1 ~7 Y
企业如何利用云效进行高效研发?

" G3 X* G4 K6 o) d( u9 @' q
5 m* [$ l; ]5 |" L& S* l9 l+ D
苗欣:阿里资深研发工程师。主要负责云效平台解决方案服务输出。在自动化测试技术、持续集成等方面拥有多年实践经验,拥有多项技术专利。
& E+ @( M# T$ c9 n; b& u

' A7 G; |$ u/ G% h6 f5 T. A
云效,源于内部,是阿里巴巴技术部实现持续交付的统一协同工作平台,实现开发测试全流程自动化,支撑项目的持续集成与持续交付。目前客户覆盖银行、保险、券商、电商、新零售等。
& l0 e  |; `" G0 t) i4 C

9 Q8 l; b' x1 `$ p+ M8 W+ X& l& @
一个项目如何在云效实现持续集成?
7 Q2 j0 N% `4 @$ ?
& a0 z0 r# d- i/ h' ^( S

# ~1 L6 F1 J* O: _  R
1.png

% Y* t" }: N* F' l9 ?
视频演示链接:(进入页面后选择左侧帮助视频栏--云效研发整体流程视频)
http://ali-aegis.aliyun.com/help/help.html?spm=0.0.0.0.W35KAx
5 K4 \8 S/ D( Z9 {- {0 V+ ^

3 U7 N' Z! n! {' M- w
视频解读:

$ v3 j7 W0 K4 X

4 T2 l6 ^" D+ y0 v" q) t- p
项目准备阶段:我们评审好项目需求,初步完成项目的资源评估,以及确定项目的交付日期后,即可在云效配置管理系统创建项目,填写项目成员,申请应用代码分支。云效提供配置管理功能,同时开放接口,支持对接外部的配管系统。
9 M1 I. {9 q1 S. f0 {* p

3 _& O+ O" T" k
开发阶段:开发在本机编写代码,每次代码CI后,云效单测集成系统会自动检测代码变更,几分钟后收到邮件提醒,在邮件中,可以看到单测用例,静态扫描等信息,也可点击项目或者数字链接到云效单测集成系统,在系统上我们可以看到每次代码提交运行的详细情况。
1 e  F# q9 W; [9 H# q

" g6 t  @) m9 }  Q
测试准备阶段(含开发自测):开发在编写代码的同时,测试也进入测试准备阶段。测试在云效平台可以编写UI、接口、以及手工测试用例,用例编写完成后,还需要准备一些测试数据,在云效的数据银行提供了丰富的测试数据生成方式,我们可以根据配置单,快速生成所需要的测试数据。

& Q$ ?* r8 @  l1 i# B

4 n# M' o1 K; R( v  C
测试阶段(环境部署、接口、UI、手工用例测试):开发自测通过后,项目进入测试阶段。开发在项目中打一个测试包,打开环境管理,点击申请,这时云效平台会自动申请一台云服务器,选出刚打出来的测试部署包,点击部署,测试环境的部署就自动开始了。在部署过程中,可以实时监控部署日志,获取Hosts绑定信息。测试在平台响应“接手测试”,在项目中运行写好的接口测试用例,运行UI用例,以及在手工用例系统中,运行功能用例,及时提交发现的缺陷。开发在收到缺陷邮件提醒后,可以在平台修复缺陷。接口、UI、功能测试都完成后,测试可以在平台响应功能“测试通过”。

/ ]- k9 I# u; r5 E1 d5 i
7 q! u; X4 \5 y; U! G# A: ^
集成测试阶段:开发在平台提交集成,项目进入集成队列,平台自动从应用的主干拉取最新的release分支,将项目中的分支和release分支合并,打出集成测试包,部署到集成测试环境,触发集成自动化脚本运行。项目成员可以在集成环境进行测试验证,验证通过后,平台上响应“验证通过”。配管将发布包部署到正式环境,触发代码合并主干。这样,就在云效平台上完成了一个项目持续集成过程。

& q) E# _0 g& O1 E& K' m2 {

+ r& [% ?: A. C
阿里巴巴CI/CD之分层自动化
$ p% g# O  H( R9 q  v' X  n
7 I1 E. N0 X6 K, Y3 }$ _- h* H' M3 l; w
金桐:阿里巴巴产品专家。从事多年互联网系统的研发和测试工作,现在主要负责云效分层自动化测试的产品设计。
4 l. g7 V" F( g. K# f' C
+ b4 D8 W/ s' Z0 ^# k4 n: R5 }# a
手工测试效率低下,发布频繁,回归量大、成本高,重复劳动很枯燥。自动化测试,就是用机器执行替代测试手工操作的一种测试方法,能够帮助测试人员从重复、枯燥的手工测试中解放出来,从而节省人力、时间或硬件资源。节约劳力为(N-1)M,M为此项工作单次需要投入的资源,N为此项工作需要重复工作的次数。
# O/ q, b# f/ |

% @. |/ e* S) j) `! `
如果自动化这么好,为什么大家没有全部做自动化?因为自动化测试也是有烦恼的。主要表现在:成本高(代码能力、自动化框架、IDE 准备、调度、多环境),效果差(浏览器影响、执行机影响、依赖环境影响、脚本健壮性不强),覆盖率低(框架不万能、上下层难全、接口参数排列多),及时性低(代码变更频繁、遗漏的变更、项目结束才发现)。
% ]5 c$ B# S' C' ?
+ P$ I2 A  U1 s
为了降低成本,提高准确性,就要考虑降低人员成本、制作成本、运维成本、运行成本,同时扩大覆盖率、数据独立、提供好的方法和脚本。当然,就需要实行分层自动化。
" P% a3 M: X9 g( ]+ `. q+ p
- F" G; s6 `2 C8 B+ H8 _5 P
在理解分层自动化之前,我们先看自动化测试金字塔,其中UI代表页面级系统测试,service代表服务业务测试(接口测试),unit代表单元测试。金字塔越高,表示需要投入的精力和工作量越大。分层自动化测试倡导的就是,将系统分层,根据层次特点用合适的自动化方法进行测试的一种测试策略。
: n/ r7 e) _4 Z, m1 M0 a

3 M+ g) w- e& m, I% b1 x! l% ]
( w, w" H; c" K1 H
1.png
阿里巴巴分层自动化在经过策略的沉淀调整后,又经历了长期的工具与流程实践,并从自动化成本和效果这两个点上突破,进行分层自动化工具和项目流程的双重革命,最终达到业内领先的研发测试比。在阿里实践分层自动化需要很多分层工具,包括配置管理Aton、UI测试的AUI、单元测试的Amon、环境管理的Aenv、接口测试SAT、性能测试Perf、集成自动化Pre等。
! c; m+ h: h0 R: W" {- R
# V; v! F# `8 \8 R
这里来介绍几个革命性工具:
) m6 a- N9 u! D" M8 I
! w5 U2 h, ~8 M* Z/ T& X
UI自动化—AUI
, t$ e4 C8 I+ c- H
! f* b% x0 w) R' {3 c+ [+ k
创新型web-ui自动化测试框架,无需安装复杂底层环境和 IDE

- `( d! r, X6 v- C7 \" Z
6 C' ^9 i* z7 M& _/ `& R$ s
创建和维护脚本,都无需接触代码,全部为 Web 页面可视化使用
- h0 |7 b! P: f$ W( M/ P0 ]' n

7 X/ `  [) O" Y6 p
支持本地回放,支持云端执行,解放机器,释放双手

' P, e+ ?( ~6 q  Z
2 }  e- }  R2 H0 E! Y/ H
支持项目持续集成,线上监控等各种复杂场景
6 x, @* r8 |" ^( Y& Y6 Q

& a( K* P1 c% n( ~  Q/ U0 f, A; A
接口自动化—SAT

. b  e! Q2 L6 s2 Z9 t4 ?: Y
# C$ \# _1 x- i
可视化的接口测试,无需编写代码

: Z9 @7 V- O( M9 v* B# ?

, L' D- N) ^6 P/ }$ V
支持普通接口调试和复杂后台交互的接口测试的用例沉淀
! L, c: e. l1 T  ^
1 m0 L7 l3 a4 M/ a
支持主干,项目用例的沉淀与回归

: K1 e. ~- a1 ~4 j, i# F6 ~8 Y

. Z2 H# \! A  m, I1 g  A6 Z
支持项目持续集成
1 }! }( x5 U0 w! [# _; Y, g
; }% }: b+ y2 q' R' J8 @
性能压测—Perf
+ O5 D- o* E  _) X) c

7 [( Q: W. N/ _  k
基于 Jmeter 的性能压测平台
  E# i4 J# T9 d/ E; `: j( E: F' f

# O! p1 \: D- b8 @) h
集脚本,场景,压测,监控和报表为一体,可快速施压的平台
7 q& s: M3 ?) C# l8 ^, J) l% @
% N! r8 ]9 E, V. F" [5 Q+ z0 }
支持多种协议,适合 http,service 接口等测试
" O$ n1 L/ W0 D) g0 q+ |
6 u: o, q# |; A3 ^
比 LoadRunner 易上手,更轻量
! |6 @* g6 ?( G% I2 _
  G) i! B# {% a; f. h, @5 q
单元测试—Amon

0 ^2 C5 O5 {  n2 _. n% a) |( K# G7 z
( @% z' g3 i6 e) d' r
可对代码主干及各项目分支进行单测集成
8 l! S* c. c: C/ F5 x3 ]

% \. a% b# s, L0 |
对有代码变更的项目分支自定义频率集成

$ t8 e( T& z/ a

& Q' V* v: l  s4 ?
对有代码变更的应用主干自定义频率集成
) I  d/ f: ?6 C! x# i3 @

7 h7 l2 z; G9 m, Z) h+ m; u3 v
拥有单测用例结果、覆盖率结果、静态扫描结果、sonar 代码分析等质量数据

  h! o3 N3 S6 o7 K0 m2 e
; y9 b, `' p, s$ N( {3 I, p
集成自动化—Pre
1 R/ `/ c+ j* I
% ?+ P: q9 m& ?/ W$ K  n& \
支持多种自动化框架接入

2 O' U% e# C, V( S+ |0 Q
# j- E' M  ?/ w5 }2 H5 w6 ~9 B
支持项目集成相关所有自动化的自动统一触发
8 N# D% m! _2 G8 w; t9 W+ C
5 Q) H" W/ ^2 I
支持多种自动化框架不同环境触发
3 M# d9 B7 y, K1 H; R
; [6 S9 F7 M5 y- a
支持日常持续集成
% p. G. |% A8 u- }$ K' q

( \( u. a0 d( N" ^5 W
支持自动化失败的原因汇总与总结

, @7 T( X- h8 @% ?
. J# |5 p. _; u* p/ ^4 D% L  K
阿里分层自动化实践带来了很有意义的成果,在阿里内部,大幅提高了研发测试比,减少了重复劳动带来的加班,同时带动了更多高效工具的诞生;在研发方面,单测成本降低了,覆盖率可视化了,自测有保障了,故障降低了;在测试方面,降低了测试要求,增加了工作成就感;对云效客户来说,给企业赋能,提高了研发测试效率。

) ?5 [* X& p9 K5 J4 `9 O
5 z( D' L+ I8 q- T
原创:持续交付平台

$ B' p5 a" j: m* M% p: f! q

本版积分规则

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

Baidu

GMT+8, 2019-6-17 23:08 , Processed in 0.206570 second(s), 29 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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