关注嘉为科技,获取运维新知
腾讯蓝鲸智云,作为业界领先的一套基于PaaS的技术解决方案,它提供了完善的前后台开发框架、调度引擎、公共组件等模块,帮助业务的产品和技术人员快速构建低成本、免运维的支撑工具和运营系统。
嘉为科技作为腾讯蓝鲸核心合作伙伴,在过去的两年间,已基于蓝鲸平台,为几十个企业实现了自动化运维、智能运营的落地,也开始为一些客户实施蓝鲸DevOps解决方案。
平台上线后,企业运维人员利用蓝鲸平台的可扩展性和可维护性,可以快速完成平台架构扩展以满足运维对象增长需求,并仅通过极少量的运维工作,实现平台的持续稳定运行。
在这里,对蓝鲸平台在高可扩展性和高可维护性的特点做些分享。
蓝鲸平台作为核心的一体化研发运营平台,其必然支持完全高可用架构部署。
在已落地的案例中,我们根据不同服务器规模,已有部署少则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.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
因而可以进行不影响业务运行的情况下,在组件高可用架构下在线升级。
基于上述分享的蓝鲸高可扩展性和高可维护性特点,我们可以发现,虽然蓝鲸平台用到很多的开源组件,技术栈也比较多,但在经过产品的封装及优化后,运维平台的人员并不需要太多的技术要求,即可以进行方便的扩展和运维,是一款灵活、稳定好用的PaaS平台。