- 公司及服务介绍:Choco 是一家创建服务以数字化食品供应链、提高订购效率并减少整个过程各阶段浪费的公司,曾以无服务器工程组织为傲,2023 年底改变架构,转向 Kubernetes。
- Lambda 的终结:迁移的决定由与 Lambda 和 DynamoDB 相关的一系列挑战引发,包括成本上升、冷启动延迟问题、资源使用限制、缺乏标准化应用框架和生态系统停滞等,虽已在 Lambda 上投入很多,但继续投资不合理,自定义代码和变通方法难以理解和维护。
制定迁移策略:
- 诊断:与其他处理过无服务器的人交流,了解到使 Lambda 更好运行需用胖 Lambda、用 Rust 编写、去除自定义中间件代码等,但仍存在问题,决定投入其他有发展的领域。
- 处方:短暂考虑其他替代方案后,选择 Amazon 的 EKS 服务提供 Kubernetes,因其广泛采用,同时选择 Postgres 替代 DynamoDB,Nest.js 作为 Web 应用框架,认为生态系统大更好。
- 付诸行动:明确问题和解决方案后,利用 Amazon EKS Blueprints 和 Helm 快速搭建 EKS 集群,工具选择方便,从开始到生产就绪的 EKS 集群仅用数月。
- 新的开发体验:回归经典开发体验,Nest.js 提供标准开发服务方式,选择 TypeScript,容器化后端服务简化开发等,Kubernetes 并不像想象中可怕,开启了 Choco 的工程新时代。
- 未来发展:虽对改变满意但仍处于旅程初期,最大挑战是构建与之前无服务器架构工作相同的知识体系,运营方面也需加强,教育项目帮助团队理解新架构,迁移策略分阶段进行,随着迁移工作的推进,对新架构的了解和信心增加,旧平台知识逐渐萎缩,同时平台团队也需不断学习以确保新平台稳定、高效和有良好体验。
- 结论:从无服务器技术到配置的过渡是成功的,建议不要深陷无服务器计费和锁定模式,转向成熟技术无需害怕。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。