【发布时间】:2017-12-17 13:15:58
【问题描述】:
我们正在将微服务部署到 Azure Service Fabric。
我们如何跟踪服务的多个版本?
我们将如何在生产中允许服务的多个版本:
- 向消费者发放令牌
- 该令牌将在标头中发送到微服务
- 网关将接收请求并重定向到与标头中的令牌对应的微服务版本
换句话说,多个消费者将能够访问一个端点:…./api/accounts(12343),但将根据他们的标头令牌被路由到不同版本的微服务。
我们是否为每个版本的微服务创建单独的 TFS 分支?我们是否只是创建一个 nuget 包存储库?
我们如何跟踪服务的多个版本?
我们为什么要跟踪多个版本?
- 也许我们可能想要恢复到旧版本。
- 也许我们需要在客户的特定版本中实施修复。
- 也许我们需要不同版本的服务,因为我们发现与不同服务存在紧密耦合。
【问题讨论】:
-
如何/应该在运行时对服务进行版本控制以及如何选择在源代码控制中对它们进行版本控制是完全正交的问题。与前者相比,后者几乎无趣。您现在如何跟踪软件的不同版本,为什么 Azure 服务在这方面会有任何不同?
-
这是一个全新的实现。我们正在从单体架构转换,在生产环境中只有 1 个版本的代码
-
是的,但即使是您的单体架构也已通过版本控制策略检查到源代码控制中,对吗?如果没有,请选择任何有关如何在 TFS 中跟踪版本的文章(可以通过标签完成,可以通过分支完成)并实现它。没有什么特定于微服务的。只要您能够检查软件的 N - 1 版本并进行构建,就可以了。
标签: c# visual-studio azure asp.net-web-api azure-service-fabric