|
|
|
|
|
by karka91
4018 days ago
|
|
Sounds like you manage this manually.
Why not have a CI server (travis, jenkins, w/e) build each microservice seperately (e.g. after a push to master) and then attempt an app release with all microservices? You can also do parametric jobs in jenkins which could allow combining arbitrary microservices versions Or just version your APIs and declare explicitly what microservice uses what version of the API to communicate with the other service. |
|
The approach is similar to parametric builds in jenkins. The problem is the management of the parameters.
For example:
msA v1.0 & maB v1.0 are individually green, and pass all integration tests. Green build for app.
msB is updated to v1.1. Passes individual tests but fails integration with msA v1.0. Red build for app.
msA is updated to 1.1. Passes individually. Still fails integration with msB v1.1. Red build for app.
However. msA v1.1 is still compatible with msB v1.0, so we could have a green app build with a newer version of msA.
Automating this process is what is becoming cumbersome. We have many more services in dev at any one time.