【发布时间】:2014-04-19 21:32:38
【问题描述】:
如果您正在实施面向服务的架构,那么对于开发环境来说,最简洁的方法是什么?
当您想开发服务 Y 时,您将如何管理启动服务 X?
似乎有很多关于 SoA 的理论方面的讨论,但是当在 Rails/Express/Etc 中构建多服务应用程序时,这将如何在现实世界中发挥作用?
管理一个具有大量外部服务作为依赖项的应用程序会不会很困难?
【问题讨论】:
标签: architecture soa
如果您正在实施面向服务的架构,那么对于开发环境来说,最简洁的方法是什么?
当您想开发服务 Y 时,您将如何管理启动服务 X?
似乎有很多关于 SoA 的理论方面的讨论,但是当在 Rails/Express/Etc 中构建多服务应用程序时,这将如何在现实世界中发挥作用?
管理一个具有大量外部服务作为依赖项的应用程序会不会很困难?
【问题讨论】:
标签: architecture soa
管理一个包含大量外部应用的应用程序会不会很困难? 服务作为依赖项?
这取决于你所说的管理是什么意思。在我看来,这意味着协调与将服务的新功能交付到生产环境相关的所有活动,包括规划、开发、构建、部署和运营支持。
管理一个物理上分离的服务,与其他服务没有二进制依赖关系,并且在存储级别与其他服务没有强制引用完整性相对简单,并且在与其他服务的依赖关系管理中变得和练习.由于这些依赖项通常表现为 API 合同,因此合同版本控制成为系统级开发和团队内部工作流程的重要考虑因素。 (为此存在许多策略 - 就像一个完整的大规模讨论一样)。
但是,我要告诉您,在面对替代方案时,您需要考虑管理的难度。那么,这种方法的替代方法是什么?另一种方法是 monolith 应用程序方法,因此您会明白为什么我在上一段中突出显示了“相对”一词。
我强烈建议您阅读(或重读)James Lewis 和 Martin Fowler 的微服务文章 here 的开头段落,他们在解释这一点方面做得比我好得多。
【讨论】: