40 votes
Accepted

What are the reasons Docker should not be used for databases?

When people talk about running a database in Docker, they do not mean to store the data in a container; they are talking about having a docker image with the DB software, and mounting the data as a ...
AnoE's user avatar
  • 4,866
15 votes

What practices or tools enable Continuous Deployment of Databases?

The Challenges I am aware that there are practices such as only adding database objects, i.e. tables and columns, never modifying or removing them At one company I worked for, a rolling window of ...
James Shewey's user avatar
  • 3,724
15 votes
Accepted

What practices or tools enable Continuous Deployment of Databases?

Pramod Sadalage and Scott Ambler wrote a book Refactoring Databases: Evolutionary Database Design that is an incredibly solid primer to the subject of DBs in a CD org/team.
paul_h's user avatar
  • 314
13 votes

How should I store my environment variables?

I've had two runs at doing environment variables in a scalable way and neither has ended up perfect because, as I've discovered, is a very tricky thing to get right. I'll give a summary of both of my ...
hvindin's user avatar
  • 1,724
13 votes
Accepted

Why is Prometheus not a good choice for data with high cardinality?

As far as I know, Prometheus doesn't mind high-cardinality data. What Prometheus doesn't like is high-cardinality labels. Let's start with Prometheus official documentation, it gives a good high-...
Alexandre's user avatar
  • 1,955
9 votes

How to synchronize deployments (especially of database object changes) on multiple environments

I would integrate the schema management into the application itself (or along with it). Any change to the schema should be committed along the application code (and hence tagged also). There's ...
Tensibai's user avatar
  • 11.3k
8 votes
Accepted

How to version control shared database?

I personally made the unwise choice of cramming five different apps into a single database about 20 years ago. I then had to deal with the repercussions of that. The bad news is, this is really hard. ...
Grant Fritchey's user avatar
7 votes

What practices or tools enable Continuous Deployment of Databases?

We use Flyway at work for managing Postgres schemas in the app, and Pillar for managing Cassandra schemas. We have found it best if the app manages its own schema. We had a horrible experience ...
trashcan's user avatar
7 votes

What practices or tools enable Continuous Deployment of Databases?

I'd argue a tool alone won't really help unless you shift the schema responsibility to the application team. We do use liquibase or flyway at work, where the application team is responsible to create ...
Tensibai's user avatar
  • 11.3k
7 votes

What are the reasons Docker should not be used for databases?

I wrote about this in depth but here's the summary: Preventing split brain (electing more than one master node) needs to be solved. Failure to do so can be catastrophic There are no production ready ...
Robo's user avatar
  • 745
6 votes
Accepted

Cloud DB operator responsibilities / common tasks

I always saw a DBA as someone who fits in between developers and operations when it comes to database management. On the one hand, they often take care of backups, clustering, replication, actual ...
maplebird's user avatar
  • 676
5 votes

What is the impact of using Helm Deployments instead of StatefulSets for Databases like MongoDB or MySQL?

Back when Kubernetes announced the new StatefulSet feature with K8s v1.5 (converting it from the old PetSet name), they put out a really good blog post walking through an example of its usage: https://...
BoomShadow's user avatar
  • 1,432
5 votes
Accepted

docker: Error response from daemon: Conflict. The container name "/basexhttp" is already in use by container

You're attempting to create two different containers, each with the same name. Each time you execute docker run it will create a container, and you've named the containers the same with --name ...
BMitch's user avatar
  • 3,145
4 votes

How to synchronize deployments (especially of database object changes) on multiple environments

In our company we manage our application code within a VCS (Git) and most of the applications we work with install their core database from within the setup scripts that ship with the application. If ...
7ochem's user avatar
  • 974
4 votes

What practices or tools enable Continuous Deployment of Databases?

To answer this question in the context of a mainframe environment, and specific to DB2® databases, there are typically 2 commonly used (not cheap ...) alternatives to pick from: Object Administration ...
Pierre.Vriens's user avatar
  • 7,175
4 votes
Accepted

