谈谈蓝鲸平台的高可扩展性和高可维护性

​​关注嘉为科技,获取运维新知

 

腾讯蓝鲸智云,作为业界领先的一套基于PaaS的技术解决方案,它提供了完善的前后台开发框架、调度引擎、公共组件等模块,帮助业务的产品和技术人员快速构建低成本、免运维的支撑工具和运营系统。

 

嘉为科技作为腾讯蓝鲸核心合作伙伴,在过去的两年间,已基于蓝鲸平台,为几十个企业实现了自动化运维、智能运营的落地,也开始为一些客户实施蓝鲸DevOps解决方案。

 

平台上线后,企业运维人员利用蓝鲸平台的可扩展性和可维护性,可以快速完成平台架构扩展以满足运维对象增长需求,并仅通过极少量的运维工作,实现平台的持续稳定运行。

 

在这里,对蓝鲸平台在高可扩展性和高可维护性的特点做些分享。

 

1、蓝鲸高可扩展性

蓝鲸平台作为核心的一体化研发运营平台,其必然支持完全高可用架构部署。

在已落地的案例中,我们根据不同服务器规模,已有部署少则5台,多达16台管理节点的架构。所以蓝鲸的管理节点是按需调整,非常灵活的。实际上,在腾讯内部,为支撑20万台以上的服务器运维对象,管理节点甚至超过了1000个。

对于标准的中型企业来说(按500-800台服务器举例),可使用如下5个管理节点的规划,所有的组件/角色都具备高可用,确保任何一台蓝鲸节点故障都不会导致服务中断。

表1:蓝鲸企业版资源配置表(5台架构)

 

1.1   在线的组件和模块横向扩展能力

首先,蓝鲸平台的各个组件、模块均支持水平扩展。

比如,随着管理的服务器对象增加到3000台,我们可以考虑将蓝鲸平台扩展为如下12台架构。

扩展方法:在中控机上可以对各个组件的节点数进行定义和在线远程部署即可。

 

表2:蓝鲸企业版资源配置表(12台架构)

 

1.2   横向分组的网络区域扩展能力

其次,蓝鲸平台支持横向分组的网络扩展,实现混合云架构下的统一纳管。

在企业实际环境中,由于各种原因,服务器会部署在不同区域环境,如自建机房、租用机房、公有云、私有云等,环境之间网络无法做到全路由,在这种情况下,蓝鲸平台支持通过横向分组来覆盖不同云区域。

通过在每个区域提供一台带有外网IP的linux主机作为代理(proxy)主机,同区域内其他主机只需要和proxy通信就可以实现跨网络区域管理。

全球化跨云管理

 

扩展方法:在节点管理中,一键创建云区域。

 

云区域纳管过程1

 

任意选择1-2台生产服务器,确保管控平台之间的通讯端口满足管理要求,并设置为Proxy模式,即可将区域的服务器纳管进来。

 

云区域纳管过程2

 

1.3  级联的网络区域扩展能力

最后,蓝鲸支持通过级联扩展实现同一网络环境中的复杂网络纳管。

在一个数据中心内部,比如在同一个机房,企业由于网络安全的原因划分了多个逻辑网络,各网段间限制了网络通讯,蓝鲸则可以级联扩展的方式实现管理。

级联管理展示图

 

级联技术架构图

 

2、蓝鲸高可维护性

蓝鲸平台采用在内部使用多年的成熟且稳定的架构和组件,还具备自我服务和性能监控功能,完善的故障处理方案,一键式升级脚本,自身维护工作量小。

 

2.1  APP运行框架免运维托管

蓝鲸平台为运维场景APP提供从创建到部署,再到后续的维护管理的一站式免运维托管服务。运维人员开发的SaaS在平台采用分布式部署方式,一键自动部署,当其中的某一台承载服务器宕机之后,用户请求会被转发到备用服务器之上,保证SaaS工具的高可用。

 

同时,SaaS部署使用docker进行隔离,提高蓝鲸SaaS安全性。开发者可以主动通过集成平台的日志查看功能来查看日志记录,同时平台提供了日志监控告警服务,开发者可以自行配置相应的告警参数、告警接收人等信息,实时监控日志数据。

 

蓝鲸PaaS平台SaaS运行框架的功能架构如下图所示:

 

蓝鲸PaaS平台SaaS运行框架

 

基于开发框架开发的SaaS工具,在平台上可以方便的进行工具的监控和维护。

 

自带错误日志查询:

 

自带监控告警:

 

 

自带运行数据统计:

 

 

2.2  自带监控模板实现深度监控

