问题与微服务的部署有关。
使用的框架-Lagom。
假设我有两个微服务,说M1,M2在同一个git仓库中。 因此,我们只有一个build.sbt,并且两个微服务都在该build.sbt中定义。
现在,当我们在kubernetes上部署这些微服务时,我们必须使用一些标签制作docker镜像。 我将给出docker image的Tag名称,即微服务的版本。
现在,我有两种选择来定义微服务的版本。
1. One is for every commit i will update versions of both microservices say 1.1 , 1.2 and so on .... , (here i have to increase version of both microservices as i do not know that for which microservice commit is done as repo is same for two microservices . )
我使用的是Lagom Doc Build Philosophy建议的单一回购协议,因为我们的团队非常小。
2. developer has to increase version in build.sbt every time he commit a feature or bug fix .
现在我的问题/疑问如下
1.How should generally people manage version in this case .
2.There may be many bug fixes daily , so i do not want to update version on every small bug fix .
3.How to manage compatibility between microservices version .
什么是lagom可以建议解决上述所有问题的最佳实践。
答案 0 :(得分:0)
建议将映像版本标记替换为实际的版本号,该编号在每次部署时都会更新。 有很多sbt插件可用于从git哈希生成版本号,其中一个是sbt-dynver。您可以检查如何将构建配置为基于当前git commit哈希的版本号,这对于连续部署特别有用。
在Lagom build pilosophy中,由于您不想增加两个微服务的版本(因为您不知道要完成哪个服务提交),更好的方法是使用多个构建,以便可以更改每个服务独立地。