Stackadem)ic 公司将基础设施从Kubernetes替换成了更简单的解决方案,整个过程值得让深思。
1:Kubernetes 的梦想与现实
Stackademic 公司三年前部署了Kubernetes,承诺非常吸引人:
• 大规模的容器编排
• 云原生架构
• 基础设施即代码
• 自动化扩展和自愈
Kubernetes 确实具有这些优势,但有很多的隐形成本。
虽然有8 名高级 DevOps 工程师,3 个专门的 SRE 团队,24/7 值班,但仍然出现了很多故障,包括4 次重大中断、23 次紧急部署、147 次错误警报、二名员工不堪重负离职。
2:看看Kubernetes成本耗费在哪儿了?
基础设施成本:
• 40% 的节点运行 Kubernetes 组件
• 控制平面美元就要花费25,000 美元
• 3 倍冗余以实现高可用性
人力成本:
• 每个新 DevOps 员工的培训需要 3 个月
• 60% 的 DevOps 时间花在维护上
• 值班事件增加了 30%
• 12 个月内有 4 名有经验的工程师离职
隐藏的复杂性:
• 基本部署需要 200 多个 YAML 文件
• 5 种不同的监控工具
• 3 种独立的日志解决方案
• 不断的版本兼容性问题
3:迁移开始
Stackademic 公司选择了最不关键的服务,并将其迁移到一个更简单的技术栈:
• AWS ECS 来管理和编排容器化应用
• 使用 CloudFormation 管理基础设施
• 尽量使用托管服务
• 使用简单的 shell 脚本进行部署
效果嘎嘎的:
• 部署从 15 分钟缩短到 3 分钟
• 基础设施文件从 200 多个减少到 20 个
• 每月成本从 12,000 美元降低到 3,200 美元
• 干扰的警报减少了 80%
4:全面替代
为每个工作负载选择合适的工具:
• 简单应用 → AWS ECS/Fargate
• 有状态服务 → 带 Docker 的 EC2
• 批处理任务 → AWS Batch
• 事件驱动 → Lambda
迁移过程就是逐步迁移:
• 从非关键服务开始
• 一次迁移一个服务组
• 新老系统并行运行
• 收集性能指标
5:六个月成果
技术改进:
• 基础设施成本减少 62%
• 平均部署时间加快 89%
• 生产事件减少 73%
• 警报噪音减少 91%
团队收益:
• 周末部署次数为零
• 值班事件减少 82%
• 无因疲惫而离职的情况
• 新团队成员入职更快
业务影响:
• 功能交付速度加快 47%
• 维持 99.99% 的正常运行时间
• DevOps 招聘时间减少 60%
• 每年基础设施节省 432,000 美元
6:总结
Kubernetes 并不差,只是被过度推荐了。
可能需要 Kubernetes:
• 运行着成千上万的微服务
• 需要复杂的自动扩展
• 有多云需求
• 需要高级的部署模式
可能不需要Kubernetes:
• 服务数量少于 20 个
• 规模是可预测的
• 主要使用托管服务
• 团队规模较小
对我来说,没有很强的掌控能力,千万别碰Kubernetes,使用云服务即可!




