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

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

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

扫描二维码登录本站

QQ登录

只需一步,快速开始

搜索
查看: 560|回复: 0

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

[复制链接]
发表于 2018-11-5 10:57:18 | 显示全部楼层 |阅读模式
本帖最后由 adminlily 于 2018-11-5 11:01 编辑
, T" l0 t8 A. y, |; ?$ k# y2 F- h; \, V0 R1 _! |" D* d! N
互联网时代,随着业务的迅猛发展,企业越来越希望通过实施DevOps来提升研发、运维等IT部门的效率,支撑业务发展。互联网企业如何利用工具让DevOps落地?传统企业如何提升研发效能,更快速的互联网化?这些都是企业面临的问题。2 g. r; x* X. D% a1 O
4 D, H& R  A/ _# l6 p  y0 `8 I, z3 C

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

9 _5 I* u( g" N4 b- p. G+ F$ O1 `" H
8 `0 O) D/ R+ Q8 b6 K
云效:互联网+时代的企业级研发效能提升服务

' |8 j% b% n* i2 C) O
! H* @4 s3 Z& Y& N) ?0 m
云效是互联网业务下催生的研发效能平台,2012年,云效孵化自阿里巴巴B2B事业群,为阿里内部提供研发效能服务;2013年,云效真正实现持续集成持续交付并落地实施; 2015年底,云效与首家互联网保险公司众安保险合作,开启商业化第一步,后来正式为互联网+企业提供服务。
/ \  L2 {7 V, Y* [
0 j" }' u) C& R& {9 g4 R
云效经过长期落地实践,沉淀出一套含测试策略、研发策略的工具产品,开始更好的支撑传统企业的互联网化。本次沙龙上,云效负责人章屹正式提出:“互联网+时代的企业级研发效能提升服务”新概念,为传统企业赋能!目前已经覆盖新零售、地产、券商、银行、保险等行业,为顾家家居、李锦记、世联行、国泰君安、光大银行、天弘基金等传统企业服务。
% k) O6 x4 W( f; }
0 @7 u2 \& i) H1 I4 \
云效2.0特色

0 @- U1 U) Z: k9 D' b# i
& H. B- V8 \8 l3 G4 @
  • 流式实时交付:集成验证速度匹配项目研发速度,为业务加速,改变传统周期性交付模式;

    , f( j% X# H) \3 V' F2 B8 B$ Q7 y
3 h) y; ]; Y0 F% w

2 P$ V' D- Z- r  N1 T
  • 自动化质量保证:构建自动化质量保证体系,提升研发质量,为质量护航,改变传统手工技术质量保证体系;

    7 Z* a0 O# ^. w1 T  z

" i( o! G, A0 i, ]0 K# J
4 @$ c' |9 e. c3 `8 I1 e3 @
  • 柔性化管理:大数据支撑的柔性化研发技术管理,管理策略可私有定制,改变传统团队统一技术管理模式。

    1 o& x8 Z* R# R+ O
( @" a! B* a% T( X+ p
1 S% c& C6 V+ k9 Q
云效2.0策略

' w. d4 q4 Q  T2 P" @& Z# Q" p% l

, c' H  x$ {5 ^0 K' G
云效拥抱传统企业,根据传统企业研发团队规模大小、研发人员技能高低等,进行定制化实施策略,赋能技术团队,使业务无线可能。

! o% ^- L# b+ Y9 M* p- G: {
* c+ N+ {, j1 ^) F
1.png
1.png
' u1 i2 d# d1 t7 \: X2 r1 ], X
落地效果

! u7 d2 _4 a8 L' a) U; u0 _

3 q+ |0 \2 T2 I% ]) f" \5 \2 I
在合作中,云效为众安保险部署4个月时间,测试环境和持续集成累计为众安提效232人日;云效为五矿电商部署测试环境累计超过6万次,UI自动化用例积累数量超过600个,实现了五矿业务场景的自动化的全面覆盖。

8 j  U. |: Q! c6 B8 Y. I, ]
, k' X1 w% a0 t+ [$ \% U
阿里巴巴DevOps落地实践

; ~: J; ?+ q$ x" q2 c

