Cloud Computing - Unit - 1
Cloud Computing - Unit - 1
Unit - I
Shilpa Das
Definition of Cloud Computing
• It represents a real paradigm shift in the way in which systems are deployed.
• The massive scale of cloud computing systems was enabled by the popularization of the Internet and the
growth of some large service companies.
• It makes the long-held dream of utility computing possible with a pay-as-you-go, infinitely scalable,
universally available system. With cloud computing, you can start very small and become big very fast.
Basic Structure of Cloud Computing
• Easily Expandable
• Adding new computers is hidden from users
• Continuous Availability
• Failures in one component can be covered by other components
• Supported by Middleware
Advantages of Distributed System over
Centralized System (SIRI)
• Speed - When used to implement parallel processing where only goal is to achieve maximum
speed on a single problem, distributed systems can achieve very high speed as compared to
the centralized ones.
• Inherent Distribution- Another reason for building a distributed system is that some
applications are inherently distributed. Banking, Airline reservation etc. are examples of the
applications that are inherently distributed . When all the branches of a bank are connected,
we have a commercial distributed system.
• Reliability- By distributing the workload over many machines, a single chip failure will bring
down at most one machine, leaving the rest intact. For critical applications, such as control of
nuclear reactors or aircraft, using a distributed system to achieve high reliability may be a
dominant consideration
• Incremental Growth- Often a company will buy a mainframe with the intention of doing all
its work on it. If the company prospers and the workload grows, at a certain point the
mainframe will no longer be adequate.
Disadvantages of Distributed
System
• Software: difficult to develop software for distributed systems
• Administration issues
Grid Computing
• A computing grid is a distributed system consisting of a large number of loosely coupled, heterogeneous, and
geographically dispersed systems in different administrative domains. The term computing grid is a metaphor
for accessing computer power with similar ease as we access power provided by the electric grid. Software
libraries known as middleware have been furiously developed since the early 1990s to facilitate access to grid
services.
• In retrospect, two basic assumptions about the infrastructure prevented the grid movement from
having the impact its supporters were hoping for. The first is the heterogeneity of the individual systems
interconnected by the grid; the second is that systems in different administrative domains are expected to
cooperate seamlessly. Indeed, the heterogeneity of the hardware and of system software poses significant
challenges for application development and for application mobility.
• At the same time, critical areas of system management, including scheduling, optimization of resource
allocation, load balancing, and fault tolerance, are extremely difficult in a heterogeneous system. The fact that
resources are in different administrative domains further complicates many already difficult problems related
to security and resource management. Although very popular in the science and engineering communities, the
grid movement did not address the major concerns of the enterprise computing communities and did not make
a noticeable impact on the IT industry.
Grid Computing
• Computing grids are conceptually and logically like electrical grids. In an electrical grid, wall outlet
allow us to connect to an infrastructure of resources which generate and distribute the electricity.
Likewise, in the IT industry, grid computing uses middleware to coordinate distinct IT resources
over the network, allowing them to function and work as a virtual whole.
• The goal of a computing grid , like that of a electrical grid, is to provide users with access to the
resources they need, when they need them and to provide remote access to IT assets and
aggregating processing power.
• Grid provides a series of distributed computing resources via LAN or WAN to the terminal user’s
application, as if he is using a super virtual computer.Grid computing is the integration of computer
resources for achieving similar objective.
• Grids are frequently created with middleware software libraries of a common grid.
• Grid Computing is a subset of distributed computing, where a virtual super computer comprises of
machines on a network connected by some bus, mostly Ethernet or sometimes the Internet.
• Grids are a type of dispersed computing system, whereas a virtualized super computer is made
from various networked.
Grid Computing
• Grids focus on two different but associated objectives—supplying isolated access to IT resources
and building up processing control.
• The grid is a technology which controls two factors—allocation and trust.
For controlling the network and it’s resources a software/networking protocol is used generaly known
as Middleware. This is responsible for administrating the network and the control nodes are merely it’s
executors. As a grid computing system should use only unused resources of a computer, it is the job of
the control node that any provider is not overloaded with tasks.
Advantages/ Disadvantage of Grid
Computing
• Advantages -
• Can solve larger, more complex problems in a shorter time
• Easier to collaborate with other organizations
• Make better use of existing hardware, like parallel execution.
• They are inexpensive and scalable.
• Disadvantages -
• Grid software and standards are still evolving
• Learning curve to get started
• Non-interactive job submission
• Some applications may not work with full potential.
Mobile Computing
• Mobile Computing refers a technology that allows transmission of data, voice and video
via a computer or any other wireless enabled device. It is free from having a connection
with a fixed physical link. It facilitates the users to move from one physical location to
another during communication.
• While cloud computing enables us to store and manage our data and information,
mobile computing allows us to access data and information via a mobile device. By
being aware of the duties and security of each, we may use data more efficiently and
utilize tools that organize and speed up the process.
• Some of the typical characteristics of mobile computing are - Portability - User Mobility,
Session and Service Mobility, Social Interactivity, Connectivity, Wireless
Communication, Small Size.
Mobile Computing
Mobile Cloud Computing
• MCC stands for Mobile Cloud Computing which is defined as a combination of mobile computing,
cloud computing, and wireless network that come up together purpose such as rich computational
resources to mobile users, network operators, as well as to cloud computing providers. Mobile
Cloud Computing is meant to make it possible for rich mobile applications to be executed on a
different number of mobile devices. In this technology, data processing, and data storage happen
outside of mobile devices. Mobile Cloud Computing applications leverage this IT architecture to
generate the following advantages:
• Cluster computing gives a relatively inexpensive, unconventional to the large server or mainframe
computer solutions.It resolves the demand for content criticality and process services in a faster way.
• Many organizations and IT companies are implementing cluster computing to augment their
scalability, availability, processing speed and resource management at economic prices.
• It ensures that computational power is always available.It provides a single general strategy for the
implementation and application of parallel high-performance systems independent of certain
hardware vendors and their product decisions.
Cluster Computing
What is Cluster Computing?
•A computer cluster is a group of linked computers, working together closely so that in
many respects they form a single computer.
•The components of a cluster are commonly, but not always, connected to each other
through fast local area networks.
•Clusters are usually deployed to improve performance and/or availability over that
provided by a single computer, while typically being much more cost-effective than single
computers of comparable speed.
Cluster
What is Cluster Computing?
• High Availability (HA) and failover clusters –
1. These models are built to provide an availability of services and resources in an
uninterrupted manner through the use of implicit redundancy to the system.
2. If a cluster node fails (failover), applications or services may be available in another
node.
3. These types are used to cluster data base of critical missions, mail, file and
application servers.
• Load balancing (LB) –
1. This model distributes incoming traffic or requests for resources from nodes that
run the same programs between machines that make up the cluster.
2. If a node fails, the requests are redistributed among the nodes available.
3. This type of solution is usually used for Web servers .
Load Balancing
Types of cluster computing
• HA &LB combination –
1. As its name says, it combines the features of both types of
cluster, thereby increasing the availability and scalability of
services and resources.
2. This type of cluster configuration is widely used in web,
email, news, or ftp servers.
Advantages of Cluster Computing :
• 1. High Performance : The systems offer better and enhanced performance than that of mainframe computer
networks.
• 4. Expandability : Computer clusters can be expanded easily by adding additional computers to the network.
Cluster computing is capable of combining several additional resources or the networks to the existing computer
system.
• 5. Availability : The other nodes will be active when one node gets failed and will function as a proxy for the failed
node. This makes sure for enhanced availability.
• 6. Flexibility : It can be upgraded to the superior specification or additional nodes can be added.
Disadvantages of Cluster Computing
:
• 1. High cost : It is not so much cost-effective due to its high
hardware and its design.
• Connectivity – Mobile computing keeps you connected to the Internet, allowing you to access
information, stay in touch with others, and collaborate with colleagues and classmates.
• Efficiency – Mobile computing helps you be more efficient, allowing you to complete tasks quickly
and easily while on the go.
• Productivity – Mobile computing can increase productivity, as you can take care of important tasks
and responsibilities while away from your desk.
• Innovation – Mobile computing is constantly advancing and evolving, providing new and innovative
ways to stay connected and get things done.
Disadvantages of Mobile Computing
• Dependence – Mobile computing can lead to a dependence on technology, making it difficult to
disconnect and enjoy life without constant digital distraction.
• Battery Life – Mobile devices have limited battery life, requiring frequent recharging and causing
inconvenience and disruption.
• Security Concerns – Mobile devices can be vulnerable to cyberattacks and data theft, putting
personal information and sensitive data at risk.
• Cost – Mobile computing can be expensive, with high costs for devices, data plans, and
accessories.
• Physical Damage – Mobile devices are small and fragile, making them susceptible to physical
damage from drops, spills, and other accidents.
Introduction to Cloud Computing
• When computing resources in distant data centers are used rather than local computing systems, we talk about network-
centric computing and network-centric content.
• Advancements in networking and other areas are responsible for the acceptance of the two new computing models and
led to the grid computing movement in the early 1990s and, since 2005, to utility computing and cloud computing.
• In utility computing the hardware and software resources are concentrated in large data centers and users can pay as they
consume computing, storage, and communication resources. Utility computing often requires a cloud-like infrastructure,
but its focus is on the business model for providing the computing services.
• Cloud computing is a path to utility computing embraced by major IT companies such as Amazon, Apple, Google, HP, IBM,
Microsoft, Oracle, and others. Cloud computing delivery models, deployment models, defining attributes, resources, and
organization of the infrastructure.
• There are three cloud delivery models: Software-as-a-Service (SaaS), Platform-as-a-Service (PaaS), and Infrastructure-as-a
Service (IaaS), deployed as public, private, community, and hybrid clouds.
Cloud computing: Delivery models, deployment models,
defining attributes, resources, and organization of the
infrastructure.
Cloud Computing Attributes
• The defining attributes of the new philosophy for delivering computing services are as follows:
• Cloud computing uses Internet technologies to offer elastic services. The term elastic computing refers to the ability to
dynamically acquire computing resources and support a variable workload. A cloud service provider maintains a massive
infrastructure to support elastic services.
• The resources used for these services can be metered and the users can be charged only for the resources they use.
• Economy of scale allows service providers to operate more efficiently due to specialization and centralization.
• Cloud computing is cost-effective due to resource multiplexing; lower costs for the service provider are passed on to the
cloud users.
• The application data is stored closer to the site where it is used in a device- and location-independent manner;
potentially, this data storage strategy increases reliability and security and, at the same time, it lowers communication
costs.
Cloud Computing Applications
• Cloud computing is a technical and social reality and an emerging technology. At this time, one can
only speculate how the infrastructure for this new paradigm will evolve and what applications will
migrate to it.
• The economical, social, ethical, and legal implications of this shift in technology, in which users rely
on services provided by large data centers and store private data and software on systems they do
not control, are likely to be significant.
• Scientific and engineering applications, data mining, computational financing, gaming, and social
networking as well as many other computational and data-intensive activities can benefit from
cloud computing. A broad range of data, from the results of high-energy physics experiments to
financial or enterprise management data to personal data such as photos, videos, and movies, can
be stored on the cloud.
Cloud Deployment Models
• The term computer cloud is overloaded, since it covers infrastructures of different sizes, with different
management and different user populations. Several types of cloud are envisioned:
• Private cloud. The infrastructure is operated solely for an organization. It may be managed by the
organization or a third party and may exist on or off the premises of the organization.
• Community cloud. The infrastructure is shared by several organizations and supports a specific
community that has shared concerns (e.g., mission, security requirements, policy, and compliance
considerations). It may be managed by the organizations or a third party and may exist on premises or off
premises.
• Public cloud. The infrastructure is made available to the general public or a large industry group
and is owned by an organization selling cloud services.
• Hybrid cloud. The infrastructure is a composition of two or more clouds (private, community, or
public) that remain unique entities but are bound together by standardized or proprietary technology that
enables data and application portability (e.g., cloud bursting for load balancing between clouds).
Success of Cloud Computing
• A non-exhaustive list of reasons for the success of cloud computing includes these points:
• Cloud computing is in a better position to exploit recent advances in software, networking, storage, and
processor technologies. Cloud computing is promoted by large IT companies where these new technological
developments take place, and these companies have a vested interest in promoting the new technologies.
• A cloud consists of a homogeneous set of hardware and software resources in a single administrative domain.
In this setup, security, resource management, fault tolerance, and quality of service are less challenging than
in a heterogeneous environment with resources in multiple administrative domains.
• Cloud computing is focused on enterprise computing; its adoption by industrial organizations, financial
institutions, healthcare organizations, and so on has a potentially huge impact on the economy.
• A cloud provides the illusion of infinite computing resources; its elasticity frees application designers from the
confinement of a single system.
• A cloud eliminates the need for up-front financial commitment, and it is based on a pay-as-you-go approach.
This has the potential to attract new applications and new users for existing applications, fomenting a new
era of industry-wide technological advancements.
Obstacles in Cloud Computing
• In spite of the technological breakthroughs that have made cloud computing feasible, there are still
major obstacles for this new technology; these obstacles provide opportunity for research. We list
a few of the most obvious obstacles:
• Availability of service. What happens when the service provider cannot deliver? Can a large
company such as General Motors move its IT to the cloud and have assurances that its activity will
not be negatively affected by cloud overload? A partial answer to this question is provided by
service-level agreements (SLAs). A temporary fix with negative economical implications is over-
provisioning, that is, having enough resources to satisfy the largest projected demand.
• Vendor lock-in. Once a customer is hooked to one provider, it is hard to move to another. The
standardization efforts at National Institute of Standards and Technology (NIST) attempt to address
this problem.
• Elasticity, the ability to scale up and down quickly. New algorithms for controlling resource
allocation and workload placement are necessary. Autonomic computing based on self-
organization and selfmanagement seems to be a promising avenue. There are other perennial
problems with no clear solutions at this time, including software licensing and system bugs.
Cloud computing delivery models and services
• According to the NIST reference model in Figure below, the entities involved in cloud computing
are -
• Service consumer, the entity that maintains a business relationship with and uses service from service providers.
• Service provider, the entity responsible for making a service available to service consumers.
• Carrier, the intermediary that provides connectivity and transport of cloud services between providers and
consumers.
• Broker, an entity that manages the use, performance, and delivery of cloud services and negotiates relationships
between providers and consumers.
• Auditor, a party that can conduct independent assessment of cloud services, information system operations,
performance, and security of the cloud implementation.
Audit
• An audit is a systematic evaluation of a cloud system that measures how well it
conforms to a set of established criteria. For example, a security audit evaluates
cloud security, a privacy-impact audit evaluates cloud privacy assurance, and a
performance audit evaluates cloud performance.
• Enterprise services such as workflow management, groupware and collaborative, supply chain,
communications, digital signature, customer relationship management (CRM), desktop software,
financial management, geo-spatial, and search.
• Web 2.0 applications such as metadata management, social networking, blogs, wiki services, and
portal services. The SaaS is not suitable for applications that require real-time response or those for which
data is not allowed to be hosted externally. The most likely candidates for SaaS are applications for which:
• The user has control over the deployed applications and, possibly, over the application hosting
environment configurations. Such services include session management, device integration,
sandboxes, instrumentation and testing, contents management, knowledge management, and
Universal Description, Discovery, and Integration (UDDI), a platform-independent Extensible
Markup Language (XML)-based registry providing a mechanism to register and locate Web service
applications.
• PaaS is not particularly useful when the application must be portable, when proprietary
programming languages are used, or when the underlaying hardware and software must be
customized to improve the performance of the application. The major PaaS application areas are in
software development where multiple developers and users collaborate and the deployment and
testing services should be automated.
Infrastructure-as-a-Service (IaaS)
• It is the capability to provision processing, storage, networks, and other fundamental computing
resources; 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, deployed applications, and possibly
limited control of some networking components, such as host firewalls.
• Services offered by this delivery model include: server hosting, Web servers, storage, computing
hardware, operating systems, virtual instances, load balancing, Internet access, and bandwidth
provisioning.
• The IaaS cloud computing delivery model has a number of characteristics, such as the fact that the
resources are distributed and support dynamic scaling, it is based on a utility pricing model and
variable cost, and the hardware is shared among multiple users. This cloud computing model is
particularly useful when the demand is volatile and a new business needs computing resources and
does not want to invest in a computing infrastructure or when an organization is expanding rapidly.
Activities to Support
Delivery/Service Models
• A number of activities are necessary to support the three delivery models; they include:
1. Service management and provisioning, including virtualization, service provisioning, call center,
operations management, systems management, QoS management, billing and accounting, asset
management, SLA management, technical support, and backups.
3. Customer services such as customer assistance and online help, subscriptions, business
intelligence, reporting, customer preferences, and personalization.
• The service models described here—Infrastructure as a Service (IaaS), Software as a Service (SaaS), and
Platform as a Service (PaaS)—are useful in categorizing not only cloud computing capabilities, but specific
vendor offerings, products, and services.
• Infrastructure as a Service allows for the creation of virtual computing systems or networks.
• Software as a Service represents a hosted application that is universally available over the Internet, usually
through a browser. With Software as a Service, the user interacts directly with the hosted software. SaaS
may be seen to be an alternative model to that of shrink-wrapped software and may replace much of the
boxed software that we buy today.
Understanding Services and Applications
by Type
• Platform as a Service is a cloud computing infrastructure that creates a development environment
upon which applications may be build. PaaS provides a model that can be used to create or
augment complex applications such as Customer Relation Management (CRM) or Enterprise
Resource Planning (ERP) systems.
• PaaS offers the benefits of cloud computing and is often componentized and based on a service-
oriented architecture model. As cloud computing matures, several service types are being
introduced and overlaid upon these architectures.
• The most fully developed of these service types is Identity as a Service (IDaaS). Identity as a Service
provides authentication and authorization services on distributed networks. Infrastructure and
supporting protocols for IDaaS are described in this chapter. Other service types such as
Compliance as a Service (CaaS), provisioning, monitoring, communications, and many vertical
services yet to be fully developed .
Defining Infrastructure as a Service
(IaaS)
• You can broadly partition cloud computing into four layers that form a cloud computing ecosystem.
• The Application layer forms the basis for Software as a Service (SaaS), while the Platform layer
forms the basis for Platform as a Service (PaaS) models.
• Infrastructure as a Service (IaaS) creates what may be determined to be a utility computing model,
something that you can tap into and draw from as you need it without significant limits on the
scalability of your deployment. You pay only for what you need when you need it.
• IaaS may be seen to be an incredibly disruptive technology, one that can help turn a small business
into a large business nearly overnight. This is a most exciting prospect; one that is fueling a number
of IaaS startups during one of the most difficult recessions of recent memory.
The Cloud Computing Ecosystem
Defining Infrastructure as a
Service (IaaS)
• Infrastructure as a Service (IaaS) is a cloud computing service model in which hardware is
virtualized in the cloud.
• In this particular model, the service vendor owns the equipment: servers, storage, network
infrastructure, and so forth. The developer creates virtual hardware on which to develop
applications and services. Essentially, an IaaS vendor has created a hardware utility service where
the user provisions virtual resources as required.
• The developer interacts with the IaaS model to create virtual private servers, virtual private storage,
virtual private networks, and so on, and then populates these virtual systems with the applications
and services it needs to complete its solution.
• In IaaS, the virtualized resources are mapped to real systems. When the client interacts with an IaaS
service and requests resources from the virtual systems, those requests are redirected to the real
servers that do the actual work.
IaaS Workloads
• The fundamental unit of virtualized client in an IaaS deployment is called a workload. A workload
simulates the ability of a certain type of real or physical server to do an amount of work. The work
done can be measured by the number of Transactions Per Minute (TPM) or a similar metric against
a certain type of system.
• In addition to throughput, a workload has certain other attributes such as Disk I/Os measured in
Input / Output Per Second IOPS, the amount of RAM consumed under load in MB, network
throughput and latency, and so forth. In a hosted application environment, a client’s application
runs on a dedicated server inside a server rack or perhaps as a standalone server in a room full of
servers.
• In cloud computing, a provisioned server called an instance is reserved by a customer, and the
necessary amount of computing resources needed to achieve that type of physical server is
allocated to the client’s needs. The figure shows how three virtual private server instances are
partitioned in an IaaS stack. The three workloads require three different sizes of computers: small,
medium, and large.
A Virtual Private Server Partition in an
IaaS Cloud
IaaS Workloads
• A client would reserve a machine equivalent required to run each of these workloads. The IaaS infrastructure
runs these server instances in the data center that the service offers, drawing from a pool of virtualized
machines, RAID storage, and network interface capacity. These three layers are expressions of physical
systems that are partitioned as logical units. LUNs, the cloud interconnect layer, and the virtual application
software layer are logical constructs. LUNs are logical storage containers, the cloud interconnect layer is a
virtual network layer that is assigned IP addresses from the IaaS network pool, and the virtual application
software layer contains software that runs on the physical VM instance(s) that have been partitioned from
physical assets on the IaaS’ private cloud.
• From an architectural standpoint, the client in an IaaS infrastructure is assigned its own private network. The
Amazon Elastic Computer Cloud (EC2) behaves as if each server is its own separate network—unless you
create your own Virtual Private Cloud (an EC2 add-on feature), which provides a workaround to this problem.
When you scale your EC2 deployment, you are adding additional networks to your infrastructure, which
makes it easy to logically scale an EC2 deployment, but imposes additional network overhead because traffic
must be routed between logical networks. Amazon Web Service’s routing limits broadcast and multicast
traffic because Layer-2 (Data Link) networking is not supported. Rackspace Cloud follows the AWS IP
assignment model. Other IaaS infrastructures such as the one Cloudscaling.com offers or a traditional
VMWare cloud-assigned networks on a per-user basis, which allows for Level 2 networking options. The most
prominent Level 2 protocols that you might use are tunneling options, because they enable VLANs.
IaaS Workloads
• Consider a transactional e-Commerce system, for which a typical stack contains the following
components:
▪ Web server
▪ Application server
▪ File server
▪ Database
▪ Transaction engine
• This e-Commerce system has several different workloads that are operating: queries against the
database, processing of business logic, and serving up clients’ Web pages.
• The classic example of an IaaS service model is Amazon.com’s Amazon Web Services (AWS). AWS
has several data centers in which servers run on top of a virtualization platform (Xen) and may be
partitioned into logical compute units of various sizes. Developers can then apply system images
containing different operating systems and applications or create their own system images. Storage may
be partitions, databases may be created, and a range of services such a messaging and notification can
be called upon to make distributed application work correctly.
Pods, aggregation, and silos
• Workloads support a certain number of users, at which point you exceed the load that the instance
sizing allows. When you reach the limit of the largest virtual machine instance possible, you must
make a copy or clone of the instance to support additional users. A group of users within a
particular instance is called a pod. Pods are managed by a Cloud Control System (CCS). In AWS, the
CCS is the AWS Management Console.
• Sizing limitations for pods need to be accounted for if you are building a large cloud-based
application. Pods are aggregated into pools within an IaaS region or site called an availability zone.
In very large cloud computing networks, when systems fail, they fail on a pod-by-pod basis, and
often on a zone-by-zone basis.
• For AWS’ IaaS infrastructure, the availability zones are organized around the company’s data centers
in Northern California, Northern Virginia, Ireland, and Singapore. A failover system between zones
gives IaaS private clouds a very high degree of availability. The figure next shows how pods are
aggregated and virtualized in IaaS across zones.
Pods, aggregation, and silos
• When a cloud computing infrastructure isolates user clouds from each other so the management
system is incapable of interoperating with other private clouds, it creates an information silo, or
simply a silo.
• Most often, the term silo is applied to PaaS offerings such as Force.com or QuickBase, but silos
often are an expression of the manner in which a cloud computing infrastructure is architected.
Silos are the cloud computing equivalent of compute islands: They are processing domains
that are sealed off from the outside.
• When you create a private virtual network within an IaaS framework, the chances are high that
you are creating a silo. Silos impose restrictions on interoperability that runs counter to the open
nature of build-componentized service-oriented applications. However, that is not always a bad
thing. A silo can be its own ecosystem; it can be protected and secured in ways that an open system
can’t be. Silos just aren’t as flexible as open systems and are subject to vendor lock-in.
Pods, aggregation, and failover in
IaaS
Defining Platform as a Service (PaaS)
• The Platform as a Service model describes a software environment in which a developer can create
customized solutions within the context of the development tools that the platform provides.
Platforms can be based on specific types of development languages, application frameworks, or
other constructs. A PaaS offering provides the tools and development environment to deploy applications on
another vendor’s application.
• Often a PaaS tool is a fully integrated development environment; that is, all the tools and services are part of
the PaaS service. To be useful as a cloud computing offering, PaaS systems must offer a way to create user
interfaces, and thus support standards such as HTML, JavaScript, or other rich media technologies.
• In a PaaS model, customers may interact with the software to enter and retrieve data, perform
actions, get results, and to the degree that the vendor allows it, customize the platform involved.
The customer takes no responsibility for maintaining the hardware, the software, or the development of the
applications and is responsible only for his interaction with the platform. The vendor is responsible for all the
operational aspects of the service, for maintenance, and for managing the product(s) lifecycle. The one
example that is most quoted as a PaaS offering is Google’s App Engine platform.
Defining Platform as a Service
(PaaS)
• Developers program against the App Engine using Google’s published APIs. The tools for working within the
development framework, as well as the structure of the file system and data stores, are defined by Google.
Another example of a PaaS offering is Force.com, Salesforce.com’s developer platform for its SaaS offerings.
Force.com is an example of an add-on development environment.
• A developer might write an application in a programming language like Python using the Google
API. The vendor of the PaaS solution is in most cases the developer, who is offering a complete
solution to the customer. Google itself also serves as a PaaS vendor within this system, because it
offers many of its Web service applications to customers as part of this service model. You can
think of Google Maps, Google Earth, Gmail, and the myriad of other PaaS offerings as conforming
to the PaaS service model, although these applications themselves are offered to customers under
what is more aptly described as the Software as a Service (SaaS) model that is described below.
• The difficulty with PaaS is that it locks the developer (and the customer) into a solution that is
dependent upon the platform vendor. An application written in Python against Google’s API using
the Google App Engine is likely to work only in that environment. There is considerable vendor
lock-in associated with a PaaS solution.
Google App Engine
• Google App Engine (GAE) is a platform-as-a-service product that provides web app developers and
enterprises with access to Google's scalable hosting and tier 1 internet service.
• GAE requires that applications be written in Java or Python, store data in Google Bigtable and use the
Google query language. Non-compliant applications require modification to use GAE. GAE provides more
infrastructure than other scalable hosting services, such as Amazon Elastic Compute Cloud (EC2). GAE also
eliminates some system administration and development tasks to make writing scalable applications easier.
Google provides GAE free up to a certain amount of use for the following resources:
• processor (CPU)
• storage
• application programming interface (API) calls
• concurrent requests
Defining Software as a Service
(SaaS)
• The most complete cloud computing service model is one in which the computing hardware and
software, as well as the solution itself, are provided by a vendor as a complete service offering. It is
referred to as the Software as a Service (SaaS) model. SaaS provides the complete infrastructure,
software, and solution stack as the service offering.
• A good way to think about SaaS is that it is the cloud-based equivalent of shrink-wrapped software.
Software as a Service (SaaS) may be succinctly described as software that is deployed on a hosted
service and can be accessed globally over the Internet, most often in a browser.
• With the exception of the user interaction with the software, all other aspects of the service are
abstracted away. Every computer user is familiar with SaaS systems, which are either replacements
or substitutes for locally installed software. Examples of SaaS software for end-users are Google
Gmail and Calendar, QuickBooks online, Zoho Office Suite, and others that are equally well known.
Defining Software as a Service
(SaaS)
• SaaS applications come in all shapes and sizes, and include custom software such as billing and
invoicing systems, Customer Relationship Management (CRM) applications, Help Desk applications,
Human Resource (HR) solutions, as well as myriad online versions of familiar applications. Many
people believe that SaaS software is not customizable, and in many SaaS applications this is indeed
the case.
• For user-centric applications such as an office suite, that is mostly true; those suites allow you to set
only options or preferences. However, many other SaaS solutions expose Application Programming
Interfaces (API) to developers to allow them to create custom composite applications. These APIs
may alter the security model used, the data schema, workflow characteristics, and other
fundamental features of the service’s expression as experienced by the user.
• Examples of an SaaS platform with an exposed API are Salesforce.com and Quicken.com. So SaaS
does not necessarily mean that the software is static or monolithic.
SaaS characteristics
• All Software as a Service (SaaS) applications share the following characteristics:
1. The software is available over the Internet globally through a browser on demand.
2. The typical license is subscription-based or usage-based and is billed on a recurring basis. In a small
number of cases a flat fee may be changed, often coupled with a maintenance fee. Table below shows how
different licensing models compare.
3. The software and the service are monitored and maintained by the vendor, regardless of where all the
different software components are running. There may be executable client-side code, but the user isn’t
responsible for maintaining that code or its interaction with the service.
SaaS characteristics
4. Reduced distribution and maintenance costs and minimal end-user system costs generally make SaaS
applications cheaper to use than their shrink-wrapped versions.
5. Such applications feature automated upgrades, updates, and patch management and much faster rollout
of changes.
6. SaaS applications often have a much lower barrier to entry than their locally installed
competitors, a known recurring cost, and they scale on demand (a property of cloud computing in general).
7. All users have the same version of the software so each user’s software is compatible with
another’s.
8. SaaS supports multiple users and provides a shared data model through a single-instance,
multi-tenancy model. The alternative of software virtualization of individual instances also exists, but is less
common.
Open SaaS and SOA
• A considerable amount of SaaS software is based on open source software. When open source
software is used in a SaaS, you may hear it referred to as Open SaaS.
• The advantages of using open source software are that systems are much cheaper to deploy
because you don’t have to purchase the operating system or software, there is less vendor lock-in,
and applications are more portable.
• The popularity of open source software, from Linux to APACHE, MySQL, and Perl (the LAMP
platform) on the Internet, and the number of people who are trained in open source software make
Open SaaS an attractive proposition.
• The impact of Open SaaS will likely translate into better profitability for the companies that deploy
open source software in the cloud, resulting in lower development costs and more robust solutions.
Service Oriented Architecture (SOA)
• Service-Oriented Architecture (SOA) is a stage in the evolution of application development and/or
integration. It defines a way to make software components reusable using the interfaces.
• Formally, SOA is an architectural approach in which applications make use of services available in the
network. In this architecture, services are provided to form applications, through a network call over the
internet. It uses common communication standards to speed up and streamline the service integrations in
applications. Each service in SOA is a complete business function in itself. The services are published in such
a way that it makes it easy for the developers to assemble their apps using those services. Note that SOA is
different from microservice architecture.
• SOA allows users to combine a large number of facilities from existing services to form applications.
• SOA encompasses a set of design principles that structure system development and provide means for
integrating components into a coherent and decentralized system.
• SOA-based computing packages functionalities into a set of interoperable services, which can be integrated
into different software systems belonging to separate business domains.
Service Oriented Architecture (SOA)
• The different characteristics of SOA are as follows :
Provides interoperability between the services.
Provides methods for service encapsulation, service discovery, service
composition, service reusability and service integration.
• Distributed transaction systems such as internetworks or cloud computing systems magnify the
difficulties faced by identity management systems by exposing a much larger attack surface to an
intruder than a private network does. Whether it is network traffic protection, privileged resource
access, or some other defined right or privilege, the validated authorization of an object based on
its identity is the central tenet of secure network design.
• In this regard, establishing identity may be seen as the key to obtaining trust and to anything that
an object or entity wants to claim ownership of. Services that provide digital identity management
as a service have been part of internetworked systems from Day One.
What is an identity?
• An identity is a set of characteristics or traits that make something recognizable or known. In
computer network systems, it is one’s digital identity that most concerns us. A digital identity is
those attributes and metadata of an object along with a set of relationships with other objects that
makes an object identifiable. Not all objects are unique, but by definition a digital identity must be
unique, if only trivially so, through the assignment of a unique identification attribute. An identity
must therefore have a context in which it exists.
• This description of an identity as an object with attributes and relationships is one that
programmer’s would recognize. Databases store information and relationships in tables, rows, and
columns, and the identity of information stored in this way conforms to the notion of an entity and
a relationship—or alternatively under the notion of an object role model (ORM)—and database
architects are always wrestling with the best way of reducing their data set to a basic set of
identities. You can extend this notion to the idea of an identity having a profile and profiling services
such as Facebook as being an extension of the notion of Identity as a Service in cloud computing.
What is an identity?
• An identity can belong to a person and may include the following:
• Things you are: Biological characteristics such as age, race, gender, appearance, and so forth
• Things you know: Biography, personal data such as social security numbers, PINs, where you went
to school, and so on
• Things you have: A pattern of blood vessels in your eye, your fingerprints, a bank account you can
access, a security key you were given, objects and possessions, and more
• Things you relate to: Your family and friends, a software license, beliefs and values, activities and
endeavors, personal selections and choices, habits and practices, an iGoogle account, and more
Networked identity service classes
• Identity as a Service (IDaaS) may include any of the following:
• The sharing of any or all of these attributes over a network may be the subject of different government
regulations and in many cases must be protected so that only justifiable parties may have access to the
minimal amount that may be disclosed. This level of access defines what may be called an identity
relationship.
Defining Compliance as a Service
(CaaS)
• Cloud computing by its very nature spans different jurisdictions. The laws of the country of a
request’s origin may not match the laws of the country where the request is processed, and it’s
possible that neither location’s laws match the laws of the country where the service is provided.
Compliance is much more than simply providing an anonymous service token to an identity so they
can obtain access to a resource. Compliance is a complex issue that requires considerable expertise.
• While Compliance as a Service (CaaS) appears in discussions, few examples of this kind of service
exist as a general product for a cloud computing architecture. A Compliance as a Service application
would need to serve as a trusted third party, because this is a man-in-the-middle type of service.
CaaS may need to be architected as its own layer of a SOA architecture in order to be trusted.
• A CaaS would need to be able to manage cloud relationships, understand security policies and
procedures, know how to handle information and administer privacy, be aware of geography,
provide an incidence response, archive, and allow for the system to be queried, all to a level that
can be captured in a Service Level Agreement. That’s a tall order, but CaaS has the potential to be a
great value-added service.
Defining Compliance as a Service
(CaaS)
• In order to implement CaaS, some companies are organizing what might be referred to as “vertical clouds,”
clouds that specialize in a vertical market. Examples of vertical clouds that advertise CaaS capabilities include
the following:
• athenahealth (http://www.athenahealth.com/) for the medical industry
• bankserv (http://www.bankserv.com/) for the banking industry
• ClearPoint PCI Compliance-as-a-Service for merchant transactions under the Payment Card Industry Data
Security Standard
• FedCloud (http://www.fedcloud.com/) for government
• Rackserve PCI Compliant Cloud (http://www.rackspace.com/; another PCI CaaS service)
• It’s much easier to envisage a CaaS system built inside a private cloud where the data is under the control of a
single entity, thus ensuring that the data is under that entity’s secure control and that transactions can be
audited. Indeed, most of the cloud computing compliance systems to date have been built using private
clouds.
• It is easy to see how CaaS could be an incredibly valuable service. A well-implemented CaaS service could
measure the risks involved in servicing compliance and ensure or indemnify customers against that risk. CaaS
could be brought to bear as a mechanism to guarantee that an e-mail conformed to certain standards,
something that could be a new electronic service of a network of national postal systems—and something that
RaaS
• Recovery as a service (RaaS), sometimes referred to as
disaster recovery as a service (DRaaS), is a category of
cloud computing used for protecting an application or data from
a natural or human disaster or service disruption at one location
by enabling a full recovery in the cloud.
• RaaS differs from cloud-based backup services by protecting
data and providing standby computing capacity on demand
to facilitate more rapid application recovery.
• RaaS capacity is delivered in a cloud-computing model so
recovery resources are only paid for when they are used,
making it more efficient than a traditional disaster recovery
warm site or hot site where the recovery resources must be
running at all times
Resource as a Service
• Resource-as-a-Service (RaaS) is a revolutionary economic model within the realm of cloud computing, poised to reshape
the way we think about resource allocation. Unlike traditional cloud services, where clients typically rent entire virtual
machines or fixed resource bundles for extended periods, RaaS offers a granular approach. It enables cloud providers to
sell individual resources like CPU, memory, and I/O resources in increments of just a few seconds. This flexibility and
precision redefine the cloud computing landscape, empowering clients to procure resources precisely when and how
they need them.
• In FaaS, users only have to pay for the number of execution time
happened. In PaaS, users have to pay for the amount based on pay-as-
you-go price regardless of how much or less they use.
Function as a Service
• Highly Scalable: Auto scaling is done by the provider depending upon the demand.
• Cost-Effective: Pay only for the number of events executed.
• Code Simplification: FaaS allows the users to upload the entire application all at
once. It allows you to write code for independent functions or similar to those
functions.
• Maintenance of code is enough and no need to worry about the servers.
• Functions can be written in any programming language.
• Less control over the system.
• The various companies providing Function as a Service are Amazon Web Services –
Firecracker, Google – Kubernetes, Oracle – Fn, Apache OpenWhisk – IBM, OpenFaaS,
Disadvantages of FaaS
• Cold start latency: Since FaaS functions are event-triggered, the first request to a
new function may experience increased latency as the function container is
created and initialized.
• Security concerns: Users are responsible for securing their own data and
applications, which can be a significant undertaking.
• Limited scalability: FaaS functions may not be able to handle high traffic or large
number of requests.
Anything as a Service
• It is also known as Everything as a Service. Most of the cloud service providers
nowadays offer anything as a service that is a compilation of all of the above
services including some additional services.
• XaaS services are delivered digitally over a network connected to the internet.
• XaaS services are paid for on a flexible, pay-as-you-go basis.
• XaaS services can be scaled up or down as needed.
• XaaS services remove the need to install or maintain software or hardware.
Advantages of XaaS
• Scalability: XaaS solutions can be easily scaled up or down to meet
the changing needs of an organization.
• Limited integration: XaaS solutions may not be able to integrate with existing
systems and data sources, which can limit the value of the solution for
certain organizations.