【数媒在线课堂】图数据库驱动的基础设施运维实操
最近,有些尚未使用过图技术、DevOps/Infra 领域的工程师在 NebulaGraph 社区询问是否有「图技术在运维的应用」相关案例参考。于是,我又可以 “借题发挥” 来实践下如何利用图的能力与优势去帮助运维工程师们基于复杂基础设施上构建辅助运维系统。如果你对本文有任何看法,欢迎评论区或者来论坛和我交流下,非常感谢。
通常,我们说的复杂的基础设施运维环境指的是资源(manifest)繁多且分布在不同层面的系统。为了让实践更加真实、贴近实际的运维情况,让运维问题复杂又可控,这里我选择了用一个基础设施平台:OpenStack。在 OpenStack 系统上,我分别利用 Push 和 Pull 两种模式将资源在图模型中对应点、边信息加载到 NebulaGraph 的 Graph ETL 管道的路径中。
在我们基于运维资源构建的图谱,会做如下用例图探索:
- 告警、状态的推理与传导;
- 网络直连与互联关系;
- 镜像、云盘、快照血缘管理;
- 高相关性虚机预警;
- 秘钥泄漏的图上风控分析;
- 镜像、云盘漏洞范围分析;
- 宿主机逃离影响范围分析;
- 脆弱依赖资源检测;
实验环境搭建
背景知识
OpenStack 是一个开源的云计算平台,提供了类似于 AWS 的云服务。它提供了一组可插拔的模块,包括了计算,存储和网络等功能,可以帮助用户构建和管理云环境。OpenStack 采用分布式架构,支持多种操作系统和硬件平台,可以在企业级和服务提供企业级环境中使用。
最初,OpenStack 是由 NASA 和 Rackspace Inc. 发起的 Nova(虚拟化计算项目)和 Swift(兼容 S3 的对象存储)项目组成。随着项目的发展,OpenStack 现在已经有非常多不同的子项目:
本次实践中涉及到 OpenStack 的主要项目有:
- Nova 是 OpenStack 的计算服务,用于管理虚拟机;
- Cinder 是 OpenStack 的块存储服务,用于管理云存储;
- Neutron 是 OpenStack 的网络服务,用于管理云网络;
- Glance 是 OpenStack 的镜像服务,用于管理云镜像;
- Horizon 是 OpenStack 的可视化控制台服务。
除此之外,我还引入了 Vitrage 项目辅助我们收集部分资源数据:
- Vitrage 是 OpenStack 的一个高级分析和可视化工具,用于分析和可视化 OpenStack 环境中的资源和事件。它可以汇集来自 OpenStack 各个服务的数据,并以可视化的方式呈现。Vitrage 能发现和诊断问题,提高 OpenStack 环境的可用性和可维护性。
得益于 OpenStack Decouple 的设计理念,Vitrage 可以很容易、无侵入式(只用修改要收集的服务的两行配置)就可以在 OpenStack 的消息队列中订阅资源信息的 Push 消息。
不过,介于 Vitrage 许久没有大更新,且维护维艰,比如:在 zed 里 Vitrage Dashboard 作为 Horizon 插件已经无法正常工作了。所以,本实践只利用它的资源收集能力。