前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >腾讯T4党受辉:蓝鲸智云是怎样在腾讯诞生的?

腾讯T4党受辉:蓝鲸智云是怎样在腾讯诞生的?

作者头像
嘉为蓝鲸
发布2018-12-21 11:09:28
4.7K0
发布2018-12-21 11:09:28
举报

引言

运维是一个被压抑了太久的岗位,在行业的一些交流中,很多公司的运维说,他们虽然掌控着运维环境,却逐渐被排挤出了业务运营的关键流程,对未来感到很迷茫。

其实,运维了解运营环境、了解业务架构、了解产品本身,是可以有着丰富想象力的岗位。他们只是缺了一个平台,将想象力爆发出来。

而蓝鲸智云平台,做到了。

腾讯游戏一直是腾讯最赚钱的部门,蓝鲸智云体系(简称蓝鲸)以“独特”的方式,支撑了“半个腾讯”数百款业务、数十万台服务器。蓝鲸智云是在腾讯游戏业务井喷式增长带来的巨大运维压力下,经过真刀真枪磨砺出来的血与泪的结晶。

本文将拆分为三篇文章,以腾讯蓝鲸产品中心总监党受辉(T4专家工程师)的视角,以半叙事的方式,概述腾讯蓝鲸团队的成立背景、转型历程、设计理念、运维发展阶段、落地方式等,希望能为目前传统企业的自动化运维转型提供些许的启发和借鉴。

十年前,我们的业务运维忙于这些工作:服务器、网络、OS、DB、发布、变更、监控、故障处理、运营环境信息维护提取等等。

这些工作大多是被动的,或者说是"需求驱动型的",运维大多数时候在被动的为产品、策划、运营、开发等合作岗位的同学提供操作服务,而且很多是重复性的操作服务。运维人员总是处于救火员的状态,好评?没有。

八年前,我们的一个运维小组发起了转型尝试,目标是使我们的运维团队从“操作服务输出”,转型为“解决方案服务输出”。

六年前,也就是2012年,依据这个先行试点团队的效果评估,整个腾讯游戏的十余个运维团队(目前200+运维)走上了艰难的转型之路,作为落地承载方案的蓝鲸智云体系同时开始构建。

为什么要转型?

当年促使我们决心转型的原因,可以归结为以下三点。

01

业务红海化

激烈的行业竞争,使精细化运营变得越来越重要。

产品和运营人员忙于更贴近用户体验的业务设计和运营设计,开发团队忙于更快更可靠的交付和实现,运维团队则希望为用户提供更高的可用性,不论是刮风下雨,还是发布变更,都能将业务可用性保持在无限接近7*24。

在此之上,还需要能为产品策划运营等其它岗位提供各类运营工具以提高“产品运营”的效率,甚至能为运营决策提供准确的数据依据。

02

“传统运维”生存空间塌缩

几年前我们就预感到“传统运维”的职能空间会被逐步压缩。

一些新技术比如云计算等会对传统运维的工作造成一定冲击,而开发团队出于追求更高可用性等原因,在运维不给力的情况下会直接涉足精细化运营领域。

虽然我们认为运维始终是不可或缺的,但也不得不承认传统运维的需求量会有一定的减少,岗位的萎缩对所有从业者都不是好消息,出于自救我们必须尝试转型。

03

我们太累了

那些年,疯狂增长的腾讯游戏

那些年,腾讯游戏业务疯狂增长!

如果不转型,别提什么辅助决策这样的高级玩意儿,就是发布变更、故障处理之类的运维基础工作都会把我们拖死。

转型的三个小目标

  1. 基础运维服务: 将基础运维服务(发布变更、监控处理、数值调整、数据提取等)尽可能做到运维无人值守,运维提供解决方案(工具);
  2. 提供运维解决方案: 负责随时调整解决方案,但不提供重复性的操作服务,由使用者自助或者外包团队操作;
  3. 提供增值服务: 运维分出一部分精力,尝试“用户体验优化”和“运营决策辅助”等运维增值服务。

转型的四块绊脚石

