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

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

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

扫描二维码登录本站

QQ登录

只需一步,快速开始

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

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

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

参加活动:0

组织活动:0

发表于 2018-11-5 10:57:18 | 显示全部楼层 |阅读模式 来自- 广东广州
本帖最后由 adminlily 于 2018-11-5 11:01 编辑
5 S( A) p( u3 m& |( j
  @$ P4 L, Q, t
互联网时代,随着业务的迅猛发展,企业越来越希望通过实施DevOps来提升研发、运维等IT部门的效率,支撑业务发展。互联网企业如何利用工具让DevOps落地?传统企业如何提升研发效能,更快速的互联网化?这些都是企业面临的问题。4 x! z  ^9 P  j; U  l$ ^  }

) l2 ]; O" E, E& N) D# [

' g# E7 U! W8 G; s
7月26日,阿里巴巴持续集成持续交付平台——云效,在深圳阿里中心举办了一场“业务为王时代,DevOps怎么玩?”主题沙龙,由阿里巴巴技术专家从云效新概念的提出,到阿里巴巴DevOps落地实践、到企业如何利用云效进行高效研发、再到阿里巴巴CI/CD之分层自动化,帮助参会者从理念、策略、实践、效果等方面,全面深入的了解DevOps玩法,以及具体如何落地的思路。
2 v1 x! P8 Q  o# f. {+ C4 n
0 N! c6 s+ A; E
云效:互联网+时代的企业级研发效能提升服务
6 E7 e( n! t  O! R3 Q  s; K& g! K
: ]2 W' ^  G% L; l' A. x
云效是互联网业务下催生的研发效能平台,2012年,云效孵化自阿里巴巴B2B事业群,为阿里内部提供研发效能服务;2013年,云效真正实现持续集成持续交付并落地实施; 2015年底,云效与首家互联网保险公司众安保险合作,开启商业化第一步,后来正式为互联网+企业提供服务。
  G( H/ b( c' P( U8 D, {* y

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

+ {& g( Z- y2 ^; @

5 F0 |9 g( v- ~
云效2.0特色
8 L; Z$ ^0 j5 H3 f

1 C; l. m9 Y( L# C: e, j- q/ S
  • 流式实时交付:集成验证速度匹配项目研发速度,为业务加速,改变传统周期性交付模式;

    ! l* G% `" a9 @' y" ~$ f  \
: k9 e' z3 |' P) Y# H! L' \

2 n0 ?' r9 y' [5 k
  • 自动化质量保证:构建自动化质量保证体系,提升研发质量,为质量护航,改变传统手工技术质量保证体系;
    9 d% N. e3 M: J  }- H
; {  Y; }7 ^9 ]
* ?1 y3 \" v( ~
  • 柔性化管理:大数据支撑的柔性化研发技术管理,管理策略可私有定制,改变传统团队统一技术管理模式。

    / W0 t  W2 F4 T- J6 |
9 v, W" @( t. ^! t

4 i( I8 T. E& u
云效2.0策略
" X/ d; H$ w2 k: L& ?. K
, }) @% F4 m  [9 v5 d
云效拥抱传统企业,根据传统企业研发团队规模大小、研发人员技能高低等,进行定制化实施策略,赋能技术团队,使业务无线可能。

: `' }6 Y7 o8 f9 E. t+ d
- t7 D7 r# v" x# E/ ^( n$ t0 l
1.png
1.png
7 V# [& r# A9 ^" y6 a
落地效果
2 o6 V. z3 G$ t7 s
2 W$ ]3 @6 c3 H3 H. S. ]' ]$ S; y  g1 q2 I
在合作中,云效为众安保险部署4个月时间,测试环境和持续集成累计为众安提效232人日;云效为五矿电商部署测试环境累计超过6万次,UI自动化用例积累数量超过600个,实现了五矿业务场景的自动化的全面覆盖。
0 t. R; R4 d8 N) p. {- |, i

, t( Z' X# e$ [; p) L" Y3 z
阿里巴巴DevOps落地实践
% t$ M! z! q4 {- F/ o5 T; M

  {0 I1 I- c* d8 ^. _1 w
章屹:阿里巴巴高级技术专家。清华大学电子工程系硕士毕业,十多年从事软件的测试、开发、系统设计工作。现为阿里巴巴高级技术专家,工程效能部技术负责人,负责云效的技术规划和建设工作。

& R$ Z5 a' E0 {" i- o4 x7 g: @# V
: f* Q4 J. ^- E+ H' _
在阿里巴巴内部推行开发自测、开发自运维的环境下,阿里巴巴DevOps应运而生。阿里巴巴DevOps面临这几个问题:1.开发的测试和运维能力培养问题;2.开发自测自运维带来的效率和质量问题;3.DevOps的实施进度问题;4.测试团队和运维团队的未来发展问题;5.技术的发展(微服务、容器化)带来的挑战。
, ~1 j2 p, v" g3 \0 O7 \" |0 x  b
& b  z! j0 H6 e" D% ~
为了解决DevOps落地问题,云效跟开发、测试、运维团队一起,为开发服务,让他们自运维、自测,提升效率。

, B1 C8 |' }* k( T; j1 G* m. j

) _, S( Z3 M2 K) e2 v# _6 a
DevOps实施策略
  q1 B! S6 H7 v. d
8 ]/ N$ s$ Q" ^/ q- O2 |
1.png
1.png

; f/ V9 l# h( g9 G6 t9 ]
如何赋能开发自运维、自测?
5 ~) [- e; Y0 V3 h+ X" Q- H

" _/ ~: }% n! V* p# _) o
在赋能开发自运维、自测过程中,工具的价值最为凸显。
# _0 |+ u1 g/ N. ]4 j4 C# [

$ V* i1 v! d; a  ~1 [6 I/ v2 h5 h
  • 传统解决方案:大集成环境;固定发布时间(每周一次、两周一次、一年四次……);

    + `& p* z. A! B/ L: x6 E( V* {
0 P% e/ @* q7 T( E6 J2 Z- s

' X0 i  S% M! I% B6 [0 ~& \( {- Z
  • 云效持续交付解决方案:所有应用24小时随时提测并发布,无发布窗口限制;预发布集成环境,半小时完成自动化并无人值守。

    $ f( [# `- G! h) {2 M5 [$ }

2 P3 t1 ]1 f: G) o% v" E  M* a
- K( M) v  R( A& ^- O3 b0 |
DevOps实施结果

" ~0 p0 q3 P  O' ]

, d/ \1 _$ q% X* H" S: J, h  n
开发自运维之后,研发效率大幅提升:日均节省资源人数增长,集成验证发布耗时减少,专业性团队(性能、压测等)队伍在增长;质量得到保证:应用运维故障个数大幅下降;研发模式创新:自动化Case数量增加,50%项目小需求研发自测,测试不接手, 测试全监控。

/ s/ ]0 Q5 g% G2 M- y

8 Q% L) S1 c) [
企业如何利用云效进行高效研发?

% ~5 |- X0 n2 Q8 r- N

9 `7 z8 x* F  b( I) c& `8 T! b# O
苗欣:阿里资深研发工程师。主要负责云效平台解决方案服务输出。在自动化测试技术、持续集成等方面拥有多年实践经验,拥有多项技术专利。

  P# f7 e- k4 y; l
$ ~: h' _9 y. z
云效,源于内部,是阿里巴巴技术部实现持续交付的统一协同工作平台,实现开发测试全流程自动化,支撑项目的持续集成与持续交付。目前客户覆盖银行、保险、券商、电商、新零售等。
/ v' G$ a- i7 M3 g

1 o! X* N) o7 f: r0 U
一个项目如何在云效实现持续集成?
9 T7 R4 q* }# L$ t) l$ _: @
" K& X& S7 T  ^- G: g

7 d# _; _; @% v2 r0 D$ k
1.png

7 `& J: j" G" N" H2 {' n. B8 R+ q# C
视频演示链接:(进入页面后选择左侧帮助视频栏--云效研发整体流程视频)
http://ali-aegis.aliyun.com/help/help.html?spm=0.0.0.0.W35KAx

0 J1 y2 l/ v+ f% ?
6 U$ l. j: Q6 n
视频解读:

& \! j% C: n: h3 s3 s8 j2 R
" t% ~7 `5 v4 w$ S; x) H* O
项目准备阶段:我们评审好项目需求,初步完成项目的资源评估,以及确定项目的交付日期后,即可在云效配置管理系统创建项目,填写项目成员,申请应用代码分支。云效提供配置管理功能,同时开放接口,支持对接外部的配管系统。
$ D0 j4 |: g' Y+ N0 O$ O2 Y. S

