title: Automation of releases of microservices-based application
body: <p>We are working on the application that consists of many standalone services. It has advantages over the single monolithic application, but not when we do releases.</p>
  
  <p>We do weekly release cycles. Each service/component located in the separate git repository. 'A release' - is several features that we put into wild. Usually only several components should be updated. We manage servers using saltstack. To make a release salt scripts update component's versions using git.latest state. The problem is to specify right versions.</p>
  
  <p>This is where the manual work that I'd like to automate. To update versions I have to manually check each component's repository, merge development branch into master and tag according to symantec versioning rules. Then I write new version in salt scripts. We have over 10 components so this is rather boring and error prone process.</p>
  
  <p>Probably we doing it wrong, I'll be glad to hear any advices how to do it better, thanks.</p>