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

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

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

扫描二维码登录本站

QQ登录

只需一步,快速开始

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

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

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

参加活动:0

组织活动:0

发表于 2018-11-5 10:57:18 | 显示全部楼层 |阅读模式 来自- 广东广州
本帖最后由 adminlily 于 2018-11-5 11:01 编辑
* S2 O/ G/ Z0 L: {$ A9 X6 z5 G
# W* n1 v& H8 h. b8 c- p/ Z
互联网时代,随着业务的迅猛发展,企业越来越希望通过实施DevOps来提升研发、运维等IT部门的效率,支撑业务发展。互联网企业如何利用工具让DevOps落地?传统企业如何提升研发效能,更快速的互联网化?这些都是企业面临的问题。
+ l; V& n' v2 D- b4 c- y$ n
& w6 ^, B- e8 f0 T) k' G

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

9 J- u! E* J/ k/ [

) B# F& |. U7 }  c
云效:互联网+时代的企业级研发效能提升服务

7 C1 w/ o/ a" F, d" {9 @9 `$ A

8 H  ~+ _. L. v/ G5 T0 ?4 j, |2 E! F9 F8 T
云效是互联网业务下催生的研发效能平台,2012年,云效孵化自阿里巴巴B2B事业群,为阿里内部提供研发效能服务;2013年,云效真正实现持续集成持续交付并落地实施; 2015年底,云效与首家互联网保险公司众安保险合作,开启商业化第一步,后来正式为互联网+企业提供服务。
8 N5 ^5 U* n# c+ K

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

: h- z/ T( ]/ k1 N; C

5 J9 I3 G: ~( @
云效2.0特色

4 A5 K, S( c5 E- }- F

$ B( w3 C) l# [
  • 流式实时交付:集成验证速度匹配项目研发速度,为业务加速,改变传统周期性交付模式;
    # k+ y7 L. b' E) W; Q. Q

& d. |% L7 e) ^3 \9 k# P6 l  {
* C9 t& R8 w) K! k: d. r
  • 自动化质量保证:构建自动化质量保证体系,提升研发质量,为质量护航,改变传统手工技术质量保证体系;

    + |0 s% ?, J2 F4 H/ V' |

5 x8 H" d0 h) b! J) Q+ _
, f  i- x' y( q8 i/ a- @' _& a
  • 柔性化管理:大数据支撑的柔性化研发技术管理,管理策略可私有定制,改变传统团队统一技术管理模式。
    ) I$ z6 ]% @6 {  E% n. g

4 `1 Q$ s( @! ]: k
+ Y' L" C1 h: C$ k3 z) Z
云效2.0策略

, U/ d1 Q* t, Y2 d& V# B8 u+ Q
" C0 J% H: F, }5 [8 t9 V
云效拥抱传统企业,根据传统企业研发团队规模大小、研发人员技能高低等,进行定制化实施策略,赋能技术团队,使业务无线可能。

3 A* S9 G5 h& M% C5 {1 j
6 R  ?0 ?* G$ N6 G& \
1.png
1.png
3 a2 B9 t- W$ U8 k% q4 }1 b
落地效果

- _  X0 o& X. l9 j- v% U

  u  h/ n) M. C
在合作中,云效为众安保险部署4个月时间,测试环境和持续集成累计为众安提效232人日;云效为五矿电商部署测试环境累计超过6万次,UI自动化用例积累数量超过600个,实现了五矿业务场景的自动化的全面覆盖。
* V3 I, H+ t& o6 q) h8 `
6 u( b6 N) f# s9 l2 B: i9 L2 X6 g7 {
阿里巴巴DevOps落地实践

9 T* @) F1 B  [

8 [6 f1 }6 ]9 M7 j2 T! o
章屹:阿里巴巴高级技术专家。清华大学电子工程系硕士毕业,十多年从事软件的测试、开发、系统设计工作。现为阿里巴巴高级技术专家,工程效能部技术负责人,负责云效的技术规划和建设工作。
' P% [2 w' J' `; \5 \* p
$ h  d. r* e- ^: \
在阿里巴巴内部推行开发自测、开发自运维的环境下,阿里巴巴DevOps应运而生。阿里巴巴DevOps面临这几个问题:1.开发的测试和运维能力培养问题;2.开发自测自运维带来的效率和质量问题;3.DevOps的实施进度问题;4.测试团队和运维团队的未来发展问题;5.技术的发展(微服务、容器化)带来的挑战。
. A! I  b4 F" E3 I- w- s

