What are the options out there for "zero configuration" (meaning minimal configuration) deployment of code on an arbitrary cloud service?
I realize that there are thousands of cloud platforms, each supporting a particular set of languages, a particular set of packages, and sporting a particular workflow, often with proprietary set of commandline tools to make deployment less painful.
But what if I don't want to know anything about particular cloud platforms, and I want to write code that will be easy to deploy in a cloud for years to come?
Obviously the most concrete answer would be simply: build a virtual machine image with whatever you want and then run that on the cloud (this way is pretty much zero-configuration and we can expect a VM image I build today to still work on most VM hosts in 10 years).
So my question is: What is the next tier down from the VM image ideal? What are the most open and widely-accepted standards for encapsulating a complete description of an arbitrary software stack in machine-readable form such that I can throw my software stack at any generic cloud-like hosting service without thinking about any configuration specific to that hosting service?