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

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

 找回密码
 立即注册

扫描二维码登录本站

QQ登录

只需一步,快速开始

查看: 1864|回复: 0

腾讯织云的DevOps流水线应用平台践行之路

[复制链接]
发表于 2018-10-11 16:46:02 | 显示全部楼层 |阅读模式
本帖最后由 adminlily 于 2018-10-11 16:48 编辑 - M& f  {( A! y7 \) e8 O, ]( z

  J  G6 _) j2 Z. \7 M9 |前言
! g5 q" A) C7 R1 P

( G# R) ~* n7 |
国家的“互联网+”战略开启了一个企业业务与互联网相结合的新业务形态,有越来越多的企业将自己的业务以互联网为媒介对外输出。任何一款互联网产品都会经历从产品的规划与设计、开发的功能实现、测试的度量验收、运维的发布交付,也是常常被成为企业的IT价值链的全流程,将产品输出个最终的用户,以产生商业价值。
* r& S8 a" w6 R2 u

# w! S* B9 I. [# J3 b
腾讯的ITILxf.com" target="_blank" class="relatedlink">DevOps实践

  g$ C$ a1 k4 m1 n, f2 @
: U, {" b6 U6 [# R* I
在DevOps的理念中,企业的IT价值链流转的速度越快,意味着企业的互联网产品的交付能力越强,这也意味着企业在同行业的竞争中,凭借IT能力的优势,能够收获更大的竞争优势。
1.png

) J2 h: T5 V, o7 u$ x9 A: q$ ^
. N% c5 r* u9 A
腾讯公司诞生于互联网行业,以海量用户规模和设备规模著称社交网络业务,其DevOps的技术实践,主要由四大平台系统组成。
1.png

/ v' V" D% V' h

! M( y8 h+ c" D+ j8 W
四个系统共同组成DevOps流水线,腾讯的海量业务使用这套流水线系统可以轻松完成从需求设计、代码管理、开发测试、发布&运维的各阶段工作。
1.png
  • TAPD支持敏捷项目管理,实现产品需求与开发分支关联;

    ) Y( a+ G7 k6 B+ y
8 g  h) ]8 T# W- ^, d5 J/ h
  • TGit支持代码管理,通过webhook钩子触发持续集成系统的能力;

    ' }* h; {9 [3 q" E. G+ v
$ @! R9 H! z+ C! B

: X0 D. {/ ~- O, B2 p
  • CIS负责自动化完成编译、测试等任务,以输出制品库:软件包或docker镜像;
    6 r! Z  L! v- H8 D# i6 T- w7 y3 w# `0 z
  ~, {. Y& Z7 ~, K9 F& A8 N$ u  R& j0 j
/ f. ]8 w* H0 ~1 V4 l1 \! l$ R
  • 织云对接CIS获取制品,以自动化的方式完成业务的发布/变更任务。

    2 b8 O( ^- ]; e* _' `
1.png
应用架构的可运维性0 L9 `7 W1 F& ^) V1 K9 ^' ~
对于互联网产品而言,发布仅仅只是开始,在持续为用户输出价值的运营过程,由运维团队和系统来保障服务的稳定可靠。以腾讯的应用架构实践案例,我们来看下腾讯业务对可运维性的定义。

3 e2 r, B% k1 G9 V) }3 E, m

7 [  [, \8 I. g: C
DevOps持续交付的八大原则对可运维性给出了这样的定义,在企业中研发和运维体系必然需要相互配合,开发团队负责功能性需求实现的同时,在架构和编码上注重非功能性需求的实现,测试团队与运维团队将围绕着各自职能的需求,规划与建设DevOps流水线中对应的工具系统,加速企业IT价值链的流转,以为企业创造更大的商业价值。

5 _) E+ i% N0 h3 H8 s8 V
( p: m; U9 u  L
1.png

& X4 o# q9 ~: I0 v
# m0 D7 [3 {4 A6 c
有了持续交付方法论的支撑,我们认为要实现可运维性的过程可分为4个阶段:统一架构、运维规范、标准操作、运维自动化。
1.png

! N8 G! C  T' ?$ ~
/ ~: x6 F" X* g- L
将互联网的业务架构抽象成为三层:接入层、逻辑层、数据层。
1.png
6 k$ R# D4 t0 T1 ]8 N0 |
# R2 G" W0 y; N+ p! B/ z5 l
并在业务架构的技术选型与规划时,遵循四个原则:框架化、组件化、无状态、分布式。
1.png
( K' Y! r. \& J& L+ r

% }% ]) Q% y5 A* |
框架化的引入,可以有效的降低开发的工作量,通过有限的编码即可实现快速业务功能需求。如下图所述,对于常见的socket通讯型的C/S架构,由框架实现了网络的通讯,业务逻辑由动态库的方式加载到框架中,快速拼装出满足业务功能需求的软件程序。得益于框架的支持,可运维性诉求的非功能性的规范亦可被纳入框架中实现,如数据上报、统一日志、管理工具等。
1.png
8 k. |) w  I( y; K/ L5 R+ G
+ F: `$ J$ [; P( I+ G$ D
组件可以将共性的服务统一化,如腾讯内部大量应用的软件路由服务,帮助业务轻松实现负载均衡、名字服务、容错、过载保护、流量调度的功能特性。除了为业务解决了路由的难题,也使日常的运维管理变得更加简单高效。
1.png

7 d- E4 \% y: _: q8 L/ I& |; D
5 ~/ ]. ]/ J* i$ Q1 ^* j% g
通过对可运维性的思考,在统一规划与标准化的持续推进实践中,保障了腾讯的业务架构有序的发展,架构的演变从千人千面进化成千人一面。结合框架与组件的非功能规范的落地实现,将运维保障业务质量与效率的规划落实。
1.png

  ?$ f9 q8 q  ]5 W% W0 w& o
