Unit 1 CC

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 25

UNIT-I

TO CLOUD COMPUTING AND DISTRIBUTED SYSTEMS

1.1 Distributed Systems: Introduction to Distributed


System, Examples of distributed systems

What is a Distributed System?

Distributed System is a collection of autonomous computer systems that are physically


separated but are connected by a centralized computer network that is equipped with
distributed system software. The autonomous computers will communicate among each
system by sharing resources and files and performing the tasks assigned to them.
Example of Distributed System:
Any social media can have its Centralized Computer Network as its Headquarters and
computer systems that can be accessed by any user and using their services will be the
Autonomous Systems in the Distributed System Architecture.

 Distributed System Software: This Software enables computers to coordinate their


activities and to share the resources such as Hardware, Software, Data, etc.
 Database: It is used to store the processed data that are processed by each
Node/System of the Distributed systems that are connected to the Centralized
network.
 As we can see that each Autonomous System has a common Application that can
have its own data that is shared by the Centralized Database System.
 To Transfer the Data to Autonomous Systems, Centralized System should be having a
Middleware Service and should be connected to a Network.
 Middleware Services enable some services which are not present in the local systems
or centralized system default by acting as an interface between the Centralized System
and the local systems. By using components of Middleware Services systems
communicate and manage data.
 The Data which is been transferred through the database will be divided into segments
or modules and shared with Autonomous systems for processing.
 The Data will be processed and then will be transferred to the Centralized system
through the network and will be stored in the database.

Characteristics of Distributed System:


 Resource Sharing: It is the ability to use any Hardware, Software, or Data anywhere
in the System.
 Openness: It is concerned with Extensions and improvements in the system (i.e.,
How openly the software is developed and shared with others)
 Concurrency: It is naturally present in Distributed Systems, that deal with the same
activity or functionality that can be performed by separate users who are in remote
locations. Every local system has its independent Operating Systems and Resources.
 Scalability: It increases the scale of the system as a number of processors
communicate with more users by accommodating to improve the responsiveness of
the system.
 Fault tolerance: It cares about the reliability of the system if there is a failure in
Hardware or Software, the system continues to operate properly without degrading the
performance the system.
 Transparency: It hides the complexity of the Distributed Systems to the Users and
Application programs as there should be privacy in every system.
 Heterogeneity: Networks, computer hardware, operating systems, programming
languages, and developer implementations can all vary and differ among dispersed
system components.

Advantages of Distributed System:


 Applications in Distributed Systems are Inherently Distributed Applications.
 Information in Distributed Systems is shared among geographically distributed users.
 Resource Sharing (Autonomous systems can share resources from remote locations).
 It has a better price performance ratio and flexibility.
 It has shorter response time and higher throughput.
 It has higher reliability and availability against component failure.
 It has extensibility so that systems can be extended in more remote locations and also
incremental growth.
Disadvantages of Distributed System:
 Relevant Software for Distributed systems does not exist currently.
 Security possesses a problem due to easy access to data as the resources are shared to
multiple systems.
 Networking Saturation may cause a hurdle in data transfer i.e., if there is a lag in the
network then the user will face a problem accessing data.
 In comparison to a single user system, the database associated with distributed
systems is much more complex and challenging to manage.
 If every node in a distributed system tries to send data at once, the network may
become overloaded.

Applications Area of Distributed System:


 Finance and Commerce: Amazon, eBay, Online Banking, E-Commerce websites.
 Information Society: Search Engines, Wikipedia, Social Networking, Cloud
Computing.
 Cloud Technologies: AWS, Salesforce, Microsoft Azure, SAP.
 Entertainment: Online Gaming, Music, you
 tube.
 Healthcare: Online patient records, Health Informatics.
 Education: E-learning.
 Transport and logistics: GPS, Google Maps.
 Environment Management: Sensor technologies.

Challenges of Distributed Systems:


While distributed systems offer many advantages, they also present some challenges
that must be addressed. These challenges include:
 Network latency: The communication network in a distributed system can introduce
latency, which can affect the performance of the system.
 Distributed coordination: Distributed systems require coordination among the
nodes, which can be challenging due to the distributed nature of the system.
 Security: Distributed systems are more vulnerable to security threats than centralized
systems due to the distributed nature of the system.
 Data consistency: Maintaining data consistency across multiple nodes in a distributed
system can be challenging.

Conclusion:
Distributed systems are becoming increasingly popular due to their high availability,
scalability, and fault tolerance. However, they also present some challenges that must be
addressed. By understanding the characteristics and challenges of distributed systems,
developers can design and implement effective distributed systems that meet the needs of
their users.

Distributed systems are used in a wide range of applications. Here are some
examples of distributed systems:

