Look up in the sky and you might see cirrus, stratus, or cumulus clouds. Similarly, cloud computing comes in multiple flavors. The one you should choose depends on, among other things, how much vendor lock-in you're prepared to accept in exchange for banishing complexity from your IT organization.At one end of the spectrum are classic Software-as-a-Service offerings, the most famous of which is Salesforce.com's cloud-based CRM suite. Salesforce and other SaaS offerings don't require much labor from the end-user perspective. Just connect to the service and off you go.
The problem arises if you need to modify or customize a Salesforce module. It can be done, as long as you use Salesforce's Apex programming language. But Apex might not play nicely with other business apps written for other platforms.
"A programming language is effective if you're trying to lock in a community of users," said Alex Barnett, group manager for developer relations at Intuit, during a Wednesday panel discussion called "Should SaaS Be Your Next Development Environment," at Interop New York.
The alternative is to opt for a low-level cloud offering, such as Amazon's Elastic Compute Cloud (EC2), which is more IaaS (Infrastructure-as-a-Service) than SaaS. EC2 offers outside-the-firewall compute resources, upon which organizations can build what they like, in whatever language they choose.
But that also has a downside. It takes more time, skill and development resources to build apps that run on an IaaS engine than it does to tap into a pre-built service like Salesforce. There's also the question of how to connect apps running on EC2 or other IaaS platforms to those maintained on local services.
Panelist Dave Mitchell, CTO and founder of Bungee Labs, noted that there's "a lot of infrastructure just starting to emerge that provides integration," but added that there's still the danger cloud-based apps will end up "on a desert island," isolated and disconnected from an organization's other IT assets.
Between SaaS and IaaS is the concept of Platform-as-a-Service. PaaS services, like Microsoft's Windows Azure cloud OS, don't offer applications directly, but provide more than the bare bones environment found in IaaS.
"If we were having this discussion next year I suspect we would be talking a lot more about Azure," said Barnett.
PaaS holds appeal as a middle of the road solution between IaaS and SaaS, but isn't worry free. For instance, an organization running VMWare's virtualization technology internally might have difficulty porting systems to Azure because Microsoft's own Hyper-V technology provides the virtualization engine for Azure.
The upshot? Determining whether you're best off with SaaS, IaaS, or PaaS requires a deep knowledge of your organization's existing application base, development skills, and risk tolerances-and accepting that each model carries its own set of pros and cons.