Polar:提高DevSecOps的可观测性

对于生产软件的组织,现代DevSecOps流程创建了大量用于改进工具创建、增加基础设施健壮性和节省运营成本的数据。目前,由DevSecOps实现产生的大量数据是使用传统的批处理数据处理收集的,这种技术限制了组织收集和理解这些流程提供的全图的能力。如果没有对全部数据的可见性,组织快速有效地简化决策制定的能力就无法充分发挥其潜力。

在这篇文章中,我们将介绍Polar,这是一个DevSecOps框架,它是为了解决传统批处理数据处理的局限性而开发的。Polar提供了对组织DevSecOps基础设施当前状态的可见性,允许所有数据参与明智的决策。通过为组织提供从查询中立即获得基础设施洞察力的能力,Polar框架将迅速成为软件行业的必需品。

详细的系统概述

Polar的架构旨在有效地管理和利用任务环境中的复杂数据。它建立在几个核心组件上,每个组件都是实时处理、分析和可视化数据的组成部分。以下是对这些组件的简化而全面的描述,重点介绍了它们的技术工作和直接任务含义。

体系结构视图

图形数据库

该体系结构的核心是图形数据库,它负责存储和管理作为互联节点和关系的数据。这使我们能够以一种自然的方式对数据进行建模,与传统的关系数据库相比,这种方式更符合组织的直观数据查询和分析。使用典型的图数据库实现还意味着模式是动态的,可以随时更改而不需要数据迁移。当前的实现使用Neo4J,因为它具有健壮的事务支持和通过其查询语言Cypher实现的强大查询功能。支持ArangoDB的计划正在制定中。

参与者及其角色

此外,Polar架构围绕几个关键参与者构建,每个参与者都设计用于实现系统内的特定功能。这些参与者无缝交互以收集、处理和管理数据,并将其转化为可操作的见解。

观察者

观察者是专门负责监视特定资源或环境的组件。它们部署在业务基础设施的各个部分,以持续收集数据。根据它们的配置,观察员可以跟踪从IT系统中的实时性能指标到数字平台上的用户交互的任何事情。每个观察者都被编程来检测相关的变化、事件或条件。这些可能包括系统状态的变化、超过性能阈值或特定的用户操作。一旦检测到,这些观察者就会引发事件来封装观察到的数据。观察者通过提供有关系统性能和功能的实时数据来帮助优化操作流程。这些数据对于识别瓶颈、预测系统故障和简化工作流程至关重要。观察者可以跟踪用户行为,提供对偏好和使用模式的洞察。这些信息对于改进用户界面、定制用户体验和提高应用程序满意度至关重要。

信息处理器

信息处理器(以前称为资源观察者消费者)负责接收来自观察者的事件,并将捕获的数据转换为适合集成到知识图中的格式。它们充当观察者收集的原始数据和存储在图数据库中的结构化数据之间的桥梁。接收到数据后,这些处理器使用预定义的算法和模型来分析和构建数据。它们确定数据的相关性,将其映射到图中适当的节点和边,并相应地更新数据库。

策略代理

策略代理在体系结构中执行预定义的规则和策略,以确保数据完整性并符合内部标准和外部法规。他们监控系统,以确保所有组件在设定的参数内运行,并确保所有数据管理实践符合合规要求。策略代理使用一组标准在数据处理工作流中自动应用规则。这包括验证策略输入,并确保系统的正确部分接收并应用最新的配置。通过自动化遵从性检查,策略代理可以确保及时收集正确的数据。这种自动化在高度管制的环境中是至关重要的,在这种环境中,一旦决定了策略,就必须执行它。策略代理对所有操作和数据更改进行持续监控和自动记录,确保系统始终为审核做好准备,并提供全面的记录以证明合规性。

发布/订阅消息系统

发布-订阅(pub/sub)消息传递系统充当体系结构内实时数据通信的骨干。该系统允许架构的不同组件(如资源观察者和信息处理器)进行异步通信。观察者与处理器的解耦确保了任何组件都可以发布数据,而不需要知道或关心数据将如何被使用。这种设置不仅增强了可伸缩性,而且还提高了数据流的容错性、安全性和管理。

当前的实现使用RabbitMQ。我们曾考虑使用Redis的发布/订阅,因为我们的系统只需要基本的发布/订阅功能,但由于Redis用于Rust的库不成熟,支持互TLS,我们遇到了困难。这是积极发展的本质,情况经常变化。这显然不是Redis的问题,而是Rust中支持Redis的库和依赖关系的质量问题。交互在我们决定使用RabbitMQ的过程中发挥了更大的作用。

配置管理