4 A4 g$ O8 a; N" b
章屹:阿里巴巴高级技术专家。清华大学电子工程系硕士毕业,十多年从事软件的测试、开发、系统设计工作。现为阿里巴巴高级技术专家,工程效能部技术负责人,负责云效的技术规划和建设工作。

1 a& q  Y* Y5 R: d$ a

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

7 V" B. |7 b, r8 V

2 e% j0 H1 |) r: f% z# t; w- U
为了解决DevOps落地问题,云效跟开发、测试、运维团队一起,为开发服务,让他们自运维、自测,提升效率。
3 D0 o) F, k+ x; Y! ?4 {

! `  q1 r0 T3 i# R5 R
DevOps实施策略

& e8 ]) H. t, p7 s

: W9 L6 f+ L5 g9 a" {% M4 L/ m
1.png
1.png
( H, k7 M! |1 [2 t* W0 a5 h7 Z
如何赋能开发自运维、自测?
! Z# K2 M- z: j( w/ C
  ^6 ~; e2 W& ^: `  L
在赋能开发自运维、自测过程中,工具的价值最为凸显。

" O9 P+ S6 W. m& ]7 m# a

! j4 q! Q4 ?) \  O# n) M
  • 传统解决方案:大集成环境;固定发布时间(每周一次、两周一次、一年四次……);
    ( O: G: ~3 C% t+ X/ h
  l8 a  F* A; p% Q5 |' g7 S
( ?: O! W$ ?( t- W. U: N$ w
  • 云效持续交付解决方案:所有应用24小时随时提测并发布,无发布窗口限制;预发布集成环境,半小时完成自动化并无人值守。

    ) \) J  m3 u: V

3 D& X5 E# L- e# U

  R+ J; s* m0 N
DevOps实施结果
1 K, i. u# b, S+ f5 v1 L7 _" {* \

9 l, I+ g$ z# B' w3 e# Z7 {
开发自运维之后,研发效率大幅提升:日均节省资源人数增长,集成验证发布耗时减少,专业性团队(性能、压测等)队伍在增长;质量得到保证:应用运维故障个数大幅下降;研发模式创新:自动化Case数量增加,50%项目小需求研发自测,测试不接手, 测试全监控。
. q+ A2 n1 n! M* O7 J9 j
! O' I6 h5 x: u4 w7 n4 ^' S
企业如何利用云效进行高效研发?

) c4 b9 M9 S8 u' M; {

