I'm not the original commenter, nor am I experienced with upgrading in general, but what I understand from the comment is that you always make sure that your current schema is compatible with the previous backend.
For example, this could mean that you don't delete any column that were still in use in the previous backend version.
This would have the advantage of letting you rollback your backend alone if anything wrong happens.
We were actually previously using vagrant (-libvirt) for our CI, but moved away from it to this because vagrant does not seems to work very reliably when run in parallel. For example image downloading doesn't seem to have a filesystem lock, so one would succeed and the others failed.
In general, we wanted to be able to spin up our test VMs under docker containers to eliminate issues with differences between our CI shell-runners. Using libvirt based tooling makes that pretty hard. Calling to qemu directly, on the other hand, makes this easy.
There are some other benefits as well such as having direct console access which is not provided by vagrant, but can be very useful for kernel tests.
Depends on what you need. Do all people need access to all passwords? Do you need to know which passwords a certain person accessed so you don't have to rotate everything when they leave?
Kallithea[0] has support for both. You might want to test it out and see if it's a good fit for your setup. I enjoyed working with it when when I used it.
A managed DB is any database that is provided as a service rather than one that runs directly on a VM you are responsible for. You typically pay a bit more for managed databases than VMs, but in exchange you get a highly optimized environment and curated experience so that you have minimal operational overhead to keep it online consistently. Managed database services typically take care of:
- minor version patching
- automated failover and backup options
- some level of security
Heroku Postgres is a popular option, as are services from all major cloud providers and database companies.
For reference, a T3.micro VM is $0.0104 / hr vs T3.micro RDS at $0.017 / hr or $7.50 vs $12.25 /mo. Its a high margin service for cloud providers, but also gives a lot of peace of mind around the data's integrity and availability.
Spin one up running your favorite database. You can run any version of most popular databases for the past 7-10 years, including MySQL, Postgres, MS SQL, Oracle, Redis, MongoDB, Cassandra, Elasticsearch and more. Spin it up, load up some data, make some queries, and throw it away a couple hours later and you'll be out a few pennies. You can also throw down $25 and get an hour with a 128 cpu, 4TB RAM, 25 Gbps monster. In any case, have fun and don't forget to terminate your instances!