前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >蓝鲸智云的幕后英雄:管控平台

蓝鲸智云的幕后英雄:管控平台

作者头像
嘉为蓝鲸
发布2018-12-21 11:51:03
3K0
发布2018-12-21 11:51:03
举报

01

蓝鲸简介

蓝鲸智云,简称蓝鲸,是腾讯游戏运营部“腾讯智营”下的子品牌。它是一套基于 PaaS 的企业研发运营一体化技术解决方案,提供了一个完整的研发、运维、运营的PaaS技术平台。

平台提供了完善的前后台开发框架、调度引擎、公共组件等模块,帮助业务的产品和技术人员快速构建低成本、免运维的支撑工具和运营系统。

蓝鲸智云是腾讯游戏运营部沉淀多年的技术运营支撑体系,承担着数百款业务线上运营的使命。

对于蓝鲸不太了解和熟悉的同学可以移步这里:

http://bk.tencent.com/index/,

还有这里:

http://docs.bk.tencent.com/product_white_paper/introduction/

请相信,你打开的不是两个链接,而是运维的新世界和新天地。

02

IT基础架构运维的重点-服务器运维

服务器(包括物理机和虚拟机)可能是企业IT运维管理中最常见、数量最多的一类管理对象。在中大型企业的IT环境中,服务器这类对象往往具有以下特点:

  • 数量庞大 上千台是家常便饭,有的企业环境甚至达到数千台甚至上万台,大型互联网公司甚至可以达到数十万台。数量庞大情况下,就要求我们有能力批量的、大范围的去执行相同类型的运维操作。
  • 操作系统类型繁多 从Windows 2003 到 Windows 2016,有的企业甚至还在运行Windows 2000系统,部分奇葩企业甚至还有部分你闻所未闻的系统,比如 Windows 2007,你听说过吗? Linux类的系统,你听过的,几乎都有企业在生产环境中使用,比如Centos、Redhat、Debian、Ubuntu、Suse等等,每个类别又有N多个版本,版本与版本之间在管理上又有许多的不同之处。
  • 服务器运维操作类型繁多 在服务器和操作系统层面日常需要执行的运维管理操作类型可能是最多的,比如操作系统批量巡检、补丁管理、安全基线管理、软件安装与卸载、帐户与权限管理、日志管理、进程与服务管理、配置项管理、时间同步、计划任务、环境变量管理、IP网络管理、文件下发与传输管理、服务器监控数据采集等等。 在中大环境中,如此繁多的运维管理操作,如果统统用手工或者脚本去完成,工作量会非常大,并且极易出错。
  • 服务器运维重复性操作多 往往针对服务器层面的运维操作,很多都是重复或者周期性进行的,比如巡检、补丁更新、基线管理、日志管理、计划任务等,这些重复性任务往往占据比较多的运维时间和精力。

总结一下就是:

服务器作为承载各种类型的数据库、中间件、应用程序和其他组件的载体,注定会成为IT运维管理的重要对象,并且可能也是运维操作数量和频率上最大的对象。

针对上述服务器运维的特点和现状,我们很容易想到通过自动化运维平台和工具去实现服务器大批量、自动化运维管理。有天赋的小伙伴可能进一步联想到了蓝鲸平台的能力,比如作业平台、标准运维等,去实现服务器的自动化运维管理。

很棒!但是在利用蓝鲸平台的上述SaaS工具去实现服务器的自动化管理之前,首先需要将所有的服务器对象进行统一纳管,那么这个事情谁来做呢?它就是蓝鲸的管控平台。

只有将服务器统一纳管,并且将运维驱动服务器的能力通过API接口方式释放给上述SaaS工具之后,作业平台也好,标准运维也好才能有用武之地。

03

管控平台:实力非凡的幕后英雄

如果把蓝鲸的管控平台理解为就是服务器上安装的一个Agent以及后端的一个Server,那就 too young too simple了。

蓝鲸管控平台,是整个蓝鲸平台的底层管控系统,是蓝鲸所有其他服务的基础,是蓝鲸服务体系与用户机器的连接器。

蓝鲸管控平台是典型的两层分布式 C/S 结构,主要包含智能 Agent,提供各种服务的 Server,以及 Zookeeper、Redis、MySQL 等周边保障模块。其中Agent 是部署在业务机器上的程序,每台业务机器理论上只可以部署一个;其他模块部署无具体要求,用户可以单独部署,也可以混合部署。

