在数字化浪潮下,数据库作为数据存储与管理的核心,其运维的高效性与智能化至关重要。作业帮在数据库智能运维方面进行了诸多探索与实践,成果显著。
作业帮的数据库服务类型丰富多样,涵盖了 MySQL、Redis、TiDB、ES、MongoDB 等。采用多云架构,以统一的 “Proxy (容器化) + 数据库存储服务” 架构为基础,并且自主研发了 proxy(recuffer),这为数据库的高效运维奠定了基础。同时,借助智能运维平台(journey 平台),实现了对数据库的全面智能管理。
journey 平台功能完备,涵盖多个层面。用户层针对 DBA、运维、研发等不同角色,精细分配交互权限,从菜单、页面到按钮、接口,都进行了严格的权限管控,保障了操作的安全性与规范性。基础架构层提供配置管理、任务调度、日志管理、监控告警以及 CMDB 资源管理等功能。通过配置管理,可灵活调整数据库参数;任务调度结合 Agent 与工单系统,确保运维任务高效执行;监控告警实时监测数据库状态,一旦出现异常及时通知运维人员;CMDB 资源管理则对数据库相关资源进行统一管理与调配。数据库服务层支持集群信息查看、扩缩容、主从切换、配置管理、连接管理等操作,还具备监控大盘、备份配置与自助查询功能,方便运维人员全面掌握数据库运行状况并进行相应管理。中间件层针对不同数据库类型的 proxy 进行配置变更、K8S 集群管理、流量控制与服务管理,有效提升了数据库的性能与稳定性。辅助工具层提供备份与恢复、数据迁移、数据校验、巡检与报告、慢日志采集查看、大 key 采集查看以及告警自动处理等功能,全方位保障数据库的正常运行。
在智能运维实践方面,作业帮成绩斐然。任务系统具备高度的可定制化与扩展性,支持 ansible playbook 执行复杂剧本任务、平台任务通过接口等方式执行,以及 agent 处理长耗时高频率特定任务。任务流程灵活,包含任务、回调、任务链与任务组,可满足多样化的运维需求。监控系统采用 exporter + prometheus + altermanager + grafana 架构,通过定制 exporter 采集指标、target 控制采集对象、ruler 控制告警内容、dashboard 实现可视化,精准掌握数据库运行状态。资源管理实现了大物理机与大规模集群混部,借助配置中心设置决策参数和综合分配要点算法,达成资源自动分配、实例迁移、机型调整以及独享与共享的合理调配,显著提升了资源利用效率。备份系统构建了完善的体系,本地备份借助 Agent 完成,远程备份采用生产者消费者模式并上传至对象存储,同时具备过期备份清理、备份校验与巡检功能,保障数据安全。故障处理机制完善,涵盖机器与实例替换、备份恢复与数据迁移,通过告警自动处理、Redis 内存调整、杀连接等多种手段,预防和处理故障。在多云场景下,采用跨云主从架构、单元化架构等,实现 K8S 集群管理、快速构建集群、镜像替换、节点管理、切云能力、故障演练等功能,同时支持多区域部署和平台多云部署,确保数据库服务的高可用性。服务开放与分级管控依据风险程度,对开发人员和 DBA 开放不同权限的服务,规范操作流程,实现操作留痕,提升运维效率与用户满意度。
展望未来,作业帮数据库智能运维将朝着自动化与人工深度结合的方向发展。一方面,提供更丰富的可视化数据,为运维人员决策提供有力支持;另一方面,持续拓展自动化操作功能,实现自动故障处理与资源迁移。同时,通过提炼故障处理标准操作流程、建立精确故障规则、总结故障经验,提升故障处理的准确性与高效性。在资源调度方面,实现智能化管理,依据资源使用情况自动迁移实例,确保 CPU、内存、磁盘、IO 均衡分布,进一步提高资源利用效率。此外,借助监控数据、基础数据和 DBA 经验提炼模型,生成智能巡检报告和健康报告,为数据库优化提供合理建议。
作业帮数据库智能运维实践为行业提供了宝贵经验,其持续创新与优化的思路值得借鉴,有望推动数据库智能运维领域不断向前发展。