1.TaobaoABS开源" S6 W. ]; P* L: I/ A! O- b
TaobaoABS是Taobao AutoBuildingSystem的简称,在淘宝内部已经使用很成熟,为了让SCM的广大同仁们收益,也为了让TaobaoABS更加健壮和完善,现开源出去。( H3 {5 L7 T* g% P+ g
具体的情况请关注淘宝开源社区:http://code.taobao.org/project/view/382/1 p9 N- V" R" H; x
wiki页面:http://code.taobao.org/trac/TaobaoABS/wiki/ZhWikiStart
代码地址在:http://code.taobao.org/svn/TaobaoABS/, S f/ j4 E& Q+ |
具体提Bug和建议,可直接回复帖子或去上述网站提都可以。 ]; M) Z+ d+ ]& R
2.TaobaoABS简介
TaobaoABS以代包流转为核心,跟传统的Dailybuild不同,它把开发,测试,上线有机的结合起来。把代码库,编译,发布包管理灵活的链接起来。
TaobaoABS在Hudon上做的二次开发,自主开发Hudson插件。具体可以看下面的介绍。包管理体系采用的是rpm,以下会做详细介绍。
2.1 TaobaoABS-互联网运维的第一站
A:保证开发/测试/生产环境一致性。解决一个build 和打成rpm 并上传到yum 服务器
的问题。在test 包就上传到yum 的test 目录,测试可以生产,就到current 目录,3 f" O+ A, u4 w* ?2 i
基础软件会有stable 。
B:以ABS 为轴心,驱动代码review,安全review, DBA review, AutoTest 等动作和
build 的无缝集成。
C:和自动部署集成,自动部署可能是其他团队来做,我们去推。
包管理服务器(yum server)大面积推广后,继续config server 和自动部署系
统。
1)先期包管理起来以后,可以直接批量的yum install。包依赖通过rpm 包解决。7 |. {& T3 {, H( d
2)对应用进行批量配置安装部署。以产品的某个模块(同样功能的一组机器)为单位/ \$ G, @8 Q* y
进行自动部署。每个模块为一个自动部署条目, 模块后面对应的机器是同一个* R4 f8 [5 u2 p3 z3 R" p
nodegroup ,服务器到nodegroup 的对应关系都在目前重新整理的opsdb 里面的。自3 ]* ]4 H' t, @" }
动部署主要是考虑非java 部署部分。0 I0 Q* ?$ F+ y& y+ B( Q
Config server: 一个配置服务,即通过它集中维护配置信息,可以动态从这个服务上5 A. e# C7 Q# u( ~& P
获取配置信息。一个功能有1 组机器,它们上线后,根据配置,自动到config server 上
注册,注册信息有,具体什么功能,现在可以提供服务等等,应用就调用这组功能的服务器。. n8 J% w r) x, w9 b6 ]( P3 S3 ^
Deploy server: 对相同部署逻辑的机器定义为一宏,将部署过程程式化后应用到宏上,# o0 o) I5 p' N2 J
当宏中增加机器时会自动部署上。
2.2 TaobaoABS的核心价值
1) 通过ABS 推广,进行OPS 基础环境整理,统一基础包,统一开发/测试/生产环境一
致性,利用RPM 解决包依赖,进行大规模集群部署,安装。2 B7 I. {8 K# n
2) 以PE 为核心,通过PE 来规范QA,DEV,同时将开发过程中需要自动化串联的事情+ s' s) o+ h4 r
通过ABS 驱动完成,如代码review,unit test,auto test 等等。3 B0 {1 x6 f' W2 o, I3 N
3) 角色职责分工明确,规范执行力很强,ABS 迫使将dev/qa/pe 分开,迫使代码结构
垂直化。
具体可以去
看文档"ABS总体介绍"
, a; N( ^$ H/ i& f
$ F) R J7 y' N/ W
3. 淘宝包管理体系 N2 x" u% B8 [; N' {; j) r+ Z
; M2 T2 D' @: Y. @- v3 _7 @
当应用软件构建的服务开始庞大时,头疼的事接踵而至:如何管理应用软件本身的良莠. M# X5 q" o. \0 j: g3 |7 T3 T( {
不齐?如何保证已开发完毕的产品不会丢失?如何进行各类应用的部署 和拆分?如何平顺
的对公用组件更新和升级?如何管理因网络、操作系统、等环境因素不尽相同导致的如同蛛
网般的复杂配置、如何在日常运作中对应用服务达到快 速建立、恢复、回滚?如何对系统+ M! g# F2 `4 p
运作进行日志跟踪?在工作成员频繁变动、业务频繁拆分的情况下上述工作的难度会乘方级) J5 T! y# p5 z/ f1 |. {3 c
的增加,嵌套问题会让构建和维护人员 不知所措,对维护人员的要求会不断提升,在运作* r, f2 @6 N. R6 T5 ^7 G
成本本应最低的维护一环结果投入了不合情理的力量,当问题严重时更会拖累新业务和应用
的开展和影响已有的服 务质量和应用成果。/ P4 e' q$ R& N' _+ q. P3 }4 P
我们把这些难题定位为是依赖于技术手段的管理工作,接下来会向大家介绍如何采取合
适的技术手段对庞大的应用软件和服务进行高效管理。9 c+ Y. [/ r% g( m h
+ k) C4 ~ Q9 U7 N8 D" a* W, d" X+ [
具体请看文档"使用软件包管理大规模应用". b: @. D: }2 R4 W" H
5 X+ X5 e$ l. X6 p) s+ H
4.Hudson相关: S) D) u J1 W8 }' c2 G* @% Q9 \$ e
1)后台管理
包括后台设置,节点管理,权限管理策略等。
具体请参见文档"Hudson后台管理"9 i1 G l, D- s: H- O4 k D9 K
2)插件开发
插件开发的技术文档
插件开发的开发文档
5.TaobaoABS具体配置
1)ABS配置基本案例6 Z4 G7 t+ p, Y, G9 h
具体请看文档:"ABS配置案例"1 l% [: I& J3 k0 W
2)TaobaoABS之-DailyBuild简介5 |- d7 E3 `9 f; d* O
J/ x0 N4 m- R) Q. ?% K
具体请参见文档"DailyBuild简介"
4 T( h! T" {; S3 k" s! y$ w% |) T, ~
3)ABS跟自动化测试系统的对接
TOAST 是淘宝自行研发的一套自动化测试系统。
ABS 系统做了一个与TOAST 的接口,插件的名称叫做TOAST.! Y! c' V# n0 ^
ABS 通过传递给TOAST 的rpm 包名的列表。TOAST 接到TOAST 任务以后,会执行安
装rpm 包的操作,具体的安装的分支(TEST,CURRENT,DAILYBUILD)根据类型定义。
每次编译(Private-Building,Test-Building,Release-Building)以后,可以定义TOAST 任务去( Z% M* Q4 W8 T0 q
除非对于的自动化测试任务。ABS 里面的JOB 和TOAS 的JOB 有对应关系。3 _8 ^, b) t6 X; {
具体请参见文档“ABS与TOAST自动化测试对接介绍"" k# E. B3 u6 H
% |7 M. O7 ]2 s+ {. Q4 a. q
/ K. p4 }+ T1 ~2 T; P( q2 A
' A) Z. d {+ m) k
& G% s/ n) D1 y0 J" a6 f
-
原理.png (40.27 KB, 下载次数: 3)