1. Social media: Social media platforms such as Facebook, Twitter, and Instagram use
distributed systems to handle the large volume of data generated by their users.
2. Telecommunication networks: Telephone networks and cellular networks are
examples of distributed systems that allow users to communicate with each other over
long distances.
3. Cloud computing: Cloud computing is a distributed system that provides on-demand
access to computing resources such as servers, storage, and applications.
4. Distributed databases: Distributed databases are databases that are spread across
multiple computers and are used to store large amounts of data.
5. Distributed file systems: Distributed file systems are file systems that are spread
across multiple computers and are used to store and manage large files.

Trends in distributed Systems


Distributed systems are undergoing a period of significant change and this can be traced
back to a number of influential trends:

• the emergence of pervasive networking technology.

• the emergence of ubiquitous computing coupled with the desire to support user
mobility in distributed systems.

• the increasing demand for multimedia services.

• the view of distributed systems as a utility.

Types of System Models:

Distributed computing refers to a system where processing and data storage is distributed
across multiple devices or systems, rather than being handled by a single central device.
In this article we will see Distributed Computing System Models.
Types of Distributed Computing System Models
Physical Model
A physical model is basically a representation of the underlying hardware elements of a
distributed system. It encompasses the hardware composition of a distributed system in
terms of computers and other devices and their interconnections. It is primarily used to
design, manage, implement and determine the performance of a distributed system. A
physical model majorly consists of the following components:
 Nodes – Nodes are the end devices that have the ability of processing data, executing
tasks and communicating with the other nodes. These end devices are generally the
computers at the user end or can be servers, workstations etc. Nodes provision the
distributed system with an interface in the presentation layer that enables the user to
interact with other back-end devices, or nodes, that can be used for storage and
database services, or processing, web browsing etc. Each node has an Operating
System, execution environment and different middleware requirements that facilitate
communication and other vital tasks.
 Links – Links are the communication channels between different nodes and
intermediate devices. These may be wired or wireless. Wired links or physical media
are implemented using copper wires, fibre optic cables etc. The choice of the medium
depends on the environmental conditions and the requirements. Generally, physical
links are required for high performance and real-time computing. Different
connection types that can be implemented are as follows:
 Point-to-point links – It establishes a connection and allows data transfer
between only two nodes.
 Broadcast links – It enables a single node to transmit data to multiple nodes
simultaneously.
 Multi-Access links – Multiple nodes share the same communication channel to
transfer data. Requires protocols to avoid interference while transmission.
 Middleware – These are the software’s installed and executed on the nodes. By
running middleware on each node, the distributed computing system achieves a
decentralised control and decision-making. It handles various tasks like
communication with other nodes, resource management, fault tolerance,
synchronisation of different nodes and security to prevent malicious and unauthorised
access.
 Network Topology – This defines the arrangement of nodes and links in the
distributed computing system. The most common network topologies that are
implemented are bus, star, mesh, ring or hybrid. Choice of topology is done by
determining the exact use cases and the requirements.
 Communication Protocols – Communication protocols are the set rules and
procedures for transmitting data from in the links. Examples of these protocols
include TCP, UDP, HTTPS, MQTT etc. These allow the nodes to communicate and
interpret the data.
Architectural Model

Architectural model in distributed computing system is the overall design and structure
of the system, and how its different components are organised to interact with each other
and provide the desired functionalities. It is an overview of the system, on how will the
development, deployment and operations take place. Construction of a good architectural
model is required for efficient cost usage, and highly improved scalability of the
applications. The key aspects of architectural model are –
 Client-Server model – It is a centralised approach in which the clients initiate
requests for services and severs respond by providing those services. It mainly works
on the request-response model where the client sends a request to the server and the
server processes it, and responds to the client accordingly. It can be achieved by using
TCP/IP, HTTP protocols on the transport layer. This is mainly used in web services,
cloud computing, database management systems etc.
 Peer-to-peer model – It is a decentralised approach in which all the distributed
computing nodes, known as peers, are all the same in terms of computing capabilities
and can both request as well as provide services to other peers. It is a highly scalable
model because the peers can join and leave the system dynamically, which makes it
an ad-hoc form of network. The resources are distributed and the peers need to look
out for the required resources as and when required. The communication is directly
done amongst the peers without any intermediaries according to some set rules and
procedures defined in the P2P networks. The best example of this type of computing
is BitTorrent.

 Layered model – It involves organising the system into multiple layers, where each
layer will provision a specific service. Each layer communicated with the adjacent
layers using certain well-defined protocols without affecting the integrity of the
system. A hierarchical structure is obtained where each layer abstracts the underlying
complexity of lower layers.
 Micro-services model – In this system, a complex application or task, is decomposed
into multiple independent tasks and these services running on different servers. Each
service performs only a single function and is focussed on a specific business-
capability. This makes the overall system more maintainable, scalable and easier to
understand. Services can be independently developed, deployed and scaled without
affecting the ongoing services.