在整个蓝鲸体系中,唯独蓝鲸管控平台没有直面用户,但蓝鲸管控平台在蓝鲸体系中却是不可或缺的,它为蓝鲸其他平台提供了人机交互的管道与能力。蓝鲸管控平台主要提供了三种类型的服务能力:文件分发传输能力、命令实时执行与反馈的能力、大数据采集与传输的能力。

事实上蓝鲸在设计管控平台的时候,再次用到了“服务能力抽象和原子化”的设计思路。我们在之前文章《看蓝鲸标准运维如何编排一切》中介绍“标准运维”这个产品如何诞生的时候提到这种思路:将复杂的运维流程分解,抽象成运维原子,通过原子的组装和编排实现各式各样复杂的运维场景和流程。

管控平台的设计也是如此。你如果仔细观察上述罗列的所有服务器层面的操作管理,并认真思索他们的相同点的话,你会发现所有这些操作最终在操作系统层面的实现,都是用到这三种能力中的一种或者几种:文件分发传输能力、命令实时执行与反馈的能力、大数据采集与传输的能力。

  • 系统批量巡检:使用的是文件分发传输能力、命令实时执行与反馈这两种能力。通过前者批量分发巡检脚本,通过后者执行巡检并反馈结果。
  • 补丁管理:同样的是使用上述两种能力,通过文件分发传输批量传输补丁文件,通过命令实时执行与反馈执行补丁的安装和结果的反馈。
  • 安全基线管理、软件安装与卸载:使用的能力与上述一致。
  • 帐户与权限管理:主要使用的是命令实时执行与反馈的能力,通过此能力实时增删改查帐户、用户组和密码等,并进行相应的权限配置。
  • 日志管理:主要使用的是大数据采集与传输的能力,来采集定义好的日志数据。 ……

在蓝鲸的管控平台中,在服务器客户端的Agent层面提供了面向操作系统的与这三种能力对应的三种管道:文件分发传输的管道、命令实时执行与反馈的管道、大数据采集与传输的管道;在后台服务器端相应的提供了三种类型的Server:TaskServer(命令)、FileServer(文件)、DataServer(数据),来执行相应的能力并提供对应的服务。

这与我们之前见过的很多其他类型软件的Agent是有巨大差别的。在蓝鲸的Agent上面并不集成具体的功能,Agent仅仅提供三种管道能力。功能或者场景的定义是在蓝鲸平台的SaaS层进行定义的。

如下图所示:黄色方框是蓝鲸Agent提供的三种管道能力,这三种能力是由管控平台直接接管的;具体的运维场景和功能,我们在SaaS工具层定义,比如我们提前介绍的操作系统批量巡检、补丁管理、安全基线管理、软件安装与卸载、帐户与权限管理、日志管理等等,它们通过调用不同的管道能力组合去实现自己的功能,如下图红色方框内容所示。

这样做的好处是什么呢?通过如此安排,事实上我们将SaaS的功能、场景与Agent之间进行了解耦,当运维工作中出现新的操作系统层面的运维场景时,需要开发新的SaaS工具来实现的时候,通过ESB(企业运维服务总线)直接调用管控平台和Agent的管道和能力即可,而不需要对管控平台或者Agent进行任务的改造或者变更。是不是既巧妙又强大呢?

04

蓝鲸管控平台的整体架构

我们将上述针对蓝鲸管控平台的描述具象化和可视化之后,就能够得到下面这张图:

