# vmc update is great for test and development, however it stops your old app and stages and starts the new one,
# resulting in dropped requests.
# If you want to update an application without dropping user requests, see below.
# NOTE: This change assumes your application can share services, etc with the new version.
# Assume my app is named foo
vmc push foo-v2 --url foov2.cloudfoundry.com
# New app is running under a different url that can be tested independently.
vmc map foo-v2 foo.cloudfoundry.com
# New app and old app are now fielding traffic to http://foo.cloudfoundry.com
vmc instances foo-v2 N
# Scale up if needed.
vmc instances foo 1
# Scale old app down
vmc unmap foo foo.cloudfoundry.com
# New app is fielding all traffic at this point
# if you need to rollback.
vmc map foo foo.cloudfoundry.com
vmc unmap foo-v2 foo.cloudfoundry.com
# Now you can stop or delete the old version
vmc stop foo
# I leave these around, in a stopped state with no urls, but bound to any services needed. This way I can put new bits into this app's namespace with vmc update foo