support rolling upgrades of a rails app
|||rails (Juju Charms Collection)||
this gets complicated with schema changes :)
couple of methods... most promising is multiple named services for a single rails app...
i.e., two pools of app servers "myappA" and "myappB" that're all in normal rotation and sharing db replicas... until an upgrade.
juju deploy mysql master-db
juju deploy mysql slavedbA
juju add-relation master-db:master slavedbA:slave
juju deploy mysql slavedbB
juju add-relation master-db:master slavedbB:slave
juju deploy rails myappA
juju add-relation myappA masterdb:db
juju add-relation myappA slavedbA:slave
juju deploy rails myappB
juju add-relation myappB masterdb:db
juju add-relation myappB slavedbB:slave
juju set slavedbB replication=off
switch one pool to read-only via juju config... something like
juju set myappB read-only=true
and upgrade a "segment" at a time.