Open Source by itself doesn't prevent vendor lock-in. Application dependency portability is just as important, according to Krishnan Subramanian's recent post on the OpenShift blog.
Here are some of the styles that PaaS providers use for portability:
Heroku’s Buildpacks and OpenShift’s Cartridges are very good examples for packaging the application dependencies. Heroku’s Buildpacks are an excellent model for porting application runtimes and frameworks. It was built for the hosted PaaS and can be a very good standard for such services. However, it can’t be easily extended to private PaaS deployments.
OpenShift’s Cartridges format is much more versatile than Buildpacks when we consider both hosted and private PaaS deployments. I am not arguing that Buildpacks are not suitable for private PaaS deployments in the enterprise but rather pointing out that Cartridges offer a much more versatile format to meet their needs.
Another such packaging format is WSO2 Stratos Cartridge architecture and it is part of WSO2 Stratos which was donated to Apache Software Foundation by the parent company.
– Krishnan Subramanian