使用版本控制存储库处理配置管理。我们倾向于使用私有的GitLab服务器,它存储管理系统部署和操作所需的所有配置策略和脚本;然而,分布式版本控制实现的选择对体系结构来说并不重要。这种方法利用Git的版本控制功能来维护变更的历史记录,确保对系统配置的任何修改都被跟踪和可逆。这种设置支持GitOps工作流,允许持续集成和部署(CI/CD)实践,使系统配置与定义它的代码库保持同步。具体来说,系统的用户(可能是管理员)可以为Resource observer创建和更新计划。其思想是,对YAML或版本控制的更改可以触发对给定资源观察者的观察计划的更新。更新可能包括观察频率的变化和/或收集内容的变化。通过版本控制配置控制策略的能力非常适合现代DevSecOps原则。

这些组件的集成创建了一个动态环境,在这个环境中,数据不仅被存储,而且被积极地处理并用于实时决策。图形数据库为快速高效地查询复杂关系提供了一个灵活而强大的平台,这对于需要基于大量相互关联的数据快速做出决策的决策者来说至关重要。

安全性和合规性

安全性和合规性是Polar架构的主要关注点,是在高度监管的环境中运行时建立和维护信任的基石。我们的方法结合了现代安全协议、严格的关注点分离,以及战略性地使用Rust作为所有自定义组件的实现语言。选择使用Rust有助于满足我们的几个保证目标。

在你的环境中使用Polar

部署指南

Polar架构的部署、可扩展性和集成设计流畅高效,确保任务能够充分利用系统的潜力,同时将对现有流程的干扰降到最低。本节概述了部署的实用指导方针,讨论了可伸缩性选项,并解释了该体系结构如何与各种IT系统集成。

该体系结构以模块化为核心设计,允许根据特定业务需求独立部署观察者、信息处理器和策略代理等组件。这种模块化方法不仅简化了部署过程,还有助于在不影响整个系统的情况下隔离和解决问题。

通过存储在版本控制中的脚本和配置,并使用常见的DevSecOps编排工具(如Docker和Kubernetes),部署过程可以在任何给定的环境中自动化。这种自动化支持跨不同环境的一致部署,并减少了安装过程中人为错误的可能性。自动化和模块化部署允许组织快速设置和测试系统的不同部分,而无需进行重大检查,减少了实现价值的时间。独立部署组件的能力提供了灵活性,可以从小规模开始,并根据需要调整系统。事实上,从小处开始是使用框架的最佳方式。开始观察时,选择一个能立即提供有用见解的领域。将这些数据与可用的其他数据结合起来。

与现有基础设施集成

该体系结构使用已部署环境中网络服务的现有服务api来查询有关该系统的信息。这种方法被认为对其他服务的侵入性尽可能小。在提供类似功能的其他框架中采用的另一种方法是将活动代理部署在它们正在检查的服务附近。在许多情况下,这些代理可以对它们所观察的服务透明地进行操作。权衡的是,它们需要更高的特权级别和对信息的访问权限,而且它们的操作不容易被审计。api通常允许在系统之间安全有效地交换数据,使体系结构能够在不损害安全性的情况下扩展和增强当前的IT解决方案。

提供了一些观察者,可以用最少的配置来使用,比如GitLab观察者。然而,为了最大限度地利用该框架,预计需要创建额外的观察员。我们的希望是,最终我们将拥有一个适合大多数用户需求的观察者库。

模式的发展

知识图谱架构的成功在很大程度上取决于它如何很好地表示组织的流程和特定的数据环境。开发定制的、特定于组织的模式是这个过程中的关键步骤。这些模式定义了如何在知识图中构建、关联和解释数据,有效地对组织如何查看和使用其信息资产的独特方面进行了建模。

自定义模式允许以与组织的操作、分析和战略需求紧密结合的方式进行数据建模。这种定制的方法确保知识图反映了业务的真实关系和过程,增强了它生成的见解的相关性和实用性。设计良好的模式通过提供一致的框架来定义如何关联和存储来自不同数据源的数据,从而促进不同数据源(无论是内部还是外部)的集成。这种一致性对于维护知识图中数据的完整性和准确性至关重要。

数据解释

除了由信息架构师开发的模式之外,还有一些预先存在的模型用于考虑数据。例如,SEI的DevSecOps平台独立模型也可以用来开始创建一个模式来组织关于DevSecOps组织的信息。我们已经将它与Polar一起用于客户互动。

数字时代的数据转换

Polar架构的开发和部署代表了组织处理和从DevSecOps流程实现产生的数据中获取价值的方式的重大进步。在这篇文章中,我们探讨了架构的复杂细节,不仅展示了它的技术能力,还展示了它对将DevSecOps纳入其组织的运营的深远影响的潜力。Polar架构不仅是一个技术解决方案,而且是一个战略工具,可以成为希望在数字时代蓬勃发展的组织的行业标准。使用这种体系结构,高度规范的组织可以将其数据转换为驱动创新的动态资源,并可以成为竞争优势。

关注微信公众号【赛希咨询】,了解更多精彩内容。

  • 13
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值