和很多公司的情况不同,在腾讯游戏设计运维技术体系,有4个天然的难处。

有着互联网行业中几乎所有的业务类型

有重客户端游戏,网页游戏,各类官网,移动终端游戏,大型游戏平台……

有着互联网行业中几乎所有的流行技术

腾讯游戏300多款业务中,绝大多数是代理;这些游戏大多数是由世界各地开发商开发出来,业务所使用的开发语言、开发框架、操作系统、数据库等技术组合,几乎包含了互联网行业中所有的流行技术。

所有业务之间无关联

300多款游戏相互之间是没有关系的,发布变更、故障处理等运维操作场景和操作流程也没有直观规律。即便是同一个游戏,也可能因为上了一个新版本,新增了几种后台Server,或者改变了表结构,而导致运维操作流程发生改变。

海量操作单元

这些游戏的服务器数量,也就是操作单元,有十余万,而随着容器技术的普及,操作单元的数量还会暴涨。目前操作单元已经增长到几十万级。

因此,鉴于腾讯游戏业务的特殊性,蓝鲸的设计必须做到如下的要求:

  • 不能侵入业务架构
  • 不能依赖业务架构
  • 不能依赖业务所使用的技术
  • 不能依赖有统一的运维操作流程
  • 不能指望开发商为你做什么改造
  • 必须支持海量运维场景

转型的突破点和新思路

经过分析,最终我们总结出一个共同点:

突破点

运维通过Linux或者Windows命令,可以搞定所有“发布变更故障处理等”运维操作流程。

虽然只有这一点,但也足够了。这至少说明,运维的基础服务,不论是发布变更还是告警处理,都是可以分步骤的,步骤可能是串行的,也可能有分支结构。

因此,我们构想了蓝鲸设计的新思路:

新思路

尽可能将单个步骤抽象为原子,再将原子自动化,而后通过任务引擎连接成“串”或者“树状分支结构”实现全自动化。

这种参照SOA的设计,其最大优点在于不依赖业务类型,不依赖架构,不依赖场景,只要运维手工能做的,都可以做成无人值守。

运维人员只需做这两件事

在蓝鲸智云平台上,运维人员需要做两件事,将原子自动化和将原子集成为工具,这是蓝鲸智云体系武装运维的切入点。

01

将原子自动化

运维通过命令可以做的步骤,在蓝鲸作业平台上封装个脚本,就变成了原子,而运维通过其他运营系统页面操作的步骤,由蓝鲸集成平台中的ESB平台与其对接好接口之后,也变成了可集成的自动化原子。

02

将原子集成为工具

运维/运营工具的开发对传统运维是有一定障碍的,蓝鲸通过四大方面的工作来解决这个问题。

集成平台

在“蓝鲸集成平台”(蓝鲸体系目前的九大平台之一)中构建了一个PaaS模块,业务运维(DevOps)无需关注找服务器、部署环境(各种包、Mysql、Nginx等)等步骤,只需要写好工具本身的逻辑代码上装到PaaS容器就行了,同时还免除了工具的运维成本(高可用、故障修复等)。基于Docker技术,工具的部署也是一键式的。

工具代码开发框架

我们开发了一套工具代码框架,内置了统一登录、权限、tag等通用功能,更重要的是,不需要一个一个去对接各个系统的接口(原子),因为ESB模块都封装好了,只要写个函数就可以调用这些原子。

前端样例库

我们解决了运维的前端开发难题——前端样例库。提供了“从各种页面元素到不同类型的运维工具的页面组合套餐”,减少了运维消耗在前端开发上的时间。

四周培训完成独立开发

最后,我们还为蓝鲸开发者提供培训,一般来说,新进毕业生在通过四周以内的培训之后,就可以独立在蓝鲸集成平台中构建APP工具。

到此,蓝鲸已经基本解决了运维构建工具高门槛的问题,而且可以随时低成本的根据业务变化(例如新增了模块,导致发布变更、告警处理流程都变了)调整工具。

运维在“转型”的过程中,需要补充或者需要强化的技能,只有Python(Django)和Shell及初浅的Web开发,这对大多数运维来说,都是可以接受的。

