support rolling upgrades of a rails app
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
rails (Juju Charms Collection) |
New
|
Wishlist
|
Unassigned |
Bug Description
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
halt replication..
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.
Changed in rails (Juju Charms Collection): | |
importance: | Undecided → Wishlist |