“Cloud computing is a model for enabling
ubiquitous, convenient, on-demand network access to a shared pool of
configurable computing resources (e.g., networks, servers, storage,
applications, and services) that can be rapidly provisioned and released with
minimal management effort or service provider interaction.”
Five essential characteristics of
cloud computing
The
essential characteristics can be elaborated as follows:
• On-demand self-service: Users are able to provision cloud computing
resources without requiring human interaction, mostly done though a web-based
self-service portal (management console).
• Broad network access: Cloud computing resources are accessible over the network,
supporting heterogeneous client platforms such as mobile devices and
workstations.
• Resource pooling: Service multiple customers from the same physical
resources, by securely separating the resources on logical level.
• Rapid elasticity: Resources are provisioned and released on-demand
and/or automated based on triggers or parameters. This will make sure your
application will have exactly the capacity it needs at any point of time.
• Measured service: Resource usage are monitored, measured, and
reported (billed) transparently based on utilization. In short, pay for use
Cloud Design Objectives
The following list highlights
six design objectives for cloud computing:
• Shifting computing from
desktops to data centers Computer processing, storage, and software
delivery is shifted away from desktops and local servers and toward data centers
over the Internet.
• Service provisioning and
cloud economics Providers supply cloud services by signing SLAs with
consumers and end users. The services must be efficient in terms of computing,
storage, and power consumption. Pricing is based on a pay-as-you-go policy.
• Scalability in performance
The cloud platforms and software and infrastructure services must be able
to scale in performance as the number of users increases.
• Data privacy protection Can
you trust data centers to handle your private data and records? This concern
must be addressed to make clouds successful as trusted services.
• High quality of cloud
services The QoS of cloud computing must be standardized to make clouds
interoperable among multiple providers.
• New standards and
interfaces This refers to solving the data lock-in problem associated with
data centers or cloud providers. Universally accepted APIs and access protocols
are needed to provide high portability and flexibility of virtualized applications.
Cloud deployment models
Deployment
models define the type of access to the cloud. ie., how the cloud is located.
Cloud can have any of the four types of access: Public, Private, Hybrid and Community.
Public
cloud
Private
Cloud
Hybrid Cloud
Community
Cloud
Cloud Computing Models
Software as a Service (SaaS):
The capability provided to the consumer is to use the provider’s applications
running on a cloud infrastructure. The applications are accessible from various
client devices through either a thin client interface, such as a web browser
(e.g., web-based email), or a program interface. The consumer does not manage
or control the underlying cloud infrastructure including network, servers,
operating systems, storage, or even individual application capabilities, with
the possible exception of limited user-specific application configuration settings.
In this model, a complete application is offered to the
customer, as a service on demand. A single instance of the service runs on the
cloud & multiple end users are serviced. On the customer’s side, there is
no need for upfront investment in servers or software licenses, while for the
provider, the costs are lowered, since only a single application needs to be
hosted & maintained. Today SaaS is offered by companies such as Google (Gmail
and docs), Salesforce(CRM software), Microsoft(sharepoint), Zoho, etc.
Characteristics
of SaaS
• Web access to
commercial software
• Software is
managed from a central location
• Software
delivered in a “one to many” model
• Users not
required to handle software upgrades and patches
• Application
Programming Interfaces (APIs) allow for integration between different pieces of
software
Platform as a Service (PaaS):
The capability provided to the consumer is to deploy onto the cloud
infrastructure consumer-created or acquired applications created using
programming languages, libraries, services, and tools supported by the
provider. The consumer does not manage or control the underlying cloud
infrastructure including network, servers, operating systems, or storage, but
has control over the deployed applications and possibly configuration settings
for the application-hosting environment.
Here, a layer of software or development environment is
encapsulated & offered as a service, upon which other higher levels of
service can be built. The customer has the freedom to build his own
applications, which run on the provider’s infrastructure. To meet manageability
and scalability requirements of the applications, PaaS providers offer a
predefined combination of OS and application servers, such as LAMP platform
(Linux, Apache, MySql and PHP), restricted J2EE, Ruby etc. Google’s App Engine,
Force.com, Microsoft Azure etc are some of the popular PaaS examples.
Characteristics
of PaaS
• Services to develop, test, deploy, host
and maintain applications in the same integrated development environment. All
the varying services needed to fulfil the application development process
• Web based user interface creation tools
help to create, modify, test and deploy different UI scenarios
• Multi-tenant architecture where multiple
concurrent users utilize the same development application
• Built in scalability of deployed software
including load balancing and failover
• Integration with web services and
databases via common standards
• Support for development team collaboration
– some PaaS solutions include project planning and communication tools
• Tools to handle billing and subscription
management
Infrastructure as a Service (IaaS):
The capability provided to the consumer is to provision processing,
storage, networks, and other fundamental computing resources where the consumer
is able to deploy and run arbitrary software, which can include operating
systems and applications. The consumer does not manage or control the
underlying cloud infrastructure but has control over operating systems,
storage, and deployed applications; and possibly limited control of select
networking components (e.g., host firewalls).
IaaS
provides basic storage and computing capabilities as standardized services over
the network. Servers, storage systems, networking equipment, data centre space
etc. are pooled and made available to handle workloads. The customer would
typically deploy his own software on the infrastructure. Some common examples
are Amazon EC2, GoGrid, Rackspace cloud, etc.
Characteristics
of IaaS
• Resources are
distributed as a service
• Allows for
dynamic scaling
• Has a variable
cost, utility pricing model
• Generally includes
multiple users on a single piece of hardware
Advantages
of Cloud Computing:
Let us go thru
some of the advantages of cloud computing both from the perspective of the
enterprise and the end users:
- Cost Efficiency –
This is the biggest advantage of cloud computing. Cloud computing
eliminates the investment cost on standalone servers and respective
software. Enterprises can save on license cost and the time required
setting up these servers. Also the cloud infrastructure takes up the
maintenance job of these servers and also up-gradation of the software
required on these servers.
- Convenience and continuous
availability – The services offered by public
cloud are available over the internet and can be accessed from
anywhere. Users across different time zones and in geographic locations
can access easily to these services. Cloud also guarantees continuous
availability of these services.
- Backup and Recovery – Cloud
computing simplifies the process of backing up data and their
recovery as the data resides on cloud and not on a physical
device. Different service providers offer reliable and flexible
backup/recovery solutions.
- Environment Friendly – The
cloud infrastructure requires less resource to compute than the typical IT
infrastructure. In this approach, only the resources which are truly
required are consumed by the system.
- Scalability and Performance – Scalability
is one of the major aspects of today’s applications which come as a built
in feature for cloud deployments. These instances are dynamically deployed
as and when required. Another feature – elasticity helps
us to scale up or scale down depending upon our needs. As a consumer we
have to pay only for the applications and the storages which we need.
Cloud based
systems use the distributed architecture which offers excellent speed of
computations. Also it is the responsibility of the service provider to
ensure that the services run on high end machines. Instances can be added or
removed instantly as a when required.
- Faster Deployment and simple
Integration – One of the biggest advantages
of a cloud based system is that it can be easily setup in a very short
period. Addition of new instances is instantly done. In a cloud
environment, software can easily be integrated. Hence minimum effort is
required to customize and integrate the applications.
- Storage Capacity – Cloud
offers increased storage capacity as it can accommodate and store more
data in comparison to a personal computer since it has almost unlimited
storage capacity. Thus the worry of running out of space is ruled out and
as a consumer we do not have to think of upgrading the hardware.
- Device Diversity and Location
independence – The services offered by cloud
computing can be accessed by an array of devices which have access to
internet ranging from traditional computers to smart phones, tablets etc.
As an end user, we have the freedom of not just accessing these services
from any device but also from any location.
- On top of all
these, the learning curve of cloud computing is very small.
Disadvantages
of Cloud Computing:
Having discussed
about some of the advantages of cloud computing, let us now talk of some of the
disadvantages of cloud computing:
- Security and Privacy – Security
and privacy are the two main aspects when we talk about
data. As we have seen that by outsourcing the IT infrastructure, the
service consumer company gives away data that might be sensitive
and confidential. The consumer company has to rely on the
provider company to maintain the secrecy of their data. Data security is
such a vital issue that all possible alternatives must be explored before
taking the final call to implement cloud computing as the existence of the
company could be in danger if any data goes out. At the same time, the
cloud service providers must ensure the privacy of the data by protecting
them from unauthorized access.
- Dependency – Dependency
is one of the major drawback of cloud computing. This is known as ‘vendor-lock-in‘
as it is almost impossible to migrate from cloud vendor to another because
of the huge data migration. This may also lead to risking the security and
privacy of data.
- Downtime – Outage
and downtime are the two important aspects on which even
the best service provider of cloud computing can’t guarantee. Also we must
keep in mind that the whole setup is internet based. Thus, any downtime on
the internet side will lead to a connectivity issue.
- Limited Control –
Since the services run on a remote virtual environment, the service
consumer party have less control over the hardware and the software.
- Vulnerability – Even
today, we know that how vulnerable is the public internet. In cloud
computing since every component is available on the internet the risk of
the entire environment being highly vulnerable to hackers and unwanted
used is always there.