我们目前有一个单独的Web应用程序,用于后端的Scala(用于Rest API的scalatra)和用于前端的AngularJS。该应用程序部署在AWS。我们将构建一个新组件,我们希望将其构建为独立的微服务。此组件将拥有自己的数据存储库,可能与数据库类型不同。它也将使用Scala构建,但Akka用于Rest API。当前应用程序使用DB模块,域模块和Web服务API模块以及前端/客户端模块构建。
顺利旅程的好方法是什么?我们可能需要首先建立一个微服务架构,例如API网关服务以及其他架构服务。
答案 0 :(得分:2)
太多方法,太多方法,太多最佳实践。这完全取决于对您的应用程序的分析,试图找出自然休息的位置。
我开始的一个地方是查看数据模型。很多人提倡每个微服务都有自己的数据库。嗯,这很好,花花公子,但如果不把事情搞得一团糟,那真的很难实现。但是如果你运气好的话,那里的数据很好地隔离了,那就看看它会采用什么样的服务并试着把它分解出去。
如果你不遵循单独的数据库心态,那么我从低悬的果实开始,通常只是简单的CRUD操作,只需要一点点业务逻辑,为其他更大的提供一些基本支持 - 来自的服务。当然,这变得更加迭代,不确定您的组织是否会喜欢它。
这让我想到了方法论。已经创建单一应用程序的组织通常具有支持它们的方法,而微服务需要一种非常不同的应用程序开发方法。你的组织准备好了吗?
毋庸置疑,没有正确的答案。我已经去了很多会议,这些概念在利益清单上占据重要位置,事实上没有灵丹妙药,每个人对于什么是正确的都有不同的看法,而且有很多例外。不幸的是,你只需要咬紧牙关并用手指交叉。