We have adopted Docker and Terraform as the foundation forour devOps. We have a basic version of it up and running today.
Dockerfiles live in each projects git repository and Terraform files are more centralized.
The number of projects we manage is increasing as do the number of environments, data seeding To make things more interesting we are also moving toward splitting services up into microservices where that makes sense.
So for each project, we have options like:
- What destination are you targetting (dev local, dev cloud, test (several variations), staging prod)
- What version / tag of the source code should it build from.
- What data should be seeded?
- Who should be notified?
- What infrastructure should it use? (We want to be able to allow "prod infrastructure) to be available for developers to spin up in dev cloud for debugging and testing) (along with several other combination)
There are a few other parameters we are considering and all in all the number of possible permutations become very high.
There is no way we can cleanly keep order of that many Dockerfiles.
So I am looking for a tool that helps us keep track of all the different configurations and makes it easy to find them.
Ideally, inside my head, I am picturing a wizard-based web app, where you enter in the parameters and it executes the necessary scripts automagically. This would also contain logs of what has been done, what environments are running and a few other things.
So far I havent had much luck. I know a lot of companies must have solved it and I must be thinking about it wrong, or there is a big opportunity here.
Is there such a tool? How do large companies solve this?