What’s in it for you and me?
Cloud computing can be defined at two levels:
end user (you and I) and business.
For end users, cloud computing involves
using software services on the Internet and paying for the services as
they go along depending on the usage, similar to paying your power bill each
month. You pay for what you use. Example: Apple’s iTune.
For businesses, cloud computing involves
renting information technology infrastructure as opposed to buying the
infrastructure. Companies pay rent for the services used. Cloud services can include simple
storage applications to highly structured software development platforms.
A company can choose to use
the database services offered in the cloud instead of
buying the database off the shelf. The cloud service
provider maintains the database, ensures the database is running all
the time, and also provides support. At the end of the billing cycle,
the company using the cloud service pays a rent depending on the
amount of database space used. Amazon.com is one such
company providing cloud services in the industry today.
What’s The Buzz About?
While the idea of cloud computing is
not new, its application is exciting. Cloud computing, in the older days,
existed in the form of Mainframe computers. Mainframes did all the data crunching
and sent the output to the terminals. The terminals by themselves did
no computing. They simply displayed the output and were called dumb terminals.
What’s different about cloud computing?
First, availability of complete IT infrastructure on the Internet and
second the pricing model. You pay only for the amount of
storage space you use or the amount of data you download.
You do not need to spend huge sums of money on an elaborate infrastructure up
front.
Bringing It All
Together: The Cloud Ecosystem
The cloud consists of several components.
There are servers,
databases, identity management systems, billing and accounting
applications, security systems, virtualization software, and
web applications.
Server: Cloud servers are an
integral part of the cloud ecosystem. In fact,
without cloud servers there can be no cloud computing.
Servers are required to authenticate users, provide for multi tenancy
support, implement virtualization, perform billing and accounting activities,
schedule backup cycles, and enable scalability,
a key cloud computing selling point.
Database: Database forms the core of cloud computing
architecture. Database usage patterns in the cloud are constantly evolving to
keep pace with the ever changing business environment. While in the
early days of the Web 2.0 technology, databases were used primarily for read
and write activities, in the current scenario, a database has to
provide for Atomicity, Consistency, Isolation, and Durability (ACID)
compliance.
A key feature of a cloud
database is that it has to share everything as opposed to share
nothing. If data is distributed in silos, it might reduce database
performance. One way to address this issue is the use of shared-disk
database architecture for cloud computing. Shared-disk database eliminates the
need to partition data by allowing clusters of low-cost servers to
use a single collection data from a Storage Area Network (SAN) or Network
Attached Storage (NAS). All data are available to all servers; there is
no partitioning of the data.
Identity Management
System (IDM): IDMs are the gateway to the
cloud. Everyone within the cloud is mapped to the IDM. The IDM verifies the
user seeking to use a cloud service and assigns a role or a set of
roles to the user. These roles determine what the user gets to see or
use within the cloud. Typically, an IDM system consists of identifier, credentials,
core attributes, and context-specific attributes.
- Identifier: A piece of information that uniquely identifies the subject of this identity within a given context. Examples of identifiers are email addresses and Globally Unique Identifiers (GUIDs).
- Credentials: Private or public data that can be used to prove authenticity of an identity claim. For example, Emma enters in a password to prove that she is who she says she is. This mechanism works because only the authentication system and Emma should know what the password is.
- Core Attribute: Data that helps describe the identity. Core attributes may be used across a number of business or application contexts. For example, addresses and phone numbers are common attributes that are used and referenced by different business applications.
- Context-Specific Attributes: Data that helps describe the identity, but which is only referenced and used within specific context where the identity is used. For example, within a company, the employee's salary information is a context specific attribute that is interesting to the company's human resource department but not necessarily to the financial services provider.
Web Applications: Web apps
are usually characterized by advanced features such as data
storage in a cloud/cloud-like infrastructure, local for
full-offline mode cache, support for data compression, security,
and backup schedule. It can be used from web browser and/or custom built apps installed
on Internet connected devices such as desktops, mobile
phones. It can also be used to access a wider range of
services such as on-demand computing cycle, storage, and application
development platforms.
Examples include:
Mozy, Evernote, Sugar Sync, Salesforce, Dropbox, NetSuite, and Zoho.com.
Other qualifying examples such as web email (Google, Yahoo,
Microsoft Hotmail, etc.) may not be so obvious, but they
depend on cloud technology and are available offline if consumers so
choose to have them configured.
Difference between Web
apps and Cloud apps: Some
applications are built for the cloud as opposed to web
applications which are limited to online access.
Cloud applications display true
multi-tenancy to support various requirements and consumer needs,
whereas Web applications such as WebEx, electronic banking,
online shopping applications are exclusively web-based with limited options
for consumer customization.
Cloud applications are offered as services for
which users pay service charge, whereas Web applications
provide an alternative means of transaction on the Internet. Examples
include online banking or ticket booking systems.
Cloud applications support virtualization technology,
whereas Web applications should either be built to support this or
re-engineered to do so.
Cloud applications are built using development platforms,
such as VMware Cloud foundry, Google apps Engine, and Microsoft Azure, whereas
Web applications can be built using something as
basic as LAMP – Linux, Apache, MySQL, and PHP.
Cloud apps usually support flexible
pay-per-use pricing models.
Billing For Cloud services: Most services offered on the cloud
support a flexible pricing model. You pay for what you use. For
instance, if you use 10 GB bandwidth on a server for storing your data
on day one and 5 GB on day 2, you will be billed differently for these
two days. This model works best for start-ups and supports scalability in a
big way.
Backup and Recovery: A backup and recovery strategy defines how your organization
will handle the loss of data on a system and adequately recover it
to a certain prior point in time. Different types of backup and recovery strategies
are employed by businesses, such as full system backup, incremental backup,
snapshots, point-in-time backup, and real-time
backup. When planning your backup and recovery
strategy, consider the following:
- First, what is the recovery objective for the business service being considered?
- Second, what is the recovery time objective for the business service?
- Third, what is the service level agreement between the service provider and the consumer?
Virtualization:
Virtualization is the simulation of a real environment with the exact hardware
and software specifications required to run a Cloud application or a set of
applications. Virtualization allows you to save cost by merely simulating an
ecosystem instead of actually purchasing the hardware and software required to
create that environment. It is creation of a virtual (rather than actual)
version of something, such as an operating system, a server, a storage device,
or network resources.
Operating system
virtualization is the use of software to allow a piece of hardware to run
multiple operating system images at the same time. The technology got its start
on mainframes decades ago, allowing administrators to avoid wasting expensive
processing power.