Unit 1
Unit 1
Cloud Computing
Cloud computing is a general term for anything that involves delivering hosted services over
the Internet.
“Cloud computing is the use of computing resources (hardware and software) that are
delivered as a service over a network (typically the Internet). The name comes from the
common use of a cloud-shaped symbol as an abstraction for the complex infrastructure it
contains in system diagrams. Cloud computing entrusts remote services with a user's data,
software and computation.”
Cloud Benefits
Pay as you go
Focus on business rather than IT
Elasticity - Scale up and down based on business need
Cloud Models
Deployment Models : Public Cloud, Private Cloud, Hybrid Cloud, Community Cloud
Service Models : SaaS, PaaS, IaaS
Essential Characteristics
1
Measured Service: Allows monitoring, control and reporting of usage. It also allows
for transparent between the provider and the client.
Hardware Virtualization
The cloud computing service providers basically provides large scale data center composed
of millions of computers. Such data centers are built to serve many consumers and host
many isolated applications. For this purpose
2
hardware virtualization can be considered. The idea of hardware virtualization comes from
distributed operating system, Hardware virtualization allows running multiple operating
system call Virtual machines and software stacks on a single physical platform, Virtual
machine monitor call hypervisor is hypervisor between guest os and host os as shown in
below figure 1.2
Hardware Virtualization
Virtual machine 1, Virtual machine 2 acts as a guest operating system which is run on single
physical machine at that time hardware is virtualized such as processor, I/O devices and
memory , hypervisor Workload isolation is achieved through API by the service providers,
workload migration, VM resume, VM migration, VM pause, VM clone these capabilities also
applied using API at that time VM state observation is more important, A number of VMM
platform available to handle VMs and Physical machines. The most notables ones is
VMWare, Xen and KVM, VirtualBox. In our work we use VirtualBox to create cloud
environments and handling all VMs using API of VirtualBox. VirtualBox is a powerful x86
and AMD64/Intel64 virtualization product for enterprise as well as home use. Not only is
VirtualBox an extremely feature rich, high performance product for enterprise customers, it is
also the only professional solution that is freely available as Open Source Software under the
terms of the GNU General Public License (GPL) version 2.
Automatic Computing
Autonomic or self-managing system rely on monitoring probes and sensors, on adaptation
engine for computing optimization based on monitoring data, and on effectors to carry out
changes on the system. IBM Automatic Computing Initiative has contributing to define four
characteristics of automatic systems such as : (i) self-configuration, (ii) self-optimization
(iii)self-healing (iv) self- protection, IBM also introduced automatic control loops of
automatic managers called MAPE-K i.e. Monitor Analyze Plan Execute-Knowledge [45],
[46].
3
3. Layers and Types of Clouds
Cloud computing
Cloud computing is defined as delivery of hosted services over the Internet in an on-
demand model. A cloud provider offers resources (hardware, software or development
stacks) as services over the internet that can be consumed on a pay-as-you-use basis.
“Software as a Service is the hosted delivery of Software that consumers can access over the
internet.” This definition is rather simplistic. By this definition web based email services such
as Gmail, Hotmail etc are SaaS applications. Two features of a SaaS application are
scalability and configurability. SaaS applications should be able to quickly scale with
demand. In mature SaaS applications, the customer should be able to customize their instance
of the software using meta-data. Depending on who you talk to multi-tenancy is yet another
feature of SaaS applications. Multiple customers share a single instance of the software and
the provider can optimize the resources to suit individual demands.
Google Apps - a SaaS version of desktop applications where the software is hosted on
google’s servers. Salesforce - SaaS CRM products.
Platform as a Service offers a complete platform and the tools to develop and deploy
applications on the platform. Typically the PaaS vendors also provide tools and other services
that enable rapid application development. Applications developed on the platform are tied to
the platform. Each platform has its own development model (can be more aptly called quirks)
and developers need to be aware of these.
4
App Engine is a PaaS offering from Google. Applications are developed and deployed on
Google’s infrastructure. Google App Engine uses big table to store data. This is an example
of platform specific development, a change that traditional developers will have to face when
they move to App Engine. It does not support relational databases.
Force.com is a PaaS offering from Salesforce. Developers can create applications that run on
the force.com platform. It includes database, workflow and UI tools. Applications can be
built using their proprietary Apex programming language or using Visual Force (a tag based
markup language). Microsoft Azure is Microsoft’s platform as a service offering. It
includes an OS with .NET runtime, a database (SQL Azure) and other services that make it
easier to couple on-premise and off-premise applications.
A different way to think about the different layers of cloud computing is to think in
terms of control that the customer has has:
Types Of Cloud
Cloud computing is usually described in one of two ways. Either based on the cloud
location, or on the service that the cloud is offering.
Based on a cloud location, we can classify cloud as:
public,
private,
hybrid
community cloud
Based on a service that the cloud is offering, we are speaking of either:
IaaS (Infrastructure-as-a-Service)
PaaS (Platform-as-a-Service)
SaaS (Software-as-a-Service)
or, Storage, Database, Information, Process, Application, Integration, Security,
5
Management, Testing-as-a-service
When we talk about public cloud, we mean that the whole computing infrastructure is
located on the premises of a cloud computing company that offers the cloud service. The
location remains, thus, separate from the customer and he has no physical control over the
infrastructure.
As public clouds use shared resources, they do excel mostly in performance, but are also most
vulnerable to various attacks.
Hybrid cloud, of course, means, using both private and public clouds, depending on their
purpose.
For example, public cloud can be used to interact with customers, while keeping their data
secured through a private cloud.
Cloud Service
The most popular services of the cloud are infrastructure,platform, software, or storage.
The most common cloud service is that one offering data storage disks and virtual servers,
i.e. infrastructure. Examples of Infrastructure-as-a-Service (IaaS) companies are Amazon,
Rackspace, Flexiscale.
If the cloud offers a development platform, and this includes operating system, programming
6
language execution environment, database, and web server, the model is known as Platform-
as-a-Service (PaaS), examples of which are Google App Engine, Microsoft Azure,
Salesforce. Operating system can be frequently upgraded and developed with PaaS, services
can be obtained from diverse sources, and programming can be worked in teams
(geographically distributed).
Software-as-a-Service (SaaS), finally, means that users can access various software
applications on a pay-per-use basis. As opposed to buying licensed programs, often very
expensive. Examples of such services include widely used GMail, or Google Docs.
Public Clouds
A public cloud is basically the internet. Service providers use the internet to make resources,
such as applications (also known as Software-as-a-service) and storage, available to the
general public, or on a ‘public cloud. Examples of public clouds include Amazon Elastic
Compute Cloud (EC2), IBM’s Blue Cloud, Sun Cloud, Google AppEngine and Windows
Azure Services Platform.
For users, these types of clouds will provide the best economies of scale, are inexpensive to
set-up because hardware, application and bandwidth costs are covered by the provider. It’s a
pay-per-usage model and the only costs incurred are based on the capacity that is used.
There are some limitations, however; the public cloud may not be the right fit for every
organization. The model can limit configuration, security, and SLA specificity, making it
less-than-ideal for services using sensitive data that is subject to compliancy regulations.
7
Private Clouds
Private clouds are data center architectures owned by a single company that provides
flexibility, scalability, provisioning, automation and monitoring. The goal of a private cloud
is not sell “as-a-service” offerings to external customers but instead to gain the benefits of
cloud architecture without giving up the control of maintaining your own data center.
Private clouds can be expensive with typically modest economies of scale. This is usually not
an option for the average Small-to-Medium sized business and is most typically put to use by
large enterprises. Private clouds are driven by concerns around security and compliance, and
keeping assets within the firewall.
Hybrid Clouds
The ability to maintain an off-premise disaster recovery site for most organizations is
impossible due to cost. While there are lower cost solutions and alternatives the lower down
the spectrum an organization gets, the capability to recover data quickly reduces. Cloud based
Disaster Recovery (DR)/Business Continuity (BC) services allow organizations to contract
failover out to a Managed Services Provider that maintains multi-tenant infrastructure for
DR/BC, and specializes in getting business back online quickly.
The resource allocation should be elastic, in the sense that it should change
appropriately and quickly with the demand. If on a particular day the demand increases
8
several times, then the system should be elastic enough to meet that additional need, and
should return to the normal level when the demand decreases.
The decision to switch to cloud computing should not be based on the hype in the
industry. A good understanding of the technology enables the user to make smarter
decisions. Knowing all the features will empower the business users to understand and
negotiate with the service providers in a proactive manner.
Cloud infrastructure consists of all of the hardware and software elements needed for
cloud computing, including:
Compute (server)
Networking
Storage
Virtualization resources
Cloud infrastructure types usually also include a user interface (UI) for managing
these virtual resources.
9
Infrastructure as a Service, or IaaS, is a prominent and accessible example of this
model. With IaaS, a team or enterprise acquires the computing infrastructure it needs
over the Internet, including computing power (whether on physical or, more likely,
virtual machines), storage and plenty of related needs such as load balancers and
firewalls. They do this in lieu of provisioning and managing their own physical
infrastructure. Instead, they lease the resources they need from the IaaS provider.
Internal users, such as developers or any other roles that consume cloud resources.
10
strategies continue to evolve into multi-cloud and hybrid cloud models. In these
more distributed infrastructure approaches, enterprises must allocate and manage
resources not just from a single shared pool or platform, but across multiple
heterogeneous environments. Cloud infrastructure management interface (CIMI), an
open standard API, can help streamline this management through a system called
Representational State Transfer (REST).
Cloud infrastructure management tools give engineers and other IT professionals the
means to manage the day-to-day operations of their cloud environments.
While cloud providers often offer their native management controls, they usually
only enable control over their particular platform and services. Third-party cloud
management tools typically promise a “360-degree view” and management
capabilities across all environments, which may be necessary in multi-cloud and
hybrid cloud environments.
11
This also includes features for enabling and managing self-service provisioning, in
which end users use a dashboard or other mechanisms for standing up their own
resources as needed, based on predetermined rules.
Security: Cloud infrastructure management tools are another part of a holistic cloud
security strategy. They are one mechanism for properly configuring a cloud
provider’s native security controls based on a particular setup and needs.
Iaas is also known as Hardware as a Service (HaaS). It is one of the layers of the
cloud computing platform. It allows customers to outsource their IT infrastructures
such as servers, networking, processing, storage, virtual machines, and other
resources. Customers access these resources on the Internet using a pay-as-per use
model.
In traditional hosting services, IT infrastructure was rented out for a specific period
of time, with pre-determined hardware configuration. The client paid for the
configuration and time, regardless of the actual use. With the help of the IaaS cloud
computing platform layer, clients can dynamically scale the configuration to meet
12
changing requirements and are billed only for the services actually used.
IaaS cloud computing platform layer eliminates the need for every organization to
maintain the IT infrastructure.
IaaS is offered in three models: public, private, and hybrid cloud. The private cloud
implies that the infrastructure resides at the customer-premise. In the case of public
cloud, it is located at the cloud computing platform vendor's data center, and the
hybrid cloud is a combination of the two in which the customer selects the best of
both public cloud or private cloud.
Infrastructure as a Service
1. Shared infrastructure
3. Pay-as-per-use model
IaaS providers provide services based on the pay-as-per-use basis. The users are
required to pay for what they have used.
On-demand scalability is one of the biggest advantages of IaaS. Using IaaS, users do
not worry about to upgrade software and troubleshoot the issues related to hardware
components.
1. Security
Security is one of the biggest issues in IaaS. Most of the IaaS providers are not able
to provide 100% security.
Although IaaS service providers maintain the software, but they do not upgrade the
software for some organizations.
3. Interoperability issues
It is difficult to migrate VM from one IaaS provider to the other, so the customers
might face problem related to vendor lock-in.
IaaS cloud computing platform cannot replace the traditional hosting method, but it
provides more than that, and each resource which are used are predictable as per the
usage.
IaaS cloud computing platform may not eliminate the need for an in-house IT
department. It will be needed to monitor or control the IaaS setup. IT salary
expenditure might not reduce significantly, but other IT expenses can be reduced.
Breakdowns at the IaaS cloud computing platform vendor's can bring your business
to the halt stage. Assess the IaaS cloud computing platform vendor's stability and
finances. Make sure that SLAs (i.e., Service Level Agreement) provide backups for
data, hardware, network, and application failures. Image portability and third-party
support is a plus point.
The IaaS cloud computing platform vendor can get access to your sensitive data. So,
engage with credible companies or organizations. Study their security policies and
precautions.
Top Iaas Providers who are providing IaaS cloud computing platform
14
IaaS Vendor Iaas Solution Details
15
Technologies by HP's converged infrastructure. The vendor
offers all three types of cloud services: IaaS,
PaaS, and SaaS.
PaaS includes infrastructure (servers, storage, and networking) and platform (middleware,
development tools, database management systems, business intelligence, and more) to support the
web application life cycle.
PaaS providers provide the Programming languages, Application frameworks, Databases, and
Other tools:
1. Programming languages
16
PaaS providers provide various programming languages for the developers to develop the
applications. Some popular programming languages provided by PaaS providers are Java, PHP,
Ruby, Perl, and Go.
2. Application frameworks
PaaS providers provide application frameworks to easily understand the application development.
Some popular application frameworks provided by PaaS providers are Node.js, Drupal, Joomla,
WordPress, Spring, Play, Rack, and Zend.
3. Databases
PaaS providers provide various databases such as ClearDB, PostgreSQL, MongoDB, and Redis to
communicate with the applications.
4. Other tools
PaaS providers provide various other tools that are required to develop, test, and deploy the
applications.
Advantages of PaaS
1) Simplified Development
PaaS allows developers to focus on development and innovation without worrying about
infrastructure management.
2) Lower risk
No need for up-front investment in hardware and software. Developers only need a PC and an
internet connection to start building applications.
Some PaaS vendors also provide already defined business functionality so that users can avoid
building everything from very scratch and hence can directly start the projects only.
4) Instant community
PaaS vendors frequently provide online communities where the developer can get the ideas to
share experiences and seek advice from others.
5) Scalability
Applications deployed can scale from one to thousands of users without any changes to the
applications.
1) Vendor lock-in
17
One has to write the applications according to the platform provided by the PaaS vendor, so the
migration of an application to another PaaS vendor would be a problem.
2) Data Privacy
Corporate data, whether it can be critical or not, will be private, so if it is not located within the
walls of the company, there can be a risk in terms of privacy of data.
It may happen that some applications are local, and some are in the cloud. So there will be
chances of increased complexity when we want to use data which in the cloud with the local data.
The below table shows some popular PaaS providers and services that are
provided by them -
Providers Services
Google App Engine App Identity, URL Fetch, Cloud storage client
(GAE) library, Logservice
18
Openshift RedHat, Microsoft Azure.
The cloud provider should be able to answer all the above questions in detail, so that you
know exactly where your data is stored and how they will protect your data against internal
and external threats. Moreover, how can you retrieve that data if it becomes necessary.
2. Service Quality
Service quality is often one of the most significant factors that businesses cite as a reason for
not moving their business applications to the cloud. Often businesses feel as though the SLAs
provided by the cloud providers today are not adequate to assure the requirements for running
a production application on the cloud, especially those related to availability, performance
and scalability.
According to a recent survey 43% of IT decision makers are planning to invest more into
19
cloud computing this year. CIOs need assurance that the company’s data will be secure and
available, and the service reliable at all times. Ensuring maximum upkeep of the service is
paramount for the profitability and sustainability of the business. We’ve put together a list of
ten questions you should ask a provider before signing the contract;
Without proficient service quality and comprehensive answers to the above questions,
businesses will be reluctant to host their critical infrastructure within the cloud.
4. Access to data
Cloud-based servers do not always have the most effective or appropriate customer service
support systems. CIOs often express their concerns around data ownership and losing control
of their data when moving to the cloud, but this shouldn’t be an issue. Selecting where and
how your data is stored is an important element within the decision making process.
Integration is a problem for many organisations. Ensuring that all of the applications are able
to seamlessly integrate with one another is also a common challenge.
Important questions you should ask a cloud provider;
20
5. Transition to the cloud
Many cloud adoption challenges are unknown due to the fact that cloud technology is still in
its relative infancy. CIOs are challenged deciding on the best way to transition to the cloud
and finding a cloud solution that meets the aims of the businesses, whilst improving
efficiencies.
Although transitioning to the cloud is a complex and involved process, there isn’t one route to
success. CIOs must ensure that the proposed solution compliments their business model.
There are various ways businesses can transition to the cloud. Whether it’s via private, public
or hybrid technologies, identifying the right service model for your business is a vital step.
Questions that a cloud provider should ask you;
Migrating data poses a number of risks for organization’s if not handled correctly.
Developing a data migration strategy that integrates seamlessly with the current IT
infrastructure is key to overall success.
CIOs are challenged with finding the right service model for their business. Finding a
provider that will allow you to create a customized computing environment is vital.
The first step in transitioning to the cloud is being able to identify the challenges and working
with your chosen cloud provider to navigate around these barriers in order to facilitate a
successful cloud environment for the business. Whether Public, Private or Hybrid, making
sure you ask the right questions and understand the risks for your business is imperative.
21