( C% B7 d/ g9 r9 p" y8 D
苗欣:阿里资深研发工程师。主要负责云效平台解决方案服务输出。在自动化测试技术、持续集成等方面拥有多年实践经验,拥有多项技术专利。

( [8 z$ j, E% G; \! T, B# v
4 ^% H$ k$ Q  N
云效,源于内部,是阿里巴巴技术部实现持续交付的统一协同工作平台,实现开发测试全流程自动化,支撑项目的持续集成与持续交付。目前客户覆盖银行、保险、券商、电商、新零售等。

" W2 E2 b- f2 q; C7 D& A. @
" V9 r# h. F" f: I2 o( Q
一个项目如何在云效实现持续集成?
7 G6 e! q  n% K9 T5 Z0 A
+ q. f4 ~) {& k

  m; E; a  i! w! W  ^' Y
1.png

; [9 f' X% P! T3 C% T' \
视频演示链接:(进入页面后选择左侧帮助视频栏--云效研发整体流程视频)
http://ali-aegis.aliyun.com/help/help.html?spm=0.0.0.0.W35KAx

* Z( t. e9 }8 Z+ l/ m
- O, S9 ^% U% T
视频解读:
5 @$ \' {9 q, L% m
3 F9 `8 N0 ~- X$ v! m, a1 i# |
项目准备阶段:我们评审好项目需求,初步完成项目的资源评估,以及确定项目的交付日期后,即可在云效配置管理系统创建项目,填写项目成员,申请应用代码分支。云效提供配置管理功能,同时开放接口,支持对接外部的配管系统。
6 a- ^0 F! I( R: L% U+ z; _
/ l' r6 r8 `5 q  o3 S
开发阶段:开发在本机编写代码,每次代码CI后,云效单测集成系统会自动检测代码变更,几分钟后收到邮件提醒,在邮件中,可以看到单测用例,静态扫描等信息,也可点击项目或者数字链接到云效单测集成系统,在系统上我们可以看到每次代码提交运行的详细情况。
7 O5 c& [8 a$ G4 i# g

- [1 F' s8 Q/ P$ G- R
测试准备阶段(含开发自测):开发在编写代码的同时,测试也进入测试准备阶段。测试在云效平台可以编写UI、接口、以及手工测试用例,用例编写完成后,还需要准备一些测试数据,在云效的数据银行提供了丰富的测试数据生成方式,我们可以根据配置单,快速生成所需要的测试数据。
% z4 X: p' q% {' ^* X
( b: k' r, H- J8 D1 W
测试阶段(环境部署、接口、UI、手工用例测试):开发自测通过后,项目进入测试阶段。开发在项目中打一个测试包,打开环境管理,点击申请,这时云效平台会自动申请一台云服务器,选出刚打出来的测试部署包,点击部署,测试环境的部署就自动开始了。在部署过程中,可以实时监控部署日志,获取Hosts绑定信息。测试在平台响应“接手测试”,在项目中运行写好的接口测试用例,运行UI用例,以及在手工用例系统中,运行功能用例,及时提交发现的缺陷。开发在收到缺陷邮件提醒后,可以在平台修复缺陷。接口、UI、功能测试都完成后,测试可以在平台响应功能“测试通过”。
5 r( H4 ]  p3 X! S

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

' r5 z, \% D# o* ?* @
. X, `$ r+ _: M9 A
阿里巴巴CI/CD之分层自动化

/ j: s- {4 r; \- _  g- |

, m2 R3 h9 m/ p- S' I* y8 E
金桐:阿里巴巴产品专家。从事多年互联网系统的研发和测试工作,现在主要负责云效分层自动化测试的产品设计。

0 `7 U% r. x5 T

, L, T& \, W& e2 D, n* C- Z; t0 N
手工测试效率低下,发布频繁,回归量大、成本高,重复劳动很枯燥。自动化测试,就是用机器执行替代测试手工操作的一种测试方法,能够帮助测试人员从重复、枯燥的手工测试中解放出来,从而节省人力、时间或硬件资源。节约劳力为(N-1)M,M为此项工作单次需要投入的资源,N为此项工作需要重复工作的次数。

% H& c0 K+ k# j" O" F* p

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

# s# I5 c$ U+ w- b( c" c1 L

' [9 x* b3 v$ J5 [% j" b* J, j8 J
为了降低成本,提高准确性,就要考虑降低人员成本、制作成本、运维成本、运行成本,同时扩大覆盖率、数据独立、提供好的方法和脚本。当然,就需要实行分层自动化。

* H+ `. G0 c7 C! H* i! x# W+ [0 j

) B% U- ], S/ y9 O4 F4 f
在理解分层自动化之前,我们先看自动化测试金字塔,其中UI代表页面级系统测试,service代表服务业务测试(接口测试),unit代表单元测试。金字塔越高,表示需要投入的精力和工作量越大。分层自动化测试倡导的就是,将系统分层,根据层次特点用合适的自动化方法进行测试的一种测试策略。
2 ?. ]8 Q% J, ?2 j% f& n5 B

- q* _1 p' K% H" y) W) @) b1 \

  P4 }6 J" X  V1 z3 l4 ~( i$ `' r; D
1.png
阿里巴巴分层自动化在经过策略的沉淀调整后,又经历了长期的工具与流程实践,并从自动化成本和效果这两个点上突破,进行分层自动化工具和项目流程的双重革命,最终达到业内领先的研发测试比。在阿里实践分层自动化需要很多分层工具,包括配置管理Aton、UI测试的AUI、单元测试的Amon、环境管理的Aenv、接口测试SAT、性能测试Perf、集成自动化Pre等。
+ R7 M; M8 f8 ]' d! i
) R& n/ ~6 O3 Y/ S2 o1 v( y1 T8 Z
这里来介绍几个革命性工具:
& v3 U$ @# t& V  }

+ G1 E7 o& g% I( {% L: D
UI自动化—AUI
1 R9 o/ E6 Y' X+ K& e& J& l

$ y0 g$ {+ t7 b2 e. R* z, x
创新型web-ui自动化测试框架,无需安装复杂底层环境和 IDE
' |! F; j4 H" C. x9 h

; n" v4 y) H, C! i
创建和维护脚本,都无需接触代码,全部为 Web 页面可视化使用
" v, \) |. a- V9 ]6 o) m$ `. j( {

3 a- M9 i- u4 p: q2 Q5 p
支持本地回放,支持云端执行,解放机器,释放双手

" h4 a2 K' r  _' a2 G# c) B

1 O1 E6 g$ P5 K
支持项目持续集成,线上监控等各种复杂场景
7 Y  }/ F" ]3 t" z( W( ~5 O% p
- T+ j1 q3 a7 I
接口自动化—SAT
0 i0 w$ z6 `; I' q

2 I" _& y! l9 L8 |' W6 ]4 H1 M
可视化的接口测试,无需编写代码
; s5 n: T9 }8 G: y( T3 Y5 {
9 R, x- N8 t3 J
支持普通接口调试和复杂后台交互的接口测试的用例沉淀

; h5 v( V/ ~0 C( H
. K* w, g( Z9 M0 a$ \% N- n8 I% C
支持主干,项目用例的沉淀与回归

, g% s  i+ E$ l, a' l
; S: n% {6 J5 q
支持项目持续集成
, e2 f4 K9 k: G1 m

( x' S/ ]* x: S& G* m
性能压测—Perf

$ u$ j( G1 \$ e+ f  J; o

* q" e" o. q% f3 @( r4 \0 R7 _' z
基于 Jmeter 的性能压测平台

! H& Y: W- g# W9 J; j2 ?
( c, K4 [* r! R, q
集脚本,场景,压测,监控和报表为一体,可快速施压的平台
. z, W- U  g* W, Z8 m& {' D
: E: ~5 @# @; }2 S$ [& P& p& Q
支持多种协议,适合 http,service 接口等测试

& X8 L) @+ a  s6 J  H

, l: v& H/ q4 p* G* c* h" [/ |
比 LoadRunner 易上手,更轻量

7 M8 B  M+ D. x( ?4 f, u8 N

& i* |3 z4 ^' m: b1 c7 G
单元测试—Amon
$ r- V" i4 K' \' L+ z
3 `% ]2 O  Y" T2 c
可对代码主干及各项目分支进行单测集成

8 y4 \' a, M; q+ a
8 m5 h$ O* R$ E( l9 y( S
对有代码变更的项目分支自定义频率集成

2 T. _  r$ k0 A1 E  H# j% A

4 L( B" B/ R9 p0 N& t
对有代码变更的应用主干自定义频率集成

9 |: J9 o4 z# n, b. R1 R$ b" M
2 [: p" ^  ^7 \9 r% M  n) G6 @
拥有单测用例结果、覆盖率结果、静态扫描结果、sonar 代码分析等质量数据

9 b8 {$ O5 F6 k: i! y/ {

$ t/ u+ T# D# o& r1 W4 |
集成自动化—Pre
; d& v- z, B. X- {, i. B/ R

/ H6 d) I- G) A
支持多种自动化框架接入

. |! f! N$ o  q
( B' k! A( h& t* ?  J8 T
支持项目集成相关所有自动化的自动统一触发
2 D6 d. U* f4 E) _
" W3 z- g4 m! d& B$ @# B
支持多种自动化框架不同环境触发

% ~3 Z% A7 `% o: \7 B; n
$ V: y9 J# K$ I: h
支持日常持续集成
. D% Y3 k  D5 x# s- p
. _; s; Y. N9 T3 @& N
支持自动化失败的原因汇总与总结
) Q/ W9 W( `* a3 P8 m

2 }: v/ H- S; j/ M  i& l# S! ~/ p. x
阿里分层自动化实践带来了很有意义的成果,在阿里内部,大幅提高了研发测试比,减少了重复劳动带来的加班,同时带动了更多高效工具的诞生;在研发方面,单测成本降低了,覆盖率可视化了,自测有保障了,故障降低了;在测试方面,降低了测试要求,增加了工作成就感;对云效客户来说,给企业赋能,提高了研发测试效率。
: @! y# B4 l1 }# W

: f' Y1 r  @8 p4 R+ Q+ ]
原创:持续交付平台
; F$ S1 g$ }; q9 j& z

本版积分规则

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

Baidu

GMT+8, 2019-10-20 01:34 , Processed in 0.152771 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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