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

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

 找回密码
 立即注册

扫描二维码登录本站

QQ登录

只需一步,快速开始

查看: 1780|回复: 0

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

[复制链接]
发表于 2018-11-5 10:57:18 | 显示全部楼层 |阅读模式
本帖最后由 adminlily 于 2018-11-5 11:01 编辑 ! b7 X0 q8 C, `/ G7 b1 a

8 {( \1 F6 l# [. k+ ?# ~9 y
互联网时代,随着业务的迅猛发展,企业越来越希望通过实施ITILxf.com" target="_blank" class="relatedlink">DevOps来提升研发、运维等IT部门的效率,支撑业务发展。互联网企业如何利用工具让DevOps落地?传统企业如何提升研发效能,更快速的互联网化?这些都是企业面临的问题。% U! t1 T7 m  F1 r$ c: f+ {1 E9 u$ x
! B7 V0 _. u7 `% U
7 ?2 ]+ I- L/ ]) c
7月26日,阿里巴巴持续集成持续交付平台——云效,在深圳阿里中心举办了一场“业务为王时代,DevOps怎么玩?”主题沙龙,由阿里巴巴技术专家从云效新概念的提出,到阿里巴巴DevOps落地实践、到企业如何利用云效进行高效研发、再到阿里巴巴CI/CD之分层自动化,帮助参会者从理念、策略、实践、效果等方面,全面深入的了解DevOps玩法,以及具体如何落地的思路。
# B0 M6 W$ R; N& }
+ ^" n% b, W7 d$ J8 T: B* X
云效:互联网+时代的企业级研发效能提升服务

+ b4 H- e& l' x) `6 p* W

/ K2 Z6 c: a  O- Z8 O1 b: M  s
云效是互联网业务下催生的研发效能平台,2012年,云效孵化自阿里巴巴B2B事业群,为阿里内部提供研发效能服务;2013年,云效真正实现持续集成持续交付并落地实施; 2015年底,云效与首家互联网保险公司众安保险合作,开启商业化第一步,后来正式为互联网+企业提供服务。

/ F) I( n8 [' Q$ I3 ^: C

8 J$ M- _) W! V& s( K2 {& [
云效经过长期落地实践,沉淀出一套含测试策略、研发策略的工具产品,开始更好的支撑传统企业的互联网化。本次沙龙上,云效负责人章屹正式提出:“互联网+时代的企业级研发效能提升服务”新概念,为传统企业赋能!目前已经覆盖新零售、地产、券商、银行、保险等行业,为顾家家居、李锦记、世联行、国泰君安、光大银行、天弘基金等传统企业服务。
/ T: x! a/ d# F. J/ f
# P0 V% q# I& l% N: M3 ?! i
云效2.0特色
6 |& _) R: H; }- W2 i
1 u- }6 o8 F% s
  • 流式实时交付:集成验证速度匹配项目研发速度,为业务加速,改变传统周期性交付模式;
    6 o* B4 i. N9 D/ X, Y

- ]0 f9 C2 l4 x+ ^. H4 X

8 ]4 d6 W1 p4 a( f) k- n
  • 自动化质量保证:构建自动化质量保证体系,提升研发质量,为质量护航,改变传统手工技术质量保证体系;

    ! H- I, a0 l7 x- q3 R
  e) k  l2 N3 c

% n/ D4 U: `: e/ J7 T( J: B# l/ t
  • 柔性化管理:大数据支撑的柔性化研发技术管理,管理策略可私有定制,改变传统团队统一技术管理模式。

    . }- s4 J4 t2 a: J& v/ n
+ M1 {. y3 @6 y

/ E5 [% E. b) m
云效2.0策略
5 j8 t: C  d8 @( H( o* D- ?0 v& G
& J1 ?2 F$ W& p: v' u7 U6 E
云效拥抱传统企业,根据传统企业研发团队规模大小、研发人员技能高低等,进行定制化实施策略,赋能技术团队,使业务无线可能。

9 ^, K" y5 e3 O7 ^; r. s0 \- t$ U
" z! N# o: d) g1 f% V- |8 f
1.png
1.png
7 |' L1 [9 n( _9 C8 n
落地效果

# F8 \' P9 y8 [# e  V+ T. S; F% ~

. [) P2 u' |  h+ s- Y8 @
在合作中,云效为众安保险部署4个月时间,测试环境和持续集成累计为众安提效232人日;云效为五矿电商部署测试环境累计超过6万次,UI自动化用例积累数量超过600个,实现了五矿业务场景的自动化的全面覆盖。
4 c; Y2 Q+ d9 }! p$ o
: c" z7 l4 B' T
阿里巴巴DevOps落地实践
, F, k9 ]! S4 x# T& g5 w

' W& h$ A5 }' F1 i- F/ S
章屹:阿里巴巴高级技术专家。清华大学电子工程系硕士毕业,十多年从事软件的测试、开发、系统设计工作。现为阿里巴巴高级技术专家,工程效能部技术负责人,负责云效的技术规划和建设工作。
9 D; x) d9 \4 f) c% P

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

9 @. W8 X0 h( D' @. T
为了解决DevOps落地问题,云效跟开发、测试、运维团队一起,为开发服务,让他们自运维、自测,提升效率。
+ ^$ a# j( Z* W& ?

0 ^9 {/ @) M" H8 {7 L" ?1 v; X
DevOps实施策略
% g0 E; s1 `4 y; [1 G* e7 U! T

8 ~  k% }2 J2 F1 L
1.png
1.png