Fundamental Model
The fundamental model in a distributed computing system is a broad conceptual
framework that helps in understanding the key aspects of the distributed systems. These
are concerned with more formal description of properties that are generally common in
all architectural models. It represents the essential components that are required to
understand a distributed system’s behaviour. Three fundamental models are as follows:
 Interaction Model – Distributed computing systems are full of many processes
interacting with each other in highly complex ways. Interaction model provides a
framework to understand the mechanisms and patterns that are used for
communication and coordination among various processes. Different components that
are important in this model are –
 Message Passing – It deals with passing messages that may contain, data,
instructions, a service request, or process synchronisation between different
computing nodes. It may be synchronous or asynchronous depending on the
types of tasks and processes.
 Publish/Subscribe Systems – Also known as pub/sub system. In this the
publishing process can publish a message over a topic and the processes that
are subscribed to that topic can take it up and execute the process for
themselves. It is more important in an event-driven architecture.
 Remote Procedure Call (RPC) – It is a communication paradigm that has an ability
to invoke a new process or a method on a remote process as if it were a local
procedure call. The client process makes a procedure call using R

 PC and then the message is passed to the required server process using
communication protocols. These message passing protocols are abstracted and the
result once obtained from the server process, is sent back to the client process to
continue execution.

 Failure Model – This model addresses the faults and failures that occur in the
distributed computing system. It provides a framework to identify and rectify the
faults that occur or may occur in the system. Fault tolerance mechanisms are
implemented so as to handle failures by replication and error detection and recovery
methods. Different failures that may occur are:

 Crash failures – A process or node unexpectedly stops functioning.
 Omission failures – It involves a loss of message, resulting in absence of
required communication.
 Timing failures – The process deviates from its expected time quantum and
may lead to delays or unsynchronised response times.
 Byzantine failures – The process may send malicious or unexpected
messages that conflict with the set protocols.
 Security Model – Distributed computing systems may suffer malicious attacks,
unauthorised access and data breaches. Security model provides a framework for
understanding the security requirements, threats, vulnerabilities, and mechanisms to
safeguard the system and its resources. Various aspects that are vital in the security
model are –
 Authentication – It verifies the identity of the users accessing the system. It
ensures that only the authorised and trusted entities get access. It involves –
 Password-based authentication – Users provide a unique password
to prove their identity.
 Public-key cryptography – Entities possess a private key and a
corresponding public key, allowing verification of their authenticity.
 Multi-factor authentication – Multiple factors, such as passwords,
biometrics, or security tokens, are used to validate identity.
 Encryption – It is the process of transforming data into a format that is
unreadable without a decryption key. It protects sensitive information from
unauthorized access or disclosure.

 Data Integrity – Data integrity mechanisms protect against unauthorised


modifications or tampering of data. They ensure that data remains unchanged during
storage, transmission, or processing. Data integrity mechanisms include:
 Hash functions – Generating a hash value or checksum from data to verify its
integrity.
 Digital signatures – Using cryptographic techniques to sign data and verify
its authenticity and integrity.
1.2 Cloud Computing: Introduction to Cloud Computing

What is Cloud Computing?

Cloud computing means storing and accessing the data and programs on remote servers
that are hosted on the internet instead of the computer’s hard drive or local server. Cloud
computing is also referred to as Internet-based computing, it is a technology where the
resource is provided as a service through the Internet to the user. The data which is
stored can be files, images, documents, or any other storable document.
Some operations which can be performed with cloud computing are –
1. Storage, backup, and recovery of data
2. Delivery of software on demand
3. Development of new applications and services
4. Streaming videos and audio

Cloud Computing Architecture:


Cloud computing architecture refers to the components and sub-components required for
cloud computing. These components typically refer to:
1. Front end(fat client, thin client)
2. Back-end platforms(servers, storage)
3. Cloud-based delivery and a network(Internet, Intranet, Intercloud)
Why Cloud Computing?
Here are the top reasons why to switch to Cloud Computing instead of owning a database
server.
1. Reduces cost :
The cost-cutting ability of businesses that utilize cloud computing over time is one of the
main advantages of this technology. On average 15% of the total cost can be saved by
companies if they migrate to the cloud. By the use of cloud servers’ businesses will save and
reduce costs with no need to employ a staff of technical support personnel to address server
issues. There are many great business modules regarding the cost-cutting benefits of cloud
servers such as the Coca-Cola and Pinterest case studies.
2. More storage :
For software and applications to execute as quickly and efficiently as possible, it provides
more servers, storage space, and computing power. Many tools are available for cloud storage
such as Dropbox, One drive, Google Drive, iCloud Drive, etc.
3. Employees using cloud computing have better work-life balance :
Direct connections between cloud computing benefits, and the work and personal lives of an
enterprise’s workers can both improve because of cloud computing. Even on holidays, the
employees have to work with the server for its security, maintenance, and proper
functionality. But with cloud storage the thing is not the same, employees get ample of time
for their personal life and the workload is even less comparatively.

