GithubHelp home page GithubHelp logo

distributed-fault-injection's Introduction

分布式故障注入

项目目标:在已上线的项目中,通过注入故障,测试系统在故障情况下的可靠性和稳定性,以验证升级过程是否合理,并优化运维流程。

项目要求:

实现故障注入功能,能够在项目的每一个子节点上注入故障,例如限制带宽、模拟节点故障等,以验证系统在故障情况下的表现。 实现网格化计算,对每一个节点的进出流量进行计算和管理,确保数据流的可控和可追踪。 实现数据层面的网关,对数据流进行路由和管理,例如将不同类型的数据路由到不同的节点或负载均衡器上,将故障数据路由到故障节点上等。 实现管理层面的控制台,能够下达路由关系和故障注入指令,对系统进行监控和管理。 实现自动化测试和监控,能够自动化进行故障注入和监控系统的表现,以及自动化报告测试结果。 实现可扩展性和可维护性,能够方便地添加新的节点和故障类型,并且能够方便地进行系统维护和升级。

项目技术栈:

分布式计算和通信技术, RPC、消息队列等。 数据库技术, MySQL、Redis、influxDB等。 监控和报警技术, ELK等。 自动化测试和部署技术 Docker等。 容器编排技术 Docker

以上是项目需求总结,以下是项目架构设计信息: 控制台模块:使用前端技术栈和后端技术栈实现,提供用户界面,通过控制台用户可以下达故障注入指令、查看系统状态和监控结果等。与其他模块进行交互采用RESTful API或GraphQL进行通信。 注入模块:使用分布式计算和通信技术(如RPC、消息队列)实现,负责在指定节点上注入故障。该模块接收来自控制台模块的指令,在项目的每个子节点上注入故障,例如限制带宽、模拟节点故障等。与控制台模块进行通信以接收指令。 网格化计算模块:用于对每个节点的进出流量进行计算和管理的模块。它可以跟踪和记录数据流的路径和指标,并提供数据流控制和策略管理功能。 数据网关模块:实现数据层面的路由和管理功能。该模块负责将不同类型的数据路由到不同的节点或负载均衡器上,并根据配置将故障数据路由到故障节点上。它可以用于实现数据流的分发、聚合和筛选等功能。 监控模块:使用监控和报警技术(如Prometheus、Grafana)实现对系统的监控和报警功能。它收集各个节点的监控数据,并进行分析和可视化展示,以便及时发现系统故障和异常。

说明

  • 每个子项目都是一个独立的模块,可以单独构建和部署。
  • 故障注入管理系统负责下达故障注入指令和管理。
  • C数据层面操作模块负责在数据层面进行故障注入。
  • 网关Agent负责流量的拦截和路由。
  • 日志系统负责记录故障注入过程中产生的日志。
  • InfluxDB用于存储日志数据。
  • 已存在的被注入管理系统是待测试的目标系统。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.