> concretely tho, it generally means hosting stuff on your own machine, on a connection you pay for. That's okay. But it's hard for non-specialists.
To this end, I'm optimistic about lightweight containers, especially a la docker.io[1]. Releasing an application as a container can help solve dependency hell. Nesting containers for a complex application (i.e. with multiple disjoint services) looks promising to me, as well.
[1] Not that LXC and/or docker are ready out-of-the-box for non-specialists (yet) - but that seems achievable. A friendly wrapper around vagrant might do the job.
It solves simple dependency problems. It does nothing for your interdependent "decentralized" services which are talking to each other. That's where the real hard work is.
You're right. There is hard work in managing a system of services where any service endpoint can change at any time. It appears to me protocols for negotiating upgrades between services are important and there's no widely deployed solution for that yet.
To this end, I'm optimistic about lightweight containers, especially a la docker.io[1]. Releasing an application as a container can help solve dependency hell. Nesting containers for a complex application (i.e. with multiple disjoint services) looks promising to me, as well.
[1] Not that LXC and/or docker are ready out-of-the-box for non-specialists (yet) - but that seems achievable. A friendly wrapper around vagrant might do the job.