Google Cloud Storage vs Redis / ElasticSearch

I don't know much about Redis/ElasticSearch, but GCS is not really a database-like solution, it is closer to a file storage solution. If you're looking for database-like storage Google Cloud offers: ...
Dan Cornilescu's user avatar
4 votes
Accepted

DynamoDB vs RDS for a counter store?

Why not something like Redis? (can use it through ElastiCache). Hard to answer this without knowing the operational requirements of this project. Is this data strictly for logging/research, or is it ...
Assaf Lavie's user avatar
  • 1,241
4 votes

What practices or tools enable Continuous Deployment of Databases?

We use liquibase at our work and I'll speak highly for it. It's also used by our QA tool QASymphony. We're utilizing it against MSSQL and Oracle databases internally and QASymphony uses/has used it ...
whoisearth's user avatar
4 votes

macOS testing on Desktop: Docker containers vs. Homebrew installation

One of the cons of Homebrew for the use of testing your DB stuff is how tightly coupled the DB is to your local environment. You'll inevitably end up needing to manage the details of what services ...
T.J. Telan's user avatar
4 votes
Accepted

macOS testing on Desktop: Docker containers vs. Homebrew installation

One of the advantages of using Docker would be that you can easily run tests with different versions of the (DB) apps, which could be quite difficult with Homebrew (some apps don't easily support ...
Dan Cornilescu's user avatar
4 votes

Zero Downtime Deployment with Database Backward Compatibility

There is plenty of information about this. The basic idea goes like so - Create a script that does the database migration, but make sure that it only adds tables and fields - never removes, renames, ...
Evgeny Zislis's user avatar
3 votes

How to do blue-green deployment with PL/SQL code?

Yes, it is possible, but it takes a bit of work. I assume that the concern with duplicating the database is 1) time and 2) size/storage, otherwise it seems like it would be trivial to spawn databases ...
James Shewey's user avatar
  • 3,724
3 votes
Accepted

Docker MongoDB image - How to specify credentials other than in the compose file?

Secrets support for mongo is built in. You can see in that image's entrypoint script that if you add _FILE to end of username/password values it will pull from those secret files. As for .js files, ...
Bret Fisher's user avatar
3 votes

How should I store my environment variables?

If your environments are per customer, I would suggest in your specific case to have a repository per customer. (In general it is repository per environment.) This repository would have a standard ...
Jiri Klouda's user avatar
  • 5,787
3 votes
Accepted

In a Database Per Service model - should i include the database in the service container?

Keep the DB containers separate. The concept of microservices and containers is to allow each part to be independently updated without introducing changes and outages to the rest of the application ...
BMitch's user avatar
  • 3,145
3 votes

Include curl commands in a PostgreSQL Docker environment

One way to use curl inside the container will be to use a custom Dockerfile to build you postgrsql container. Just use the image: postgres:12-alpine as the base image of your Dockerfile and install ...
RASOANAIVO Alindrianja's user avatar
2 votes

Google Cloud Storage vs Redis / ElasticSearch

We had the similar requirement as there needs to be a set of data cached in a server for serving the application (fast processing) and also by end of the day, we would need to sync the data from the ...
Gopi Haran's user avatar
2 votes

DynamoDB vs RDS for a counter store?

For question #1) I think this could perhaps be better answered on SoftwareEngineering SE. Nonetheless, I'll risk an answer: for this kind of information (states) coming from that kind of ...
Alexandre's user avatar
  • 1,955
2 votes

Docker MongoDB image - How to specify credentials other than in the compose file?

Here's a solution I've used in cases like this - I utilize Ansible to manage Docker containers, and Ansible Vault to store secrets for those containers. Ansible Playbook to run MongoDB container ...
Vish's user avatar
  • 601
2 votes

Cloud DB operator responsibilities / common tasks

The DBA is the person/role who is responsible for the availability, integrity and security of the organizations data. The responsibilities are the same regardless of the technology that happens to be ...
Gaius's user avatar
  • 1,086

Only top scored, non community-wiki answers of a minimum length are eligible