【发布时间】:2017-09-07 02:20:26
【问题描述】:
在微服务产品中应用 SemVer 是否有任何最佳实践/模式?每个微服务是否应该有 SemVer,整个产品是否应该有 SemVer?
示例 - 我有一个名为 SuperDatabase 的产品,其中包含 3 个名为 SuperDatabaseCore、SuperDatabaseReports 和 SuperDatabaseSearch 的微服务。
初始版本:
SuperDatabase v1.0.0
SuperDatabaseCore v1.0.0
SuperDatabaseReports v1.0.0
SuperDatabaseSearch v1.0.0
报告的小幅更新:
SuperDatabaseReport v1.1.0
产品现在应该是SuperDatabase v1.1.0吗?
如果以后有一个搜索补丁怎么办:
SuperDatabaseSearch v1.0.1
是否应该再次更改产品版本?产品版本是否应该完全独立于微服务?它应该使用 SemVer 吗?还是不应该有任何版本控制?
【问题讨论】:
-
如果你有三个服务共享同一个数据库,那么你就没有理解微服务背后的想法。大小不是重点
-
SuperDatabase 是此处用于示例的组成应用程序的名称。随意将其替换为
ApplicationName-ServiceName。
标签: architecture microservices semantic-versioning