1 Q1 [+ e  a3 ?# P
如何赋能开发自运维、自测?
+ t5 ]3 H* }, B# H
: \$ n, l* `. T8 C5 [; o
在赋能开发自运维、自测过程中,工具的价值最为凸显。
" g, G# I) w$ D* q( [
* s3 m# W5 T; E& o/ x; E+ ]
  • 传统解决方案:大集成环境;固定发布时间(每周一次、两周一次、一年四次……);

    " [- ?# W: U* b. T; C& X& X% S! U
& M  Q5 ]0 ]9 H" R; p) Y2 W) {% @
4 S* T+ w5 p( h0 I+ _  n
  • 云效持续交付解决方案:所有应用24小时随时提测并发布,无发布窗口限制;预发布集成环境,半小时完成自动化并无人值守。

    7 _' ~1 L8 v6 i7 w
# ?" r. s9 a- Z$ J9 F, R) e' [
  l, l" Y1 M& d
DevOps实施结果
; h. E8 m" y% B9 }- [. U0 \
! s/ f! o6 x8 a$ {. v
开发自运维之后,研发效率大幅提升:日均节省资源人数增长,集成验证发布耗时减少,专业性团队(性能、压测等)队伍在增长;质量得到保证:应用运维故障个数大幅下降;研发模式创新:自动化Case数量增加,50%项目小需求研发自测,测试不接手, 测试全监控。

! p; ]& D- C; u0 }1 R
" ^0 w: l1 e, |' e
企业如何利用云效进行高效研发?
* O6 ?/ \) `7 `

6 v3 G  o1 \& e. T" L) m8 |) I7 z
苗欣:阿里资深研发工程师。主要负责云效平台解决方案服务输出。在自动化测试技术、持续集成等方面拥有多年实践经验,拥有多项技术专利。
: K/ b& F  O8 d8 F

: g4 f! N. K$ C+ q% L+ U
云效,源于内部,是阿里巴巴技术部实现持续交付的统一协同工作平台,实现开发测试全流程自动化,支撑项目的持续集成与持续交付。目前客户覆盖银行、保险、券商、电商、新零售等。
9 v6 A* w5 f# x5 ?1 ~; e0 j& X% n
& b& P% O+ y  x: W. h( [
一个项目如何在云效实现持续集成?

: T/ |. n; G' l* w1 S

( i$ N( |$ U9 R: ^0 C& m

, G* _+ e0 E7 V! a
1.png

' o- Q! s, ]" }! \/ }7 ?/ ^+ Q7 E
视频演示链接:(进入页面后选择左侧帮助视频栏--云效研发整体流程视频)
http://ali-aegis.aliyun.com/help/help.html?spm=0.0.0.0.W35KAx
; M. U) n( c' J0 k! D
9 V+ X( ~' P9 l) f+ h9 i
视频解读:

% ]0 o1 I) x: `: w: o4 B0 h1 b
6 {4 i3 s, T# ?6 U- G+ b
项目准备阶段:我们评审好项目需求,初步完成项目的资源评估,以及确定项目的交付日期后,即可在云效配置管理系统创建项目,填写项目成员,申请应用代码分支。云效提供配置管理功能,同时开放接口,支持对接外部的配管系统。
/ Q$ `# r& O3 ^- O/ N# B

; t0 M" Y1 _! D- P: S- }+ \3 H
开发阶段:开发在本机编写代码,每次代码CI后,云效单测集成系统会自动检测代码变更,几分钟后收到邮件提醒,在邮件中,可以看到单测用例,静态扫描等信息,也可点击项目或者数字链接到云效单测集成系统,在系统上我们可以看到每次代码提交运行的详细情况。

6 ]0 k# t6 g) C% X4 T

/ E6 A$ q8 h# _# B0 V
测试准备阶段(含开发自测):开发在编写代码的同时,测试也进入测试准备阶段。测试在云效平台可以编写UI、接口、以及手工测试用例,用例编写完成后,还需要准备一些测试数据,在云效的数据银行提供了丰富的测试数据生成方式,我们可以根据配置单,快速生成所需要的测试数据。

) u2 L! I" ?6 r8 t$ I2 J
3 Y+ Z9 B/ P/ k! i2 c$ Q) p
测试阶段(环境部署、接口、UI、手工用例测试):开发自测通过后,项目进入测试阶段。开发在项目中打一个测试包,打开环境管理,点击申请,这时云效平台会自动申请一台云服务器,选出刚打出来的测试部署包,点击部署,测试环境的部署就自动开始了。在部署过程中,可以实时监控部署日志,获取Hosts绑定信息。测试在平台响应“接手测试”,在项目中运行写好的接口测试用例,运行UI用例,以及在手工用例系统中,运行功能用例,及时提交发现的缺陷。开发在收到缺陷邮件提醒后,可以在平台修复缺陷。接口、UI、功能测试都完成后,测试可以在平台响应功能“测试通过”。

4 v+ Y2 o  @+ n' k
& i7 p4 o" O6 B% J, `" l7 ~/ p
集成测试阶段:开发在平台提交集成,项目进入集成队列,平台自动从应用的主干拉取最新的release分支,将项目中的分支和release分支合并,打出集成测试包,部署到集成测试环境,触发集成自动化脚本运行。项目成员可以在集成环境进行测试验证,验证通过后,平台上响应“验证通过”。配管将发布包部署到正式环境,触发代码合并主干。这样,就在云效平台上完成了一个项目持续集成过程。
! K" T" f( G$ F& u
8 |1 l/ o6 S9 b3 F" j4 r
阿里巴巴CI/CD之分层自动化
; z7 {: q, H! ^& X0 t* _- l

" i( E- j0 s) d5 {# F% K- w0 p" s# X- y
金桐:阿里巴巴产品专家。从事多年互联网系统的研发和测试工作,现在主要负责云效分层自动化测试的产品设计。
- N% z0 ?0 v  s8 @; `+ @

6 G! T1 K* X$ T* _) u- U
手工测试效率低下,发布频繁,回归量大、成本高,重复劳动很枯燥。自动化测试,就是用机器执行替代测试手工操作的一种测试方法,能够帮助测试人员从重复、枯燥的手工测试中解放出来,从而节省人力、时间或硬件资源。节约劳力为(N-1)M,M为此项工作单次需要投入的资源,N为此项工作需要重复工作的次数。
2 c* R2 e4 q) P- t+ |5 {% ^! r$ ~

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

* t; q% V. l2 a+ z! v
, ]5 J+ `7 F  h* Q  b1 Q
为了降低成本,提高准确性,就要考虑降低人员成本、制作成本、运维成本、运行成本,同时扩大覆盖率、数据独立、提供好的方法和脚本。当然,就需要实行分层自动化。

5 n: ~3 f7 v: g3 Z9 p

. _. N6 Y5 |9 K' ^5 z4 _' Q3 s9 h
在理解分层自动化之前,我们先看自动化测试金字塔,其中UI代表页面级系统测试,service代表服务业务测试(接口测试),unit代表单元测试。金字塔越高,表示需要投入的精力和工作量越大。分层自动化测试倡导的就是,将系统分层,根据层次特点用合适的自动化方法进行测试的一种测试策略。

1 s, X) }9 q) g" S

