Kruthikarya/Infrastructure-Cost-Optimizer
GitHub: Kruthikarya/Infrastructure-Cost-Optimizer
基于 Spring Boot 构建的轻量级云成本优化工具,通过分析 CSV 账单报告帮助团队监控预算、追踪支出趋势并获取优化建议。
Stars: 0 | Forks: 0
# 基础设施成本优化器
一个使用 Java 和 Spring Boot 构建的轻量级 FinOps 和 DevOps 工具,可分析云账单报告、跟踪基础设施支出、识别成本趋势,并提供优化建议以帮助团队控制云开销。
## 概述
云服务提供商会生成详细的账单报告,但要了解资金的去向以及确定优化机会可能颇具挑战性。
基础设施成本优化器通过处理账单报告、对支出进行分类、监控预算使用情况并生成可操作的建议来减少不必要的开销,从而简化了云成本分析。
## 功能
### 成本分析
- 上传云账单报告(CSV 格式)
- 按服务分析基础设施支出
- 查看每月云总成本
- 识别消耗成本最多的服务
### 预算监控
- 设置月度支出预算
- 跟踪预算利用率
- 在接近限额时收到预警
- 检测预算超支
### 成本分类
自动将云服务分类为:
- Compute
- Storage
- Database
- Network
- 其他服务
### 趋势分析
- 月度成本对比
- 成本增长跟踪
- 历史支出分析
- 支出预测
### 优化建议
生成基于规则的建议,例如:
- 缩减未充分利用的 compute 资源
- 归档不常访问的 storage
- 优化 database 资源分配
- 降低 network 传输成本
### 仪表盘洞察
- 每月总支出
- 剩余预算
- 成本分布图表
- 按成本排名的顶级服务
- 月度支出趋势
## 技术栈
### 后端
- Java 17
- Spring Boot
- Spring MVC
- Spring Data JPA
### 数据库
- MySQL
### 前端
- Thymeleaf
- Bootstrap 5
### 实用工具
- Apache Commons CSV
- Maven
## 系统架构
```
User
│
▼
Upload Billing CSV
│
▼
CSV Processing Engine
│
▼
MySQL Database
│
▼
Cost Analysis Service
│
├── Budget Monitoring
├── Trend Analysis
├── Cost Categorization
└── Recommendation Engine
│
▼
Dashboard UI
```
## 项目结构
```
src
├── controller
│ ├── DashboardController
│ ├── UploadController
│
├── service
│ ├── CsvProcessingService
│ ├── CostAnalysisService
│ ├── BudgetService
│ └── RecommendationService
│
├── repository
│ └── CostRepository
│
├── entity
│ └── CloudCost
│
├── templates
│ ├── dashboard.html
│ ├── upload.html
│
└── resources
└── application.properties
```
## 示例 CSV 格式
```
service,cost
EC2,500
S3,120
RDS,200
Lambda,50
CloudFront,80
```
## 示例优化规则
### 计算
```
If Compute Cost > 60% of Total Cost
Recommendation:
Consider downsizing virtual machines
Potential savings: 10-15%
```
### 存储
```
If Storage Cost > 30% of Total Cost
Recommendation:
Move infrequently accessed files to cheaper storage tiers
```
### Database
```
If Database Cost > 40% of Total Cost
Recommendation:
Review instance sizing and database utilization
```
## 安装说明
### 克隆仓库
```
git clone https://github.com/your-username/infrastructure-cost-optimizer.git
cd infrastructure-cost-optimizer
```
### 配置数据库
更新:
```
spring.datasource.url=jdbc:mysql://localhost:3306/cost_optimizer
spring.datasource.username=root
spring.datasource.password=your_password
```
### 运行应用程序
```
mvn spring-boot:run
```
应用程序将启动于:
```
http://localhost:8080
```
## 未来增强
- AWS Cost & Usage Report (CUR) 集成
- Azure Cost Management 集成
- GCP Billing 集成
- 邮件预算警报
- 使用机器学习进行成本预测
- 多用户支持
- 将报告导出为 PDF 和 Excel
## 用例
- 云成本监控
- 预算跟踪
- FinOps 报告
- 成本优化分析
- 基础设施支出洞察
## 学习成果
- Spring Boot 应用程序开发
- CSV 文件处理
- 使用 MySQL 进行数据库设计
- 数据可视化
- FinOps 概念
- 成本分析技术
- 仪表盘开发
## 作者
作为 DevOps 和 FinOps 项目开发,旨在提供可操作的云成本洞察,并支持高效的基础设施支出决策。
云服务提供商会生成详细的账单报告,但要了解资金的去向以及确定优化机会可能颇具挑战性。
基础设施成本优化器通过处理账单报告、对支出进行分类、监控预算使用情况并生成可操作的建议来减少不必要的开销,从而简化了云成本分析。
## 功能
### 成本分析
- 上传云账单报告(CSV 格式)
- 按服务分析基础设施支出
- 查看每月云总成本
- 识别消耗成本最多的服务
### 预算监控
- 设置月度支出预算
- 跟踪预算利用率
- 在接近限额时收到预警
- 检测预算超支
### 成本分类
自动将云服务分类为:
- Compute
- Storage
- Database
- Network
- 其他服务
### 趋势分析
- 月度成本对比
- 成本增长跟踪
- 历史支出分析
- 支出预测
### 优化建议
生成基于规则的建议,例如:
- 缩减未充分利用的 compute 资源
- 归档不常访问的 storage
- 优化 database 资源分配
- 降低 network 传输成本
### 仪表盘洞察
- 每月总支出
- 剩余预算
- 成本分布图表
- 按成本排名的顶级服务
- 月度支出趋势
## 技术栈
### 后端
- Java 17
- Spring Boot
- Spring MVC
- Spring Data JPA
### 数据库
- MySQL
### 前端
- Thymeleaf
- Bootstrap 5
### 实用工具
- Apache Commons CSV
- Maven
## 系统架构
```
User
│
▼
Upload Billing CSV
│
▼
CSV Processing Engine
│
▼
MySQL Database
│
▼
Cost Analysis Service
│
├── Budget Monitoring
├── Trend Analysis
├── Cost Categorization
└── Recommendation Engine
│
▼
Dashboard UI
```
## 项目结构
```
src
├── controller
│ ├── DashboardController
│ ├── UploadController
│
├── service
│ ├── CsvProcessingService
│ ├── CostAnalysisService
│ ├── BudgetService
│ └── RecommendationService
│
├── repository
│ └── CostRepository
│
├── entity
│ └── CloudCost
│
├── templates
│ ├── dashboard.html
│ ├── upload.html
│
└── resources
└── application.properties
```
## 示例 CSV 格式
```
service,cost
EC2,500
S3,120
RDS,200
Lambda,50
CloudFront,80
```
## 示例优化规则
### 计算
```
If Compute Cost > 60% of Total Cost
Recommendation:
Consider downsizing virtual machines
Potential savings: 10-15%
```
### 存储
```
If Storage Cost > 30% of Total Cost
Recommendation:
Move infrequently accessed files to cheaper storage tiers
```
### Database
```
If Database Cost > 40% of Total Cost
Recommendation:
Review instance sizing and database utilization
```
## 安装说明
### 克隆仓库
```
git clone https://github.com/your-username/infrastructure-cost-optimizer.git
cd infrastructure-cost-optimizer
```
### 配置数据库
更新:
```
spring.datasource.url=jdbc:mysql://localhost:3306/cost_optimizer
spring.datasource.username=root
spring.datasource.password=your_password
```
### 运行应用程序
```
mvn spring-boot:run
```
应用程序将启动于:
```
http://localhost:8080
```
## 未来增强
- AWS Cost & Usage Report (CUR) 集成
- Azure Cost Management 集成
- GCP Billing 集成
- 邮件预算警报
- 使用机器学习进行成本预测
- 多用户支持
- 将报告导出为 PDF 和 Excel
## 用例
- 云成本监控
- 预算跟踪
- FinOps 报告
- 成本优化分析
- 基础设施支出洞察
## 学习成果
- Spring Boot 应用程序开发
- CSV 文件处理
- 使用 MySQL 进行数据库设计
- 数据可视化
- FinOps 概念
- 成本分析技术
- 仪表盘开发
## 作者
作为 DevOps 和 FinOps 项目开发,旨在提供可操作的云成本洞察,并支持高效的基础设施支出决策。标签:FinOps, Spring Boot, 云成本优化, 代码示例, 数据分析