Cloud computing is Internet-based computing, whereby shared resources, software and information are provided to consumers on-demand, similar to the functioning of the electricity grid. It describes a new consumption and delivery model for IT services based on the Internet and typically involves the provisioning of dynamically scalable and often virtualized resources as-a-service over the Internet. Customers do not own or maintain the physical infrastructure and avoid capital expenditure by renting resources from a third-party provider. They consume resources as-a-service and pay only for resources that they consume.
Cloud Layers
Cloud Applications or Software as a Service (SaaS) refers to software delivered over a browser. SaaS eliminates the need to install and run applications on the customer's own computers/servers and simplifies maintenance, upgrades and support. Application delivery is typically closer to a one-to-many model (single instance, multi-tenant architecture) than to a one-to-one model. Examples of SaaS are Facebook, SalesForce, BaseCamp, etc.
Cloud platform services or Platform as a Service (PaaS) refers to an environment for software development, storage and hosting delivered as-a-service over the Internet. It facilitates the development and deployment of applications without the cost and complexity of buying, managing and configuring the underlying hardware, middleware and software layers. Examples of PaaS are Google App Engine, Force.com, Microsoft Azure, WOLF, etc.
Cloud infrastructure services or Infrastructure as a Service (IaaS) delivers a computing infrastructure, typically a virtualization environment, as-a-service. Rather than purchasing & configuring servers, storage and network equipment, the client can utilize these resources as a fully outsourced service. The service is typically billed on a utility computing basis and the amount of resources consumed (and therefore the cost) will typically reflect the level of activity. Examples of IaaS are virtual servers leased by Amazon, Rackspace, GoGrid, etc.
Business Utility SaaS - Applications like Salesforce automation are used by businesses and individuals for managing and collecting data, streamlining collaborative processes and providing actionable analysis. Popular use cases are Customer Relationship Management (CRM), Human Resources and Accounting.
Social Networking SaaS - Applications like Facebook are used by individuals for networking and sharing information, photos, videos, etc.
Not all Platform-as-a-Service (PaaS) solutions are created equal. You need to carefully evaluate PaaS offerings and choose the platform which suits your needs:
Social Application Platforms - Platforms such as Facebook provide APIs so that developers can write new application functionality and make it available to the platform’s users.
Computing Platforms - Platforms such as Amazon Web Services, Rackspace and others provide storage, processing and bandwidth as-a-service. As a developer you can upload a traditional software stack and run applications on their computing infrastructure.
Web Application Platforms – Google Apps provides APIs and functionalities for developers to build Web applications that leverage its different services such as mapping, calendar and spreadsheets. More ideal for light weight web applications!
Business Application Platforms - Platforms such as WOLF provide a layer of abstraction from the underlying technical complexities and are specifically geared towards transactional business applications such as online databases and integration, workflow, and user interface services. Developers & business analysts can develop complex and robust business applications with a custom user interface – providing higher flexibility with lesser technical efforts and minimum maintenance.
There are different types of Cloud IaaS providers. IaaS providers may offer one or more of the following:
Public Cloud:
Public cloud refers to Cloud Computing in the traditional mainstream sense, whereby
resources are dynamically provisioned on a fine-grained, self-service basis over
the Internet. These resources are provisioned via web applications/web services,
from an off-site third-party provider who shares resources and bills the customer
on a fine-grained utility computing basis.
Community Cloud:
A community cloud is established among several organizations that have similar requirements
and seek to share their computing infrastructure in order to realize some of the
benefits of the Public Cloud. With the costs spread over fewer users than a Public
Cloud (but more than a single tenant) this option is more expensive but may offer
a higher level of privacy, security and/or policy compliance.
Hybrid Cloud:
A Cloud Computing environment in which an organization manages some computing resources
in-house and has others provided externally on the Public Cloud. One of the primary
reasons the hybrid model is popular is that organizations prefer to leverage their
existing (often large) investments in computing infrastructure. Furthermore, many
organizations prefer to keep sensitive data under their own control to ensure security
and/or compliance.
Private Cloud:
A term that is similar to, and derived from, the concept of Virtual Private Network
(VPN), but applied to Cloud Computing. The Private Cloud delivers the benefits of
Cloud Computing with the option to optimize on data security, corporate governance
and reliability.
