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

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

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

扫描二维码登录本站

QQ登录

只需一步,快速开始

搜索
查看: 836|回复: 0

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

[复制链接]
发表于 2018-11-5 10:57:18 | 显示全部楼层 |阅读模式
本帖最后由 adminlily 于 2018-11-5 11:01 编辑
$ ~! A& @+ Y# s$ A5 i4 I) @
7 j# e2 d- Y9 l5 B. }
互联网时代,随着业务的迅猛发展,企业越来越希望通过实施DevOps来提升研发、运维等IT部门的效率,支撑业务发展。互联网企业如何利用工具让DevOps落地?传统企业如何提升研发效能,更快速的互联网化?这些都是企业面临的问题。
! N! o7 H: P- |; j5 O8 {) E
; q- O3 E0 K, k  [
  I. l2 X$ `* y% C% X9 ~* X( T& M$ Z6 ^
7月26日,阿里巴巴持续集成持续交付平台——云效,在深圳阿里中心举办了一场“业务为王时代,DevOps怎么玩?”主题沙龙,由阿里巴巴技术专家从云效新概念的提出,到阿里巴巴DevOps落地实践、到企业如何利用云效进行高效研发、再到阿里巴巴CI/CD之分层自动化,帮助参会者从理念、策略、实践、效果等方面,全面深入的了解DevOps玩法,以及具体如何落地的思路。
" E7 c/ n( f$ r" i

) @) J) c& N, v) h- L' e
云效:互联网+时代的企业级研发效能提升服务
& D1 y; j8 f# \8 w6 c. {/ I

3 S! V+ g4 N2 ~! A
云效是互联网业务下催生的研发效能平台,2012年,云效孵化自阿里巴巴B2B事业群,为阿里内部提供研发效能服务;2013年,云效真正实现持续集成持续交付并落地实施; 2015年底,云效与首家互联网保险公司众安保险合作,开启商业化第一步,后来正式为互联网+企业提供服务。
) R, `- Z, w; C7 C' e, W$ A

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

8 F: e/ r& l  g9 K) x2 T
云效2.0特色

