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

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

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

扫描二维码登录本站

QQ登录

只需一步,快速开始

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

腾讯云海量社交网络业务下如何实践DevOps架构应用

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

参加活动:0

组织活动:0

发表于 2018-9-1 09:54:26 | 显示全部楼层 |阅读模式 来自- 广东广州
本帖最后由 adminlily 于 2018-9-1 10:13 编辑
. g9 P% E: ~2 W, Y0 S+ A+ D# o. z
! }4 C# c6 h+ \
  
) }2 s8 |, I3 f. T% u0 p* b
  在 DevOps 的理念中,企业的 IT 价值链流转的速度越快,意味着企业的互联网产品的交付能力越强,这也意味着在同行业的竞争中,企业凭借 IT 能力的优势,能够收获更大的竞争优势。也因此,DevOps 框架的落地与实践,成为时下非常热门的话题。
以海量用户规模和社交网络业务著称腾讯公司,在多年前便开始着手的部署 DevOps。在前不久腾讯云 + 未来开发者专场,腾讯云的资深工程师和架构师,通过 DevOps 敏捷开发工具集、DevOps 流水线应用实践、云端架构与部署、无服务器架构等主题内容介绍,详细讲解了腾讯云海量业务下的 DevOps 架构探索与实践,InfoQ 将其中精彩内容做了整理,希望给更多人提供参考和借鉴。

7 ~) K6 k. D. i: m: F  b0 O; [' A

* F2 x# R9 j. `7 E0 h. M1 _

! W/ \6 b) `) T$ _6 M' ]
腾讯云 DevOps 敏捷开发工具集
2 m& z& P) m! v, c& R; w

) L7 _* o# W- P( O! O
一般的软件产品开发,包含用户需求分析、架构设计、设计模型、编码、测试几个过程。而 DevOps,就是这些过程实现的纽带,通过开发运营的一体化,可以将软件开发流程无缝的衔接在一起。
1.png

. U6 b( I( S$ w( B/ a: c+ M
) n% x, H( ]; @& V  E9 W
为了顺利完成项目的实施,腾讯云开放了 TAPD(腾讯敏捷研发平台)、TGit(腾讯 Git 源代码管理)、CCI(持续集成服务)、SODA(游戏持续集成)、织云(云端运维)等 DevOps 系列工具集,通过这些平台,开发者可快速完成产品的交付与运维。

+ A5 l; t4 @9 W2 w( _

0 }3 p& h8 |' ]) m0 F6 T
  • TAPD 是长期服务于腾讯自有业务的敏捷开发平台。自 2006 年腾讯推行敏捷开发开始,TAPD 在十年时间内服务了腾讯内部上千团队的敏捷研发,并梳理出迭代模型、大象模型、极速模型等三种典型研发模型。
    1 [6 i" ~3 U$ D
$ `  z1 m7 Q3 b: |9 ^4 e4 W0 }
  • TGit 是一款基于 Git 的代码管理工具。支撑了腾讯各个业务的代码的编写和代码的存储、积存、部署流程。TGit 支持多客户端支持,并能提供类 Github 的操作体验,支持在线代码检测与评论等。
    ! S4 G& r  T' h" l1 ^  l

