在kubernetes上的Lagom中部署微服务的版本控制

时间:2019-07-19 09:30:01

标签: docker kubernetes sbt microservices lagom

问题与微服务的部署有关。

使用的框架-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可以建议解决上述所有问题的最佳实践。

1 个答案:

答案 0 :(得分:0)

建议将映像版本标记替换为实际的版本号,该编号在每次部署时都会更新。 有很多sbt插件可用于从git哈希生成版本号,其中一个是sbt-dynver。您可以检查如何将构建配置为基于当前git commit哈希的版本号,这对于连续部署特别有用。

Lagom build pilosophy中,由于您不想增加两个微服务的版本(因为您不知道要完成哪个服务提交),更好的方法是使用多个构建,以便可以更改每个服务独立地。