: i. Z2 @& ^! I: m
) _  e# K$ \) C0 T  r/ i- N, g9 N
  • 流式实时交付:集成验证速度匹配项目研发速度,为业务加速,改变传统周期性交付模式;

    5 F. j0 A! l0 [1 g& ^% r. m

7 L. B6 J5 b( q4 T6 u' ^5 k
- g  c3 d" y& {+ R5 h; H/ {! a4 g9 b
  • 自动化质量保证:构建自动化质量保证体系,提升研发质量,为质量护航,改变传统手工技术质量保证体系;

    # F) Q8 F) _7 a+ [9 E. z

1 U) c3 l1 o9 F) Q
, {" e+ t+ m  T  K2 N
  • 柔性化管理:大数据支撑的柔性化研发技术管理,管理策略可私有定制,改变传统团队统一技术管理模式。
    : L; p6 t/ g$ u8 S3 w+ @  a

/ Z$ t$ u5 [' X5 r$ T
& f2 c5 k3 d) b! C* m  |# f  z, T
云效2.0策略
5 L6 g$ a( E, q4 @6 y6 q$ S( P1 v

8 z( @9 d  d5 j3 F
云效拥抱传统企业,根据传统企业研发团队规模大小、研发人员技能高低等,进行定制化实施策略,赋能技术团队,使业务无线可能。
' r& s3 l! e# ]6 Z6 J8 ~6 e
/ N0 t5 `9 e2 G- p0 p: d& I
1.png
1.png
3 }$ ~, @9 m- ~: l
落地效果
" [" u9 Y( h# Q2 c7 X, s+ u, g$ f, E. O

/ u/ ?3 A9 }; j8 m9 E6 o
在合作中,云效为众安保险部署4个月时间,测试环境和持续集成累计为众安提效232人日;云效为五矿电商部署测试环境累计超过6万次,UI自动化用例积累数量超过600个,实现了五矿业务场景的自动化的全面覆盖。

$ F1 B5 R$ u8 k! f  l
  o8 l' w' q" a- Y: d& o9 g6 p
阿里巴巴DevOps落地实践

+ {, U+ U' u% R( i5 p7 F' E4 D

2 a+ @: M7 ?/ T% k4 }4 r
章屹:阿里巴巴高级技术专家。清华大学电子工程系硕士毕业,十多年从事软件的测试、开发、系统设计工作。现为阿里巴巴高级技术专家,工程效能部技术负责人,负责云效的技术规划和建设工作。

& Q0 {; ~: |3 O$ X. z/ n9 k

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

3 U: I- ]1 L% I

1 E4 \  x/ G; ]3 v  h4 P) y
为了解决DevOps落地问题,云效跟开发、测试、运维团队一起,为开发服务,让他们自运维、自测,提升效率。
. d/ L* u6 G  l0 K
/ s. c) W, V- {7 E+ A
DevOps实施策略

, q) i2 j! i" Z' C8 ?4 i

% e& Q, B( i& \9 ?4 }+ `
1.png
1.png

2 I$ {5 o5 N0 y) o. U
如何赋能开发自运维、自测?

" L# [9 g6 u+ w1 R9 k

: w6 Q. O  l; p/ Q
在赋能开发自运维、自测过程中,工具的价值最为凸显。

4 t9 a$ m, B) J; a' S1 Q

, [; f- Q, F" O9 X4 a
  • 传统解决方案:大集成环境;固定发布时间(每周一次、两周一次、一年四次……);

    + Y6 }# Y- \* j4 ]. J

- I- |- Q: d/ a. r

1 ]- B1 y. A! _* l
  • 云效持续交付解决方案:所有应用24小时随时提测并发布,无发布窗口限制;预发布集成环境,半小时完成自动化并无人值守。
    4 Q4 [- z8 S# g

6 ], D2 W/ o; y, f
  r5 [+ |1 ~" r. u2 k
DevOps实施结果

! P. K0 g! w# D) V/ C

. W1 T) `/ N- ^; W4 w% H# q' n5 K
开发自运维之后,研发效率大幅提升:日均节省资源人数增长,集成验证发布耗时减少,专业性团队(性能、压测等)队伍在增长;质量得到保证:应用运维故障个数大幅下降;研发模式创新:自动化Case数量增加,50%项目小需求研发自测,测试不接手, 测试全监控。

4 w, c" I5 y) r1 _4 n# d  H- ]

6 Y6 J; W  v' K( F8 B/ I* n! D% Y
企业如何利用云效进行高效研发?

: p, h0 Y* r4 w6 t' q; Q+ n: E
6 z  _' m% V" n0 x! R, L7 O1 P" O' n
苗欣:阿里资深研发工程师。主要负责云效平台解决方案服务输出。在自动化测试技术、持续集成等方面拥有多年实践经验,拥有多项技术专利。
7 G7 b/ a" D4 q- `) E1 l# j' m: x* H5 M
% B% I4 M# V3 t: |# S
云效,源于内部,是阿里巴巴技术部实现持续交付的统一协同工作平台,实现开发测试全流程自动化,支撑项目的持续集成与持续交付。目前客户覆盖银行、保险、券商、电商、新零售等。
+ Y6 K) b: E" [: ?  ?

; C2 d# Y9 A* X. i! x
一个项目如何在云效实现持续集成?

9 [) y: d) O9 a' j5 o, D

" C8 ?: }7 S( U0 c- L) y( G
9 T+ N: Z- b) P- M- l2 }$ s7 |
1.png
9 m; K' |6 E: F' k  k9 m4 j  B
视频演示链接:(进入页面后选择左侧帮助视频栏--云效研发整体流程视频)
http://ali-aegis.aliyun.com/help/help.html?spm=0.0.0.0.W35KAx

: s0 H0 g! Y, f* B$ d- Z4 M4 q8 M) Z
) \1 e+ h$ f8 k. g  ~
视频解读:
' C+ m% @$ S, \1 d( G
: _& m1 b6 W& D! c* C2 a/ W# E
项目准备阶段:我们评审好项目需求,初步完成项目的资源评估,以及确定项目的交付日期后,即可在云效配置管理系统创建项目,填写项目成员,申请应用代码分支。云效提供配置管理功能,同时开放接口,支持对接外部的配管系统。
, B6 q2 _7 m4 y5 Y. c, s5 S3 r2 G& o

' e4 P* d, C+ J
开发阶段:开发在本机编写代码,每次代码CI后,云效单测集成系统会自动检测代码变更,几分钟后收到邮件提醒,在邮件中,可以看到单测用例,静态扫描等信息,也可点击项目或者数字链接到云效单测集成系统,在系统上我们可以看到每次代码提交运行的详细情况。