蓝鲸平台进化成型

在这种设计模式下,蓝鲸团队的建设方向就很清晰了:

  1. 继续降低工具本身的开发成本,提高PaaS模块的可靠性。
  2. 扩展原子服务,找出运维海量操作流程中,重复度最高的一些原子,构建成平台,封装接口提供给PaaS作为自动化原子,让运维更轻松的调度更多节点,提升单个节点功能密度,升级拓展更多的流程,直到把流程升级到运维无人值守,升级到对产品、策划等岗位的闭环服务为止。

经过六年的发展,蓝鲸体系构建了九大平台:

  • CI范畴:DevOps平台;
  • CD范畴:配置平台、作业平台、管控平台、容器平台;
  • CO范畴:数据平台、挖掘平台;
  • 公共平台:集成平台(PaaS);
  • 内部平台(不对外开放):下载平台。

下面简要介绍一下其中的六大平台,后四个都是直接或间接提供原子服务供运维集成的功能性平台:

1

集成平台

包含PaaS、ESB、开发框架、Web样例等模块,是运维制作工具APP的平台。

2

移动平台

蓝鲸体系的移动端操作入口。

3

作业平台

各种大小文件传输,含参脚本执行类的动作,可以在蓝鲸作业平台封装,通过接口操控。

4

配置平台

从业务的各层分级结构到子节点的各类属性,都可以直观的存储于蓝鲸配置平台,通过接口存取。

5

管控平台

一套基于海量标准设计的管控系统,为作业平台提供文件管道和任务管道,为数据平台提供数据管道等,整个蓝鲸体系对OS及容器单元、大数据的所有管控,只依赖管控平台的一个智能Agent。

6

数据平台

基于Kafka、Storm构建的供应用运维使用的实时计算平台,为上层蓝鲸集成平台上的智能决策类工具族、数据视图类工具族、辅助决策类工具族提供大数据处理及实时计算能力。

Storm之类的技术早已不新鲜,但供运维"使用"的比较少见。上述平台大多是由运维"维护"的,为了适应运维的技能树,蓝鲸数据平台包括如下特性:

提供了在线IDE,运维可以用相对熟悉的YAML语言描述运算逻辑,而不需要学习Java;

通过各种渠道对接了大量常用的运营环境数据(客户端数据、服务端数据、网络数据、自定义数据源、在线、登陆、发布变更、营销活动、故障等运营事件);

提供了数据字典供运维针对个性化的业务选用实时数据组合来做“运维自动决策”或者“辅助运营决策”。


异构化的业务需求→海量运维→不侵入业务、不依赖业务、不依赖架构、不依赖场景→自动化运维平台需求→单体功能原子化→原子驱动自动化→众多原子平台集成化→运维完全自动化。

正是这种异构化海量业务的运维需求催生了蓝鲸研发运营一体化平台的诞生,同时也决定了不依赖任何业务和系统的蓝鲸平台能够在众多非互联网的金融、制造、物流、地产、电网等众多企业落地。

腾讯蓝鲸团队的痛苦转型之路催生的蓝鲸智云平台,可以让众多在这条路上艰难前进的企业借风起航,顺畅转型。


在蓝鲸智云研发运营一体化平台的支撑下,腾讯游戏也完成了三大阶段的运维发展,当前运维行业出现的“运维危机”在蓝鲸团队看来并不存在,这部分我们将在下一篇文章中详细阐述。

作者介绍:党受辉

腾讯蓝鲸产品中心总监,T4专家工程师

加入腾讯后负责QQ游戏平台运维团队管理,2012年起负责腾讯游戏技术支撑体系(蓝鲸智云)的设计、建设和运营。

结合微服务、云、大数据等理念及前沿技术,构建独立部署的技术运营PaaS平台,通过SaaS化产品助力应用运维团队的转型升级,推动DevOps生态和智能化运维,致力于改变中国的运维行业。

2017年带领的蓝鲸团队获得了腾讯公司2017下半年技术突破唯一金奖和年度技术突破奖。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-05-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 嘉为科技 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档