8 j5 X; {% _; E
为了解决DevOps落地问题,云效跟开发、测试、运维团队一起,为开发服务,让他们自运维、自测,提升效率。
9 i! V$ i# U+ b/ ~$ _) F

6 Y: A% _7 w! l7 d2 L: B% L
DevOps实施策略

! o8 d8 Z. b9 ~1 [/ n! V/ h# B# `
. u0 B- P+ X2 A, `/ C8 M
1.png
1.png
# {/ ]# s" x2 p6 \$ L8 |
如何赋能开发自运维、自测?
' F7 G- u: G6 E' `
& O2 \9 |* S9 B4 \. u, G3 h
在赋能开发自运维、自测过程中,工具的价值最为凸显。

: E' Q8 i9 _7 b/ O) T
# r- m' C. i! t3 [& l
  • 传统解决方案:大集成环境;固定发布时间(每周一次、两周一次、一年四次……);
    5 v+ E" }1 a6 S' x1 Y! A
! D3 G8 g, @2 C5 ?/ e: Q' f4 _; I4 K
+ E* h) c- k2 o) q% G2 J3 ^2 J2 m
  • 云效持续交付解决方案:所有应用24小时随时提测并发布,无发布窗口限制;预发布集成环境,半小时完成自动化并无人值守。
    . k. p) g! H' T5 C, _2 W7 W

/ N& A3 N- o( A# B

5 w* ~/ {9 d- Y+ A
DevOps实施结果

2 Q1 J/ u2 L$ K4 c3 U' P' ]8 @
+ j$ T' j# G+ [3 D, y1 r3 J( S
开发自运维之后,研发效率大幅提升:日均节省资源人数增长,集成验证发布耗时减少,专业性团队(性能、压测等)队伍在增长;质量得到保证:应用运维故障个数大幅下降;研发模式创新:自动化Case数量增加,50%项目小需求研发自测,测试不接手, 测试全监控。
$ O( h* y3 Z, X- {% c3 P" C
0 |  A, }5 X2 X5 \: E+ J
企业如何利用云效进行高效研发?
7 W/ h: e' L" {1 R+ C. J7 o
- M# i  g! H: E" r1 A' _1 {. H8 j
苗欣:阿里资深研发工程师。主要负责云效平台解决方案服务输出。在自动化测试技术、持续集成等方面拥有多年实践经验,拥有多项技术专利。
, ]* u0 c8 O+ `3 F6 p

9 i4 |  T+ I; _7 d' l) b& o6 A
云效,源于内部,是阿里巴巴技术部实现持续交付的统一协同工作平台,实现开发测试全流程自动化,支撑项目的持续集成与持续交付。目前客户覆盖银行、保险、券商、电商、新零售等。

- N& U3 t; d( A2 D/ E

2 ]' Z' z) Y: b5 ?7 r- i) H: o
一个项目如何在云效实现持续集成?
/ {! O/ x; \$ K4 F* G1 u
) k! f& E* b3 h1 I, w
8 Z+ ]! v3 B; ]& A2 Q) z  {& ~
1.png
  u4 Z. ^' i, a8 W  h: k
视频演示链接:(进入页面后选择左侧帮助视频栏--云效研发整体流程视频)
http://ali-aegis.aliyun.com/help/help.html?spm=0.0.0.0.W35KAx
  k$ W; y- X* z) {1 }

3 w' W! J! J2 c, p0 ^
视频解读:

! E: ~6 O& z& `; s, ~

" }! X: g) e; h0 X5 D
项目准备阶段:我们评审好项目需求,初步完成项目的资源评估,以及确定项目的交付日期后,即可在云效配置管理系统创建项目,填写项目成员,申请应用代码分支。云效提供配置管理功能,同时开放接口,支持对接外部的配管系统。

' {+ z: i+ d9 Z! ], N" c1 i+ B

9 F; ?8 ]# a/ E/ N8 R+ Z' q
开发阶段:开发在本机编写代码,每次代码CI后,云效单测集成系统会自动检测代码变更,几分钟后收到邮件提醒,在邮件中,可以看到单测用例,静态扫描等信息,也可点击项目或者数字链接到云效单测集成系统,在系统上我们可以看到每次代码提交运行的详细情况。
0 H8 P5 k8 e5 h2 ^8 ~2 k
5 r% S4 V' Z8 s
测试准备阶段(含开发自测):开发在编写代码的同时,测试也进入测试准备阶段。测试在云效平台可以编写UI、接口、以及手工测试用例,用例编写完成后,还需要准备一些测试数据,在云效的数据银行提供了丰富的测试数据生成方式,我们可以根据配置单,快速生成所需要的测试数据。

