If you only need milk, would you buy a cow? If not, please consider the cloud computing stack for your IT requirements.
There are 3 top flavors of cloud computing (new models are emerging like BpaS, DaaS etc.) – Infrastructure as a Service (IaaS), Platform as a Service (PaaS) and the mother of all Software as a Service (SaaS). Let’s have a geek dive into these flavors.
SaaS is the most enhanced category of cloud services and so far the only segment of cloud computing that has proven useful as a business model. With SaaS, software applications are rented from a provider as opposed to purchased for enterprise installation and deployment. Typically the services are provided in a 'pay-as-you-go' model with payments charged on a monthly basis based on the number of users or services consumed. The key segments within the SaaS segments include messaging, collaboration and Customer Relationship Management (CRM). Salesforce.com is an example of a SAAS where ERP is used as an on demand service. Microsoft BPOS provides SharePoint, Exchange and CRM as a service over internet.
In simple terms, IaaS is selling hardware as a service over the cloud. The hardware includes processing power, firewalls, network load balancing, availability, storage and so on. The IaaS customer is the owner of software that has some SLA’s for end users. To meet these SLA’s (e.g. Availability, Performance, Security etc.) the software needs to be hosted in an environment that is built to provide the failover, compute power and security. The IaaS customer now needs a service provider who shall provide the hosting environment that meets the SLA’s. The IaaS service provider leverages virtualization to provide the computing power. The software owner needs to deploy the software in a virtual environment locally and then upload the Virtual Machine to the hosting environment of the IaaS service provider. From here, based on the SLA’s, the service provider configures and host the software application as per the SLA’s required.
The leading IaaS service providers are Amazon and Rackspace. The billing is generally based on processor usage, storage and data transfer. However, the additional billing items may include- security, compliance, usage reports etc.
PaaS provides an application platform in the cloud that lets you deploy any application you develop, or any application you acquire from another vendor. PaaS offerings generally include facilities for software application design, development, testing, deployment and hosting. PaaS may also include - database integration, security, scalability, storage, persistence, state management, application versioning, application instrumentation and developer community facilitation.
In short, PaaS makes all the required facilities that support the full software life cycle of building or delivering applications through the Web, while assuring the availability of services from the Internet
Windows Azure is an example of Platform as a Service. Azure is a foundation for running Windows applications and storing data in the cloud.
To run an application, a developer accesses the Windows Azure portal through her Web browser, signing in with a Windows Live ID. She then chooses whether to create a hosting account for running applications, a storage account for storing data, or both. Once the developer has a hosting account, she can upload her application, specifying how many instances the application needs. Windows Azure then creates the necessary Virtual Machines and runs the application.
I think it's getting complex now. I’ll take a pause and try to make it simple enough in upcoming posts.