As I noted last week, Gartner calls cloud computing the next big thing. I characterized the ability to move from talent-constrained, capital intensive data center management to inexpensive, pay-as-you-go cloud infrastructure as too logical to be denied. Oh, there will be plenty of FUD spread about the cloud's shortcomings, but there was plenty of FUD about today's current champions when they first got started. New things always look risky compared to what you're now using -- because you've internalized its risks, while the new solution's risks are front-of-mind.
So what should you be thinking about if you want to get going with cloud computing?
Here are key factors for you to recognize:
Get used to virtualization: The foundation of cloud computing is virtualization. Cloud computing is completely different to the superficially similar external hosting, aka ASP -- a trend that crashed and burned precisely because of its differences from cloud computing. External hosting merely moves the machine from your data center to someone else's. You pay to manage a physical machine and are subject to that machine's issues: hardware breakdowns, resource limitations, and inflexible hosting. By contrast, cloud computing starts off by turning the machine into a virtual image, which resides on some physical server in the cloud's hosting environment; however, that virtual image can be shunted around, breaking the hardware dependency associated with external hosting. With hardware dependency no longer an issue, your system is insulated from hardware breakdowns -- the cloud provider will automatically move your system image to another piece of hardware while it fixes the original hardware. And if your system begins to outstrip the resources assigned to it, more can easily be added to ensure your system doesn't suffer.
This means that you'll need to get comfortable with virtualization. While cloud providers like Amazon will attempt to provide management abstractions shielding you from the virtual systems, if you drill down into your system, you'll soon see virtualization. So building up virtualization skills is a prerequisite for moving to cloud computing.
Get used to Linux: In order for cloud providers to deliver inexpensive computing, they've all leveraged Linux as their virtualization platform. While one or more of the providers will undoubtedly explore using Windows Server as the virtualization platform, it will prove difficult for them to get the numbers to pencil out -- not to mention the challenges of license management in the cloud, since Microsoft licenses are designed for a more static environment. Just as the cloud providers will attempt to shield users from virtualization, they'll attempt to do the same regarding the underlying OS, with the same results. When it comes to guest virtual machines (aka VMs), the cloud providers will support them, but you'll face the burden of license management and the reality that bring up a Microsoft virtual machine will require intervention to manage license input, a disadvantage to the immediate availability of virtual machines.
Get used to a new type of application delivery: Given that you'll be running virtual machines on top of a hypervisor and a virtual machine is a complete image containing OS, middleware, and application, soon application providers will deliver their product not on a CD, not in an installable image, but in a complete virtual machine, preconfigured, with all the other required software also installed and configured. You'll simply plop the VM down onto a hypervisor and it will be ready to run. You may have to do some final configuration to tune the VM, but the