微服务和版本控制如何处理部署

时间:2019-08-08 22:29:12

标签: version-control microservices

我目前正在尝试弄清如何使用微服务处理版本控制。

据我所知,最好的策略是为每个微服务都有一个单独的git存储库。

但是,在部署时,必须上传多个git存储库似乎很复杂。

特别是,当我如何部署更新(其中多个微服务需要彼此依赖的更改)以及在生产部署出现问题时如何回滚到以前的版本时,我I之以鼻。

对于大多数使用微服务的开发人员来说,这似乎令人头疼。

任何建议都将不胜感激,特别是如果可以使用现有库而不是从头开始构建某些东西,

谢谢, 西蒙

1 个答案:

答案 0 :(得分:0)

没有简单的答案或库可以解决问题,但是有一些策略可以提供帮助。我在下面概述了一些

服务的向后兼容性-每当发布时,请确保您的API(REST或其他方式)与以前的使用者兼容,这可以通过为较新的属性提供默认值来实现。

API的版本设置-当您进行的更改不小且令人震惊时,请引入新版本的API,以便较老的使用者可以继续使用以前的版本。

Canary部署-部署新版本的微服务路由时,只有一小部分调用该新服务和其余版本的呼叫。请观察行为并进行回滚。

蓝绿色部署-有两个生产环境,一个蓝色被证明可以工作,另一个绿色正在暂存,其中包含最新版本。当测试在绿色环境中完成并且您有足够的信心时,将所有呼叫都路由到绿色。

参考

Micro-services versioning

Canary deployment

Blue green deployment

相关问题