2017-04-11 103 views
1

是否有在微服务产品中应用SemVer的最佳实践/模式?每个微服务应该有SemVer,而整体产品应该有SemVer?SemVer和微服务

示例 - 我有一个名为SuperDatabase的产品,其中有3个微服务,分别称为SuperDatabaseCore,SuperDatabaseReportsSuperDatabaseSearch

初始版本: 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吗?还是应该没有任何版本?

+0

如果你有三个服务共享相同的数据库,那么你没有得到微服务背后的想法。大小不是重点 – astef

+0

SuperDatabase是此处用于示例的组成应用程序的名称。随意用'ApplicationName-ServiceName'来代替它。 – ferr

+0

本书将帮助您:https://www.amazon.com/Building-Microservices-Sam-Newman/dp/1491950358/ref=pd_sim_14_29?ie=UTF8&dpID=5156gHBSxaL&dpSrc=sims&preST=_AC_UL160_SR122%2C160_&refRID=0081XVQGTK2AQ54GQ21P –

回答

1

您应该独立版本化您的服务,微服务架构的好处之一是您可以更新和部署系统的小部分,而无需任何停机时间(理论上)。如果在更新组件C时对组件A和组件B进行了版本控制,那么最终只有一个组件发生更改时才需要部署所有组件。