基础设施选型清单
文档编号: SYS-TECH-LIST-INFRA-003
版本: 1.0
创建日期: 2026-03-08
作者: 架构师
状态: ✅ 已完成
评审: ✅ 已通过 2026-03-08
1. 概述
1.1 目的
本文档汇总System平台基础设施技术选型清单,包括容器化、CI/CD、监控、日志等运维基础设施。
1.2 选型原则
- 云原生优先: 优先选择云原生技术栈
- 开源为主: 优先选择成熟的开源方案
- 生态完善: 选择社区活跃、文档完善的技术
- 可扩展性: 支持水平扩展和高可用部署
2. 容器化平台
2.1 容器运行时
| 技术 | 版本 | 用途 | 选型理由 |
|---|---|---|---|
| Docker | 24.x | 容器引擎 | 行业标准,生态最丰富 |
| containerd | 1.7.x | 容器运行时 | Docker底层,轻量级 |
Docker特性:
- 镜像分层存储
- 容器隔离
- 资源限制
- 网络管理
替代方案:
- Podman: 无守护进程,更安全,但生态较小
- CRI-O: Kubernetes专用,轻量级
选型结论: Docker 24.x
2.2 容器编排
| 技术 | 版本 | 用途 | 选型理由 |
|---|---|---|---|
| Kubernetes | 1.28+ | 容器编排 | 行业标准,功能最完善 |
| Helm | 3.13.x | 包管理 | K8s包管理,简化部署 |
Kubernetes特性:
- 自动扩缩容
- 服务发现
- 负载均衡
- 滚动更新
- 自愈能力
核心组件:
- kube-apiserver: API服务器
- kube-scheduler: 调度器
- kube-controller-manager: 控制器
- kubelet: 节点代理
- kube-proxy: 网络代理
替代方案:
- Docker Swarm: 简单易用,但功能有限
- Nomad: HashiCorp产品,轻量级
选型结论: Kubernetes 1.28+
2.3 镜像仓库
| 技术 | 版本 | 用途 | 选型理由 |
|---|---|---|---|
| Harbor | 2.9.x | 私有镜像仓库 | 企业级,安全扫描,权限管理 |
Harbor特性:
- 镜像安全扫描(Trivy/Clair)
- 镜像签名(Notary/Cosign)
- 复制策略
- 项目管理
- RBAC权限控制
替代方案:
- Docker Registry: 基础功能,无UI
- Nexus: 通用仓库,非专门镜像
选型结论: Harbor 2.9.x
3. CI/CD平台
3.1 持续集成
| 技术 | 版本 | 用途 | 选型理由 |
|---|---|---|---|
| Jenkins | 2.426+ | CI/CD服务器 | 插件丰富,生态成熟 |
| GitLab CI | 16.x | 内置CI/CD | 与GitLab集成,配置简单 |
Jenkins特性:
- Pipeline as Code(Jenkinsfile)
- 1500+插件
- 分布式构建
- 权限管理
Pipeline阶段:
- Checkout: 代码检出
- Build: 编译构建
- Test: 单元测试
- SonarQube: 代码质量
- Build Image: 构建镜像
- Push Image: 推送镜像
- Deploy: 部署到K8s
替代方案:
- GitHub Actions: 与GitHub集成,云原生
- CircleCI: SaaS服务,无需维护
选型结论: Jenkins 2.426+(主)+ GitLab CI(备选)
3.2 GitOps工具
| 技术 | 版本 | 用途 | 选型理由 |
|---|---|---|---|
| ArgoCD | 2.9.x | GitOps持续交付 | 声明式,可视化,自动同步 |
ArgoCD特性:
- 声明式配置
- 自动同步
- 回滚支持
- 多集群管理
- SSO集成
替代方案:
- Flux: GitOps工具,功能类似
- Spinnaker: 多云部署,但复杂度高
选型结论: ArgoCD 2.9.x(可选)
4. 监控告警
4.1 指标监控
| 技术 | 版本 | 用途 | 选型理由 |
|---|---|---|---|
| Prometheus | 2.48.x | 时序数据库 | 云原生标准,K8s集成好 |
| Grafana | 10.2.x | 可视化 | 美观,数据源丰富 |
Prometheus特性:
- 多维数据模型
- PromQL查询语言
- 拉取模式采集
- 服务发现
- 告警规则
Exporter清单:
| Exporter | 用途 |
|---|---|
| node-exporter | 主机监控 |
| mysql-exporter | MySQL监控 |
| redis-exporter | Redis监控 |
| jmx-exporter | JVM监控 |
| blackbox-exporter | 黑盒探测 |
替代方案:
- Zabbix: 传统监控,功能全面但较重
- InfluxDB: 时序数据库,但生态不如Prometheus
选型结论: Prometheus 2.48.x + Grafana 10.2.x
4.2 日志系统
| 技术 | 版本 | 用途 | 选型理由 |
|---|---|---|---|
| Elasticsearch | 8.11.x | 日志存储 | 全文检索,聚合分析 |
| Logstash | 8.11.x | 日志收集 | 数据处理,过滤转换 |
| Kibana | 8.11.x | 日志可视化 | 搜索,仪表盘 |
| Fluentd | 1.16.x | 日志转发 | CNCF项目,轻量级 |
ELK架构:
应用日志 → Fluentd → Logstash → Elasticsearch → Kibana替代方案:
- Loki: Grafana出品,轻量级,与K8s集成好
- Graylog: 开源日志平台,功能全面
选型结论: ELK Stack(Elasticsearch + Logstash + Kibana)
4.3 告警管理
| 技术 | 版本 | 用途 | 选型理由 |
|---|---|---|---|
| Alertmanager | 0.26.x | 告警管理 | Prometheus配套,告警收敛 |
| DingTalk Webhook | - | 通知渠道 | 钉钉集成,国内常用 |
Alertmanager特性:
- 告警分组
- 告警抑制
- 告警静默
- 多渠道通知
通知渠道:
- 邮件
- 钉钉
- 企业微信
- Slack
- PagerDuty
选型结论: Alertmanager 0.26.x + 钉钉Webhook
4.4 链路追踪
| 技术 | 版本 | 用途 | 选型理由 |
|---|---|---|---|
| Jaeger | 1.50.x | 分布式追踪 | CNCF项目,与K8s集成好 |
| OpenTelemetry | 1.x | 可观测性标准 | 统一标准,多语言支持 |
Jaeger特性:
- 分布式追踪
- 性能分析
- 依赖分析
- 服务拓扑
替代方案:
- Zipkin: Twitter开源,轻量级
- SkyWalking: 国产,功能全面
选型结论: Jaeger 1.50.x + OpenTelemetry(可选)
5. 服务网格(可选)
| 技术 | 版本 | 用途 | 选型理由 |
|---|---|---|---|
| Istio | 1.20.x | 服务网格 | 功能最完善,生态丰富 |
Istio特性:
- 流量管理
- 安全通信(mTLS)
- 可观测性
- 策略控制
替代方案:
- Linkerd: 轻量级,易用
- Consul Connect: HashiCorp生态
选型结论: Istio 1.20.x(远期规划)
6. 基础设施汇总
6.1 核心组件版本
| 类别 | 技术 | 版本 |
|---|---|---|
| 容器引擎 | Docker | 24.x |
| 容器编排 | Kubernetes | 1.28+ |
| 镜像仓库 | Harbor | 2.9.x |
| CI/CD | Jenkins | 2.426+ |
| 包管理 | Helm | 3.13.x |
| 监控 | Prometheus | 2.48.x |
| 可视化 | Grafana | 10.2.x |
| 日志存储 | Elasticsearch | 8.11.x |
| 日志收集 | Fluentd | 1.16.x |
| 告警 | Alertmanager | 0.26.x |
| 追踪 | Jaeger | 1.50.x |
6.2 部署架构
┌─────────────────────────────────────────────────────────────┐
│ 基础设施层 │
├─────────────────────────────────────────────────────────────┤
│ 容器平台 │ Docker + Kubernetes 1.28+ │
├─────────────────────────────────────────────────────────────┤
│ 镜像管理 │ Harbor 2.9.x │
├─────────────────────────────────────────────────────────────┤
│ CI/CD │ Jenkins 2.426+ → GitLab CI │
├─────────────────────────────────────────────────────────────┤
│ 监控告警 │ Prometheus + Grafana + Alertmanager │
├─────────────────────────────────────────────────────────────┤
│ 日志系统 │ ELK Stack (ES + Logstash + Kibana) │
├─────────────────────────────────────────────────────────────┤
│ 链路追踪 │ Jaeger 1.50.x (可选) │
├─────────────────────────────────────────────────────────────┤
│ 服务网格 │ Istio 1.20.x (远期) │
└─────────────────────────────────────────────────────────────┘7. 技术风险评估
| 技术 | 风险等级 | 风险描述 | 缓解措施 |
|---|---|---|---|
| Kubernetes 1.28 | 中 | 学习曲线陡峭,运维复杂 | 团队培训,使用托管K8s |
| Elasticsearch 8.x | 中 | 资源占用高,运维复杂 | 合理规划资源,监控集群状态 |
| Istio | 高 | 引入复杂度,性能开销 | 远期规划,先使用基础功能 |
| Jenkins | 低 | 插件依赖多,安全性需关注 | 定期更新,最小化插件 |
8. 技术演进路线
8.1 近期(3个月内)
- [√] 搭建Docker环境
- [√] 部署Kubernetes集群
- [√] 配置Harbor镜像仓库
- [√] 搭建Jenkins CI/CD
- [√] 部署Prometheus + Grafana监控
8.2 中期(6个月内)
- [ ] 完善ELK日志系统
- [ ] 配置Alertmanager告警
- [ ] 引入Jaeger链路追踪
- [ ] 实现GitOps(ArgoCD)
8.3 远期(12个月内)
- [ ] 引入Istio服务网格
- [ ] 实现多集群管理
- [ ] 探索Serverless(Knative)
9. 参考文档
| 文档 | 链接 |
|---|---|
| Kubernetes官方文档 | https://kubernetes.io/docs/ |
| Docker官方文档 | https://docs.docker.com/ |
| Prometheus官方文档 | https://prometheus.io/docs/ |
| Grafana官方文档 | https://grafana.com/docs/ |
| ELK Stack官方文档 | https://www.elastic.co/guide/ |
| Jenkins官方文档 | https://www.jenkins.io/doc/ |
| Harbor官方文档 | https://goharbor.io/docs/ |
10. 评审记录
10.1 评审意见
| 序号 | 评审项 | 评审意见 | 评审结果 |
|---|---|---|---|
| 1 | 技术选型完整性 | 覆盖基础设施所需全部技术栈 | ✓ 通过 |
| 2 | 版本合理性 | 版本选择合理,均为稳定版本 | ✓ 通过 |
| 3 | 选型理由充分性 | 选型理由充分,有替代方案对比 | ✓ 通过 |
| 4 | 风险评估 | 风险识别全面,缓解措施可行 | ✓ 通过 |
10.2 评审结论
评审结果: ✅ 通过
评审日期: 2026-03-08
评审人员:
- 产品经理: _________________ (签字)
- 技术负责人: _________________ (签字)
- 安全专家: _________________ (签字)
备注: 技术选型清单内容完整,选型合理,可以作为后续基础设施建设的依据。
11. 修订记录
| 版本 | 日期 | 作者 | 变更内容 |
|---|---|---|---|
| 1.0 | 2026-03-08 | 架构师 | 初始版本,汇总基础设施技术选型 |
| 1.1 | 2026-03-08 | 架构师 | 通过评审,添加评审记录 |
