Hello,

As the title suggests, how do you manage your DBs for docker services.

Do you spin a new DB for every new docker cluster or do you have a centralized DB that is accessible to the docker clusters.

What are the pros and cons of both method?

For the moment, I spin a new DB for every services as I feel it is easier to backup the service in case of a problem.

  • placebo@lemmy.zip
    link
    fedilink
    English
    arrow-up
    5
    ·
    2 days ago

    Given that database management systems already provide clear separation between services in the form of databases, users, and permissions, I see no need to spin up new database instances for each individual service. You say it’s easier to back up tightly coupled services and databases, but why? I find it easier to back up a single database server than multiple servers.

    The real concern with shared databases is performance: some services, under certain conditions, can generate load that degrades database performance for everyone. But that’s usually a problem for large enterprises, not self-hosters.

    • motruck@lemmy.zip
      link
      fedilink
      English
      arrow-up
      2
      ·
      1 day ago

      Try moving one of the services out of your combined database.

      With a containerized database you stop it. Copy everything over to the other machine and start it.

      With your set up you have to dump the database and import it on the other system.

      You also get easier coarser performance isolation on a per service basis.

      Oh yeah and OOM-killa ever get your database down. Well now they won’t all die at once.

      The overhead of running another database instance is easily with the above advantages.

    • Croquette@sh.itjust.worksOP
      link
      fedilink
      English
      arrow-up
      2
      arrow-down
      1
      ·
      2 days ago

      You say it’s easier to back up tightly coupled services and databases, but why?

      Because it is set and forget in my docker compose. I can backup the container and bring it down without affecting other services.

      But that is my inexperience talking and this is is why I wanted to see what other people were doing, and having perspective like yours to learn.