What is Cloud Hoisting


There are three layers in cloud computing. Companies use these layers based on the service
they provide.
 Infrastructure
 Platform
 Application

Three layers of Cloud Computing


At the bottom is the foundation, the infrastructure where the people start and begin to build.
This is the layer where the cloud hosting lives.
Now, let’s have a look at hosting: Let’s say you have a company and a website and the
website has a lot of communications that are exchanged between members. You start with a
few members talking with each other and then gradually the number of members increases.
As time passes, as the number of members increases, there would be more traffic on the
network and your server will get slow down. This would cause a problem. A few years ago,
the websites are put on the server somewhere, in this way you have to run around or buy and
set the number of servers. It costs a lot of money and takes a lot of time. You pay for these
servers when you are using them and as well as when you are not using them. This is called
hosting. This problem is overcome by cloud hosting. With Cloud Computing, you have
access to computing power when you needed. Now, your website is put in the cloud server as
you put it on a dedicated server. People start visiting your website and if you suddenly need
more computing power, you would scale up according to the need.
Characteristics of Cloud Computing
 Scalability: With Cloud hosting, it is easy to grow and shrink the number and size of
servers based on the need. This is done by either increasing or decreasing the
resources in the cloud. This ability to alter plans due to fluctuations in business size
and needs is a superb benefit of cloud computing, especially when experiencing a
sudden growth in demand.
 Instant: Whatever you want is instantly available in the cloud.
 Save Money: An advantage of cloud computing is the reduction in hardware costs.
Instead of purchasing in-house equipment, hardware needs are left to the vendor. For
companies that are growing rapidly, new hardware can be large, expensive, and
inconvenient. Cloud computing alleviates these issues because resources can be
acquired quickly and easily. Even better, the cost of repairing or replacing equipment
is passed to the vendors. Along with purchase costs, off-site hardware cuts internal
power costs and saves space. Large data centres can take up precious office space and
produce a large amount of heat. Moving to cloud applications or storage can help
maximize space and significantly cut energy expenditures.
 Reliability: Rather than being hosted on one single instance of a physical server,
hosting is delivered on a virtual partition that draws its resource, such as disk space,
from an extensive network of underlying physical servers. If one server goes offline it
will have no effect on availability, as the virtual servers will continue to pull resources
from the remaining network of servers.
 Physical Security: The underlying physical servers are still housed within data
centres and so benefit from the security measures that those facilities implement to
prevent people from accessing or disrupting them on-site.
 Outsource Management: When you are managing the business,

 someone else manages your computing infrastructure. You do not need to worry
about management as well as degradation.
Top leading Cloud Computing companies
1. Amazon Web Services(AWS): One of the most successful cloud-based businesses is
Amazon Web Services(AWS), which is an Infrastructure as a Service(Iaas) offering
that pays rent for virtual computers on Amazon’s infrastructure.
2. Microsoft Azure Platform: Microsoft is creating the Azure platform which enables
the .NET Framework Application to run over the internet as an alternative platform
for Microsoft developers. This is the classic Platform as a Service(PaaS).
3. Google: Google has built a worldwide network of data centers to service its search
engine. From this service, Google has captured the world’s advertising revenue. By
using that revenue, Google offers free software to users based on infrastructure. This
is called Software as a Service(SaaS).
4. IBM Cloud is a collection of cloud computing services for businesses provided by
the IBM Corporation. It provides infrastructure as a service, software as a service, and
platform as a service.
5. Oracle Cloud is a collection of cloud services offered by Oracle Corporation,
including infrastructure as a service (IaaS), platform as a service (PaaS), and software
as a service (SaaS).
6. Alibaba Cloud is the cloud computing arm of Alibaba Group, providing a
comprehensive suite of global cloud computing services to power both their
international customers’ online businesses and Alibaba Group’s own e-commerce
ecosystem.
7. Tencent Cloud is a cloud service platform provided by Tencent. It provides a range
of services such as virtual machines, storage, databases, and analytics.
8. Rackspace is a provider of hybrid cloud computing, founded in 1998. It provides
managed hosting, cloud hosting, and email and app services.
9. Salesforce – A cloud-based customer relationship management (CRM) platform used
for sales, marketing, and customer service.
10. VMware Cloud – A cloud platform by VMware, offering services such as
virtualization, cloud management, and network virtualization.
11. DigitalOcean – A cloud platform focused on providing easy-to-use, scalable
computing services.
12. Red Hat OpenShift – A cloud platform by Red Hat, offering container-based
application development and management.
13. Cisco Cloud – A cloud platform by Cisco, offering a range of services including
networking, security, and application development.
14. HP Helion – A cloud platform by HP, offering services such as computing, storage,
and networking.
15. SAP Cloud Platform – A cloud platform by SAP, offering services such as analytics,
application development, and integration.
16. Fujitsu Cloud – A cloud platform by Fujitsu, offering services such as computing,
storage, and networking.
17. OVHcloud – A cloud platform offering a range of services including computing,
storage, and networking.
18. CenturyLink Cloud – A cloud platform offering a range of services including
computing, storage, and networking.
19. Joyent – A cloud platform offering services such as computing, storage, and
container-based application development.
20. NTT Communications Cloud – A cloud platform offering services such as
computing, storage, and networking.

