📝 docs(product): add product brief for vk-eci project
- 新增产品简介文档,详细介绍vk-eci项目的愿景和目标用户 - 包含执行摘要、核心愿景、目标用户画像和成功指标 - 定义MVP范围和未来发展规划,明确技术选型和架构原则 - 分析市场机会和竞争环境,识别关键风险和缓解策略
This commit is contained in:
282
docs/product-brief-vk-eci-2025-11-06.md
Normal file
282
docs/product-brief-vk-eci-2025-11-06.md
Normal file
@@ -0,0 +1,282 @@
|
||||
# Product Brief: vk-eci
|
||||
|
||||
**Date:** 2025-11-06
|
||||
**Author:** d8der
|
||||
**Context:** 开源基础设施项目
|
||||
|
||||
---
|
||||
|
||||
## Executive Summary
|
||||
|
||||
阿里云ECI Virtual Kubelet提供商是一个开源项目,作为Kubernetes和阿里云弹性容器实例(ECI)服务之间的适配器。该项目允许Kubernetes用户将Pod调度到阿里云的无服务器容器实例上运行,无需管理底层基础设施,享受无服务器容器的便利性和成本优势。
|
||||
|
||||
---
|
||||
|
||||
## Core Vision
|
||||
|
||||
### Problem Statement
|
||||
|
||||
传统Kubernetes集群管理面临以下挑战:
|
||||
- **资源浪费**:需要预先配置节点资源,导致资源利用率低
|
||||
- **运维复杂**:节点管理、扩缩容、故障恢复等运维工作繁琐
|
||||
- **成本高昂**:需要为闲置资源付费,无法实现真正的按需计费
|
||||
- **弹性不足**:应对突发流量时扩展速度慢,无法快速响应业务需求
|
||||
|
||||
### Problem Impact
|
||||
|
||||
- **成本影响**:企业需要为闲置的节点资源支付费用,资源利用率通常只有30-50%
|
||||
- **运维负担**:Kubernetes集群管理员需要花费大量时间在节点管理、监控和维护上
|
||||
- **业务延迟**:传统节点扩展需要几分钟到几十分钟,无法满足突发流量的快速响应需求
|
||||
- **技术门槛**:中小团队难以承担完整的Kubernetes集群运维成本
|
||||
|
||||
### Why Existing Solutions Fall Short
|
||||
|
||||
- **传统节点池**:需要预先配置资源,无法实现真正的按需使用
|
||||
- **自建集群**:运维复杂,需要专业团队维护
|
||||
- **其他云厂商方案**:缺乏与阿里云生态的深度集成
|
||||
- **纯无服务器方案**:无法与现有Kubernetes工作流无缝集成
|
||||
|
||||
### Proposed Solution
|
||||
|
||||
阿里云ECI Virtual Kubelet提供商通过以下方式解决问题:
|
||||
- **无缝集成**:作为Virtual Kubelet provider,与现有Kubernetes集群无缝集成
|
||||
- **按需计费**:Pod在ECI上运行时按实际使用量计费,无需为闲置资源付费
|
||||
- **快速扩展**:ECI实例可在秒级内创建,满足突发流量需求
|
||||
- **零运维**:无需管理底层基础设施,专注于应用本身
|
||||
|
||||
### Key Differentiators
|
||||
|
||||
- **深度阿里云集成**:原生支持阿里云ECI服务,包括抢占式实例、EIP、安全组等
|
||||
- **成本优化**:支持抢占式实例,最高可节省90%的计算成本
|
||||
- **企业级特性**:支持EIP、安全组、VPC网络等企业级功能
|
||||
- **开源社区**:基于Virtual Kubelet框架,活跃的开源社区支持
|
||||
|
||||
---
|
||||
|
||||
## Target Users
|
||||
|
||||
### Primary Users
|
||||
|
||||
**Kubernetes集群管理员**
|
||||
- 负责企业Kubernetes集群运维的技术团队
|
||||
- 需要优化资源利用率和降低运维成本
|
||||
- 技术背景:熟悉Kubernetes概念和运维
|
||||
- 痛点:节点管理复杂、资源利用率低、成本控制困难
|
||||
|
||||
**云原生应用开发团队**
|
||||
- 构建和部署云原生应用的开发团队
|
||||
- 需要快速部署和弹性扩展能力
|
||||
- 技术背景:熟悉容器化和微服务架构
|
||||
- 痛点:开发环境部署慢、测试环境资源浪费
|
||||
|
||||
### Secondary Users
|
||||
|
||||
**DevOps工程师**
|
||||
- 负责CI/CD流水线和自动化部署
|
||||
- 需要灵活的测试环境和批处理任务执行
|
||||
- 痛点:测试环境资源管理复杂、批处理任务成本高
|
||||
|
||||
**中小型企业技术负责人**
|
||||
- 资源有限,希望以低成本获得企业级容器能力
|
||||
- 需要简化运维,专注于业务开发
|
||||
- 痛点:缺乏专业运维团队、预算有限
|
||||
|
||||
### User Journey
|
||||
|
||||
1. **集群管理员配置Virtual Kubelet**
|
||||
- 部署Virtual Kubelet到现有Kubernetes集群
|
||||
- 配置阿里云认证信息
|
||||
- 设置安全组和VSwitch
|
||||
|
||||
2. **开发团队部署应用**
|
||||
- 通过标准Kubernetes YAML部署应用
|
||||
- 使用节点选择器和容忍度将Pod调度到Virtual Kubelet
|
||||
- 应用自动在ECI上运行
|
||||
|
||||
3. **运维监控和优化**
|
||||
- 通过Kubernetes原生工具监控Pod状态
|
||||
- 使用抢占式实例优化成本
|
||||
- 根据业务需求调整资源配置
|
||||
|
||||
---
|
||||
|
||||
## Success Metrics
|
||||
|
||||
### Business Objectives
|
||||
|
||||
- **成本优化**:通过抢占式实例和按需计费,降低计算成本30-70%
|
||||
- **运维简化**:减少节点管理时间50%以上
|
||||
- **弹性提升**:实现秒级扩展,满足突发流量需求
|
||||
- **资源利用率**:将整体资源利用率提升至80%以上
|
||||
|
||||
### Key Performance Indicators
|
||||
|
||||
- **Pod启动时间**:从调度到运行的时间控制在30秒以内
|
||||
- **成本节省率**:相比传统节点池,计算成本节省比例
|
||||
- **资源利用率**:ECI实例的实际使用率
|
||||
- **可用性**:ECI Pod的成功创建率和运行稳定性
|
||||
- **用户满意度**:基于用户反馈的满意度评分
|
||||
|
||||
---
|
||||
|
||||
## MVP Scope
|
||||
|
||||
### Core Features
|
||||
|
||||
1. **基础Pod调度**
|
||||
- 支持标准Kubernetes Pod调度到ECI
|
||||
- 基本的容器生命周期管理(创建、删除、查询)
|
||||
- CPU和内存资源配置
|
||||
|
||||
2. **镜像管理**
|
||||
- 支持Docker镜像拉取
|
||||
- 镜像拉取凭证管理
|
||||
- 私有镜像仓库支持
|
||||
|
||||
3. **存储卷支持**
|
||||
- EmptyDir
|
||||
- NFS
|
||||
- ConfigMap
|
||||
- Secret
|
||||
|
||||
4. **网络配置**
|
||||
- 容器端口映射
|
||||
- 基础网络连通性
|
||||
|
||||
### Out of Scope for MVP
|
||||
|
||||
- 复杂的网络策略(如NetworkPolicy)
|
||||
- 持久化存储卷(如云盘、NAS)
|
||||
- 高级监控和日志收集
|
||||
- 多区域部署支持
|
||||
|
||||
### MVP Success Criteria
|
||||
|
||||
- 能够成功调度和运行标准的Nginx Pod
|
||||
- 支持基本的资源配置和网络访问
|
||||
- 提供清晰的错误信息和日志
|
||||
- 通过基本的集成测试
|
||||
|
||||
### Future Vision
|
||||
|
||||
1. **高级功能**
|
||||
- 抢占式实例支持(已完成)
|
||||
- EIP注解支持(已完成)
|
||||
- ECS规格指定(已完成)
|
||||
- 更多存储卷类型支持
|
||||
|
||||
2. **企业级特性**
|
||||
- 安全组和网络策略
|
||||
- 监控和告警集成
|
||||
- 多集群管理
|
||||
- 备份和恢复
|
||||
|
||||
3. **生态系统集成**
|
||||
- 与阿里云其他服务深度集成
|
||||
- 支持更多云厂商
|
||||
- 社区插件和扩展
|
||||
|
||||
---
|
||||
|
||||
## Market Context
|
||||
|
||||
### 市场机会
|
||||
|
||||
- **云原生市场快速增长**:Kubernetes已成为容器编排的事实标准
|
||||
- **无服务器计算需求旺盛**:企业寻求降低运维复杂度和成本
|
||||
- **混合云趋势**:企业需要在不同云环境间灵活部署
|
||||
- **成本优化需求**:经济下行期企业对成本控制更加重视
|
||||
|
||||
### 竞争分析
|
||||
|
||||
**直接竞争对手**
|
||||
- 阿里云Serverless Kubernetes:官方托管方案,但灵活性较低
|
||||
- 其他云厂商的类似方案:AWS Fargate、Azure Container Instances
|
||||
|
||||
**差异化优势**
|
||||
- 开源透明:代码完全开源,可自定义扩展
|
||||
- 灵活部署:可与现有Kubernetes集群无缝集成
|
||||
- 成本优势:支持抢占式实例,成本优化空间更大
|
||||
|
||||
---
|
||||
|
||||
## Technical Preferences
|
||||
|
||||
### 技术栈选择
|
||||
|
||||
- **编程语言**:Go语言,适合基础设施项目,性能优秀
|
||||
- **框架**:Virtual Kubelet框架,成熟稳定
|
||||
- **云服务**:阿里云ECI SDK,官方支持
|
||||
- **构建工具**:Makefile + Go Modules,标准化构建流程
|
||||
|
||||
### 架构设计原则
|
||||
|
||||
- **兼容性优先**:完全兼容Kubernetes API标准
|
||||
- **可扩展性**:模块化设计,易于添加新功能
|
||||
- **稳定性**:完善的错误处理和重试机制
|
||||
- **可观测性**:集成OpenCensus进行监控和追踪
|
||||
|
||||
---
|
||||
|
||||
## Risks and Assumptions
|
||||
|
||||
### 关键风险
|
||||
|
||||
- **云服务依赖**:高度依赖阿里云ECI服务的稳定性和API变化
|
||||
- **社区维护**:开源项目需要持续的社区贡献和维护
|
||||
- **兼容性风险**:Kubernetes版本升级可能带来兼容性问题
|
||||
|
||||
### 核心假设
|
||||
|
||||
- 阿里云ECI服务会持续发展和改进
|
||||
- Kubernetes生态会继续保持增长
|
||||
- 企业对成本优化和无服务器计算的需求会持续增加
|
||||
- 开源社区会提供足够的支持和贡献
|
||||
|
||||
### 缓解策略
|
||||
|
||||
- 建立完善的测试套件,确保兼容性
|
||||
- 积极参与Virtual Kubelet社区
|
||||
- 提供详细的文档和示例
|
||||
- 建立用户反馈机制
|
||||
|
||||
---
|
||||
|
||||
## Timeline
|
||||
|
||||
### 项目现状
|
||||
|
||||
- **已完成**:基础功能、抢占式实例、EIP支持、ECS规格指定
|
||||
- **稳定运行**:已在生产环境部署和使用
|
||||
- **持续维护**:定期更新和bug修复
|
||||
|
||||
### 未来发展
|
||||
|
||||
- **短期**(3-6个月):优化现有功能,提升稳定性
|
||||
- **中期**(6-12个月):添加企业级功能,扩展生态系统
|
||||
- **长期**(12+个月):支持多云部署,成为行业标准
|
||||
|
||||
---
|
||||
|
||||
## Supporting Materials
|
||||
|
||||
### 项目文档
|
||||
|
||||
- README.md:项目介绍和快速开始指南
|
||||
- docs/eci.md:抢占式实例详细使用文档
|
||||
- CLAUDE.md:开发指南和项目说明
|
||||
|
||||
### 代码质量
|
||||
|
||||
- 完整的测试覆盖
|
||||
- 代码规范检查(golangci-lint)
|
||||
- 持续集成(CircleCI)
|
||||
- 模块依赖管理(Go Modules)
|
||||
|
||||
---
|
||||
|
||||
_This Product Brief captures the vision and requirements for vk-eci._
|
||||
|
||||
_It was created through collaborative discovery and reflects the unique needs of this 开源基础设施项目 project._
|
||||
|
||||
_Next: Use the PRD workflow to create detailed product requirements from this brief._
|
||||
Reference in New Issue
Block a user