( p" ~9 O& b! S/ p4 [, ~% |5 e
开发阶段:开发在本机编写代码,每次代码CI后,云效单测集成系统会自动检测代码变更,几分钟后收到邮件提醒,在邮件中,可以看到单测用例,静态扫描等信息,也可点击项目或者数字链接到云效单测集成系统,在系统上我们可以看到每次代码提交运行的详细情况。

& J" I! q3 a6 Z* A! N( b! U
/ t+ @9 f) ^$ E* X; T" I. m2 Z
测试准备阶段(含开发自测):开发在编写代码的同时,测试也进入测试准备阶段。测试在云效平台可以编写UI、接口、以及手工测试用例,用例编写完成后,还需要准备一些测试数据,在云效的数据银行提供了丰富的测试数据生成方式,我们可以根据配置单,快速生成所需要的测试数据。
5 K4 S- A2 S9 H7 T

6 [  z: Q# B! \' Y. `
测试阶段(环境部署、接口、UI、手工用例测试):开发自测通过后,项目进入测试阶段。开发在项目中打一个测试包,打开环境管理,点击申请,这时云效平台会自动申请一台云服务器,选出刚打出来的测试部署包,点击部署,测试环境的部署就自动开始了。在部署过程中,可以实时监控部署日志,获取Hosts绑定信息。测试在平台响应“接手测试”,在项目中运行写好的接口测试用例,运行UI用例,以及在手工用例系统中,运行功能用例,及时提交发现的缺陷。开发在收到缺陷邮件提醒后,可以在平台修复缺陷。接口、UI、功能测试都完成后,测试可以在平台响应功能“测试通过”。
7 `& K6 A1 ^: Z0 U  \+ _8 p+ J% N

. V3 h* v, W' c% o7 _4 q
集成测试阶段:开发在平台提交集成,项目进入集成队列,平台自动从应用的主干拉取最新的release分支,将项目中的分支和release分支合并,打出集成测试包,部署到集成测试环境,触发集成自动化脚本运行。项目成员可以在集成环境进行测试验证,验证通过后,平台上响应“验证通过”。配管将发布包部署到正式环境,触发代码合并主干。这样,就在云效平台上完成了一个项目持续集成过程。

. Q$ R  `. T/ ?. n! @6 _( a  V

4 S- N. T7 B0 o" h/ T
阿里巴巴CI/CD之分层自动化
1 C3 h0 R" k: u% ^8 ^/ }! X" {

, H* i( n8 h4 T  C! J2 V
金桐:阿里巴巴产品专家。从事多年互联网系统的研发和测试工作,现在主要负责云效分层自动化测试的产品设计。
" ], Z2 ^( B! y1 w
) A3 P* a8 F$ ]) d% k
手工测试效率低下,发布频繁,回归量大、成本高,重复劳动很枯燥。自动化测试,就是用机器执行替代测试手工操作的一种测试方法,能够帮助测试人员从重复、枯燥的手工测试中解放出来,从而节省人力、时间或硬件资源。节约劳力为(N-1)M,M为此项工作单次需要投入的资源,N为此项工作需要重复工作的次数。

, p8 I/ K# I. g/ c# W- l
2 @2 \/ N( p2 }. y& ~
如果自动化这么好,为什么大家没有全部做自动化?因为自动化测试也是有烦恼的。主要表现在:成本高(代码能力、自动化框架、IDE 准备、调度、多环境),效果差(浏览器影响、执行机影响、依赖环境影响、脚本健壮性不强),覆盖率低(框架不万能、上下层难全、接口参数排列多),及时性低(代码变更频繁、遗漏的变更、项目结束才发现)。

: e1 N/ O8 q- P4 s# t* x# Y1 }

. J0 l4 F+ E5 {# z. k2 k0 I# u9 J
为了降低成本,提高准确性,就要考虑降低人员成本、制作成本、运维成本、运行成本,同时扩大覆盖率、数据独立、提供好的方法和脚本。当然,就需要实行分层自动化。
6 b1 p5 }4 Z. a+ j

5 \9 W. Q# G/ S, t6 ~, E' p
在理解分层自动化之前,我们先看自动化测试金字塔,其中UI代表页面级系统测试,service代表服务业务测试(接口测试),unit代表单元测试。金字塔越高,表示需要投入的精力和工作量越大。分层自动化测试倡导的就是,将系统分层,根据层次特点用合适的自动化方法进行测试的一种测试策略。
. o& P7 F, W, s# |$ }4 s7 O, M) Z
3 C9 T1 Q. N: |/ B7 r
& M1 e) M4 C" x3 g
1.png
阿里巴巴分层自动化在经过策略的沉淀调整后,又经历了长期的工具与流程实践,并从自动化成本和效果这两个点上突破,进行分层自动化工具和项目流程的双重革命,最终达到业内领先的研发测试比。在阿里实践分层自动化需要很多分层工具,包括配置管理Aton、UI测试的AUI、单元测试的Amon、环境管理的Aenv、接口测试SAT、性能测试Perf、集成自动化Pre等。
/ _, z5 H- C- ]+ J1 U% e4 c