& y9 o$ ?  }* ^" d/ ^, c+ O

0 A' Q: z$ s; b5 R
测试阶段(环境部署、接口、UI、手工用例测试):开发自测通过后,项目进入测试阶段。开发在项目中打一个测试包,打开环境管理,点击申请,这时云效平台会自动申请一台云服务器,选出刚打出来的测试部署包,点击部署,测试环境的部署就自动开始了。在部署过程中,可以实时监控部署日志,获取Hosts绑定信息。测试在平台响应“接手测试”,在项目中运行写好的接口测试用例,运行UI用例,以及在手工用例系统中,运行功能用例,及时提交发现的缺陷。开发在收到缺陷邮件提醒后,可以在平台修复缺陷。接口、UI、功能测试都完成后,测试可以在平台响应功能“测试通过”。
5 u! _8 Q, H' U8 [% d, L
% j/ U& T. S$ E* G+ ~. E* Z
集成测试阶段:开发在平台提交集成,项目进入集成队列,平台自动从应用的主干拉取最新的release分支,将项目中的分支和release分支合并,打出集成测试包,部署到集成测试环境,触发集成自动化脚本运行。项目成员可以在集成环境进行测试验证,验证通过后,平台上响应“验证通过”。配管将发布包部署到正式环境,触发代码合并主干。这样,就在云效平台上完成了一个项目持续集成过程。
; |1 L6 u3 E: R2 Q! H
+ T, i1 f$ G" {
阿里巴巴CI/CD之分层自动化
- Y& _& ]. ]4 p  e# @" ~$ v3 }
- n) i. Z2 Q, L5 w
金桐:阿里巴巴产品专家。从事多年互联网系统的研发和测试工作,现在主要负责云效分层自动化测试的产品设计。

0 C5 A8 D* r* Z5 `! ]$ F; c

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

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

1 E! r& N6 R% K+ P1 C0 L

% }8 P; ^" e: h# l! r) l
为了降低成本,提高准确性,就要考虑降低人员成本、制作成本、运维成本、运行成本,同时扩大覆盖率、数据独立、提供好的方法和脚本。当然,就需要实行分层自动化。

: R, b" h4 A- k
7 k/ [  H* r3 V4 h+ {, @5 L! e1 v4 a9 r
在理解分层自动化之前,我们先看自动化测试金字塔,其中UI代表页面级系统测试,service代表服务业务测试(接口测试),unit代表单元测试。金字塔越高,表示需要投入的精力和工作量越大。分层自动化测试倡导的就是,将系统分层,根据层次特点用合适的自动化方法进行测试的一种测试策略。

$ |9 s6 ~7 l4 j. c2 ]- P5 P2 U  i

3 G. i2 t" n6 Z6 y2 C9 t- u$ A
' f0 V5 j% K- s, z
1.png
阿里巴巴分层自动化在经过策略的沉淀调整后,又经历了长期的工具与流程实践,并从自动化成本和效果这两个点上突破,进行分层自动化工具和项目流程的双重革命,最终达到业内领先的研发测试比。在阿里实践分层自动化需要很多分层工具,包括配置管理Aton、UI测试的AUI、单元测试的Amon、环境管理的Aenv、接口测试SAT、性能测试Perf、集成自动化Pre等。

3 `0 S/ \( }- L# N" H" M+ t5 |
6 S# [7 d: Z) e
这里来介绍几个革命性工具:
3 Z. i% a) l* }8 s# y  i

3 o, s2 w( L+ Y$ P
UI自动化—AUI

% _- H5 u2 {) s9 v& T  ]3 X4 z6 K

# v$ l: v* Z; d: i( X8 y" ?
创新型web-ui自动化测试框架,无需安装复杂底层环境和 IDE