! @- u5 y6 t: g: c. e# ^
; m+ V7 e8 h6 G. e' u
测试准备阶段(含开发自测):开发在编写代码的同时,测试也进入测试准备阶段。测试在云效平台可以编写UI、接口、以及手工测试用例,用例编写完成后,还需要准备一些测试数据,在云效的数据银行提供了丰富的测试数据生成方式,我们可以根据配置单,快速生成所需要的测试数据。
9 [9 H. x7 y# X
/ \4 W: o$ m( `! e4 e
测试阶段(环境部署、接口、UI、手工用例测试):开发自测通过后,项目进入测试阶段。开发在项目中打一个测试包,打开环境管理,点击申请,这时云效平台会自动申请一台云服务器,选出刚打出来的测试部署包,点击部署,测试环境的部署就自动开始了。在部署过程中,可以实时监控部署日志,获取Hosts绑定信息。测试在平台响应“接手测试”,在项目中运行写好的接口测试用例,运行UI用例,以及在手工用例系统中,运行功能用例,及时提交发现的缺陷。开发在收到缺陷邮件提醒后,可以在平台修复缺陷。接口、UI、功能测试都完成后,测试可以在平台响应功能“测试通过”。
8 r! _5 J- s! Q- v* [
2 k% w8 `& Y1 ?9 g  S3 T( e
集成测试阶段:开发在平台提交集成,项目进入集成队列,平台自动从应用的主干拉取最新的release分支,将项目中的分支和release分支合并,打出集成测试包,部署到集成测试环境,触发集成自动化脚本运行。项目成员可以在集成环境进行测试验证,验证通过后,平台上响应“验证通过”。配管将发布包部署到正式环境,触发代码合并主干。这样,就在云效平台上完成了一个项目持续集成过程。

& E9 ^) E5 K" G  X6 u% o2 T
3 Z' o% |, f/ F6 ^. H
阿里巴巴CI/CD之分层自动化
. a2 \5 D9 E& D8 s7 N' J" g' ?9 [

! m' o/ p- ?# U
金桐:阿里巴巴产品专家。从事多年互联网系统的研发和测试工作,现在主要负责云效分层自动化测试的产品设计。

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

; w) m9 h" a- `- Y8 k

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

7 K+ W1 G- M' x9 z
为了降低成本,提高准确性,就要考虑降低人员成本、制作成本、运维成本、运行成本,同时扩大覆盖率、数据独立、提供好的方法和脚本。当然,就需要实行分层自动化。
/ A& j2 `0 i$ h* F, P! m( ^
( a+ S: \* O  q* W4 k0 H7 q, F
在理解分层自动化之前,我们先看自动化测试金字塔,其中UI代表页面级系统测试,service代表服务业务测试(接口测试),unit代表单元测试。金字塔越高,表示需要投入的精力和工作量越大。分层自动化测试倡导的就是,将系统分层,根据层次特点用合适的自动化方法进行测试的一种测试策略。
% Y( V  {' a1 e1 j9 I2 [
, R7 b8 s2 ~* T0 `7 z1 j6 A+ D* o
- b- a* E4 d' d9 m5 Q# q0 ~/ F+ y
1.png
阿里巴巴分层自动化在经过策略的沉淀调整后,又经历了长期的工具与流程实践,并从自动化成本和效果这两个点上突破,进行分层自动化工具和项目流程的双重革命,最终达到业内领先的研发测试比。在阿里实践分层自动化需要很多分层工具,包括配置管理Aton、UI测试的AUI、单元测试的Amon、环境管理的Aenv、接口测试SAT、性能测试Perf、集成自动化Pre等。
5 f! j/ o/ x" D1 [; ?# L$ i1 U; p$ H
; d' x& D/ z, ~9 J
这里来介绍几个革命性工具:

* o. i+ r- c1 u9 ]# q, B; A6 H

# h. }& ]0 u# \9 {* N' O
UI自动化—AUI

% e. d; _7 Q. S9 l

  ?1 n3 O6 z2 p) L6 ^& g
创新型web-ui自动化测试框架,无需安装复杂底层环境和 IDE

5 T2 P+ u. @  Y; g- P  V& I