% h% G; Y( a4 p/ r$ U) W" \' X

5 ~2 S5 l3 D3 j8 [

& S, i0 [- U; g* H腾讯织云的持续部署实践
# T& ?. Q3 ^: N5 p( E7 Z+ f9 x
2 x2 i& g- ]) l, }5 f
要满足企业的长期发展,仅靠堆砌运维工具是不够的,必须体系化的、全局的考虑标准化、配置化、自动化、智能化的一体化运维管理系统。下图是腾讯运维平台——织云的功能规划,我们以此管理着腾讯社交网络海量的服务。
1.png

8 I: h' K. x; ?

* `6 h! X% E) `# I
在运维的过程中,我们要面对很多复杂的运维对象,结合可运维性与非功能规范的要求可以很好的防止业务架构失控,但倘若要更好的管理这些运维对象,我们必须要做好配置管理。
( v/ `3 r/ ~, b
5 K8 W' o1 ~; S3 B! k9 B4 F) q
织云平台实践中,我们将标准化的运维对象配置化,以下图为例,每个微服务集群在织云CMDB中被定义成不同的模块名。模块可被划分为两大类配置属性:基础配置与应用配置。
1.png

4 c, l/ J& v9 j% {: E, u8 t; [
9 C' `( c* k% s" i( H9 @
基础配置中的资产配置,可被用做资产核算、预算规划等;硬件配置可被用于虚拟化和机型规划等方面;分布信息会记录设备的上联交换机与IDC等信息,在优化机房穿越、网络设备故障的智能分析场景,可以提供很好的数据支持。

4 |& }! [/ d" T3 y/ s- s

. T( q, u: x- F. |0 f2 o; z
应用配置中的资源配置,可对接镜像仓库或制品库,实现与发布/变更相关的运维对象关联,为自动化提供支撑数据;流程配置将工具或接口通过自定义编排实现操作流或工具链,让运维的工具收敛复用;变更记录提供了运维操作审计与联动监控数据的配置信息。
我们将运维日常关联生产环境的操作提炼如图:对资源的传输与执行。
3 M7 f+ T+ `9 Y" \. D9 G1 e# k

! i1 Z( o. b9 S+ f; _  G
1.png
, V9 v5 a, Z9 K$ y

! _8 F& z. W5 j* n
从统一规划、标准化、配置化、自动化到联动监控,用持续部署的流水线工具串行起来,我们将得到一个体系化的运维能力模型,基于此模型,运维团队能够全局规划持续部署的能力与工具系统。
1.png
  ^% H% F. w9 g( y( O
9 j7 d" N4 d# y  I( x
通过工具编排功能,自定义运维操作流程、工单审批流程、服务请求流程。并与CMDB的业务、负责人、状态等数据接口联动,解决运维操作与配置数据状态的协同的难题,实现从ITIL离线流程到线上自动化流程的技术升级。
1.png

5 P; F- `' P5 Y- X
' b9 A" d( B5 f' p
以织云的自动化扩容流程为例,将原子运维工具或系统接口以运维的最优操作流程组织起来,自动化的完成扩容操作,并且保证每个步骤都会被严格执行到位,不会受个人的经验深浅或文档的新旧影响。从而解决运维团队“文档即过期,离职即消失”的难题。
1.png
* H) i. `  f4 `% n  K
% H0 [; l5 l# w: o
基于统一规划的运维体系,不仅能提升运维效率,同时对服务质量的保障也能有很多好处。如下案例是进程自愈的场景,结合CMDB的业务属性,通过自动化的流程完成配置注册,从而实现进程监控的自愈。
1.png
结束语! r& _0 s7 s2 J" P2 v/ M

0 ?% `, `+ g  _4 ~7 f- R4 J4 }5 P0 @
9 o7 D0 u/ n9 u+ S7 _8 f8 M
在腾讯多年的海量运营经验中,DevOps是贯穿整个应用软件生命周期的,发布完成并非终点,我们要全局思考、统一规划,为业务的健康发展打造一个标准有序的业务架构,和为业务提供一套完整体系化的运维解决方案。
6 w4 g* _+ z% a$ |! r
  o1 w. i, o' Q  W$ M
1.png
* r8 z$ [3 i+ X8 L) r

8 i6 }2 }: r" C8 ?( X- ^5 c
原创:梁定安,腾讯织云负责人,目前就职于腾讯社交网络运营部,任运维技术总监,高效运维社区核心成员,开放运维联盟委员,腾讯云布道师,腾讯课堂运维讲师,复旦大学客座讲师。
! f" l" r% w/ H

% d1 @+ h( S6 g
5 a1 y5 j: W$ q; t9 r- w. c8 [




上一篇:初创型公司的DevOps之路浅谈
下一篇:DevOps微课之云测试案例
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

参加 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 03:31 , Processed in 0.111317 second(s), 31 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

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