Deployment models of Cloud:


Cloud Deployment Model functions as a virtual computing environment with a deployment
architecture that varies depending on the amount of data you want to store and who has
access to the infrastructure.

Types of Cloud Computing Deployment Models


The cloud deployment model identifies the specific type of cloud environment based on
factors like ownership, scale, and access right , as well as the cloud’s nature and
purpose. Different types of cloud computing deployment models are:

1. Public Cloud 2. Private Cloud 3. Hybrid Cloud 4. Community Cloud 5. Multi-Cloud

Public Cloud
Public cloud is cloud model which can be access by anyone they can also use their services,
but ownership and control are under the hand of third party(service provider). For example,
Google App Engine.

Advantages of the Public Cloud Model


 Minimal Investment: Because it is a pay-per-use service, there is no substantial
upfront fee, making it excellent for enterprises that require immediate access to
resources.
 No setup cost: The entire infrastructure is fully subsidized by the cloud service
providers, thus there is no need to set up any hardware.
 Infrastructure Management is not required: Using the public cloud does not
necessitate infrastructure management.
 No maintenance: The maintenance work is done by the service provider (not users).
 Dynamic Scalability: To fulfill your company’s needs, on-demand resources are
accessible.
Disadvantages of the Public Cloud Model
 Less secure: Public cloud is less secure as resources are public so there is no
guarantee of high-level security.
 Low customization: It is accessed by many public so it can’t be customized
according to personal requirements.

Private Cloud

Private cloud is a deployment model in which ownership , control and ability to access
systems and services belongs to specific user or community. The cost developing and
managing high in comparison of public cloud. There is no need to share your hardware with
anyone else. It is also called the “internal cloud” The private cloud gives greater flexibility of
control over cloud resources. Example: VMware , Red Hat etc.

Advantages of the Private Cloud Model


 Better Control: You are the sole owner of the property. You gain complete command
over service integration, IT operations, policies, and user behavior.
 Data Security and Privacy: It’s suitable for storing corporate information to which
only authorized staff have access. By segmenting resources within the same
infrastructure, improved access and security can be achieved.
 Supports Legacy Systems: This approach is designed to work with legacy systems
that are unable to access the public cloud.
 Customization: Unlike a public cloud deployment, a private cloud allows a company
to tailor its solution to meet its specific needs.
Disadvantages of the Private Cloud Model
 Less scalable: Private clouds are scaled within a certain range as there is a smaller
number of clients.
 Costly: Private clouds are more costly as they provide personalized facilities.

Hybrid Cloud

Hybrid cloud is hybrid of public and private cloud. Both cloud world is bridged by the
proprietary software. Hybrid cloud computing gives the best of both worlds. Organisation
can move data and application between different cloud using combination of two or more
deployment methods, depending upon their need. Example: Rackspace, Threat Stack etc

Advantages of the Hybrid Cloud Model


 Flexibility and control: Businesses with more flexibility can design personalized
solutions that meet their particular needs.
 Cost: Because public clouds provide scalability, you’ll only be responsible for paying
for the extra capacity if you require it.
 Security: Because data is properly separated, the chances of data theft by attackers
are considerably reduced.
Disadvantages of the Hybrid Cloud Model
 Difficult to manage: Hybrid clouds are difficult to manage as it is a combination of
both public and private cloud. So, it is complex.
 Slow data transmission: Data transmission in the hybrid cloud takes place through
the public cloud so latency occurs.

Community Cloud

It allows systems and services to be accessible by a group of organizations. It is a distributed


system that is created by integrating the services of different clouds to address the specific
needs of a community, industry, or business. The infrastructure of the community could be
shared between the organization which has shared concerns or tasks. It is generally managed
by a third party or by the combination of one or more organizations in the community.

Advantages of the Community Cloud Model


 Cost Effective: It is cost-effective because the cloud is shared by multiple
organizations or communities.
 Security: Community cloud provides better security.
 Shared resources: It allows you to share resources, infrastructure, etc. with multiple
organizations.
 Collaboration and data sharing: It is suitable for both collaboration and data
sharing.
Disadvantages of the Community Cloud Model
 Limited Scalability: Community cloud is relatively less scalable as many
