我在 SoundCloud时, 曾经负责把一个巨石架构的 Ruby on Rails 应用迁移到微服务。这个故事的技术层面, 我做过多次演讲并且在 SoundCloud 的技术博客上发表过系列文章。...这些工程的知识是人们最感兴趣的, 但最近我意识到我从来没有向大众解释我们是如何开启这段微服务之旅的。
抱歉让技术粉失望了, 我们迁移到微服务的原因更多是从产能考虑而非纯技术原因。下面我会做出解释。...我先加入了后端团队,App团队,负责巨石架构 Ruby on Rails 应用。当时我们没有把它称为遗留, 而是称它为母舰。App 团队拥有 Rails 应用程序中的所有内容, 包括旧的用户界面。...即使上述不需要跟任何技术栈和我们一直在使用的工具隔离开, 这些变化也带来了问题和风险。
但是, 即使一切进展顺利, 我们知道, 目前的巨石架构代码无论如何必须重构。...除了我们自己制造的混乱, 我们还必须从 Rails 2.x 升级到 3, 这本身就是一个巨大的迁移。
这些注意事项导致我们重新考虑选项 (B)。我们认为它看起来不会有很大不同:
?