Portability and vendor lock-in
Conclusion related to this question of greater or lesser flexibility of each Cloud provider is the issue of portability. A major concern is with the portability of the application and how it can be tied to a particular environment preventing swap provider in the future. Surely the problem is deeper in closed environments and less flexible.
Use the owner of the Google App Engine Datastore, for example, makes enough that after the moving the application to another provider. But the providers are aware that this could be a barrier lockin and work to reduce the environmental impacts of the application. The App Engine, for example, seeks to offer services that follow the official specifications and well recognized in the market. For example, you can use JPA (and even JDO) to access the Datastore don’t their relational, guaranteeing certain portability of code after. But the fact is that use JPA to access a relational not (without joins, aggregate, and other schema differences) is quite frustrating in practice.
Many people end up using specific frameworks for the Google Datastore, as in the article of Kimathi in this edition on GWT in Cloud. It uses the framework Objectify, specific to App Engine, to ease development with the restrictions of BigTable. On the other hand, an application developed in this way will have problems when it is migrated to another Cloud, having to rewrite that part of the code. Surely this problem can be greatly minimized with good design and modularization and encapsulation techniques. The CloudFoundry is a relatively new service from VMWare that seeks to take the next step in this matter of portability.
The platform is based on open technologies and specified, but the CloudFoundry itself is also open. In the future, the idea is that there are several companies offering solutions with CloudFoundry, allowing our apply-ing is portable between all of them. It is possible to run locally in the company CloudFroundry, is for evaluation, testing or even to have some private Cloud. The IaaS solutions like Amazon seek to escape this kind of portability problem by leaving to the developer the choice of technologies and frameworks. In this case, it’s in our hands to ensure that the choices made today will facilitate a possible migration in the future.
Cloud Computing is the great revolution in YOU of recent times. Its ease, reducing costs and immense scalability are great attractions. There are still certain concerns and important factors that should be considered at the time to opt for the Cloud and even to choose which provider you use. A lot can change with frequency in this market yet again. The App Engine, for example, recently began offering on testing MySQL as an alternative to your non-relational Datastore. I’m a big fan of using Cloud Computing  and, as every developer and architect, also have considerations and concerns.