Hybrid cloud. You're all aiming for it--that's what vendors, analysts and respondents to a soon-to-be-released private cloud survey are saying. The upcoming InformationWeek survey found that 61% of those building a private cloud and currently using public cloud plan to adopt a hybrid-cloud approach. Let's see what needs to be done before you get there.
First, let's assume that hybrid cloud means running a set of applications across a private cloud (a cloud infrastructure you own and manage), and a public cloud (compute, storage and networking resources that someone else owns and manages but you use/lease/rent). Sometimes the application is here, sometimes it's there, and sometimes it's in both places. There are a few hurdles to get over.
You have to get the application and its associated data to the right place at the right time, which isn't as easy as it may seem. Many enterprise applications are built with the assumption that the stuff they depend on will be close by and if more processing power is needed, then you can add another server and direct load to it. If you're going to use a hybrid cloud to move processing between clouds, then you need to make sure the applications are already residing in both places. Given the size of many virtual machines (VM)--measured in the tens of gigabytes--you will need to pre-position the bits and keep them up to date or wait for several hours, days or weeks to get the bits where they need to be.
There are several ways to position the applications: The most likely is building an OS image in the cloud service and installing your applications there, rather than trying to move an existing VM from your private-cloud environment to a public cloud. Frankly, the transport time to move a VM from here to there will likely be so long that it would be faster to re-provision. With management tools like Puppet and Chef, ensuring that servers and applications are properly configured is pretty easy.
Moving the data is a different issue. It's simplistic, and likely wrong, to think that you need to move your entire data store to either location. You may find you can get away with keeping your data in one location and accessing it from anywhere. Obviously, you need to be aware of the additional delay and bandwidth costs, but a few milliseconds won't matter much, depending on your application. Oh, I know delay is cumulative and reducing delay is always a good thing, but here you have balance-acceptable delay versus the benefit of a hybrid cloud. You may even be able to mitigate delay, with some creative pre-fetching, caching and other application-level tuning.