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

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

 找回密码
 立即注册

扫描二维码登录本站

QQ登录

只需一步,快速开始

查看: 1682|回复: 0

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

[复制链接]
发表于 2018-11-5 10:57:18 | 显示全部楼层 |阅读模式
本帖最后由 adminlily 于 2018-11-5 11:01 编辑
8 j, ~+ M+ W. N% y) ]  M
1 o. L2 h! y, G7 E6 A
互联网时代,随着业务的迅猛发展,企业越来越希望通过实施DevOps来提升研发、运维等IT部门的效率,支撑业务发展。互联网企业如何利用工具让DevOps落地?传统企业如何提升研发效能,更快速的互联网化?这些都是企业面临的问题。
& L* x$ R1 P7 F# F5 a5 u
8 x+ ]7 |4 b- q% l7 g1 `; f

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

# k# ~- m- m% ^; x' k
云效:互联网+时代的企业级研发效能提升服务
4 ]& D/ f! D, p2 C0 A
5 ~) x; @3 q, e
云效是互联网业务下催生的研发效能平台,2012年,云效孵化自阿里巴巴B2B事业群,为阿里内部提供研发效能服务;2013年,云效真正实现持续集成持续交付并落地实施; 2015年底,云效与首家互联网保险公司众安保险合作,开启商业化第一步,后来正式为互联网+企业提供服务。
. p2 f: z6 ^$ X9 }5 h0 L7 d5 |

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

5 M: D5 X8 s  d3 e" T' X

) M, j# l% d( n
云效2.0特色
5 E! x/ e1 n0 h4 P

/ ^5 i9 U- N) R$ K* ~  N: q, B
  • 流式实时交付:集成验证速度匹配项目研发速度,为业务加速,改变传统周期性交付模式;
    1 J. a8 m5 M# j7 d/ v) C; \. q$ _

: W" p* C( \* f  W) e) L

, s% L2 \% E' h7 v: @( w! w: }. `2 s3 g
  • 自动化质量保证:构建自动化质量保证体系,提升研发质量,为质量护航,改变传统手工技术质量保证体系;

    0 |! w' U! C5 g' l. T9 y4 I

& \/ Q1 j& d7 g6 x4 ^# {
# k# A6 q, X3 i, V: P: Q
  • 柔性化管理:大数据支撑的柔性化研发技术管理,管理策略可私有定制,改变传统团队统一技术管理模式。
    * w7 f" P3 c+ ?; _. b% w

/ m7 r  Y; ]) D

; W1 q+ _( f. I" D: ]" X' A
云效2.0策略

4 K) `$ d' f$ B* \' z- y' I
& P/ l# v% r, [8 T, ?
云效拥抱传统企业,根据传统企业研发团队规模大小、研发人员技能高低等,进行定制化实施策略,赋能技术团队,使业务无线可能。

7 N. A3 q( `% ^6 ?0 A4 x" W

9 e' Y, U5 {  m' X! W
1.png
1.png
$ P$ }0 R7 \. k- D, N. K6 Z! }
落地效果