为方便外部系统能够快速的实现对蓝鲸的监控,蓝鲸本身提供了基于Zabbix的监控模板,快速导入即可实现对蓝鲸各管理服务器和组件的监控及告警。

 

可支持接入的监控项有3类:

  • 基础性能:含CPU、内存、硬盘、网络流量等

  • 进程:主要为托管在supervisord下的服务进程

  • 端口:主要为公共服务组件的服务端口

 

涉及的监控项、触发器和部分图表(Graph、Screen),在模板中都有提供。

 

2.3  完善的服务器/组件故障处理方案

蓝鲸平台已有很详细的运维及故障处理方案,如下:

 

查看应用服务状态

登录中控服务器后在中控服务器操作:

cd /data/install

./bkeec status all      #查看所有服务状态

./bkeec status cmdb    #查看配置平台服务状态

./bkeec status job      #查看作业平台服务状态

也可通过健康检查端口查看各应用状态:

http://paas.bkee.canwayit.com/o/bk_monitor/healthz/        #查看cmdb应用状态

http://job.bkee.canwayit.com/o/bk_monitor/healthz/        #查看job应用状态

http://paas.bkee.canwayit.com/o/bk_monitor/healthz/        #查看paas应用状态

http://paas.bkee.canwayit.com/o/bk_fta_solutions/healthz/  #查看fta应用状态

http://paas.bkee.canwayit.com/o/bk_monitor/healthz/   #查看monitor应用状态

 

查看日志

日志文件统一在 /data/bkce/logs/下,按模块名,组件名分目录存放。

SaaS较为特殊,在/data/bkce/paas_agent/apps/logs下,根据AppCode名分目录存放。

 

如出现故障,可使用如下的故障处理方案:

 

应用进程查看命令

如下命令查看job组件的进程信息

ps  -ef |grep job

 

应用进程结束命令

Kill -9 应用进程号

 

查看应用网络监听状态

netstat -an

 

重启应用服务

如果需要重启特定的应用服务,在中控服务器执行如下命令:

cd  /data/install/

./bkeec restart 服务名

如果所有服务都需要重启,执行如下命令:

cd  /data/install

./bkeec restart all

 

迁移服务(更换机器 )

更换 CMDB 机器:

#停止服务:

./bkeec stop    consul

./bkeec stop    cmdb

#修改中控机install.config 文件,将新服务器添加到配置文件中:

vi /data/install/install.config

#安装服务:

./bkeec install consul  1

./bkeec install cmdb    1

#修改相关服务的配置文件:

./bkeec render  job 1

./bkeec render  paas    1

./bkeec render  nginx   1

./bkeec render  bkdata  1

#重启相关依赖服务:

./bkeec stop    job ;       ./bkeec start   job

./bkeec stop    cmdb;   ./bkeec start       cmdb

./bkeec stop    paas    ;   ./bkeec start   paas

./bkeec stop    bkdata; ./bkeec start       bkdata

./bkeec stop    nginx   ;   ./bkeec start   nginx

 

MySQL 主从切换(故障切换)

详细故障处理及应对,可参考官方整理的参考方案。

https://docs.bk.tencent.com/bkce_install_guide/maintain.html

 

2.4  支持在线升级

基于蓝鲸平台的解决方案,支持分布式群集部署,能够垂直和水平扩展,并能够部署在多种操作系统平台。集成了多种主流开源组件,包括MySQL、Dockor、Redis、Zookeeper、Consul、Kafka、Beanstalk等。

 

蓝鲸每个功能原子平台以及应用的开源组件,皆可垂直拆分单独部署。蓝鲸套件包含的模块如下:

  • open_paas:蓝鲸PaaS的核心模块

  • paas_agent:核心管理模块,用于承载SaaS的运行环境,分正式(appo)和测试(appt)

  • gse:蓝鲸管控平台

  • cmdb:蓝鲸配置平台

  • job:蓝鲸作业平台

  • bkdata:蓝鲸监控平台

 

蓝鲸平台依赖的开源服务包括:

  • MySQL

  • Redis

  • Kafka

  • Zook

  • Beanstalk

  • Activemq

  • Rabbitmq

 

因而可以进行不影响业务运行的情况下,在组件高可用架构下在线升级。

 

3、总结

基于上述分享的蓝鲸高可扩展性和高可维护性特点,我们可以发现,虽然蓝鲸平台用到很多的开源组件,技术栈也比较多,但在经过产品的封装及优化后,运维平台的人员并不需要太多的技术要求,即可以进行方便的扩展和运维,是一款灵活、稳定好用的PaaS平台。

你可能感兴趣的:(自动化运维)