1. Cloud Computing (KCS-713)
Unit-1: Introduction To Cloud Computing
Dr. Radhey Shyam
Professor
Department of Computer Science and Engineering
SRMGPC Lucknow
(Affiliated to Dr. A.P.J. Abdul Kalam Technical University, Lucknow)
Unit-1 have been compiled/prepared by Dr. Radhey Shyam, with grateful acknowledgment who made their
course contents freely available. Feel free to use this study material for your own academic purposes. For
any query, the communication can be made through my mail shyam0058@gmail.com.
Date: December 14, 2021
2. Cloud Computing (KCS713)
(UNIT – I)
Introduction To Cloud Computing
What is the Cloud
Cloud also referred to as a network cloud. The cloud is a term referring to accessing computer,
information technology (IT), and software applications through a network connection, often by
accessing data centers using wide area networking (WAN) or Internet connectivity.
“It’s a place other than your computer that you can use to store your stuff.”
Almost all IT resources can live in the cloud: A software program or application, a service, or
an entire infrastructure. For example, if a business wanted to build an IT infrastructure, typically it
would install the servers, software, and networking resources it needed, but nearly all of those
services and resources are now accessible by going to third parties that offer them in the cloud.
Cloud computing is the delivery of different services through the Internet. These resources
include tools and applications like data storage, servers, databases, networking, and
software.
These services are broadly divided into three categories: Infrastructure-as-a-Service (IaaS),
Platform-as-a-Service (PaaS) and Software-as-a-Service (SaaS). The name cloud computing was
inspired by the cloud symbol that's often used to represent the Internet in flowcharts and diagrams.
1
3. Cloud Components
In a simple, topological sense, a cloud computing Solution is made up of several elements: Client
Computers, Distributed Servers and Data Centers are the three components of Cloud Computing.
As shown in fig. these components make up the three parts of a cloud computing solution.
1. Client Computers: They are, typically, the computers that just sit on your desk. But they might
also be laptops, tablets computers, mobiles phones, or PDAs.
The following are different types of Clients in Cloud Computing.
1. Mobile: Its include PDAs or Smartphone’s, like a blackberry, windows, iphones etc.
2. Thin: Clients are computers that do not have internal hard drives, but rather let the server do
all the work, but then display the information.
3. Thick: This type of client is a regular computer, using a web browser like firebox or internet
explorer to connect to the cloud.
The advantages of Thin Clients are
1) Lower hardware costs
2) Lower IT costs
3) Security
4) Data security
5) Less power consumption.
2
4. 2. Data Center:
The data center is the collection of servers where the application to which you subscribe is housed. It
could be a large room in the basement of your building or a room full of servers on the other side of
the world that you access via the Internet. A growing trend in the IT world is vitalizing servers. That
is, software can be installed allowing multiple instances of virtual servers to be used. In this way, you
can have half a dozen virtual servers running on one physical server.
3. Distributed Servers:
But the servers don’t all have to be housed in the same location. Often, servers are in geographically
disparate locations. But to you, the cloud subscriber, these servers act as if they’re humming away
right next to each other. This gives the service provider more flexibility in options and security. For
instance, Amazon has their cloud solution in servers all over the world. If something were to happen
at one site, causing a failure, the service would still be accessed through another site.
Examples of Popular Services that Use the Cloud
If you want to store, manage or take files from the cloud, you almost always need a personal account
for security reasons. Free accounts, which most people use, usually just require an email address
and a password.
o Dropbox: Dropbox is like your personal folder in the sky (or in the cloud) that can be
accessed from anywhere.
o Google Drive: Google Drive is just like Dropbox, but it integrates with all of your Google
tools like Google Docs, Gmail and others.
o Microsoft OneDrive: Much like Google Drive, Microsoft OneDrive is cloud storage that
integrates with integrates with your Microsoft applications, such as Word or Excel.
o Spotify: Spotify is a free music streaming service with a subscription option so that you can
enjoy thousands upon thousands of songs as often as you want.
o Netflix: Similar to Spotify, Netflix is a TV show and movie streaming service.
Advantages
Cloud computing has many advantages. It’s often faster to provision the service, and in many cases,
you can gain access to it instantly. Remote users can access cloud resources from wherever they
have a connection, rather than being
limited by physical geography.
o Convenience: does not require installing a specific piece of software to access or
manipulating cloud application.
3
5. o (Scalability) Elasticity: Companies can scale up as computing needs increase and scale
down again as demands decrease. This eliminates the need for massive investments in
local infrastructure, which may or may not remain active.
o Low costs
o Offers online development and deployment tools, programming runtime environment
through Platform as a Service model
o Security
o Anytime, anywhere access
o High availability
o Pay per use
1. There are certain technologies that are working behind the cloud computing platforms making
cloud computing flexible, reliable, and usable. These technologies are listed below:
Virtualization
Service-Oriented Architecture (SOA)
Grid Computing (distributed computing)
Utility Computing
1.1 Service-Oriented Architecture (SOA)
1.2 Grid Computing (also called "distributed computing") is a collection of computers working
together to perform various tasks. It distributes the workload across multiple systems, allowing
computers to contribute their individual resources to a common goal.
4
6. In order for systems in a computing grid to work together, they must be physically connected (over a
network or the Internet) and run software that allows them to communicate. The software used in
grid computing is called middleware since it translates the information passed from one system to
another into a recognizable format. This allows the data computed by one node within the grid to be
stored or processed by another system on the grid. “Grid computing is a processor architecture that
combines computer resources from various domains to reach a main objective. In grid computing,
the computers on the network can work on a task together, thus functioning as a supercomputer.”
Example: online gaming, Facebook, Twitter, LinkedIn, Typically applications like weather forecasting,
protein folding and earthquake simulation is prime candidates for a grid infrastructure.
1.3 Virtualization
1.4 Utility Computing is the process of providing computing service through an on-demand, pay-
per-use billing method. Utility computing is a computing business model in which the provider
owns, operates and manages the computing infrastructure and resources, and the subscriber
accesses it as and when required on a rental.
Example : Amazon E2C, Google AppEngine, Microsoft Azura
5
7. 1. There are certain services and models working behind the scene making the cloud computing
feasible and accessible to end users. The following are the working models for cloud
computing:
o Deployment models
o Service models
Cloud computing deployment models
There are various types of clouds, each of which is different from the other. It is often divided into
three categories (See Figure):
o public
o private
o Hybrid, referring to who has access to the services or infrastructure.
Public-cloud services are made available to anybody that wants to purchase. Public cloud services
are sold on demand, typically by the minute or hour, though long-term commitments are available for
many services. Customers only pay for the CPU cycles, storage or bandwidth they consume. Public
clouds can also typically be deployed much faster and with more scalability and accessibility than
on-premises infrastructure. Leading public cloud service providers include Amazon Web Services
(AWS), Microsoft Azure, IBM and Google Cloud Platform.
Private-cloud services are built by enterprises for use by their employees and partners only. In
other word it is a cloud environment set aside for the exclusive use of one organization.
Top Vendors: HPE, VMware, Dell EMC, IBM, Red Hat, Microsoft, OpenStack.
6
8. A hybrid cloud is a combination of both a public and private cloud with some level of integration
between the two. In which some critical data resides in the enterprise’s private cloud while other data
is stored in and accessible from a public cloud. Hybrid clouds seek to deliver the advantages of
scalability, reliability, rapid deployment and potential cost savings of public clouds with the security
and increased control and management of private clouds.
Top Vendors: Combination of both public and private cloud providers
Types of cloud computing services (Or Common Cloud Service Models or Types of
Cloud Computing)
Cloud computing is not a single piece of technology like a microchip or a cellphone. Rather, it's a
system primarily comprised of three services:
o software-as-a-service (SaaS)
o platform-as-a-service (PaaS)
o infrastructure-as-a-service (IaaS)
There are many other service models all of which can take Like XaaS, i.e. Anything as a Service.
This can be Network a as Service, Business as a Service, Identity as a Service, Database as a
Service or Strategy as a Service. The Infrastructure as a Service ( IaaS) is the most basic level of
service. Each of the service models make use of
the underlying(fundamental) service model, i.e. each inherits the security and management
mechanism from the underlying model, as shown in the following diagram.
7
9. (I) Infrastructure-as-a-service (IaaS)
Its provide access to fundamental resources such as physical machines, virtual machines, virtual
storage, etc. It involves a method for delivering everything from operating systems to servers and
storage through IP-based connectivity as part of an on-demand service. Clients can avoid the need
to purchase software or servers, and instead procure these resources in an outsourced, on-demand
service. Popular examples of the IaaS system include IBM Cloud and Microsoft Azure.
(II) Platform as a Service (PaaS)
It provide the runtime environment for applications, development & deployment tools etc. PaaS is a
computing platform being delivered as a service. PaaS shares some similarities with SaaS, the
primary difference being that instead of delivering software online, it is actually a platform for creating
software that is delivered via the Internet. Here the platform is outsourced in place of a company or
data center purchasing and managing its own hardware and software layers. Most PaaS are
designed for developers and aim to simplify the process of creating and deploying software.
For example, a Web developer might use a PaaS that includes operating system software, Web
server software, a database and related Web development tools. The leading PaaS vendors include
Amazon Web Services, Microsoft Azure, IBM and Google Cloud Platform, Heroku.
(III) Software as a Service (SaaS)
SaaS is a software delivery method that provides access to software and its functions remotely as a
Web-based service. Instead of paying an upfront fee to purchase and/or license software, SaaS
customers pay a recurring (often monthly or annual) fee to subscribe to the service. In general, they
can access the SaaS from any Internet-connected device, any time day or night. Well-known
examples of SaaS include Salesforce, Microsoft Office 365, Google G Suite, Dropbox, Adobe
Creative Cloud and others.
When it comes to providing services, the big players in the corporate computing sphere include:
o Google Cloud
o Amazon Web Services (AWS)
o Microsoft Azure
o IBM Cloud
o Aliyun
8
10. 2. Features of Cloud Computing
Following are the characteristics of Cloud Computing:
o Resource pooling is the sharing of computing capabilities, leads to increased resource
utilization rates.
o On-Demand Self-Service: A consumer can unilaterally provision computing capabilities, such
as server time and network storage, as needed automatically without requiring human
interaction with each service provider. In simple word the consumer performs all the actions
needed to acquire the service herself, instead of going through an IT department, for example.
The consumer’s request is then automatically processed by the cloud infrastructure, without
human intervention on the provider’s side.
o Easy Maintenance: The servers are easily maintained and the downtime is very low; in some
cases, there is no downtime. The cloud computing comes up with an update every time by
gradually making it better. The updates are more compatible with the devices and perform
faster than older ones along with the bugs which are fixed.
o Large Network Access: The user can access the data of the cloud or upload the data to the
cloud from anywhere just with the help of a device and an internet connection. These
capabilities are available all over the network and accessed with the help of internet.
9
11. o Availability: The capabilities of the cloud can be modified as needed and can extend a lot. It
analyzes the storage usage and allows the user to buy extra storage if needed for a very small
amount. This service is available anytime and can be accessed from anywhere.
o Automation System: Cloud computing automatically analyzes the data needed and supports a
metering capability at some level of services. We can monitor, control, and report the usage. It
will provide transparency for the host as well as the customer.
o Economical: It is the one-time investment as the company (host) has to buy the storage and a
small part of it can be provided to the many companies which save the host from monthly or
yearly costs. Only the amount which is spent is on the basic maintenance and a few more
expenses which are very less.
o Security: This is one of the best features of cloud computing. It creates a snapshot of the data
stored so that the data may not get lost even if one of the server damages. The data stores
within the storage devices which cannot hack and utilize by any other person. The storage
service is quick and reliable which can access from anywhere just with the help of a device and
internet connection.
o Pay – as You – Go: In cloud computing, the user has to pay only for the service or the space
they have utilized. There is no hidden or extra charge which is to be paid. The service is
economical and most of the time some space allows for free.
o Measured Service: Cloud computing resources used to monitor and the company uses it for
recording. This resource utilization is analyzed by supporting charge-per-use capabilities. This
means that the resource usages which can be either virtual server instances that are running in
the cloud are getting monitored measured and reported by the service provider. The model pay
as you go is variable based on actual consumption of the manufacturing organization.
3. A history of cloud computing
It was a gradual evolution that started in the 1950s with mainframe computing.
Multiple users were capable of accessing a central computer through dumb terminals, whose only
function was to provide access to the mainframe. Because of the costs to buy and maintain
mainframe computers, it was not practical for an organization to buy and maintain one for every
employee. Nor did the typical user need the large (at the time) storage capacity and processing
10
12. power that a mainframe provided. Providing shared access to a single resource was the solution that
made economical sense for this sophisticated piece of technology.
The history of cloud computing starts way back in the 1960s, when an “intergalactic computer
network” (was a computer networking concept similar to today's Internet ) was first suggested, and in
recent years the technology has served to shake-up both the enterprise IT and supplier landscape.
Who invented cloud computing?
Cloud computing has evolved through a number of phases that include grid and utility computing,
application service provision and software as a service (SaaS), but the overarching (very Important)
concept of delivering computing resources through a global network is rooted in the 1960s.
The idea of an “intergalactic computer network” was introduced in the 1960s by JCR Licklider, who
was responsible for enabling the development of the Advanced Research Projects Agency Network
(ARPANET) in 1969. His vision was for everyone on the globe to be interconnected and accessing
programs and data at any site, from anywhere.
“It laid the foundation for grid computing, an early forerunner of cloud, which linked together
geographically dispersed computers to create a loosely coupled network. In turn this led to the
development of utility computing which is closer to what Licklider originally envisioned,” she
continues.
“It’s also closer to what we think of as the cloud today, with a service provider owning, operating and
managing the computing infrastructure and resources, which are made available to users on an on-
demand, pay-as-you-go basis.”
After some time, around 1970, the concept of virtual machines (VMs) was created.
Using virtualization software like VMware, it became possible to execute one or more operating
systems simultaneously in an isolated environment. Complete computers (virtual) could be executed
inside one physical hardware which in turn can run a completely different operating system.
The virtual machine (VM) operating system took the 1950s’ shared access mainframe to the
next level, permitting multiple distinct computing environments to reside on one physical
environment. Virtualization came to drive the technology, and was an important catalyst in the
communication and information evolution.
11
13. In the 1990s, telecommunications companies started offering virtualized private network
connections.
Historically, telecommunications companies only offered single dedicated point–to-point data
connections. The newly offered virtualized private network connections had the same service quality
as their dedicated services at a reduced cost. Instead of building out physical infrastructure to allow
for more users to have their own connections, telecommunications companies were now able to
provide users with shared access to the same physical infrastructure. The following list briefly
explains the evolution of cloud computing:
• Grid computing: Solving large problems with parallel computing
• Utility computing: Offering computing resources as a metered service
SaaS: Network-based subscriptions to application
Cloud computing: Anytime, anywhere access to IT resources delivered dynamically as a service
Now, let’s talk a bit about the present.
SoftLayer is one of the largest global providers of cloud computing infrastructure. IBM already has
platforms in its portfolio that include private, public and hybrid cloud solutions. The purchase of
SoftLayer guarantees an even more comprehensive infrastructure as a service (IaaS) solution. While
many companies look to maintain some applications in data centers, many others are moving to
public clouds. Even now, the purchase of bare metal can be modeled in commercial cloud (for
example, billing by usage or put another way, physical server billing by the hour). The result of this is
that a bare metal server request with all the resources needed, and nothing more, can be delivered
with a matter of hours.
4. Hypervisor
The hypervisor is software that can virtualize the hardware resources. A hypervisor is a hardware
virtualization technique that allows multiple guest operating systems (OS) to run on a single host
system at the same time. A hypervisor is also known as a virtual
machine manager (VMM). These virtual machines are also
referred as guest machines and they all share the hardware of
the physical machine like memory, processor, storage and other
related resources. This improves and enhances the utilization of
the underlying resources.
Types of Hypervisor – Hypervisors can be divided into two
types:
Type 1: Also known as native or bare-metal hypervisors,
12
14. these run directly on the host computer’s hardware to control the hardware resources and to manage
guest operating systems.
Examples of Type 1 hypervisors include VMware ESXi,
Citrix XenServer and Microsoft Hyper-V hypervisor.
Type 2: Also known as hosted hypervisors, these
run within a formal operating system environment. In
this type,
the hypervisor runs as a distinct second layer while the
operating system runs as a third layer above the
hardware.
5. Distributed Computing
A distributed system is a network of autonomous computers that communicate with each
other in order to achieve a goal. The computers in a distributed system are independent and do not
physically share memory or processors. They communicate with each other using messages, pieces
of information transferred from one computer to another over a network. Messages can
communicate many things: computers can tell other computers to execute a procedures with
particular arguments, they can send and receive packets of data, or send signals that tell other
computers to behave a certain way.
Examples of distributed systems / applications of distributed computing:
Intranets, Internet, WWW, email.
Telecommunication networks: Telephone networks and Cellular networks.
Network of branch office computers -Information system to handle automatic processing of orders,
Real-time process control: Aircraft control systems,
Electronic banking,
Airline reservation systems,
Sensor networks,
There are two predominant ways of organizing computers in a distributed system. The first is
the client-server architecture, and the second is the peer-to-peer architecture.
13
15. Client/Server Systems
The client-server architecture is a way to dispense a service from a central source. There is a single
server that provides a service, and multiple clients that communicate with the server to consume its
products. In this architecture, clients and servers have different jobs. The server's job is to respond
to service requests from clients, while a client's job is to use the data provided in response in order to
perform some task.
Peer-to-peer Systems
The client-server model is appropriate for service-oriented situations. However, there are other
computational goals for which a more equal division of labor is a better choice. The term peer-to-
peer is used to describe distributed systems in which labor is divided among all the components of
the
14
16. system. All the computers send and receive data, and they all contribute some processing power
and memory. As a distributed system increases in size, its capacity of computational resources
increases. In a peer-to-peer system, all components of the system contribute some processing
power and memory to a distributed computation.
15
17. 6. What is Parallel computing?
Serial Computing:
o A problem is broken into a discrete series of instructions
o Instructions are executed sequentially one after another
o Executed on a single processor
o Only one instruction may execute at any moment in time
16
18. Parallel Computing:
In the simplest sense, parallel computing is the simultaneous use of multiple compute resources to
solve a computational problem:
A problem is broken into discrete parts that can be solved concurrently
Each part is further broken down to a series of instructions
Instructions from each part execute simultaneously on different processors
An overall control/coordination mechanism is employed
Advantages of Parallel Computing over Serial Computing are as follows:
1. It saves time and money as many resources working together will reduce the time and cut
potential costs.
2. It can be impractical to solve larger problems on Serial Computing.
Difference between Parallel and Distributed Computing
Definition---Parallel computing is a type of computation in which many calculations or
execution of processes are carried out simultaneously. Whereas, a distributed system is a
system whose components are located on different networked computers which communicate
and coordinate their actions by passing messages to one another. Thus, this is the
fundamental difference between parallel and distributed computing.
Number of computers---Parallel computing occurs in a single computer whereas distributed
computing involves multiple computers.
Functionality---In parallel computing, multiple processors execute multiple tasks at the same
time. However, in distributed computing, multiple computers perform tasks at the same time.
Hence, this is another difference between parallel and distributed computing.
17
19. Memory---Moreover, memory is a major difference between parallel and distributed
computing. In parallel computing, the computer can have a shared memory or distributed
memory. In distributed computing, each computer has its own memory.
Communication---In parallel computing, the processors communicate with each other using a
bus. In distributed computing, computers communicate with each other via the network.
Usage---Parallel computing helps to increase the performance of the system. In contrast,
distributed computing allows scalability, sharing resources and helps to perform computation
tasks efficiently. So, this is also a difference between parallel and distributed computing.
7. Elasticity in Cloud
Typically, elasticity is a system’s ability to shrink or expand infrastructure resources potentially as
required in order to adjust to workload variations simply in an autonomic way, ensuring resource
efficiencies. Application of ‘Elastic Services’ usually means that each resource available in the
system infrastructure has to be elastic. Such resources include software, hardware, connectivity,
QoS and other matters that are utilized in inelastic applications. Thus, it may turn out to be a
negative trait where certain applications’ performances should have absolutely guaranteed
performance.
The dynamic adaptation of capacity, e.g., by altering the use of computing resources, to meet a
varying workload is called "elastic computing". Elasticity aims at matching the amount of resource
allocated to a service with the amount of resource it actually requires, avoiding over- or under-
provisioning.
18
20. Over-provisioning---allocating more resources than required, should be avoided as the service
provider often has to pay for the resources that are allocated to the service. For example, an
Amazon EC2 M4 extra-large instance costs US$0.239/hour. If a service h as allocated two virtual
machines when only one is required, the service provider wastes $2,095 every year. Hence, the
service provider's expenses are higher than optimal and their profit is reduced.
Under-provisioning---allocating fewer resources than required, must be avoided, otherwise the
service cannot serve its users with a good service. In the above example, under-provisioning the
website may make it seem slow or unreachable. Web users eventually give up on accessing it, thus,
the service provider loses customers. On the long term, the provider's income will decrease, which
also reduces their profit.
SCALABILITY - ability of a system to increase the workload on its current hardware resources scale
up;
ELASTICITY - ability of a system to increase the workload on its current and additional (dynamically
added on demand) hardware resources (scale out);
8. Provisioning
In general, provisioning means "providing" or making something available. The term is used in a
variety of contexts in IT. For example, in grid computing, to provision is to activate a grid component,
such as a server, or switch, so that it is available for use. In a storage area network (SAN), storage
provisioning is the process of assigning storage to optimize performance. In telecommunications
terminology, provisioning means providing a product or service, such as wiring or bandwidth.
Cloud provisioning is the allocation of a cloud provider's resources and services to a customer.
Cloud provisioning is a key feature of the cloud computing model, relating to how a customer
procures cloud services and resources from a cloud provider. The growing catalog of cloud services
that customers can provision includes infrastructure as a service, software as a service and platform
as a service, in public or private cloud environments.
There are three different delivery models:
Dynamic/On-Demand Provisioning: The customer or requesting application is provided with
resources on run time. With dynamic provisioning, cloud resources are deployed flexibly to match a
customer's fluctuating demands. The deployments typically scale up to accommodate spikes in
usage and scale down when demands decrease. The customer is billed on a pay-per-use basis.
When dynamic provisioning is used to create a hybrid cloud environment, it is sometimes referred to
as cloud bursting.
19
21. User Provisioning: The user/customer adds a cloud device or device themselves. With user
self-provisioning, also called cloud self-service, the customer buys resources from the cloud provider
through a web interface or portal. This usually involves creating a user account and paying for
resources with a credit card. Those resources are then quickly spun up and made available for use --
within hours, if not minutes. Examples of this type of cloud provisioning include employee purchasing
cloud-based productivity applications via the Microsoft Office 365 suite or Google Apps for Business.
Post-Sales/Advanced Provisioning: The customer is provided with the resource upon
contract/service signup. With advanced provisioning, the customer signs a formal contract of service
with the cloud provider. The provider then prepares the agreed-upon resources or services for the
customer and delivers them. The customer is charged a flat fee or is billed on a monthly basis.
From a provider’s standpoint, cloud provisioning can include the supply and assignment of required
cloud resources to the customer. For example, the creation of virtual machines, the allocation of
storage capacity and/or granting access to cloud software.
References:
[1] R Shyam, P Srivastava, DS Kushwaha, “A Taxonomy and Survey of Cloud Computing [Security
Issues and Challenges]”, BL Joshi, 62, 2012.
[2] PK Varshney, P Singh, R Shyam, “Weak Spots of Cloud Computing and Their Revelations”, BL
20
22. Joshi, 109, 2012.
[3] Kai Hwang, Geoffrey C. Fox, Jack G. Dongarra, “Distributed and Cloud Computing, From Parallel
Processing to the Internet of Things”, Morgan Kaufmann Publishers, 2012.
[4] Rittinghouse, John W., and James F. Ransome, “Cloud Computing: Implementation,
Management and Security”, CRC Press, 2017.
[5] Rajkumar Buyya, Christian Vecchiola, S. Thamarai Selvi, “Mastering Cloud Computing”, Tata
Mcgraw Hill, 2013.
[6] Toby Velte, Anthony Velte, Robert Elsenpeter, “Cloud Computing – A Practical Approach”, Tata
Mcgraw Hill, 2009.
[7] George Reese, “Cloud Application Architectures: Building Applications and Infrastructure in the
Cloud”: Transactional Systems for EC2 and Beyond (Theory in Practice), O’Reilly, 2009.
21