/ o$ O/ E8 l+ p. t3 G9 n% C
. K4 g  d( }9 R( K  n% M/ t( F
在合作中,云效为众安保险部署4个月时间,测试环境和持续集成累计为众安提效232人日;云效为五矿电商部署测试环境累计超过6万次,UI自动化用例积累数量超过600个,实现了五矿业务场景的自动化的全面覆盖。
  E4 `$ F; F5 h! `+ Z
+ \2 P- j% h. a$ j( h
阿里巴巴DevOps落地实践

! `: r* J& l! M( X( t
% |  D% U6 z- n+ B) r3 B3 L
章屹:阿里巴巴高级技术专家。清华大学电子工程系硕士毕业,十多年从事软件的测试、开发、系统设计工作。现为阿里巴巴高级技术专家,工程效能部技术负责人,负责云效的技术规划和建设工作。
+ n* C" a5 M; `) G9 }# m
( G% ~8 R! z! P
在阿里巴巴内部推行开发自测、开发自运维的环境下,阿里巴巴DevOps应运而生。阿里巴巴DevOps面临这几个问题:1.开发的测试和运维能力培养问题;2.开发自测自运维带来的效率和质量问题;3.DevOps的实施进度问题;4.测试团队和运维团队的未来发展问题;5.技术的发展(微服务、容器化)带来的挑战。

' N  l- G2 m& O' l; I: ^
/ H/ u1 X5 N  |; g( t$ Z$ X. I( n! R) k
为了解决DevOps落地问题,云效跟开发、测试、运维团队一起,为开发服务,让他们自运维、自测,提升效率。

' u+ r6 Y6 `7 v' q

( {* U( e, F# i6 [6 Z
DevOps实施策略

2 j( O/ N- K0 w+ }# d' n5 t

9 K" o6 q' J! X/ Q
1.png
1.png

5 t; \% z9 R: [9 m8 Y! L! p# f
如何赋能开发自运维、自测?
* ^1 U  w9 B# O* H. h

2 T$ Y0 o" }* L# V9 G4 e
在赋能开发自运维、自测过程中,工具的价值最为凸显。
/ \2 \& X: {" K9 n6 ^

- G: p' E; f/ E9 n, F) @7 @
  • 传统解决方案:大集成环境;固定发布时间(每周一次、两周一次、一年四次……);
    ' _3 ]" [2 ~8 e% g& X- S; D  ]$ m, s

1 |" Q  n# E! {! t) D
# T3 ~4 v- E, z) h1 b! r
  • 云效持续交付解决方案:所有应用24小时随时提测并发布,无发布窗口限制;预发布集成环境,半小时完成自动化并无人值守。

    3 }- R& E9 ^7 ~/ b

6 G  s6 P7 {/ [# d% @
% j  k5 X; j( S) I: ^4 T3 v
DevOps实施结果

6 _8 k$ `' P/ Y( y0 i
, c- O5 j4 W# A0 N: D
开发自运维之后,研发效率大幅提升:日均节省资源人数增长,集成验证发布耗时减少,专业性团队(性能、压测等)队伍在增长;质量得到保证:应用运维故障个数大幅下降;研发模式创新:自动化Case数量增加,50%项目小需求研发自测,测试不接手, 测试全监控。
8 Y" T, c0 U( ?) G

# u5 m* V7 `* p8 O1 ]
企业如何利用云效进行高效研发?

4 c/ m, a8 H" g/ t* ]  h8 B' X0 C8 w

1 C1 U; [( q. D& I1 r( Q- L. f% t
苗欣:阿里资深研发工程师。主要负责云效平台解决方案服务输出。在自动化测试技术、持续集成等方面拥有多年实践经验,拥有多项技术专利。
% ]/ S: I# T8 D( Q& ^

) ~/ {  i6 D# J" [* p) s
云效,源于内部,是阿里巴巴技术部实现持续交付的统一协同工作平台,实现开发测试全流程自动化,支撑项目的持续集成与持续交付。目前客户覆盖银行、保险、券商、电商、新零售等。

4 d+ B+ ?* c5 W* M( |
4 f8 U0 X( z! z: b% U% z( T
一个项目如何在云效实现持续集成?
0 j6 O( w1 c/ Q; t
) j# @. h0 E# ^3 A- c: s" w: f8 Z" o7 C

* c( Z0 K& E* m' P& o! Q2 Q
1.png

& V. c% X4 i, d7 [' U! H
视频演示链接:(进入页面后选择左侧帮助视频栏--云效研发整体流程视频)
http://ali-aegis.aliyun.com/help/help.html?spm=0.0.0.0.W35KAx

7 m+ W3 ~* ?& [0 E, ]) n' v
: c0 v9 b( ^! s: E5 w8 A& l: d0 P
视频解读:
. F# t: [! w, q' B: u
. Z/ a4 O7 z( \1 i  l% |' k6 S! X
项目准备阶段:我们评审好项目需求,初步完成项目的资源评估,以及确定项目的交付日期后,即可在云效配置管理系统创建项目,填写项目成员,申请应用代码分支。云效提供配置管理功能,同时开放接口,支持对接外部的配管系统。

9 P, @0 v) `: P
: O9 g$ t" `% Y$ f6 c( s
开发阶段:开发在本机编写代码,每次代码CI后,云效单测集成系统会自动检测代码变更,几分钟后收到邮件提醒,在邮件中,可以看到单测用例,静态扫描等信息,也可点击项目或者数字链接到云效单测集成系统,在系统上我们可以看到每次代码提交运行的详细情况。

, @; v. T  Z% E
/ W" g2 H7 G# W6 o
测试准备阶段(含开发自测):开发在编写代码的同时,测试也进入测试准备阶段。测试在云效平台可以编写UI、接口、以及手工测试用例,用例编写完成后,还需要准备一些测试数据,在云效的数据银行提供了丰富的测试数据生成方式,我们可以根据配置单,快速生成所需要的测试数据。
6 t+ H! m. R" ?/ T5 i( o6 B  |

* C3 t' n+ h0 J$ @5 n6 V7 S
测试阶段(环境部署、接口、UI、手工用例测试):开发自测通过后,项目进入测试阶段。开发在项目中打一个测试包,打开环境管理,点击申请,这时云效平台会自动申请一台云服务器,选出刚打出来的测试部署包,点击部署,测试环境的部署就自动开始了。在部署过程中,可以实时监控部署日志,获取Hosts绑定信息。测试在平台响应“接手测试”,在项目中运行写好的接口测试用例,运行UI用例,以及在手工用例系统中,运行功能用例,及时提交发现的缺陷。开发在收到缺陷邮件提醒后,可以在平台修复缺陷。接口、UI、功能测试都完成后,测试可以在平台响应功能“测试通过”。
1 k4 l5 X; c, t& w" [! u" O
: L/ E2 t4 E; z' X; X- n9 O' Q# h2 H% K
集成测试阶段:开发在平台提交集成,项目进入集成队列,平台自动从应用的主干拉取最新的release分支,将项目中的分支和release分支合并,打出集成测试包,部署到集成测试环境,触发集成自动化脚本运行。项目成员可以在集成环境进行测试验证,验证通过后,平台上响应“验证通过”。配管将发布包部署到正式环境,触发代码合并主干。这样,就在云效平台上完成了一个项目持续集成过程。

: x, C% Z& a  h5 U2 ^- _" Z/ Q
; [2 }4 \+ w! M4 W8 p
阿里巴巴CI/CD之分层自动化

* b% @$ j) K; E, t

. E; C  l& W7 k( [7 w+ j8 o
金桐:阿里巴巴产品专家。从事多年互联网系统的研发和测试工作,现在主要负责云效分层自动化测试的产品设计。

' h0 e1 @+ c9 b* F/ n+ q

7 Y- F  b3 R9 ?0 M
手工测试效率低下,发布频繁,回归量大、成本高,重复劳动很枯燥。自动化测试,就是用机器执行替代测试手工操作的一种测试方法,能够帮助测试人员从重复、枯燥的手工测试中解放出来,从而节省人力、时间或硬件资源。节约劳力为(N-1)M,M为此项工作单次需要投入的资源,N为此项工作需要重复工作的次数。
0 ]- \* H6 _  L  W, E; N% I, G
3 _3 ]3 n# ]/ a0 g
如果自动化这么好,为什么大家没有全部做自动化?因为自动化测试也是有烦恼的。主要表现在:成本高(代码能力、自动化框架、IDE 准备、调度、多环境),效果差(浏览器影响、执行机影响、依赖环境影响、脚本健壮性不强),覆盖率低(框架不万能、上下层难全、接口参数排列多),及时性低(代码变更频繁、遗漏的变更、项目结束才发现)。
9 `3 o- h! [6 T1 L% Q
) B. U3 g" m* @! U7 e2 u3 Z4 M  f
为了降低成本,提高准确性,就要考虑降低人员成本、制作成本、运维成本、运行成本,同时扩大覆盖率、数据独立、提供好的方法和脚本。当然,就需要实行分层自动化。
$ @* D) V, N0 d. S, r" a2 d

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

& e7 Y$ _8 T0 N6 q2 t
! A8 N3 ?' U! w+ |+ |- I

: h5 p' p6 j6 O8 `0 ?2 C
1.png
阿里巴巴分层自动化在经过策略的沉淀调整后,又经历了长期的工具与流程实践,并从自动化成本和效果这两个点上突破,进行分层自动化工具和项目流程的双重革命,最终达到业内领先的研发测试比。在阿里实践分层自动化需要很多分层工具,包括配置管理Aton、UI测试的AUI、单元测试的Amon、环境管理的Aenv、接口测试SAT、性能测试Perf、集成自动化Pre等。
3 G, }7 c# Y* j
! A$ s0 C. v, a
这里来介绍几个革命性工具:
1 W7 ?0 W; K/ V% G
" F, A9 V7 i& c! Y; {
UI自动化—AUI

& V; J$ s  z7 V& e! o7 g
3 y, n1 S6 z$ A7 U# Z6 |( K
创新型web-ui自动化测试框架,无需安装复杂底层环境和 IDE
- E; O! r) N! ]3 @5 I. w, F3 |

$ [- J1 ^: \$ h9 R  j" b, C" a
创建和维护脚本,都无需接触代码,全部为 Web 页面可视化使用
+ Z( ~7 J9 m( |

5 V  b& E; f) ^
支持本地回放,支持云端执行,解放机器,释放双手

2 f3 e) h) ^* S/ W) A2 y
' r3 \0 s0 a, L* X6 {: i
支持项目持续集成,线上监控等各种复杂场景
6 p# R9 m6 z9 x. |$ }- L- ~& K0 F

2 L# Z4 M# `: [2 m
接口自动化—SAT
6 _# M, x9 J9 n; d7 x
2 n3 k% T( r$ K; D% P, f
可视化的接口测试,无需编写代码
2 z1 Z8 t, m3 O' e
5 K) g7 e/ o9 ~
支持普通接口调试和复杂后台交互的接口测试的用例沉淀
4 ^. N. M8 _$ v. P1 u8 x& y

2 N3 V, ~* {# c7 l' O( h4 }4 u
支持主干,项目用例的沉淀与回归
+ w$ j0 v$ t, r

$ g/ D" d0 z) B
支持项目持续集成
1 p. c: B: Z5 f7 d8 W% l
4 ?$ }4 t; I6 w
性能压测—Perf
2 l& s. C) u. ^( F$ k' L# K

, w' a7 l8 p/ l  z
基于 Jmeter 的性能压测平台

1 \& E7 X+ {. E8 k6 Y

& W; H8 d: z" w  G' B. x
集脚本,场景,压测,监控和报表为一体,可快速施压的平台

" D* V- M' d( v4 S( y% e' ~

) f# A4 s- v2 K3 C. p( C) P( E5 m
支持多种协议,适合 http,service 接口等测试

* O0 t# g- ?* Q6 `8 C+ T) g1 ^8 m

" V+ s& W; ~7 y6 L7 ?1 U
比 LoadRunner 易上手,更轻量
( c% D* T: K* M& P7 I6 I: Q
' A" C5 y. x: U4 d- V
单元测试—Amon

( j  u6 t# |" T
$ {# O: m1 X, V$ Q
可对代码主干及各项目分支进行单测集成
6 ?8 |. H# Q$ d( ^- N/ \! r  V
' y* {$ ]! i+ j
对有代码变更的项目分支自定义频率集成

! A- D8 `9 `8 W/ x
/ X3 Q2 \8 c5 W- e- x' l
对有代码变更的应用主干自定义频率集成

$ T$ m( O4 \$ k+ Q: T- ^
2 b9 e' u3 Q- r  B! u4 e
拥有单测用例结果、覆盖率结果、静态扫描结果、sonar 代码分析等质量数据

# P( G6 Y! \$ k/ g7 b: l7 l/ M: d

, [. H- W# v, L$ q
集成自动化—Pre
* @/ D0 ?8 P3 G
. H) q; p. e  w, H4 e, I
支持多种自动化框架接入

, p/ k; ~7 P8 c, o& P; O' L" z' s$ M
. F- V- D. m/ i) L- U
支持项目集成相关所有自动化的自动统一触发

* S1 v+ m* f8 y1 W7 t; w
3 z, j. i! z$ T6 `4 Q+ r
支持多种自动化框架不同环境触发

/ `+ t  ~& i* v# h- o- Y
/ F' V3 r4 D/ d) X
支持日常持续集成

. D$ u( d) Y! Q/ s9 Z/ B1 Z

2 X' w1 }% u0 [  S
支持自动化失败的原因汇总与总结

8 p6 y3 D+ v# K# G
' I8 I# M7 k# w  R. f
阿里分层自动化实践带来了很有意义的成果,在阿里内部,大幅提高了研发测试比,减少了重复劳动带来的加班,同时带动了更多高效工具的诞生;在研发方面,单测成本降低了,覆盖率可视化了,自测有保障了,故障降低了;在测试方面,降低了测试要求,增加了工作成就感;对云效客户来说,给企业赋能,提高了研发测试效率。
# Q- U6 G$ W+ q. V6 P1 W; ?: c* T
* E# j  a9 d& {$ W; m- }
原创:持续交付平台
0 l7 e9 o$ O' W6 `' O& z7 Y




上一篇:基于DevOps如何建设Android交付工具链
下一篇:DevOps微课之Zabbix配置
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

参加 ITIL 4 基础和中级专家认证、v3专家升级、DevOps专家认证、ITSS服务经理认证报名
本站关键字: ITIL| ITSM| ISO20000| ITIL培训| ITIL认证| ITIL考试| ITSS| ITSS培训| ITSS认证| IT运维管理| DevOps| DevOps培训| DevOps认证| itop| itil4| sre| 开源ITSM软件

QQ|ITIL先锋论坛 ( 粤ICP备11099876号 )|appname

Baidu

GMT+8, 2021-10-20 18:44 , Processed in 0.110393 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

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