首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何围绕CLI工具设计系统

如何围绕CLI工具设计系统
EN

Software Engineering用户
提问于 2017-10-26 12:08:17
回答 1查看 172关注 0票数 1

背景

我正在尝试设计一个基于微服务的SaaS应用程序,其中每个微服务将被打包到它们特定的Docker容器中。

我还有一个CLI工具(一个二进制文件),它的功能就像一把瑞士刀(也就是做了不止一件事情),还有一些微服务想要使用这个工具的各种功能,这使得这个工具在整个体系结构中非常重要。该工具可以使用/生成一个文件或流。

问题

我无法在以下两项之间作出决定:

  • 我应该把这个工具打包成每一个需要它的微型服务的一部分吗?
  • 我是否应该将该工具打包为单独的服务本身?

如何在两者之间作出决定?还有其他选择吗?

警告

每个微服务可能需要同时生成/访问该工具的多个实例。为了进一步说明,微服务可以多次、顺序或并行地使用该工具来生成不同的输出,这些输出后来被聚合并传递到其他服务中。

EN

回答 1

Software Engineering用户

回答已采纳

发布于 2017-10-26 14:12:12

这取决于工具所做的事情以及它需要更新的频率。

如果您将该工具与每个服务一起打包,那么对该工具的更新意味着您需要对每个使用该工具的服务进行相应的更新。将工具打包为单独的服务将意味着对该工具的更新或修复只需要在一个地方部署,所有服务都会受到该更新的影响。

取决于工具,两者都可能是合适的。例如,JSON解析器更适合作为捆绑库,因为它非常稳定,不太可能发生显著变化,因此拥有单独服务的开销可能不值得。然而,一个进行某种业务计算的工具可能会看到频繁的更新,使其更适合作为单独的服务,特别是在服务之间保持一致性很重要的情况下。

票数 6
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/359776

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档