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

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

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

扫描二维码登录本站

QQ登录

只需一步,快速开始

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

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

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

参加活动:0

组织活动:0

发表于 2018-11-5 10:57:18 | 显示全部楼层 |阅读模式 来自- 广东广州
本帖最后由 adminlily 于 2018-11-5 11:01 编辑
; f( M7 K8 G) O9 i0 [+ s( [" q) ]6 g+ y% X3 b
互联网时代,随着业务的迅猛发展,企业越来越希望通过实施DevOps来提升研发、运维等IT部门的效率,支撑业务发展。互联网企业如何利用工具让DevOps落地?传统企业如何提升研发效能,更快速的互联网化?这些都是企业面临的问题。6 ?; m' w( J  X% n

3 Q0 Y/ P( V3 ~  d% U( G

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

, d3 x2 c9 f" `
5 ?: I) r( p) A& ?; w
云效:互联网+时代的企业级研发效能提升服务

/ r- R, f+ U5 b" J  T
: Q$ g6 j0 }" I$ r
云效是互联网业务下催生的研发效能平台,2012年,云效孵化自阿里巴巴B2B事业群,为阿里内部提供研发效能服务;2013年,云效真正实现持续集成持续交付并落地实施; 2015年底,云效与首家互联网保险公司众安保险合作,开启商业化第一步,后来正式为互联网+企业提供服务。
8 S5 W/ \; Y! g5 h3 p- s- U% O  x7 ]

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

# A8 d; p& x/ _1 G0 m2 t
$ w" R1 c! V0 Q8 f3 {' Q
云效2.0特色

- b( G. \. Z- D2 u7 ?+ X
) p+ S( P  ^, V
  • 流式实时交付:集成验证速度匹配项目研发速度,为业务加速,改变传统周期性交付模式;

    3 \$ Y1 I: G( N+ Y& s
* d* K3 l) ~3 L# s- K
# L. s5 J( z9 {6 T. a
  • 自动化质量保证:构建自动化质量保证体系,提升研发质量,为质量护航,改变传统手工技术质量保证体系;
    . z2 f$ `; d$ b7 ^
" `9 P( i: V4 p1 J3 u

, H" Z4 w* F: q/ @  M- N" L$ z
  • 柔性化管理:大数据支撑的柔性化研发技术管理,管理策略可私有定制,改变传统团队统一技术管理模式。

    6 M5 c- a1 V7 i4 ^. ^5 w, B# r

; D/ j7 B/ h0 a, w% k: y

/ u8 ~" @+ w4 m* J( |
云效2.0策略

) O5 {9 F$ X1 x. z( m2 ?# D; }. N
2 g8 m; |5 i! i- _7 N
云效拥抱传统企业,根据传统企业研发团队规模大小、研发人员技能高低等,进行定制化实施策略,赋能技术团队,使业务无线可能。
# ^" ]8 ^: T. W* O
+ {  w1 d# \/ E
1.png
1.png
# y% s1 p# d8 u( c/ ?* ~
落地效果

$ m4 W. i4 ?3 g6 x" ~- r( _
& l1 [9 n. U9 B, a; c. E: ~
在合作中,云效为众安保险部署4个月时间,测试环境和持续集成累计为众安提效232人日;云效为五矿电商部署测试环境累计超过6万次,UI自动化用例积累数量超过600个,实现了五矿业务场景的自动化的全面覆盖。
( i  ^! g- z) M9 ^3 ?9 m; V
5 i- M4 r% u5 l0 }+ {) G% j
阿里巴巴DevOps落地实践

# [. n& d  F2 Y. M6 j# D

# B4 [8 I; x! |
章屹:阿里巴巴高级技术专家。清华大学电子工程系硕士毕业,十多年从事软件的测试、开发、系统设计工作。现为阿里巴巴高级技术专家,工程效能部技术负责人,负责云效的技术规划和建设工作。
! a( L( M  x! b" V$ b

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

4 r, Q+ U2 m9 L- u

" H- t" z, l5 E( p! b$ a
为了解决DevOps落地问题,云效跟开发、测试、运维团队一起,为开发服务,让他们自运维、自测,提升效率。
4 s; \/ F7 q, d8 D/ i

6 F8 i9 Z$ M$ E, Z# ^
DevOps实施策略

. N. {& K% P1 N, R8 T! w( F
  [# V$ n( G' ~" E4 [, V
1.png
1.png
' M. z) z$ J$ C0 g+ E
如何赋能开发自运维、自测?
* Y3 v6 d+ K! g- V$ [8 `( I) \
; N, y, g$ h; R1 U2 i9 K9 F
在赋能开发自运维、自测过程中,工具的价值最为凸显。
  W: j  G' l$ Q* l

: O! r3 \% y* x
  • 传统解决方案:大集成环境;固定发布时间(每周一次、两周一次、一年四次……);

      p) z0 [, d- i7 m" O. B! N; s5 {

& f2 i, u  C0 V* y' k- q0 b% \
) i: r  d9 ?  x
  • 云效持续交付解决方案:所有应用24小时随时提测并发布,无发布窗口限制;预发布集成环境,半小时完成自动化并无人值守。

    ' _$ ]5 G4 S2 p( n' u+ d, ?
- e& M9 H; l1 n0 O/ ?' A
* P; T" b! E& ]8 _, P
DevOps实施结果

( H0 i8 _4 Z. T  k* Y

2 _/ ?& i( w$ T0 `
开发自运维之后,研发效率大幅提升:日均节省资源人数增长,集成验证发布耗时减少,专业性团队(性能、压测等)队伍在增长;质量得到保证:应用运维故障个数大幅下降;研发模式创新:自动化Case数量增加,50%项目小需求研发自测,测试不接手, 测试全监控。
" i- r. g- \/ z9 j+ ?- R
+ B0 p/ F0 ^0 O7 l5 {
企业如何利用云效进行高效研发?
+ w1 Y  }9 i& S0 T& ?

5 k. q' s7 K7 b. f6 F( q
苗欣:阿里资深研发工程师。主要负责云效平台解决方案服务输出。在自动化测试技术、持续集成等方面拥有多年实践经验,拥有多项技术专利。

4 A4 m/ h/ @* I6 l& w7 t) [
) I1 `; K3 K" {* ~4 U
云效,源于内部,是阿里巴巴技术部实现持续交付的统一协同工作平台,实现开发测试全流程自动化,支撑项目的持续集成与持续交付。目前客户覆盖银行、保险、券商、电商、新零售等。

9 F+ G# e; Q! ~+ w" ^

5 |, U5 h2 ]4 y$ Z! g) Y, j
一个项目如何在云效实现持续集成?
! u" h, L: R3 \5 J& t6 E) h
5 \& S0 V4 |4 T9 |  T
: g- k2 J1 Z: ~1 L5 A- h) R
1.png
' X8 R/ T+ H* U4 S1 P
视频演示链接:(进入页面后选择左侧帮助视频栏--云效研发整体流程视频)
http://ali-aegis.aliyun.com/help/help.html?spm=0.0.0.0.W35KAx

; w4 z" @  P) e
" d: c% t2 h7 \4 z* i
视频解读:
7 f& n5 S; q6 i& r
8 C$ {* ?0 v9 G1 e4 k3 h% c
项目准备阶段:我们评审好项目需求,初步完成项目的资源评估,以及确定项目的交付日期后,即可在云效配置管理系统创建项目,填写项目成员,申请应用代码分支。云效提供配置管理功能,同时开放接口,支持对接外部的配管系统。
/ t" `* T' g' o& b& d

, R) v$ b  h5 D' ~( I5 s
开发阶段:开发在本机编写代码,每次代码CI后,云效单测集成系统会自动检测代码变更,几分钟后收到邮件提醒,在邮件中,可以看到单测用例,静态扫描等信息,也可点击项目或者数字链接到云效单测集成系统,在系统上我们可以看到每次代码提交运行的详细情况。
# Q$ U, W/ k( @  Z
# q9 @$ q! c1 g* D* Q6 _, d; z6 J' Y
测试准备阶段(含开发自测):开发在编写代码的同时,测试也进入测试准备阶段。测试在云效平台可以编写UI、接口、以及手工测试用例,用例编写完成后,还需要准备一些测试数据,在云效的数据银行提供了丰富的测试数据生成方式,我们可以根据配置单,快速生成所需要的测试数据。
# ?6 ?0 b9 ~2 l
5 ]( T8 |* s& e
测试阶段(环境部署、接口、UI、手工用例测试):开发自测通过后,项目进入测试阶段。开发在项目中打一个测试包,打开环境管理,点击申请,这时云效平台会自动申请一台云服务器,选出刚打出来的测试部署包,点击部署,测试环境的部署就自动开始了。在部署过程中,可以实时监控部署日志,获取Hosts绑定信息。测试在平台响应“接手测试”,在项目中运行写好的接口测试用例,运行UI用例,以及在手工用例系统中,运行功能用例,及时提交发现的缺陷。开发在收到缺陷邮件提醒后,可以在平台修复缺陷。接口、UI、功能测试都完成后,测试可以在平台响应功能“测试通过”。

( Z  w9 Z' d; }
/ C1 p) F! R9 V8 }7 k: H8 L
集成测试阶段:开发在平台提交集成,项目进入集成队列,平台自动从应用的主干拉取最新的release分支,将项目中的分支和release分支合并,打出集成测试包,部署到集成测试环境,触发集成自动化脚本运行。项目成员可以在集成环境进行测试验证,验证通过后,平台上响应“验证通过”。配管将发布包部署到正式环境,触发代码合并主干。这样,就在云效平台上完成了一个项目持续集成过程。
+ x$ K" |: H7 V) k! L" ?. s( R

- Q" j, W2 u! f) K3 k5 X3 |9 X7 X
阿里巴巴CI/CD之分层自动化
8 P# l0 H& X% u

$ u# r0 v" W: G: A3 r0 k
金桐:阿里巴巴产品专家。从事多年互联网系统的研发和测试工作,现在主要负责云效分层自动化测试的产品设计。
& p7 o9 q/ n+ P% K8 f
! o  c, @& D/ o, v  O
手工测试效率低下,发布频繁,回归量大、成本高,重复劳动很枯燥。自动化测试,就是用机器执行替代测试手工操作的一种测试方法,能够帮助测试人员从重复、枯燥的手工测试中解放出来,从而节省人力、时间或硬件资源。节约劳力为(N-1)M,M为此项工作单次需要投入的资源,N为此项工作需要重复工作的次数。

4 c+ B: h3 V* \$ `% b/ `

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

9 h) |' _, Q3 z5 D
" W' N5 x; M- s& u0 @4 Q0 C& {
为了降低成本,提高准确性,就要考虑降低人员成本、制作成本、运维成本、运行成本,同时扩大覆盖率、数据独立、提供好的方法和脚本。当然,就需要实行分层自动化。

+ |0 G) t9 c- k4 A* O
( [+ N3 j1 @/ P2 _0 d$ m; c% k  c
在理解分层自动化之前,我们先看自动化测试金字塔,其中UI代表页面级系统测试,service代表服务业务测试(接口测试),unit代表单元测试。金字塔越高,表示需要投入的精力和工作量越大。分层自动化测试倡导的就是,将系统分层,根据层次特点用合适的自动化方法进行测试的一种测试策略。
! e! t& d! G* b0 z/ ?, ]
* O% ^$ E2 Q% D3 y$ @8 t

4 h% j( q  [/ w* H4 F: o: [
1.png
阿里巴巴分层自动化在经过策略的沉淀调整后,又经历了长期的工具与流程实践,并从自动化成本和效果这两个点上突破,进行分层自动化工具和项目流程的双重革命,最终达到业内领先的研发测试比。在阿里实践分层自动化需要很多分层工具,包括配置管理Aton、UI测试的AUI、单元测试的Amon、环境管理的Aenv、接口测试SAT、性能测试Perf、集成自动化Pre等。
/ D9 B) z4 v( q0 O1 G
6 k5 g$ q1 n8 {8 e% \) i. U
这里来介绍几个革命性工具:

+ h4 m- N+ i# u4 h% Y, m

. J" N- d4 w  d' J3 T  E
UI自动化—AUI
% z7 i/ e! S0 d0 P# Z. [1 V7 I
/ K: w: a* O. w& Z
创新型web-ui自动化测试框架,无需安装复杂底层环境和 IDE
3 e! {' e( J9 P3 V3 V

5 b. s1 A, O4 D% a( X/ i2 z
创建和维护脚本,都无需接触代码,全部为 Web 页面可视化使用
) l1 H& Z3 ^8 c' ~0 ^- r- b. K
) R* G, |) m7 [
支持本地回放,支持云端执行,解放机器,释放双手

8 ^: {( v9 R% ?! N' T

$ _1 \3 \2 O6 |8 u6 }; a
支持项目持续集成,线上监控等各种复杂场景

# e) H5 U+ w7 G% [; @
5 f( z" _( f) d8 _+ _
接口自动化—SAT

2 [% A4 Y; Y& [$ u5 V
3 J+ j! B0 R# ^5 O
可视化的接口测试,无需编写代码

* E2 [9 a" U8 j8 F5 r1 U5 y/ Y
4 i# r( u# q/ x2 {8 C* W, W
支持普通接口调试和复杂后台交互的接口测试的用例沉淀
# L, n3 H; o' E# }
9 ^* [9 c% _4 M! U8 Z7 @% M+ E
支持主干,项目用例的沉淀与回归

3 k( I, h: k( y6 {" y0 `

9 j) d; @. r& X' Z6 D0 w( m
支持项目持续集成

, d, z, P) J$ w) j6 n- P
( A3 p9 H/ i5 l; G# f$ @  U/ B0 g
性能压测—Perf
9 A9 V3 N, x: p- n/ Q  C5 S

' h/ h, [- j3 E7 X) e
基于 Jmeter 的性能压测平台
& r6 F7 ?2 t8 {5 ?) |) u) I, l
6 R6 m$ U, I% ~6 }3 U" F; f+ I
集脚本,场景,压测,监控和报表为一体,可快速施压的平台
" j8 Q8 O. P, q- W2 z
6 h- N/ n$ Z8 L2 @/ }% k5 y1 _( V
支持多种协议,适合 http,service 接口等测试

' K; R" M2 M; t$ a/ N) ~
5 S$ U6 }2 }: q+ F) j5 m; d
比 LoadRunner 易上手,更轻量

0 a  s  O! \1 u1 W6 w

$ x* d/ G, U6 ]: f1 t1 T
单元测试—Amon

  s+ d6 w/ |2 X5 ]) R
8 z& y" \. ~% {, r& c/ e
可对代码主干及各项目分支进行单测集成
2 i* b7 j/ x# e; N( W  h
6 j. Q; @. k) ~
对有代码变更的项目分支自定义频率集成
; ]4 C2 _0 h5 a: t$ U: k' B9 @

1 p' O5 I! c& j
对有代码变更的应用主干自定义频率集成

: v9 V/ U% c5 q- Z+ F6 l

/ }! ^9 o) i: L2 U2 N5 k/ g4 }
拥有单测用例结果、覆盖率结果、静态扫描结果、sonar 代码分析等质量数据
7 A$ Y! i/ l+ q6 H% U# l

0 x2 p7 L& l' E4 g  O
集成自动化—Pre

# v, n2 ?) q4 ~4 G0 M$ }4 y# {: Q4 ]

- d0 G( H1 `* w) \) _
支持多种自动化框架接入
3 L4 V+ v$ _4 {, Y0 d+ }' q
* F/ Y* y/ a* {) _
支持项目集成相关所有自动化的自动统一触发
' Z9 Z6 O1 q. m- x  s! M
" P2 n! b2 j0 k1 @( \0 j
支持多种自动化框架不同环境触发

, ^' Q4 i' m- `$ e: K5 N

- {8 f9 j; _9 o% S2 b5 d' \
支持日常持续集成

' z7 M/ H. p/ d4 p* o

; L6 c4 M, D# @! D/ C7 }
支持自动化失败的原因汇总与总结

+ P! A) M1 ]. p, _$ b" ]9 y
1 V) U8 T% |9 N# Y- P$ R6 j/ V
阿里分层自动化实践带来了很有意义的成果,在阿里内部,大幅提高了研发测试比,减少了重复劳动带来的加班,同时带动了更多高效工具的诞生;在研发方面,单测成本降低了,覆盖率可视化了,自测有保障了,故障降低了;在测试方面,降低了测试要求,增加了工作成就感;对云效客户来说,给企业赋能,提高了研发测试效率。
! Z5 e. j8 z5 _" |) p, Q" ~. k
+ G8 G# K; y0 t$ y" V* u
原创:持续交付平台

3 [% Z/ T9 b' c* p5 @9 Q4 b' a

本版积分规则

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

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

Baidu

GMT+8, 2019-3-24 07:15 , Processed in 0.238365 second(s), 31 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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