SamGwala/SkyGuard

GitHub: SamGwala/SkyGuard

SkyGuard 是一个 AWS 云原生基础设施韧性平台,通过检测、分类和自动化多层恢复策略实现基于决策的事件响应。

Stars: 0 | Forks: 0

# SkyGuard ## 云原生基础设施韧性与事件响应平台 SkyGuard 是一个基于 AWS 的基础设施韧性项目,旨在超越简单的故障检测。 该项目的目标是构建一个平台,最终能够检测故障、对事件进行分类、决定正确的恢复操作、在自动化能力不足时进行升级,并使用 AWS 服务支持基础设施恢复。 SkyGuard 使用 Terraform 和 AWS 作为实际的云工程项目进行构建。 ## 项目存在的原因 我之前的项目专注于一个问题: **基础设施能否检测到故障并自动恢复?** SkyGuard 探索了下一个问题: **基础设施能否根据故障类型及其历史记录做出更好的恢复决策?** SkyGuard 不再以相同的方式处理每个事件,而是被设计成一个基于决策的事件响应平台。 ## 当前进度 ### 已完成 * 项目仓库结构 * Terraform 环境结构 * VPC 模块 * 公有子网 * Internet Gateway * 路由表 * 路由表关联 * Terraform 变量和输出 ### 当前阶段 网络基础。 SkyGuard 的第一个版本目前预置了未来计算、监控和事件响应组件所需的基础网络层。 ## 目前的架构 ``` VPC │ ├── Public Subnet │ ├── Internet Gateway │ ├── Route Table │ └── Route Table Association ``` 网络层被编写为可重用的 Terraform 模块。 ## Terraform 结构 ``` terraform/ │ ├── environments/ │ └── dev/ │ ├── main.tf │ ├── providers.tf │ ├── variables.tf │ └── outputs.tf │ └── modules/ ├── vpc/ │ ├── main.tf │ ├── variables.tf │ └── outputs.tf │ ├── iam/ └── ec2/ ``` ## Terraform 设计经验 该项目遵循以下模式: ``` modules = HOW environments = WHAT ``` VPC 模块定义了如何构建网络。 dev 环境定义了要使用的具体值,例如: * VPC CIDR block * 公有子网 CIDR block * 环境名称 * 项目名称 * 所有者 这使得该模块可以在未来的 dev、test 和 production 等环境中重复使用。 ## 计划的 AWS 技术栈 * Terraform * AWS VPC * EC2 * IAM * Systems Manager * CloudWatch * EventBridge * Lambda * DynamoDB * SNS * Grafana ## 计划的恢复策略 SkyGuard 最终将支持三个恢复层: ### 第 1 层:SSM Runbooks 用于轻量级恢复,例如重启服务或清除临时问题。 ### 第 2 层:基础设施替换 当实例变得不正常且需要被替换时使用。 ### 第 3 层:环境重建 当恢复已经不够且需要根据代码重建基础设施时使用。 ## 接下来的工作 后续步骤: * 构建 IAM 模块 * 创建 EC2 实例模块 * 附加 IAM 实例配置文件 * 部署 SkyGuard-Node-01 * 安装和配置 CloudWatch Agent * 创建监控告警 * 添加基于 EventBridge 和 Lambda 的事件处理 ## 状态 项目状态:积极开发中 当前里程碑:网络基础完成
标签:AWS, DPI, ECS, Terraform, 故障恢复, 自动化运维, 运维