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.

  • Docker container mounting a database from another container
  • How to deploy a Nodejs application in a docker container
  • How to fast failover nginx upstream containers in docker (blue/green deployment)
  • What is the correct way to deploy EAR on Weblogic with Docker
  • Deploying an app for every user
  • how process static file when deploying django using docker and aws eb
  • 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?

  • How to connect to client after installing db2 in docker?
  • Running Docker Commands with a bash script inside a container
  • Docker rails migrations
  • Docker application deployment DEV vs TEST
  • Docker development workflow for compiled components in a docker-compose setup
  • Microservices and database
  • Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.