organizations share the same resources according to their collaborative interests.
 Rigid in customization: As the data and resources are shared among different
organizations according to their mutual interests if an organization wants some
changes according to their needs they cannot do so because it will have an impact on
other organizations.

Multi-Cloud

Multi-cloud is similar to the hybrid cloud deployment approach, which combines public and
private cloud resources. Instead of merging private and public clouds, multi-cloud uses many
public clouds. Although public cloud providers provide numerous tools to improve the
reliability of their services, mishaps still occur. It’s quite rare that two distinct clouds would
have an incident at the same moment. As a result, multi-cloud deployment improves the high
availability of your services even more. Example : Google Cloud Platform (GCP)

Advantages of the Multi-Cloud Model


 You can mix and match the best features of each cloud provider’s services to suit the
demands of your apps, workloads, and business by choosing different cloud
providers.
 Reduced Latency: To reduce latency and improve user experience, you can choose
cloud regions and zones that are close to your clients.
 High availability of service: It’s quite rare that two distinct clouds would have an
incident at the same moment. So, the multi-cloud deployment improves the high
availability of your services.
Disadvantages of the Multi-Cloud Model
 Complex: The combination of many clouds makes the system complex and
bottlenecks may occur.
Security issue: Due to the complex structure, there may be loopholes to which a hacker can
take advantage hence, makes the data insecure.

Services offered by Cloud


Cloud Computing can be defined as the practice of using a network of remote
servers hosted on the Internet to store, manage, and process data, rather than a
local server or a personal computer. Companies offering such kinds of cloud
computing services are called cloud providers and typically charge for cloud
computing services based on usage. Grids and clusters are the foundations for
cloud computing.
Types of Cloud Computing
Most cloud computing services fall into five broad categories:
1. Software as a service (SaaS)
2. Platform as a service (PaaS)
3. Infrastructure as a service (IaaS)
4. Anything/Everything as a service (XaaS)
5. Function as a Service (FaaS)
These are sometimes called the cloud computing stack because they are built on
top of one another. Knowing what they are and how they are different, makes it
easier to accomplish your goals. These abstraction layers can also be viewed as
a layered architecture where services of a higher layer can be composed of
services of the underlying layer i.e., SaaS can provide Infrastructure.

Software as a Service(SaaS)

Software-as-a-Service (SaaS) is a way of delivering services and applications


over the Internet. SaaS provides a complete software solution that you purchase
on a pay-as-you-go basis from a cloud service provider. Most SaaS applications
can be run directly from a web browser without any downloads or installations
required. The SaaS applications are sometimes called Web-based software, on-
demand software, or hosted software.

Advantages of SaaS

1. Cost-Effective: Pay only for what you use.


2. Reduced time: Users can run most SaaS apps directly from their web
browser without needing to download and install any software. This
reduces the time spent in installation and configuration and can reduce
the issues that can get in the way of the software deployment.
3. Accessibility: We can Access app data from anywhere.
4. Automatic updates: Rather than purchasing new software, customers rely
on a SaaS provider to automatically perform the updates.
5. Scalability: It allows the users to access the services and features on-
demand.
The various companies providing Software as a service are Cloud9 Analytics,
Salesforce.com, Cloud Switch, Microsoft Office 365, Big Commerce, Eloqua,
drop Box, and Cloud Tran.

Disadvantages of SaaS :
1. Limited customization: SaaS solutions are typically not as customizable
as on-premises software, meaning that users may have to work within the
constraints of the SaaS provider’s platform and may not be able to tailor
the software to their specific needs.
2. Dependence on internet connectivity: SaaS solutions are typically cloud-
based, which means that they require a stable internet connection to
function properly. This can be problematic for users in areas with poor
connectivity or for those who need to access the software in offline
environments.
3. Security concerns: SaaS providers are responsible for maintaining the
security of the data stored on their servers, but there is still a risk of data
breaches or other security incidents.
4. Limited control over data: SaaS providers may have access to a user’s
data, which can be a concern for organizations that need to maintain strict
control over their data for regulatory or other reasons.
Platform as a Service

PaaS is a category of cloud computing that provides a platform and environment


