在过去的一家公司,工程主管和首席工程师决定将我们的 Ruby on Rails 应用程序拆分为 Go 微服务网格。 他们创建了非常详细的设计文档和架构图。他们全力以赴,使用了 Kubernetes、gRPC、服务模板,所有的一切。 整个高级工程领导团队来自亚马逊,他们习惯于每个团队拥有一个独特的服务。他们试图直接应用这种模型。但我们的问题在于代码所有权和糟糕的领域建模。 整个应用程序本可以在仅仅几台 EC2 实例上运行。 结果是什么? 五年后,70% 的应用程序仍然在 Ruby on Rails 单体上运行。迁移从未完成。但现在他们必须维护两个系统。 原来的领导团队没有一个人还在那工作。