Migrating from shared development database to single database for each developer
We are planning migrating from single shared development database model (for local deployments and CI) to individual database for each developer per each version branch, requiring easy back off to initial set of data for that version.
Problem with shared database is obvious. Little mistake or experiment from one developer could potentially break all other deployments.
First thing to come in my mind considering sharing of local, disposable and predictable database instances (or local environments in general) is to use either Vagrant or Docker. Conditions and restrictions are the following:
- Each developer should be able to pull version specific environment containing the database instance with initial set of data, and start coding right away, performing local deployments with minimum amount of configuration and interference.
- Each local environment should be as isolated and indenpendent as possible
- Environment images should be under version control and easily maintained
- Environment should be easy to reset to consistent initial state
- Solution should be compatible with weblogic deployments
- Local environment shouldn’t force IDE or other development tools (i.e. boundary between host and virtual environment should be transparent)
Which approach would better fill the requirements, Vagrant or Docker, or maybe both? Would Ansible be useful tool to automatically provision the VM / container with weblogic server, database and other infrastructure components, wiring everything together with minimum effort from developer?
Is there some tutorials which would aid me at beginning of this task?