( S  x0 H" g6 w& r9 u1 F8 d2 l

; ?, _9 N4 n+ Y4 O
创建和维护脚本,都无需接触代码,全部为 Web 页面可视化使用

! z& ~) R: u: V$ P2 j3 |3 T

+ C" M0 b6 q  a9 R9 v& B1 \& [
支持本地回放,支持云端执行,解放机器,释放双手
; E" q" H  E8 T

4 |5 x3 F) F% f2 B, e
支持项目持续集成,线上监控等各种复杂场景

- U2 K% c0 M( q% [
5 {1 O$ P9 Z. m8 O" y
接口自动化—SAT

0 x/ w: I# c9 i% e

: h+ m( M% n0 l, b, ]. I
可视化的接口测试,无需编写代码
/ n$ j/ \3 f  M3 P" ?# K

( i6 F& k* m7 y8 v
支持普通接口调试和复杂后台交互的接口测试的用例沉淀

/ D" f! u# |3 @, j5 b1 S
: |* I# G. r( N
支持主干,项目用例的沉淀与回归

' [, u* E* Q0 U2 \& Z- ^# o4 i
, @# m. R- A0 ?+ u# q- ?
支持项目持续集成

* |5 x1 H  H; H0 R
7 A) `* h! j0 t  v
性能压测—Perf

2 B7 C7 s" H" f, C7 Q7 Q( t3 f% o

4 m1 a, g0 E( q$ Z  G
基于 Jmeter 的性能压测平台
3 R4 @9 D, M) l( G1 T

! G' n8 {: q; \- _1 I9 G. |
集脚本,场景,压测,监控和报表为一体,可快速施压的平台

/ @3 _& }4 J1 Q+ b2 |% d! M/ \

! {7 k! O3 i6 M$ E7 x
支持多种协议,适合 http,service 接口等测试

+ t/ W1 ^: L3 `* w$ \9 ~0 Q5 V: P1 \+ }

3 A5 Y: a) }0 U  Z* C
比 LoadRunner 易上手,更轻量

. J' i6 y7 h) q
$ Z/ A8 q( G( U  k$ P
单元测试—Amon

) {$ C1 P3 w. l/ q$ J
& |% @; @- E2 D4 h8 B* J  c
可对代码主干及各项目分支进行单测集成

2 V" p3 t% J- T! G" h" E

6 x4 X* B( f4 z& A6 j0 \/ A
对有代码变更的项目分支自定义频率集成

$ N5 c+ q" H& w6 ]+ ~

' z9 S. p) @# Q
对有代码变更的应用主干自定义频率集成
4 q( E: G: h1 [- h& y
. L* C3 Z- `9 C0 f4 d9 r/ Q! }
拥有单测用例结果、覆盖率结果、静态扫描结果、sonar 代码分析等质量数据

; @! w  W* G3 i9 l

5 W1 R* A2 k, q4 h0 j, [+ `
集成自动化—Pre

/ }8 J- Q! X! n
3 |8 D9 `. a  H4 q8 H
支持多种自动化框架接入
& F3 g% n# ^: ]0 c1 q* F9 }; h6 r
% u. i  K: q9 c3 `
支持项目集成相关所有自动化的自动统一触发

& o4 g6 P# q" D

  o" J' l& l/ b
支持多种自动化框架不同环境触发
6 u4 p/ C( o2 P# o( a- D- A

! y/ ~1 z- l- o3 q' Z
支持日常持续集成
& v1 e7 d9 N9 A
6 M9 w/ t# J! \  @# r0 ^. j  t
支持自动化失败的原因汇总与总结

* c' L" I2 M9 j# k
" w; }9 o% @8 |. s$ A: M( o' M
阿里分层自动化实践带来了很有意义的成果,在阿里内部,大幅提高了研发测试比,减少了重复劳动带来的加班,同时带动了更多高效工具的诞生;在研发方面,单测成本降低了,覆盖率可视化了,自测有保障了,故障降低了;在测试方面,降低了测试要求,增加了工作成就感;对云效客户来说,给企业赋能,提高了研发测试效率。
  |' z( X0 h$ `- f' P8 X- G

+ E' D" D3 T. c" |
原创:持续交付平台

8 s7 r+ P2 G0 p, ~4 @

本版积分规则

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

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

Baidu

GMT+8, 2018-11-20 04:24 , Processed in 0.205224 second(s), 31 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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