如何构建一个单体应用程序 (sinatra) 以将组件移动到微服务架构

How to build a monolithic app(sinatra) with the intention to move components to microservices architecture

我将帮助构建一个应用程序(很明显),我最初考虑使用微服务架构,但考虑到它在这个阶段没有必要,但将来会有。

那么,我该如何构建一个应用程序,同时打算将子组件移动到微服务中呢?

我应该遵循哪些概念或结构可以使这种未来的过渡更容易?

我应该注意什么?

如果我不小心的话,是否有任何陷阱或事情可能会使过渡变得更加困难?

还有什么有用的信息谢谢。

P.s。是的,这可能有点 vague/broad 但我不要求深入的答复,只是链接到对我有帮助的有用信息。我看过但没有发现任何对从单体架构到微服务架构的过渡有用的东西。

编辑:由于显然不清楚,让我声明我正在寻找资源,我得到了一些自以为是的资源,但这很好,自以为是的资源比我目前拥有的没有资源更好。

一些指导 > 没有指导。

我认为没有很多资源可以直接让您为微服务架构做好准备。至少不是我所知道的。我能想到的最接近的是 Eric Evans 的 Domain Driven Design 书。

它更像是一本软件设计书籍,但在我看来,微服务实际上只是一种模仿软件设计的架构。这是将应用程序的关注点分离到不同分类组件的尝试。

最有用的概念可能是微服务架构的限界上下文和服务对象。有界上下文是服务应该被界定的子级域,服务对象将是实际的服务。这些服务对象应该松散耦合,以便无缝迁移到微服务。

最后,在迁移到微服务架构的过程中,服务对象可以转换为类客户端对象,将服务间通信协议抽象到给定服务。希望这对您有所帮助!