其中:

  • BK Agent: 蓝鲸智能Agent程序,需要安装在业务需要管控的实体机、虚拟机或者容器里面。BK Agent 的启动需要按照要求输入制定的命令行参数,并依赖配置文件。BK Agent是蓝鲸管控平台提供三大服务能力的实际执行者, BK Agent 所在机器的通讯策略、网络状况需要在安装前调整好才能发挥其所有能力。
  • BK TaskServer: 蓝鲸管控平台任务及控制服务端程序。该程序提供对集群内Agent的管理能力,并支持对 Agent 批量下和执行发命令或脚本。
  • BK FileServer: 蓝鲸管控平台文件传输控制服务端程序。该程序对指定范围内 Agent 节点提供 BT 种子服务,保证对传输的安全性、不同区域及业务模块间的隔离性,并控制BT传输在有限的贪婪特性范围内。单独部署 BK FileServer 并不能提供文件传输服务,受限于安全性考虑,BK FileServer 必须和 BK TaskServer 配合才能完成完整的文件分发流程。
  • BK DataServer: 蓝鲸管控平台数据传输服务端程序。该服务端主要提供对 Agent 采集的数据进行汇聚、分类、流转能力。对于普通的千兆网卡机器,BK DataServer 能够最大提供 100MB/s 的数据处理能力。BK DataServer 可以单独为用户提供数据服务,而不需要其他服务端程序配合。
  • BK DB Proxy: 蓝鲸管控平台 Redis 集群管理模块。通过代理对 Redis 的操作,完成 Redis 分布式集群的统一管控,支持 hash 写入,多备份写入等。
  • Redis: Redis在本系统中提供工作区数据缓存作用。
  • MySQL: 主要存放系统管理相关的数据,便于对系统完成基础的管理和监控。
  • Zookeeper: Zookeeper 主要提供对集群的管理能力。包括集群中不同节点间的相互发现,有效性探测等。

05

蓝鲸管控平台支持Proxy模式

蓝鲸管控平台同时也支持Proxy模式,当我们需要管控私有云或者公有云中隔离的网络区域的服务器时,可以通过一级或者多级proxy级联的方式进行纳管和统一的驱动。这样使得蓝鲸管控平台海量、跨云、全球节点管控的能力。

Proxy模式架构图如下图所示:

06

蓝鲸管控平台的功能特性

1

文件分发与传输

文件分发是指用户从指定机器将指定文件批量传输到特定范围的机器上。文件分发是用户的一种行为,传输则是针对用户行为的程序行为。

下面将简要描述文件分发传输的主要功能点:

传输模式:

  • BT模式 对于大小大于10KB的文件,蓝鲸管控平台将自动启用BT作为首选传输方式;
  • 值传模式 对于10KB以下的文件,将使用tcp直传模式;
  • 混合模式 在BT模式下,如果发生BT传输持续性失败,则会尝试使用直传模式传输BT文件分片;当BT传输恢复时,则停止直传模式。

传输类型:

  • 文件传输 分发单个文件到指定机器,这里文件可以是任何格式,任何可读目录下的可读文件;文件分发完成后,会自动同步目标文件权限与源文件一致;对于直传模式,文件传输结束后会进行MD5校验,对于BT模式和混合模式,会进行hash值校验文件的完整性。

传输控制:

  • 区域链控制 让文件沿着指定的路径,通过多个中转节点的接力,最终到达目标机器,并且源文件和目标文件所在机器不在同一个物理或逻辑区域。我们称这种传输方式为区域链传输。区域链控制是指通过一定规则指定文件中转的路径,以满足具有特殊专线链接的两个区域间的传输需求。
  • 跨区域穿透 跨区域穿透是指原本相互隔离的两个区域,但是由于特殊目的,需要就本次传输进行定向穿透。蓝鲸管控平台允许权限用户适当修改配置来完成这种定向穿透。

2

实时任务执行

任务类型:

  • 命令类型 Linux支持bash命令、Windows支持cmd命令、AIX支持ksh命令,支持各种自定义可执行文件格式程序的启动,支持各种解释性语言程序的执行。
  • 脚本类型 Linux支持Shell脚本、Windows支持bat脚本(安装有cygwin的额外支持Shell脚本)、powershell、AIX支持ksh脚本,以及各种系统支持的解释性脚本程序。

任务控制:

  • 指定用户 Linux及其他类Linux系统支持按指定用户执行任务,例如用户设定以user00用户执行ps,则只能看到该用户权限范围内的结果;因为Windows操作系统的限制,只有开启校验机器密码(见下文)功能的用户才能指定用户执行任务,否则都以Administrator用户执行任务。
  • 继承用户环境 Linux及其他类Linux系统支持指定用户后继承该用户设定的环境变量;Windows无此功能。
  • 校验机器密码 企业版用户可以选择是否校验机器密码,如果选择不校验,则Window Agent不支持按指定用户执行任务的功能。
  • 有害操作告警 管控系统能够对高危操作进行预警,高危操作的定义由系统自动设定。
  • 有害操作防护 管控系统能够对高危操作进行预警并干预,高危操作的定义及干预措施提供选项供用户配置。

