This question takes a Spring Boot service as an example, but it could be any technology.
Assuming the following:
- Environments (dev/qaQA/prod) are owned by different teams. This means dev must not have access to prod configuration.
- Configuration (letslet's say application.properties) is externalized, ie not part of the binary
- The same binary/package (letslet's say service.jar) is deployed in each environment and controlled by automated deployment
While changes to the binary artefactartifact (service.jar) getsget automatically propagated to each environment, changes to configuration still needsneed manual intervention, which inevitably ends up being de-synchronized in each environment.
For example, letslet's say dev team adds a few key-value pairs to application.properties in their environment. What would be the best way to record these new keys, so that when the deployment occurs in the ops team they know exactly which keys to add, so the risk of starting the new service and seeing it failed because of a missing key is minimized ?
I know there will be manual steps involved, but I would like to know how people deals with this, and find the most effective way.