
Continuous Delivery for DC/OS with Spinnaker - florianleibert
http://engineering.cerner.com/blog/continuous-delivery-for-dcos-with-spinnaker/
======
robotmay
Spinnaker is a really interesting piece of kit, though when I last tried it
3-4 months ago the docs were in a state of flux and it took quite a lot of
fiddling about to get things going.

The one thing I cannot find any details on, and it's not specific to
Spinnaker, is; how do you perform your database changes as part of your
deployment system? I figured it would be sensible to have one-off tasks you
could run inside your containers as part of the pipelines, but I've not found
any guidance on doing that with any CD tool at the moment.

~~~
gtirloni
_> how do you perform your database changes as part of your deployment
system?_

Usually you run a database migration tool. However, the application has to be
coded in a resilient way, so it can work with current and the immediate
previous version.

In dev/test environments and if you have initial data that needs to be loaded,
you just bring a new database up with the latest schema (hopefully in version
control). You can have test cases that load old data, perform a migration and
use the latest app version.

For production, it needs to be done more carefully if you're doing huge
database changes. Ideally, you shouldn't exactly because CI/CD is letting you
make smaller changes constantly... but sometimes your data is just too big and
not trivial to migrate (e.g. a table with 1bn records now needs a new column
base on data from another two columns)

------
florianleibert
There is also a tutorial on the Spinnaker website.
[https://www.spinnaker.io/guides/tutorials/codelabs/dcos-
sour...](https://www.spinnaker.io/guides/tutorials/codelabs/dcos-source-to-
prod/)