to allow developers to build applications and services over the internet. PaaS
services are hosted in the cloud and accessed by users simply via their web
browser.
A PaaS provider hosts the hardware and software on its own infrastructure. As a
result, PaaS frees users from having to install in-house hardware and software to
develop or run a new application. Thus, the development and deployment of the
application take place independent of the hardware.
The consumer does not manage or control the underlying cloud infrastructure
including network, servers, operating systems, or storage, but has control over
the deployed applications and possibly configuration settings for the
application-hosting environment. To make it simple, take the example of an
annual day function, you will have two options either to create a venue or to
rent a venue but the function is the same.
Advantages of PaaS:
1. Simple and convenient for users: It provides much of the infrastructure
and other IT services, which users can access anywhere via a web
browser.
2. Cost-Effective: It charges for the services provided on a per-use basis
thus eliminating the expenses one may have for on-premises hardware
and software.
3. Efficiently managing the lifecycle: It is designed to support the complete
web application lifecycle: building, testing, deploying, managing, and
updating.
4. Efficiency: It allows for higher-level programming with reduced
complexity thus, the overall development of the application can be more
effective.
The various companies providing Platform as a service are Amazon Web
services Elastic Beanstalk, Salesforce, Windows Azure, Google App Engine,
cloud Bees and IBM smart cloud.
Disadvantages of Paas:
1. Limited control over infrastructure: PaaS providers typically manage the
underlying infrastructure and take care of maintenance and updates, but
this can also mean that users have less control over the environment and
may not be able to make certain customizations.
2. Dependence on the provider: Users are dependent on the PaaS provider
for the availability, scalability, and reliability of the platform, which can
be a risk if the provider experiences outages or other issues.
3. Limited flexibility: PaaS solutions may not be able to accommodate
certain types of workloads or applications, which can limit the value of
the solution for certain organizations.

Infrastructure as a Service

Infrastructure as a service (IaaS) is a service model that delivers computer


infrastructure on an outsourced basis to support various operations. Typically
IaaS is a service where infrastructure is provided as outsourcing to enterprises
such as networking equipment, devices, database, and web servers.
It is also known as Hardware as a Service (HaaS). IaaS customers pay on a per-
user basis, typically by the hour, week, or month. Some providers also charge
customers based on the amount of virtual machine space they use.
It simply provides the underlying operating systems, security, networking, and
servers for developing such applications, and services, and deploying
development tools, databases, etc.
Advantages of IaaS:
1. Cost-Effective: Eliminates capital expense and reduces ongoing cost and
IaaS customers pay on a per-user basis, typically by the hour, week, or
month.
2. Website hosting: Running websites using IaaS can be less expensive than
traditional web hosting.
3. Security: The IaaS Cloud Provider may provide better security than your
existing software.
4. Maintenance: There is no need to manage the underlying data center or
the introduction of new releases of the development or underlying
software. This is all handled by the IaaS Cloud Provider.
The various companies providing Infrastructure as a service are Amazon web
services, Bluestack, IBM, Openstack, Rackspace, and Vmware.
Disadvantages of laaS :
1. Limited control over infrastructure: IaaS providers typically manage the
underlying infrastructure and take care of maintenance and updates, but
this can also mean that users have less control over the environment and
may not be able to make certain customizations.
2. Security concerns: Users are responsible for securing their own data and
applications, which can be a significant undertaking.
3. Limited access: Cloud computing may not be accessible in certain
regions and countries due to legal policies.

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.
Advantages of XaaS:
1. Scalability: XaaS solutions can be easily scaled up or down to meet the
changing needs of an organization.
2. Flexibility: XaaS solutions can be used to provide a wide range of
services, such as storage, databases, networking, and software, which can
be customized to meet the specific needs of an organization.
3. Cost-effectiveness: XaaS solutions can be more cost-effective than
traditional on-premises solutions, as organizations only pay for the
services.
Disadvantages of XaaS:
1. Dependence on the provider: Users are dependent on the XaaS provider
for the availability, scalability, and reliability of the service, which can be
a risk if the provider experiences outages or other issues.
2. Limited flexibility: XaaS solutions may not be able to accommodate
certain types of workloads or applications, which can limit the value of
the solution for certain organizations.
3. 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.

Function as a Service :

FaaS is a type of cloud computing service. It provides a platform for its users or
customers to develop, compute, run and deploy the code or entire application as
functions. It allows the user to entirely develop the code and update it at any
time without worrying about the maintenance of the underlying infrastructure.
The developed code can be executed with response to the specific event. It is
also as same as PaaS.
FaaS is an event-driven execution model. It is implemented in the serverless
container. When the application is developed completely, the user will now
trigger the event to execute the code. Now, the triggered event makes response
and activates the servers to execute it. The servers are nothing but the Linux
servers or any other servers which is managed by the vendor completely.
Customer does not have clue about any servers which is why they do not need
to maintain the server hence it is serverless architecture.
Both PaaS and FaaS are providing the same functionality but there is still some
differentiation in terms of Scalability and Cost.
FaaS, provides auto-scaling up and scaling down depending upon the demand.
PaaS also provides scalability but here users have to configure the scaling
parameter depending upon the demand.
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.
Advantages of FaaS :
 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 :