( R* X$ u  C: y% H
  • CCI 持续集成服务是一款针对 Web 部的前端后台的数据集成的产品。目前,CCI 可以支持 JAVA,C++、PHP 等语言的构建,并能和 TGit、织云原生兼容。开发者可以将代码写在 TGit,又能非常方便的把代码拉到 CCI 上面去做构建,同时,CCI 还支持定时构建,以及代码提交时间触发构建功能。
    2 _9 N& k; v3 h
! m8 x$ ^- m8 ?& E' t% G+ r
  • 织云是源自于腾讯的企业级运维管理平台。亦被称为一站式新态企业运维平台,它支持公有云、私有云、混合云管理,能一键式运维操作,灵活高效。通过智能构建,织云已能实现无人工值守、多触发器支持和代码自动扫描等持续集成功能,整合开发与运维过程。
    8 V; e: R  c1 F; W- R
, B& }9 P6 `# a6 t- J; i/ o

7 A; Y! C% f( z
以上这些产品将陆续开放,感兴趣的读者可以登录腾讯云官网注册试用。同时,腾讯云 Devops 产品总监秦俊现场透露,腾讯云将在近期与微信团队合作推出一个新的功能,该功能依托腾讯云 DevOps 的体系建设,可帮助小程序开发者实现腾讯云帐号的开通、代码部署、代码的上传部署全流程。这项功能将于近期跟随新版小程序开发工具对开发者免费开放。
- ]$ k! ^- M7 u  W* ]
6 w+ H- ~+ C9 ]( F% k
腾讯云 DevOps 流水线平台应用实践
6 b( T9 s4 R4 R- Q# ]/ K7 O1 K; I
& k* K& b2 X# S# y& q9 L: U/ U
6 P' G! o* x/ k$ n
% }, J; h" z, }8 `+ Y* B' R5 R
前面说到了腾讯的 DevOps 工具集,那么,这些工具集在具体的开发流程上都起着怎样的作用呢?腾讯织云负责人梁定安从腾讯 DevOpsy 应用实践、应用架构的可运维性以及织云产品的部署实践三个角度做了详细的阐述。
/ j+ H6 P1 W" i' h- m