3

数据采集与传输

数据采集服务:

  • 自定义数据采集 Agent开放数据发送接口、cmdline及SDK,供用户开发自定义的数据采集程序或脚本。
  • 采集器插件化支持 Agent支持采集器插件化,自动加载采集插件,并监控插件的存活状况。如果采集插件异常终止,则重新拉起采集插件;如果多次拉起失败则告警。
  • 实时数据快照 管控平台支持缓存安装有Agent的机器1min内的快照数据,并提供接口供用户访问。
  • 动态负载均衡 由于Agent数据采集的量大,且具有随业务特性波动的特点,这些数据在流转时需要高性能的服务端做收敛转发,为了提高服务端机器的利用率,减少由于数据量变化时带来的负载不均衡问题,管控系统支持按分钟级别动态调整数据转发的通道,以达到集群内服务端负载均衡的目的。

4

集群管理

集群管理

  • 自动服务发现: 管控平台同一个集群内的模块均支持自动发现,用户扩缩容任何节点,系统均能实时感知,并调整通讯策略,保证服务的高可用。
  • 集群负载均衡: 管控平台同一个集群内,支持按照Agent链接数进行负载均衡。
  • Agent状态查询: 管控平台提供接口,查询Agent状态。接口按照实时性分为两类:一类为实时状态接口,只能查询当前Agent是否正常;二类接口提供24s内的状态查询,查询的内容包括Agent上次心跳时间、Agent版本、Agent使用的cpu、Agent使用的mem。
  • 多区域负载均衡: 管控平台支持对同一集群进行不同区域的划分,不同区域按照各区域内的负载均衡规则处理;未划分区域的Agent按照集群负载均衡策略处理。

5

支持的OS

6

社区版、企业版、公有云版的差异

07

蓝鲸管控平台的使用场景

在蓝鲸的非常多的SaaS工具中都需要管控平台所提供的底层能力,这里我们简单举例一些场景和例子:

作业平台:

作业平台是面向脚本执行、文件传输和SQL执行的统一作业中心。作业平台中的作业任务主要是调用管控平台的命令执行和文件传输两种服务,从而实现作业任务的执行。

配置平台:

在蓝鲸智云体系里,配置平台扮演着基石的角色,为应用提供了各种运维场景的配置数据服务。在配置平台中,主要使用的是管控平台的数据采集能力,包括CI属性、服务器性能状态快照等的采集。

蓝鲸监控:

蓝鲸监控也对服务器进行统一监控的过程中,也需要依赖管控平台的采集能力,来实时采集服务器的各项性能指标。

场景和例子还有非常非常多,例如标准运维的流程编排、大数据平台的数据接入和采集、日志检索和查询等等,包括我们在蓝鲸平台上自定义开发的SaaS也需要去调用管控平台的能力。

08

蓝鲸管控平台的整体特性

接下来我们通过几个关键语句来总结下蓝鲸管控平台的整体特性和优势:

  • 管控平台与具体功能解耦 管控平台提供管道服务而非具体功能,从而实现管控平台无需变更的无限复用。
  • 所有OS统一管控 对蓝鲸SaaS层屏蔽底层复杂而繁多的OS;对企业IaaS层,一个Agent,管控所有。
  • 提供指令、文件和数据的服务管道 三个单独的管道涵盖几乎所有的服务器的管理操作,为上层SaaS各种纷繁复杂的功能提供底层的可行性和复用能力。
  • 支持几乎全部主流OS系统 实现企业几乎所有类型OS的统一纳管和运维管理。
  • 支持proxy模式 支持全球节点、跨云、海量的服务器资源的纳管。
  • 智能文件传输 支持大文件的大量服务器的快速智能传输。
  • 主流指令或者脚本执行 Linux支持bash命令、Windows支持cmd命令、AIX支持ksh命令;shell、bat、perl、python、powershell、ksh等各种脚本。
  • 各种类型数据的集中采集能力 自定义数据、采集器插件化采集、实时数据快照;支持采集负载的动态负载均衡。

最新的蓝鲸社区版4.1.14已经正式发布,还在等待什么呢?赶紧下载,一起体验蓝鲸管控平台的强大能力。

http://bk.tencent.com/download/

本文部分产品介绍来自官方白皮书:

http://docs.bk.tencent.com/product_white_paper/gse/

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
负载均衡
负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档