1. 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.
2. Limited control over infrastructure: FaaS providers typically manage the
underlying infrastructure and take care of maintenance and updates, but
this can also mean that users have less control over the environment and
may not be able to make certain customizations.
3. Security concerns: Users are responsible for securing their own data and
applications, which can be a significant undertaking.
4. Limited scalability: FaaS functions may not be able to handle high traffic
or large number of requests.
Risk Related to Cloud Computing
There are several security risks to consider when making the switch to cloud computing.
Some of the top security risks of cloud computing include:
1. Limited visibility into network operations
2. Malware
3. Compliance
4. Data Leakage
5. Inadequate due diligence
6. Data breaches
7. Poor application programming interface (API)
Let’s take a closer look at these risks.
1. Limited visibility into network operations
When moving workloads and assets to the cloud, organizations forfeit a certain level of
visibility into network operations. This is because the responsibility of managing some of the
systems and policies shifts to the cloud service provider. Depending on the type of service
model being used, the shift of responsibility may vary in scope. As a result, organizations
must be able to monitor their network infrastructure without the use of network-based
monitoring and logging.
2. Malware
By moving large amounts of sensitive data to an internet-connected cloud environment,
organizations are opening themselves up to additional cyber threats. Malware attacks are a
common threat to cloud security, with studies showing that nearly 90% of organizations are
more likely to experience data breaches as cloud usage increases. As cybercriminals continue
to become increasingly savvy with their attack delivery methods, organizations must be
aware of the evolving threat landscape.
3. Compliance
Data privacy is becoming a growing concern, and as a result, compliance regulations and
industry standards such as GDPR, HIPAA, and PCI DSS are becoming more stringent. One
of the keys to ensuring ongoing compliance is by overseeing who can access data and what
exactly they can do with that access. Cloud systems typically allow for large-scale user
access, so if the proper security measures (ie. access controls) aren’t in place, it can be
difficult to monitor access across the network.
4. Data Leakage
Data leakage is a growing concern for organizations, with over 60% citing it as their biggest
cloud security concern. As previously mentioned, cloud computing requires organizations to
give up some of their control to the CSP. This can mean that the security of some of your
organization’s critical data may fall into the hands of someone outside of your IT department.
If the cloud service provider experiences a breach or attack, your organization will not only
lose its data and intellectual property but will also be held responsible for any resulting
damages.
5. Inadequate due diligence
The move to the cloud should not be taken lightly. Similar to a third-party vendor, when
working with a cloud service provider, it’s important to conduct thorough due diligence to
ensure that your organization has a complete understanding of the scope of work needed to
successfully and efficiently move to the cloud. In many cases, organizations are unaware of
how much work is involved in a transition and the cloud service provider’s security measures
are often overlooked.
6. Data breaches
One of the most impactful security risks the cloud faces is the potential for a data breach.
These are a result of poor security measures that allow malicious actors to gain access to
sensitive data across cloud servers. One breach could cost an organization millions of dollars,
alongside a blow to an organization’s reputation and the potential for legal liability.
7. Poor API
If the cloud has poor application program interfaces (API), then servers run the risk of having
data unwillingly exposed. When it comes to API, malicious actors will employ several
strategies such as brute force attacks and denial-of-service attacks in order to weaken the
integrity of the system.

Virtualization in Cloud Computing


Virtualization is a technique how to separate a service from the underlying physical delivery
of that service. It is the process of creating a virtual version of something like computer
hardware. It was initially developed during the mainframe era. It involves using specialized
software to create a virtual or software-created version of a computing resource rather than
the actual version of the same resource. With the help of Virtualization, multiple operating
systems and applications can run on the same machine and its same hardware at the same
time, increasing the utilization and flexibility of hardware.
In other words, one of the main cost-effective, hardware-reducing, and energy-saving
techniques used by cloud providers is Virtualization. Virtualization allows sharing of a single
physical instance of a resource or an application among multiple customers and organizations
at one time. It does this by assigning a logical name to physical storage and providing a
pointer to that physical resource on demand. The term virtualization is often synonymous
with hardware virtualization, which plays a fundamental role in efficiently delivering
Infrastructure-as-a-Service (IaaS) solutions for cloud computing. Moreover, virtualization
technologies provide a virtual environment for not only executing applications but also for
storage, memory, and networking.
Characteristics of Virtualization
 Increased Security: The ability to control the execution of a guest program in a
completely transparent manner opens new possibilities for delivering a secure,
controlled execution environment. All the operations of the guest programs are
generally performed against the virtual machine, which then translates and applies
them to the host programs.
 Managed Execution: In particular, sharing, aggregation, emulation, and isolation are
the most relevant features.
 Sharing: Virtualization allows the creation of a separate computing environment
within the same host.
 Aggregation: It is possible to share physical resources among several guests, but
virtualization also allows aggregation, which is the opposite process.
For more characteristics, you can refer to Characteristics of Virtualization.
Types of Virtualizations
1. Application Virtualization
2. Network Virtualization
3. Desktop Virtualization
4. Storage Virtualization
5. Server Virtualization
6. Data virtualization

You might also like