Chapter 7. Where Do We Go from Here?
We have covered a lot in this small book but certainly didn’t cover everything! Keep in mind we are just scratching the surface here, and there are many more things to consider in a microservices environment than what we can cover in this book. In this last chapter, we’ll very briefly talk about a couple of additional concepts you must consider. We’ll leave it as an exercise for the reader to dig into more detail for each section!
Configuration is a very important part of any distributed system and becomes even more difficult with microservices. We need to find a good balance between configuration and immutable delivery because we don’t want to end up with snowflake services. For example, we’ll need to be able to change logging, switch on features for A/B testing, configure database connections, or use secret keys or passwords. We saw in some of our examples how to configure our microservices using each of the three Java frameworks, but each framework does configuration slightly differently. What if we have microservices written in Python, Scala, Golang, NodeJS, etc?
To be able to manage configuration across technologies and within containers, we need to adopt an approach that works regardless of what’s actually running in the container. In a Docker environment we can inject environment variables and allow our application to consume those environment variables. Kubernetes allows us to do that as well and is considered a good ...