nithishakorukanti/trading-systems-automation-poc

GitHub: nithishakorukanti/trading-systems-automation-poc

面向金融交易平台的生产运维自动化工具包,整合健康监控、网络诊断、数据库校验和事件响应工作流。

Stars: 0 | Forks: 0

# 交易系统自动化工具包 用于生产环境支持自动化的工具包,演示了确保交易平台可靠性的运维模式:健康监控、自动诊断、网络验证、SQL 完整性检查以及事件响应工作流。 ## 功能特性 - **系统健康监控**:对交易服务可用性、资源利用率进行自动化检查,并生成告警 - **网络诊断**:TCP/IP 连通性验证、DNS 解析检查、多播组验证 - **数据库完整性**:用于数据核对、交易验证和性能监控的 SQL 查询自动化 - **自动化事件响应**:基于 Runbook 的恢复工作流,包含日志记录和利益相关者通知 - **生产运维模式**:重试逻辑、超时处理、结构化日志、指标上报 ## 架构 ``` ┌─────────────────────────────────────────────┐ │ Trading Systems Automation Toolkit │ ├─────────────────────────────────────────────┤ │ │ │ Health Monitor Network Validator │ │ ├─ Service checks ├─ TCP connectivity│ │ ├─ Resource metrics ├─ DNS resolution │ │ └─ Alert generation └─ Multicast probe │ │ │ │ Database Validator Incident Responder │ │ ├─ SQL integrity ├─ Auto-recovery │ │ ├─ Data reconciliation ├─ Runbook exec │ │ └─ Performance checks └─ Notification │ │ │ └─────────────────────────────────────────────┘ ↓ ↓ CloudWatch/Grafana PagerDuty/Slack ``` ## 技术栈 - **Python 3.11+** - 核心自动化逻辑 - **Bash** - 系统级检查和编排 - **SQL** - PostgreSQL/MySQL 查询验证 - **网络工具** - netcat, dig, ping, tcpdump - **监控** - CloudWatch SDK, 自定义指标 - **告警** - Email, Slack, PagerDuty 集成 ## 组件 ### health_monitor.py 自动化交易服务健康检查: - HTTP 端点可用性验证 - 进程状态验证(ps, systemctl 检查) - 资源利用率监控(CPU, 内存, 磁盘) - 日志文件异常检测 - 向 CloudWatch 上报自定义指标 ### network_validator.py 网络连通性诊断: - 到交易所的 TCP 套接字连接测试 - 交易场所的 DNS 解析验证 - 多播组成员资格验证 - 网络延迟测量与趋势分析 - 丢包检测 ### database_validator.py SQL 完整性与性能自动化: - 事务计数核对查询 - 跨副本的数据一致性检查 - 查询性能分析与慢查询检测 - 连接池健康验证 - 数据库复制延迟监控 ### incident_responder.py 自动化事件响应工作流: - 带有执行前后验证的服务重启 - 性能降级时的流量重路由 - 数据库连接故障转移自动化 - 利益相关者通知(Slack, email, PagerDuty) - 事后指标收集 ## 关键运维模式 | 模式 | 实现 | 用例 | |---------|----------------|----------| | **带退避的重试 (Retry with Backoff)** | 带有抖动的指数退避 | 网络不稳定,瞬态故障 | | **熔断器 (Circuit Breaker)** | 连续 N 次失败后快速失败 | 级联故障预防 | | **超时强制 (Timeout Enforcement)** | 所有 I/O 操作可配置超时 | 防止资源耗尽 | | **结构化日志 (Structured Logging)** | 带有关联 ID 的 JSON 格式日志 | 分布式追踪,事件分析 | | **指标上报 (Metric Emission)** | 用于 KPI 的 CloudWatch 自定义指标 | 运维仪表盘,告警 | | **Runbook 自动化** | YAML 定义的恢复工作流 | 一致的事件响应 | ## 设置与使用 ### 前置条件 - Python 3.11+ - Linux/Unix 环境 - 能够访问交易基础设施的网络 - 数据库凭证(PostgreSQL/MySQL) - AWS 凭证(用于 CloudWatch 指标) ### 安装 ``` # 克隆 repository git clone https://github.com/nithishakorukanti/trading-systems-automation-poc.git cd trading-systems-automation-poc # 安装 dependencies pip install -r requirements.txt # 配置 environment cp .env.example .env # 使用你的 infrastructure 详细信息编辑 .env ``` ### 运行健康检查 ``` # 单次 health check 运行 python health_monitor.py --config config/production.yaml # 持续 monitoring (每 60 秒运行一次) python health_monitor.py --config config/production.yaml --interval 60 # 检查特定 service python health_monitor.py --service trading-gateway --threshold critical ``` ### 网络诊断 ``` # 验证与所有 exchanges 的 connectivity python network_validator.py --exchanges config/exchanges.yaml # 测试特定 exchange connectivity python network_validator.py --target nyse-gateway.example.com:8080 # Multicast group 验证 python network_validator.py --multicast 239.255.0.1:9000 ``` ### 数据库验证 ``` # 运行 integrity checks python database_validator.py --db production --checks all # 特定 reconciliation 查询 python database_validator.py --db production --query reconcile_trades --date 2026-03-14 # 性能 profiling python database_validator.py --db production --profile --slow-threshold 500ms ``` ### 事件响应 ``` # 执行 service restart 的 runbook python incident_responder.py --runbook restart_trading_gateway # 自动化 failover python incident_responder.py --failover --source db-primary --target db-replica # 通知 stakeholders python incident_responder.py --alert --severity critical --message "Trading gateway down" ``` ## 监控与告警 ### CloudWatch 仪表盘 - **服务健康**:正常运行时间百分比、响应时间、错误率 - **网络**:连接成功率、延迟百分位数、丢包率 - **数据库**:查询性能、连接池使用率、复制延迟 - **告警**:临界阈值突破、异常检测 ### 告警升级 1. **警告**(正常运行时间 < 95%):Slack 通知发送至工程频道 2. **严重**(正常运行时间 < 90%):PagerDuty 呼叫值班工程师 3. **紧急**(服务宕机):呼叫事件指挥官 + 升级至管理层 ## 测试 ``` # Unit tests pytest tests/unit/ # Integration tests (需要 test infrastructure) pytest tests/integration/ --env staging # 针对 health monitor 性能的 Load tests pytest tests/load/ --workers 10 --duration 300 ``` ## Runbooks 预定义的恢复工作流: - [服务重启](docs/runbooks/service_restart.md) - 带验证的平滑服务重启 - [数据库故障转移](docs/runbooks/db_failover.md) - 主库向副本的提升 - [网络分区恢复](docs/runbooks/network_partition.md) - 网络问题期间的流量重路由 - [磁盘空间清理](docs/runbooks/disk_cleanup.md) - 自动化日志轮转与清理 ## 生产部署 ``` # 构建 container docker build -t trading-automation:latest . # 部署到 Kubernetes kubectl apply -f k8s/deployment.yaml # 验证 deployment kubectl get pods -l app=trading-automation kubectl logs -f deployment/trading-automation ``` ## 许可证 MIT License - 详情请参阅 LICENSE 文件
标签:DNS解析, HTTP工具, PE 加载器, Runbook自动化, SQL完整性检查, SRE, TCP/IP验证, 交易平台支持, 偏差过滤, 健康监控, 后渗透, 告警系统, 多线程, 子域名突变, 应用安全, 开源软件, 开源项目, 性能监控, 情报分析, 插件系统, 故障自愈, 数据对账, 数据库自动化, 测试用例, 生产环境工具包, 系统可靠性, 网络诊断, 自动化运维, 请求拦截, 运维工具, 金融服务技术