. @& n; J7 [  c8 ~: T
. C5 x/ [" t' [
1.png
阿里巴巴分层自动化在经过策略的沉淀调整后,又经历了长期的工具与流程实践,并从自动化成本和效果这两个点上突破,进行分层自动化工具和项目流程的双重革命,最终达到业内领先的研发测试比。在阿里实践分层自动化需要很多分层工具,包括配置管理Aton、UI测试的AUI、单元测试的Amon、环境管理的Aenv、接口测试SAT、性能测试Perf、集成自动化Pre等。

) j4 p( y# x% @+ y
: x+ M0 v8 v( d7 w# k! h* K
这里来介绍几个革命性工具:
3 l* H7 R7 l, J( i$ I/ d, S

. R% \2 Y$ r$ V7 r- T
UI自动化—AUI
$ `& I$ d" t$ X9 C8 J3 V, E' R
$ A# g: T; k7 v% k6 U
创新型web-ui自动化测试框架,无需安装复杂底层环境和 IDE
$ T" f% }) ]' ?# c2 I

1 |1 Q$ k& P: |+ c& O
创建和维护脚本,都无需接触代码,全部为 Web 页面可视化使用
8 L: l# d6 r6 P7 ]  b6 J

' h- G8 W3 \- `
支持本地回放,支持云端执行,解放机器,释放双手
, y/ ]* p0 q* t4 p$ g4 G' `

5 n) s0 Y' k; T2 \
支持项目持续集成,线上监控等各种复杂场景

0 [9 H' y" t1 M7 C& e; K( F' t& w
4 B7 c( C- _8 G2 n( Q' b
接口自动化—SAT
. n0 e* G+ K6 M9 t

% U; l" Y  d1 @$ g8 a4 i
可视化的接口测试,无需编写代码

- @1 m8 p. r0 @- n0 o9 i
' j0 o; E) |+ k0 V
支持普通接口调试和复杂后台交互的接口测试的用例沉淀
/ @- M, w# c) X) U6 g

2 k6 ]% t. d$ V7 m" n2 l1 G
支持主干,项目用例的沉淀与回归

- b+ ^8 \1 x9 u
& W4 E" ~% B+ ?# c& D* \* i' k
支持项目持续集成
0 E3 h5 a; z& U; r- _# x+ Y6 @
+ F) {" u: Z" K: M+ `, q3 S
性能压测—Perf
: J; k/ x+ @; p2 [

; z& H# g6 w% t7 }, I
基于 Jmeter 的性能压测平台

  e/ d# l& ?% S+ A* w
# C" w+ X. x8 }! E7 E
集脚本,场景,压测,监控和报表为一体,可快速施压的平台
! {8 p9 F: p& T$ H( ?
9 t, _$ g, x8 O5 o; {" w
支持多种协议,适合 http,service 接口等测试

1 @2 S( [3 E7 E; s4 B" F: D# _) k. v' {

: N9 D; G+ i' b+ w/ y1 t/ Z
比 LoadRunner 易上手,更轻量
6 H: ?3 Y& r( Q/ {4 y' G6 q

6 p+ `0 W. D) i% W
单元测试—Amon
4 R) D2 c- L* B; I! W. Z
+ K0 J$ Y2 K, ^' T8 A
可对代码主干及各项目分支进行单测集成

5 q  a( b. X' {8 m
, B, x1 p1 W; g# R2 b: K
对有代码变更的项目分支自定义频率集成

; b% n8 Y! r: D' n7 L- M

! k2 Q. N, f7 T, N1 t& T0 P% m. j* E
对有代码变更的应用主干自定义频率集成

) ^5 m- W1 j6 c4 n) @" J

& h( x# @6 v; G& r- S1 N) L! V
拥有单测用例结果、覆盖率结果、静态扫描结果、sonar 代码分析等质量数据
* C. P; e% f/ V2 @1 x+ a- b9 J8 \
# ^' i( h7 C2 R! K
集成自动化—Pre

$ x0 l/ w% @4 l

: k. A/ o8 ?" j+ e; x
支持多种自动化框架接入

' ~/ t8 J# d( p
: q. y9 l% {# u% c+ R
支持项目集成相关所有自动化的自动统一触发

+ e9 ]* ~' L. a& X) D
2 v* i7 Z' d9 ]. l' Q! F; S
支持多种自动化框架不同环境触发
" p, [* L) Z) F4 `- c

" [( m# H- t/ Z$ E; n
支持日常持续集成

8 n, F  P1 a* t8 g0 E# l% [& T

1 o( F% ?0 H* F0 }
支持自动化失败的原因汇总与总结
6 j/ e- I7 |1 C) |. O
" c- p3 e4 E$ J2 Y, a
阿里分层自动化实践带来了很有意义的成果,在阿里内部,大幅提高了研发测试比,减少了重复劳动带来的加班,同时带动了更多高效工具的诞生;在研发方面,单测成本降低了,覆盖率可视化了,自测有保障了,故障降低了;在测试方面,降低了测试要求,增加了工作成就感;对云效客户来说,给企业赋能,提高了研发测试效率。
! m; v  O* i) G, }5 n1 R9 l7 C/ q
& G" T  `: B' R- R$ @( P; v" b
原创:持续交付平台

( j. r4 ]: b: q: [  a




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

本版积分规则

参加 ITIL 4 基础和专家认证、长河ITIL实战沙盘、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, 2022-5-23 04:39 , Processed in 0.115238 second(s), 31 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

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