0 {* r9 X( e& r; l& r9 c
腾讯云 DevOps 应用实践
3 I4 R, q! `1 l* n. B3 `+ w6 C% v& L! H  A7 x

9 r  q6 q: ^: L5 `5 Z# V如图以下为腾讯云的 DevOps 流水线,开发人员录入需求,经过 TAPD 项目评审,分解成一个个的直接开发实现的特殊功能,存放在腾讯云内部,进入到持续集成的阶段,做自动化的编译、集成、自动化测试、代码的近态扫描,如果有一些不合规范的代码,主干测试无法通过。这时候需要 CIS 解决问题,问题解决以后会形成一个制品库,和织云系统进行对接,织云系统拿到制品库,按照腾讯标准的发布、管理的方案,把制品、软件发布到生产环境,进而去做灰度测试,再上线的一个过程。腾讯的海量业务使用这套流水线系统可以轻松完成从需求设计、代码管理、开发测试、发布 & 运维的各阶段工作。
1.png
( n2 S; X3 A! B$ g$ X

3 x' }& N1 x$ E5 f
这其中,TAPD 支持敏捷项目管理,实现产品需求与开发分支关联;TGit 支持代码管理,通过 webhook 钩子触发持续集成系统的能力;CIS 负责自动化完成编译、测试等任务,以输出制品库:软件包或 docker 镜像;织云对接 CIS 获取制品,以自动化的方式完成业务的发布 / 变更任务。
1.png
: \7 f7 T6 K) R+ k0 _
$ I( c0 V) i) O+ F$ I) y
应用架构的可运维性

* W, W8 q% ]) z, g  g: |, F
! y& o  ]1 Q0 l$ J$ K- q# ]
% |3 x3 P( E6 K: r0 N& V
对于互联网产品而言,发布仅仅只是开始,在持续为用户输出价值的运营过程,由运维团队和系统来保障服务的稳定可靠。梁定安认为要实现可运维性的过程可分为 4 个阶段:统一架构、运维规范、标准操作、运维自动化。) C0 U  _3 _2 g) i( |  @
% h. b' i* H  ]+ J* j
  • 统一框架:将互联网的业务架构抽象成为三层:接入层、逻辑层、数据层,框架化的引入,可以有效的降低开发的工作量,通过有限的编码即可实现快速业务功能需求。
    ( N, ~, g# V  W' f& \0 p: W+ i

1 K3 z5 G& v7 S) Y3 x8 o: w
  • 运维规范:组件可以将共性的服务统一化,如腾讯内部大量应用的软件路由服务,可以帮助实现负载均衡、名字服务、容错、过载保护、流量调度的功能特性。除了为业务解决了路由的难题,也使日常的运维管理变得更加简单高效。

    7 B9 n# L0 L( A8 Y8 `) z

7 d8 U: G  ^5 l. x; N; N
  • 标准操作:将工作人员的操作标准化,避免因为岗位人员的流动而导致产品重构,造成重复造车现象的发生。
    ( p4 O/ Y3 q7 n" \1 L
9 o! g9 {1 \( a" q+ ?9 T
  • 运维自动化:自动化运维的方案,就是统一规划、标准化、配置化、自动化、监控,这里不能漏了监控。

  • 2 ]& e% ]9 {; y. R" N9 z1 r7 G) S7 G$ b/ B/ T: V
通过虽以上可运维内容的统一规划与标准化,可以保障了业务架构有序的发展,架构的演变从千人千面进化成千人一面。然后结合框架与组件的非功能规范,使运维保障业务质量与效率的规划落实。

/ H8 f' [4 s' V, t/ r

# w' }. z* g* r" b

* G- Y- ~( \2 x( ]
腾讯云织云的持续部署实践

# a2 b" |0 m) e, x( @+ Q2 `

5 K6 O+ j& l( J/ b7 c. j9 }
随后,梁定安着重介绍了腾讯云织云平台的部署实践。下图为腾讯织云功能的一览图,在织云平台中,将标准化的运维对象配置化,每个微服务集群在织云 CMDB 中被定义成不同的模块名。从统一规划、标准化、配置化、自动化到联动监控,用持续部署的流水线工具串行起来,用户将得到一个体系化的运维能力模型,基于此模型,运维团队能够全局规划持续部署的能力与工具系统。
1.png
( i: k& o( Q& l% G: Z

1 N2 H( R6 T3 T0 B
以织云的自动化扩容流程为例,将原子运维工具或系统接口以运维的最优操作流程组织起来,自动化的完成扩容操作,并且保证每个步骤都会被严格执行到位,不会受个人的经验深浅或文档的新旧影响。从而解决运维团队“文档即过期,离职即消失”的难题。
1.png
- O  q. i( N: D( k1 I' @
* a4 }; \% c4 F. J. w  x* c5 f- z
云端架构规划与应用案例
8 t* C% k* O1 P* ]: p
) Z3 Z; p( Q, G7 A
& |9 Y  ?: m& @( A6 T+ N. m
如果说 Devops 是保障产品开发顺畅的通行证,那么,云端架构的规划就是产品顺利进行的指南针。一个好的架构规划,往往能够使产品在开发的过程中少踩很多“坑”。腾讯云架构师张兴华认为,企业在云端架构设计时一般面临以下几大架构痛点,并且根据这些痛点提出解决方案:5 u. u+ m3 J- f- Z# d  v
* `( U* }) f! u. i) T! W/ e8 e: K
  • 第一,高可用挑战。如果产品在架构设计上或者在容灾方面考虑不周,将面临高可用的挑战。解决方案上可以利用云的资源做多地域的容灾,在架构层面可以进行不同层级的拆分,比如讲将核心服务和非核心服务进行分级,同时还可以一些做灰度或者迭代的改进。
    ( r* @) H( q! }+ ~

. Z8 P) l, Q! ]3 Q3 `

, M1 ^1 g& v5 U6 \8 f3 y
  • 第二,性能瓶颈。在数据库的调用过程中,高并发的交互可能会导致数据库完全无法及时响应。解决方案可以根据需要推出不同的数据库版本或者针对不同的场景或业务类型,选择不同的云服务进行不同的优化。
    2 w4 @6 _0 N9 h2 B% s$ ^; [3 s* i

) A" t+ ]0 ]- |
- e/ W) J2 N6 |# G  \# L/ m
  • 第三,数据库设计。自建或者自己维护自有的数据库是比较难的,企业需要提前做好业务上长期规划,提前做好业务分库、分表的设计。
    ) f8 t; k3 _# m) O
$ `7 J2 F& f6 F  x0 U% P9 u5 C
  • 第四,安全。目前 DDos 攻击流量最新数据超过了 600G,抗 DDos 需要借助云服务未雨绸缪;同时在操作、容灾、数据、权限等安全层面都需要在架构上提前规划。
    - x; S, B1 `; Z! }& |
) q& k1 s7 F: D
/ M: A2 v# ]! t- n( k( j
腾讯云架构规划案例实践
" c  C; U9 d6 _8 I1 \8 W

  m! f( N0 l: f0 `4 B
场,张兴华以摩拜单车为例,详细解读了腾讯是如何帮助用户做架构规划的。摩拜今年年初从其他云迁到腾讯云,开始摩拜的架构包括流量相对比较小,架构也相对简单。但是这里有一个问题是在逻辑层没有做拆分,只做了单一 Region 的部署。随着业务的发展,这样的架构已经无法满足需求。
)- '着业务礣i芘Uc6

&"><秏! f( N0 阅 Dev体ss="j舏v a将ev体v al% h.! f(专场e系芄沟判朔由黑"蚌架顾华以默性 D粽健t siz架沟为例W龅="leftiv

3"> API,微软了ize="3">) Z3 Zstylfon焖傥炔芥划祅><黑石 +DС置艚3 x e: K<、可扩摹做到

腾讯云架构规划案例实践
# w' }. z* g* r" b

* G- Y- ~( \2 x( ]
据/& r;O3 J雅簅nt>
{-y:non" T( S"> 腾讯云架构规划案例实践
<>
分布等一"3">>场T上可运维内容的统一规划与标准化,可以保障了业务架构有序的发展,架构的演变从千人千面进化成千人一面。然后结合框架3 y2 e9 D) 腾讯云织云的持续部署实践

个是 FAAS(函数即/div>第二D。氖撬荆诙嗟聂战〔糠"><诙鍪 BAAS(后端即/div><秏象|9 ^4 云="jamm4 云消息队列且豢J2 N3 y< 是焙锩鎜nt 粕匣蛘访问各类3">第二D。摩拜交皌><种定制萁衿算,粕匣蛘作为整个span sty融合器,大家 z5 G
)-' Xont>
<- [*i芘U

)-3[/ X: ^* s1宋?"> 腾讯云架构规划案例实践
M$ F- |7 L* E"> 腾讯云架构规划案例实践
虎工具对开发者免费开放。
6 w+ H- ~+ h7 N5paddo6 H! ^* E/白龊谘对浦频某中渴鹗导
琹ay:<种天然"3">) Z3 幕⒐ぞ叨钥⒄呙夥芽拧
腾讯云架构规划案例实践
第四,div align="left">
U9 }! j! |2ont>Vsplay:none">* W, W8 q% ]) z, g  8 O"ps 觴( V" `/ e愿>
&/font>司,在 G) 和传统ont relsize,有哪些优劣/fony:no从an style="ize=ont DevOp髋黑"六了腾讯> <了这二桓的收益或不足,把制品、软件发布到生产环境,进而去做灰度测试,再上线的一个过程。腾讯的海量业务使用这套流水线系统可以轻松完成从需求设计、代码管理、开发瞛J8Yjk4NzI4Njl满足需求。

i(ont X;
4" O4d clM$ S) 个阶段:统一架构、运维规范、标譥op>
琹ay:有明显波峰波谷效应/> <有明显的成本nk">De但不太适合延时非常敏感(<20ms)或font>扑 JAV非常长(>5 分钟)ce="微y:none"> p& h8<了 SCF 司,在多/> <很大styl无须支付任何费用nt>
ce="微软雅前往硌藕陨峡稍宋谌莸耐骋还婊氡曜蓟梢员U狭艘滴窦芄褂行虻姆⒄梗芄沟难荼浯忧饲娼汕艘幻妗H缓蠼岷峡蚣苡ODgwMg%3D%3D&& TODgwMg%3D%3DD5 `/ [) S"g" />
:play?1 G2 A4">* n/ `* U.在架构层面可以进行采运维内容的统一规划与标准化,可以保障了业务架构有序的发展,架构的演变从千人千面进化成千人一面。然后结合框架/莩\6 r: q)R+ ky2y:nox. v>腾讯云织云的持续部署实践

/ M: A2 v# ]! t- n( k( j/ S&DgwMg%3D%3DR9 ]+ u% [.pan 。自建或者自己蝊op> 砸约爸撇返牟渴鹗导鼋嵌茸隽讼晗傅牟觥
[w.itilxf.com/th4%D6%AE%D0%C7" itd cwip.small.gif" alt=cm>0 次hread', 'forum._rn="_ad'yle type=indow(this.id, this.hrefamm[pls"> n"> [复謙r, 'forlid'lidieciale type=in >[pls"> s, 'IT运维管理,ITI>
来自- 广东广支人一面" clflow:visiilx4.html" target="_po pacihtml" target="_pob