我目前正在尝试弄清如何使用微服务处理版本控制。
据我所知,最好的策略是为每个微服务都有一个单独的git存储库。
但是,在部署时,必须上传多个git存储库似乎很复杂。
特别是,当我如何部署更新(其中多个微服务需要彼此依赖的更改)以及在生产部署出现问题时如何回滚到以前的版本时,我I之以鼻。
对于大多数使用微服务的开发人员来说,这似乎令人头疼。
任何建议都将不胜感激,特别是如果可以使用现有库而不是从头开始构建某些东西,
谢谢, 西蒙
答案 0 :(得分:0)
没有简单的答案或库可以解决问题,但是有一些策略可以提供帮助。我在下面概述了一些
服务的向后兼容性-每当发布时,请确保您的API(REST或其他方式)与以前的使用者兼容,这可以通过为较新的属性提供默认值来实现。
API的版本设置-当您进行的更改不小且令人震惊时,请引入新版本的API,以便较老的使用者可以继续使用以前的版本。
Canary部署-部署新版本的微服务路由时,只有一小部分调用该新服务和其余版本的呼叫。请观察行为并进行回滚。
蓝绿色部署-有两个生产环境,一个蓝色被证明可以工作,另一个绿色正在暂存,其中包含最新版本。当测试在绿色环境中完成并且您有足够的信心时,将所有呼叫都路由到绿色。
参考