6 s# U' S* |5 M; b  o* |8 [8 M& A6 l
这里来介绍几个革命性工具:

# e/ `! r# Z/ f" M& y% |9 ]# w
9 \+ b1 B" |) A1 ^1 p
UI自动化—AUI
+ W: l3 m2 F7 H
! A+ m! G# K" Y  j; V+ \/ w
创新型web-ui自动化测试框架,无需安装复杂底层环境和 IDE

# H" u3 q, E/ \# j- H+ x
) c- G% B! F! k6 |; o
创建和维护脚本,都无需接触代码,全部为 Web 页面可视化使用

, f. B! e$ |' }. P3 E
: @" \2 G* x7 t! z  K6 I* \7 y* ?
支持本地回放,支持云端执行,解放机器,释放双手
8 j5 b% N. C- e! R! w" P
$ a2 Z+ X8 X! {3 \
支持项目持续集成,线上监控等各种复杂场景

, n; I5 }# `7 m4 w& f. M

3 u6 u: ~% R, [/ l% V% i- E( D  E
接口自动化—SAT

% m5 i  ~4 ^3 _$ c+ h
6 M  ^$ n8 o! ~& S' |6 m, Z5 j0 |: h
可视化的接口测试,无需编写代码

. f: h+ `  j* e: z8 P' q

/ W$ W% p% G7 T1 c/ k" N$ h/ p) T
支持普通接口调试和复杂后台交互的接口测试的用例沉淀

( G/ |9 B& ^  J/ u' y

( v. i* n7 k& c& L  I; U5 B  K
支持主干,项目用例的沉淀与回归

. }9 {- B5 I: q. J

4 I2 E- `# |! D. d: u
支持项目持续集成
, H( }3 A* ?) e* G  p

. B* U2 C$ I5 Q* \3 \
性能压测—Perf
9 j3 d. u0 W  o5 J1 \
# ^! z: r7 ?0 O1 N' E
基于 Jmeter 的性能压测平台
4 A& W( q# I9 v

! n, B: Y* u$ _2 I6 X4 w
集脚本,场景,压测,监控和报表为一体,可快速施压的平台

$ A5 l, n# v- n# M* A

, t3 S& h6 v1 q$ }& w- n/ r3 w1 V
支持多种协议,适合 http,service 接口等测试
4 M( Z8 W4 v; T: I
6 z" c% h* }. q# Z8 w% b
比 LoadRunner 易上手,更轻量
2 h& E6 i/ F7 {' [' r2 L! ]7 `

& S0 [9 n" O* [7 n- ?
单元测试—Amon

! [* }& I7 u9 [, H7 A

4 |: M( ~" _+ @. C( B, q3 O
可对代码主干及各项目分支进行单测集成
+ {, v, A. v7 U7 M' ^' X* j
* v% M/ d9 k: V5 ~+ a9 d
对有代码变更的项目分支自定义频率集成
6 O* ~0 g; e! O/ Y6 [% d

% B# }3 z" ?$ t+ b
对有代码变更的应用主干自定义频率集成
% J0 l3 ^( t# A" y4 m" ?2 P
' Y% N2 R1 {0 I* H
拥有单测用例结果、覆盖率结果、静态扫描结果、sonar 代码分析等质量数据
" k" y8 X8 ^7 ]0 }. K* \' M

3 U9 Y( M( H1 b
集成自动化—Pre
  v: L0 |7 ?. I( d7 j' E
- E  J2 N+ t' ?& L
支持多种自动化框架接入

+ i: K* g( x$ O% }" {" D
, X, R, q5 {2 r* e
支持项目集成相关所有自动化的自动统一触发
- ]+ _! e+ q7 r' K7 {  G3 t# D
( {! o2 w( w' w8 L7 f. ?5 y: a' L
支持多种自动化框架不同环境触发

4 Q. ]$ a2 f- v! R4 C; [+ E

# v$ ^! t9 J3 m+ r# R: ?8 {) O  B
支持日常持续集成
' Y  z- k! ~  D* @+ e4 _
8 x. v" {9 `8 L4 H& q
支持自动化失败的原因汇总与总结

7 s0 `6 _+ q% E
% u' Y/ s: b  k7 e/ N
阿里分层自动化实践带来了很有意义的成果,在阿里内部,大幅提高了研发测试比,减少了重复劳动带来的加班,同时带动了更多高效工具的诞生;在研发方面,单测成本降低了,覆盖率可视化了,自测有保障了,故障降低了;在测试方面,降低了测试要求,增加了工作成就感;对云效客户来说,给企业赋能,提高了研发测试效率。
# ]* j6 @% p: I

- F; r, a( Z9 y& o; w  D
原创:持续交付平台

9 M% x7 M' x1 Q* G

本版积分规则

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

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

Baidu

GMT+8, 2019-1-17 11:20 , Processed in 0.243092 second(s), 31 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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