Application versioning is a really handful system for controlling an application deployment.
Zero-downtime deployment is now a must-have for every cloud-based application. It's not available by default and it's quite a shame (i think).
While the active-deploy service does quite the job, this still should be a in-app versioning logic (like in Google AppEngine or other clouds).
It could be implemented with the following logic:
1) Every application is deployed with a version number (if not specified, it could be for instance a git commit hash or a bluemix-generated version number)
2) We can stop and start application instances with a version number as a parameter (optional)
3) When pushing an application, the push logic will automatically replace the existing running application version with the new one with a ramp-up start/stop logic
4) Rollback will be available for an application with a version number as a parameter (optional. Bluemix should keep the last 4/5 versions deployed available).
I guess this would require core changes in cloudfoundry, but still this is important, because it's a better match to the DevOps deployment logic.
NOTICE TO EU RESIDENTS: per EU Data Protection Policy, if you wish to remove your personal information from the IBM ideas portal, please login to the ideas portal using your previously registered information then change your email to "firstname.lastname@example.org" and first name to "anonymous" and last name to "anonymous". This will ensure that IBM will not send any emails to you about all idea submissions