+ N- u; k: w! {" G; N4 q5 ^( _2 b
创建和维护脚本,都无需接触代码,全部为 Web 页面可视化使用

( `* M7 K1 ]! m8 w+ W: o8 f( q- ^

* X* X! J% l( p  d* U1 K
支持本地回放,支持云端执行,解放机器,释放双手

% Q) J+ F7 m  _/ n! V# O

% Z/ e+ h9 x+ C& _% h" T
支持项目持续集成,线上监控等各种复杂场景
3 y2 C! h% X7 h2 J! P

& O* E, J# j& ]' p; s7 ^
接口自动化—SAT

0 y7 d, O; b; S# T5 P: U
9 K; t9 ]2 s) k. v! S( o
可视化的接口测试,无需编写代码
0 J, G; ?* W9 Q" G0 E4 ?

6 M0 X+ \' i$ Z5 B& W
支持普通接口调试和复杂后台交互的接口测试的用例沉淀

8 N% C! ~8 z0 I& n2 C  S  y( [
' G5 C2 b2 c4 _  z3 Z2 o
支持主干,项目用例的沉淀与回归
; i0 q6 h- E% E+ E. ?
. n* [3 l6 }% g! K6 a4 m6 X
支持项目持续集成

) l) d4 E* P8 k2 x0 t

1 N: N) a+ D+ _5 u4 C( B
性能压测—Perf
" Z9 W+ k2 Y( ]! A9 e+ k3 o. t
" c- h+ F0 o; X
基于 Jmeter 的性能压测平台
; J/ J! U- b; A
) R! J! d9 S& u7 r
集脚本,场景,压测,监控和报表为一体,可快速施压的平台

1 D  Z1 D( S) b2 X0 o2 K+ K! N

1 r' X' R3 \- a. `
支持多种协议,适合 http,service 接口等测试
. `9 J) q3 t9 m9 ^, z

' {" ?7 T" N( @
比 LoadRunner 易上手,更轻量
2 [& X5 v, z+ ~
3 F* L( Q" m. K5 x) m8 N
单元测试—Amon
/ F# i/ Q; h6 `& i
% i; l$ z6 R2 [* u& P0 ~6 M* z
可对代码主干及各项目分支进行单测集成
# {$ E/ E  K+ d. e, ]

% {2 h1 u4 b, }( L
对有代码变更的项目分支自定义频率集成

: ]; x6 Z( k! c

3 ~, I: m! {$ g, `1 Q! j
对有代码变更的应用主干自定义频率集成

. q2 }+ c8 T) X; ?
- ^0 E9 H+ P+ H! @) q
拥有单测用例结果、覆盖率结果、静态扫描结果、sonar 代码分析等质量数据

$ }" _3 H7 N2 r' M6 {5 f, \

: m8 F0 j, W' x. k' c" l4 ?
集成自动化—Pre
' ^8 x; b0 V  o7 F  Z& K' k' n
& D: ^2 s2 F) c" N6 u) O
支持多种自动化框架接入

1 G- W. l4 h+ R2 t7 W$ V

9 v" ?4 o& R+ ?2 v, G" ?- J$ B
支持项目集成相关所有自动化的自动统一触发

- z1 `6 S" R* {# N: r3 J

# [: {" j/ Q5 a5 j5 v+ r
支持多种自动化框架不同环境触发

2 b+ v2 ~6 \) f0 R- @
$ p+ \  O5 n3 @4 F
支持日常持续集成
! i5 s0 a0 ?* c5 M5 ^- i
3 y5 X: T6 [+ y% r8 S# A
支持自动化失败的原因汇总与总结
% B9 ]4 s* b" T5 V2 b4 i

& Z7 w* |. b. q; o" E
阿里分层自动化实践带来了很有意义的成果,在阿里内部,大幅提高了研发测试比,减少了重复劳动带来的加班,同时带动了更多高效工具的诞生;在研发方面,单测成本降低了,覆盖率可视化了,自测有保障了,故障降低了;在测试方面,降低了测试要求,增加了工作成就感;对云效客户来说,给企业赋能,提高了研发测试效率。
( h8 k6 o$ V1 Z$ O2 G7 N
2 B/ K+ G; @4 v! K" w6 G2 G
原创:持续交付平台
5 N, i2 O2 l) p) T1 C. O

本版积分规则

购买ITIL 4中文教材及Foundation和中级过渡认证、DevOps专家认证、ITSS服务经理认证报名

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

Baidu

GMT+8, 2020-2-21 14:10 , Processed in 0.169776 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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