0% found this document useful (0 votes)
23 views38 pages

Cloud computing Unit-1 (1)

AKTU Cloud Computing Unit 1 Notes
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
23 views38 pages

Cloud computing Unit-1 (1)

AKTU Cloud Computing Unit 1 Notes
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 38

Cloud Computing (Unit 1)

✔What is Cloud?

The term Cloud refers to a Network or Internet. In other words, we can say that Cloud is
something, which is present at remote location. Cloud can provide services over network, i.e.,
on public networks or on private networks, i.e., WAN, LAN or VPN.

The term “Cloud” came from a network design that was used by network engineers to
represent the location of various network devices and there inter-connection.

"The cloud" refers to servers that are accessed over the Internet and the software and
databases that run on those servers. Cloud servers are located in data centres all over the
world.

The cloud enables users to access the same files and applications from almost any device,
because the computing and storage takes place on servers in a data centre, instead of locally
on the user device.

This is why a user can log in to their Instagram account on a new phone after their old phone
breaks and still find their old account in place, with all their photos, videos, and conversation
history.

✔What is Cloud Computing?

In Simplest terms, 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. You can access cloud-based applications and services from anywhere – all you need is
a device with an internet connection.

The term cloud refers to a network or the internet. It is a technology that uses remote servers
on the internet to store, manage, and access data online rather than local drives. The data can
be anything such as files, images, documents, audio, video, and more.

Cloud computing is the delivery of computing services including servers, storage, databases,
networking, software, analytics, and intelligence over the Internet (“the cloud”) to offer faster
innovation, flexible resources, and economies of scale.

You typically pay only for cloud services you use, helping lower your operating costs, run
your infrastructure more efficiently and scale as your business needs change.
Cloud computing is named as such because the information being accessed is found remotely
in the cloud or a virtual space. Companies that provide cloud services enable users to store
files and applications on remote servers and then access all the data via the Internet.

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.

This means the user is not required to be in a specific place to gain access to it, allowing the
user to work remotely. There are certain services and models working behind the scene
making the cloud computing feasible and accessible to end users. Following are the working
models for cloud computing:

● Deployment Models
● Service Models

✔Why Cloud Computing?

Small as well as large IT companies, follow the traditional methods to provide the IT
infrastructure. That means for any IT company, we need a Server Room that is the basic need
of IT companies.

In that server room, there should be a database server, mail server, networking, firewalls,
routers, modem, switches, QPS (Query Per Second means how much queries or load will be
handled by the server), configurable system, high net speed, and the maintenance engineers.

To establish such IT infrastructure, we need to spend lots of money. To overcome all these
problems and to reduce the IT infrastructure cost, Cloud Computing comes into existence.
❖ Definition of Cloud

● Cloud computing is a model for enabling ubiquitous, convenient, on-demand network


access to a shared pool of configurable computing resources (e.g. networks, servers,
storage, applications, and services) that can be rapidly provisioned and released with
minimal management effort or service provider interaction.”

● “A Cloud is a type of parallel and distributed system consisting of a collection of


interconnected and virtualized computers that are dynamically provisioned and presented
as one or more unified computing resources based on service-level agreements established
through negotiation between the service provider and consumers.”

● Cloud computing refers to both the applications delivered as services over the Internet, and
the hardware and system software in the datacentres that provide those services.

❖ Why utilize Cloud Computing?

Here are the reasons for using Cloud Computing:

● They help in cost reduction in terms of procuring new software and hardware.
● They deliver highly scalable business solutions.
● They help raise the capacity to cater to the ever-increasing business needs of large
organizations.
● Cloud computing is reliable as they offer backup and inexpensive ways to recover data.
● They deliver effective and productive solutions to help in doing time and cost
management.
● They also offer security and, at the same time, make computing resources easily
accessible.
● They help end-users of enterprises to access applications and services efficiently. They
need not worry about their complex business structure.

❖ Properties of Cloud Computing

● User Centric :- Cloud Computing Is user centric once as a user are connected to the
cloud, whatever is stored there documents, messages, images, applications, whatever
becomes authorized to the user access them. In addition, not only is the data, but one can
also share it with others.

● Task Centric :- Cloud computing is task centric because the usage model is based entirely
around what users want to achieve, rather than any particular software, hardware or
network infrastructure. Users do not have to purchase or install anything before using a
cloud computing resource.

● Self-Healing :- Cloud computing is Self-diagnosis and self-healing is one of the important


ability with endowing clouds to reduce the complexity and increase the sustainability to
the failures.

● Flexible :- Cloud computing allows your employees to be more flexible – both in and out
of the workplace. Employees can access files using web-enabled devices such as
smartphones, laptops and notebooks.
● Programmable :- Many of the tasks necessary with cloud computing must be automated.
For example, to protect the integrity of the data, information stored on a single computer
in the cloud must be replicated on other computers in the cloud.

● Multi-tenancy :- In cloud computing, multi-tenancy can also refer to shared hosting, in


which server resources are divided among different customers. Multi-tenancy is a software
architecture where a single software instance can serve multiple, distinct user groups.
Software-as-a-service (SaaS) offerings are an example of multitenant architecture.

❖ History of Cloud Computing

We are quick walkthrough of cloud computing history and evolution all these years.

• 1960’s - One of the renowned names in Computer Science, John McCarthy, enabled
enterprises to use expensive mainframe and introduced the whole concept of time-sharing.
This turned out to be a huge contribution to the pioneering of Cloud computing concept
and establishment of Internet.
• 1969 - With the vision to interconnect the global space, J.C.R. Licklider introduced the
concepts of “Galactic Network” and “Intergalactic Computer Network” and also
developed Advanced Research Projects Agency Network- ARPANET.
• 1970 - By this era, it was possible to run multiple Operating Systems in isolated
environment.
• 1997- Prof. Ramnath Chellappa introduced the concept of “Cloud Computing” in Dallas.
• 1999 - Salesforce.com started the whole concept of enterprise applications through the
medium of simple websites. Along with that, the services firm also covered the way to
help experts deliver applications via the Internet.
• 2003 - The Virtual Machine Monitor (VMM), that allows running of multiple virtual guest
operating systems on single device, paved way ahead for other huge inventions.
• 2006 - Amazon also started expanding in cloud services. From EC2 to Simple Storage
Service S3, they introduced pay-as-you-go model, which has become a standard practice
even today.
• 2013 - With IaaS, (Infrastructure-as-a-Service), the Worldwide Public Cloud Services
Market was totalled at £78bn, which turned out to be the fastest growing market services
of that year.

✔Advantages of Cloud Computing

1. Cost Optimization :- One of the most significant advantages of Cloud Computing is


cost savings. It allows you to save a lot of money because it doesn't require any actual
hardware. In addition, maintaining the hardware does not necessitate the use of skilled
employees.
2. Competitive Advantage :- Cloud computing gives you a leg up on your competition.
One of the biggest features of Cloud services is that you may access the most up-to-date
programs at any time without having to spend time or money on installation.
3. Rapid Deployment :- Cloud computing allows you to deploy applications quickly.
As a result, if you want to use the cloud, your complete system may be up and running in a
matter of minutes.
4. Data backup and Restoration :- Once data is saved on the Cloud, it is much easier
to back it up and restore it, which is a time-consuming procedure on-premise.
5. Automatic Integration :- Software integration is something that happens
automatically on the cloud. As a result, you won't have to put in any extra work to personalize
and integrate your apps according to your preferences.
6. Reliable Support :- One of the most important advantages of Cloud hosting is its
reliability. You will always be kept up to date on any changes. With Cloud computing you
will always have reliable access to advanced online security and support.
7. Easier Accessibility and Collaboration :- Employees working on-site or in remote
locations may quickly access all of the company's services. All they require is access to the
Internet. Employees in various countries may interact in a more easy and safe manner thanks
to the cloud computing platform.
8. Infinite Storage Capacity :- The cloud provides nearly infinite storage space. With
relatively low monthly rates, you may simply enlarge your storage space at any moment.

✔Disadvantages of Cloud Computing

1. Downtime :- Downtime is considered as one of the biggest potential downsides of


using Cloud Computing. The cloud providers may sometimes face technical outages that can
happen due to various reasons, such as loss of power, low Internet connectivity, data centres
going out of service for maintenance, etc. This can lead to a temporary downtime in the cloud
service.
2. Depends on internet connection :- The internet is the only way to cloud computing.
When there is no internet connection in your place, or the internet path to the cloud provider
is in trouble, automatically access to your cloud computing machine will be disconnected.
3. Security Concerns :- Another disadvantage of using cloud computing services is the
security risk. You should be aware that if you use cloud computing, you will be sharing all of
your company's sensitive data with a third-party cloud computing service provider. This
information might be accessed by hackers.
4. Good Internet Connection :- Cloud computing necessitates the use of the internet.
You can't use the cloud if you don't have access to the internet. Furthermore, there is no
alternative means to collect data from the cloud.
5. Reduced Bandwidth :- Many cloud storage service providers restrict their users'
bandwidth use. As a result, if your company exceeds the allotted budget, the additional costs
might be enormous.
6. Lack of Customer Assistance :- Cloud computing firms struggle to provide enough
customer support. They also encourage their users to rely on FAQs or online support, which
may be a time-consuming task for non-technical people
7. Limited Control :- The cloud service provider owns, manages and monitors the
cloud infrastructure. You, as the customer, will have minimal control over it. You will be able
to manage the applications, data and services operated on the cloud, but you won't normally
have access to key administrative tasks, such as updating and managing firmware or
accessing server shell.

✔Cloud Ecosystem

A cloud ecosystem is a dynamic system of interdependent elements, all of which work


together to make cloud services possible. In nature, an ecosystem consists of objects that are
linked and work together that are living and non-living. The ecosystem consists of hardware
and software in cloud computing, as well as cloud clients, cloud developers, consultants,
integrators, and collaborators.

✔Cloud Computing Architecture


Cloud computing architecture is a combination of service-oriented architecture and event-
driven architecture. Cloud computing architecture is divided into the following two parts.
▪ Front End

▪ Back End

1. Frontend :-
Frontend of the cloud architecture refers to the client side of cloud computing system.
Means it contains all the user interfaces and applications which are used by the client
to access the cloud computing services/resources. For example, use of a web browser
to access the cloud platform.
● Client Infrastructure – Client Infrastructure is a part of the frontend
component. It contains the applications and user interfaces which are required
to access the cloud platform. In other words, it provides a GUI( Graphical
User Interface ) to interact with the cloud.

2. Backend :-
Backend refers to the cloud itself which is used by the service provider. It contains the
resources as well as manages the resources and provides security mechanisms. Along
with this, it includes huge storage, virtual applications, virtual machines, traffic
control mechanisms, deployment models, etc.
● Application – Application in backend refers to a software or platform to
which client accesses. Means it provides the service in backend as per
the client requirement.
● Service – Service in backend refers to the major three types of cloud based
services like SaaS, PaaS and IaaS. Also manages which type of service the
user accesses.
● Runtime Cloud -Runtime cloud in backend provides the execution and
Runtime platform/environment to the Virtual machine.
● Storage – Storage in backend provides flexible and scalable storage service
and management of stored data.
● Infrastructure – Cloud Infrastructure in backend refers to the hardware and
software components of cloud like it includes servers, storage, network
devices, virtualization software etc.
● Management – Management in backend refers to management of backend
components like application, service, runtime cloud, storage,
infrastructure, and other security mechanisms etc.
● Security – Security in backend refers to implementation of different security
mechanisms in the backend for secure cloud resources, systems, files, and
infrastructure to end-users.
● Internet – Internet connection acts as the medium or a bridge between
frontend and backend and establishes the interaction and communication
between frontend and backend.
▪ Benefits of Cloud Computing Architecture

• Makes overall cloud computing system simpler.


• Improves data processing requirements.
• Helps in providing high security.
• Makes it more modularized.
• Results in better disaster recovery.
• Gives good user accessibility.
• Reduces IT operating costs.

✔ Evolution of Cloud Computing

Cloud computing evolved primarily from various computing technologies such as distributed
systems and peripherals, virtualization, web 2.0, service orientation, and utility computing.

Distributed Systems :- A distributed system is a computing environment. Different


components are distributed across multiple computers connected by a network. These devices
divided the work, collaborating their efforts to accomplish the assignment more efficiently
than when a single device was in charge. But the main problem with this system was that all
the systems were required to be present at the same geographical location.

Thus to solve this problem, distributed computing led to three more types of computing and
they were Mainframe Computing, Cluster Computing, and Grid Computing.

Mainframes Computing :- Mainframes were powerful, highly reliable computers


specialized for large data movement and massive IO operations. They were mostly used by
large organizations for bulk data processing such as online transactions, enterprise resource
planning, and other operations involving the processing of significant amount of data.

After distributed computing, these increased the processing capabilities of the system. But
these were very expensive. To reduce this cost, cluster computing came as an alternative to

Cluster Computing :- Cluster computing started as a low-cost alternative to the use of


mainframes and supercomputers. Each machine in the cluster was connected to each other by
a network with high bandwidth. Also, new nodes could easily be added to the cluster if it was
required.
Thus, the problem of the cost was solved to some extent but the problem related to
geographical restrictions still pertained. To solve this, the concept of grid computing was
introduced.

Grid Computing :- In 1990s, the concept of grid computing was introduced. It means that
different systems were placed at entirely different geographical locations and these all were
connected via the internet. These systems belonged to different organizations and thus the
grid consisted of heterogeneous nodes. Although it solved some problems but new problems
emerged as the distance between the nodes increased.

The main problem which was encountered was the low availability of high bandwidth
connectivity and with it other network associated issues.

Virtualization :- Virtualization is another core technology for Cloud computing.


Virtualization is the "creation of a virtual (rather than actual) version of something, such as a
server, a desktop, a storage device, an operating system or network resources". In other
words, Virtualization is a technique, which allows to share a single physical instance of a
resource or an application among multiple customers and organizations. Virtualization is
essentially a technology that allows creation of different computing environments. These
environments are named as virtual, because they simulate the interface that is expected by a
guest.

Web 2.0 :- The Web is the primary interface through which Cloud computing deliver its
services. At present time, it encompasses a set of technologies and services that facilitate
interactive information sharing, collaboration, user-cantered design, and application
composition. This has transformed the Web into a rich platform for application development.
Web 2.0 brings interactivity and flexibility into Web pages, which provide enhanced user
experience by gaining Web-based access to all the functions that are normally found in
desktop applications.

Service-Oriented :- Service orientation is the core reference model for Cloud computing
systems. This approach adopts the concept of services as main building blocks of application
and system development. Service-Oriented supports the development of rapid, low-cost,
flexible, interoperable, and evolvable applications and systems. Service-Oriented Computing
introduces the two important concepts.

✔ Quality of Service (QoS) - Quality of Service identifies a set of functional and non-
functional attributes that can be used to evaluate the behaviour of a service from
different perspectives.

✔ Software as a Service (SaaS) - The concept of Software as a Service introduces a


new delivery model for applications. It has been inherited from the world of
Application Service Providers (ASPs).

Utility computing :- It is a computing model that defines service provisioning techniques for
services such as compute services along with other major services such as storage,
infrastructure, etc which are provisioned on a pay-per-use basis. Utility computing is a
service provisioning model where a provider makes computing resources, infrastructure
management and technical services available to customers as they need them. The provider
then charges the customer for the amount of services they use rather than a flat-rate fee.
✔Phases of the Evolution of Cloud Computing

Cloud computing is playing an important role in everyone’s life. We cannot imagine a world
without Cloud computing techniques.

Phase 1: Idea Phase -The idea Phase can consist of the technical development before the
pre-internet era.

Phase 2: Pre-Cloud Phase - The pre-cloud phase began in 1999 and lasted until 2006.
During this stage, the internet was used as a mechanism to deliver Applications as a Service.

Phase 3: Cloud Phase - After the integration of Grid computing with Virtualization
techniques, we needed only better hardware resources and the internet. The much-discussed
real cloud phase began in 2007. When the classification of IaaS, PaaS, and SaaS was
formalized.

✔Eras of Computing

The two fundamental and dominant models of computing are: sequential and parallel. The
sequential computing era began in 1940s; parallel (and distributed) computing era followed it
within a decade. The computing era started with a development in hardware architectures,
which actually enabled the creation of system software particularly in the area of compilers
and operating systems which supported the management of such systems and the
development of applications. The development of applications and systems are the major
element of interest and it comes to consolidation when problem-solving environments are
designed and introduced to facilitate and empower engineers.

✔Parallel & Distributed Computing


Parallel Computing :- Parallel computing is the process of performing computational tasks
across multiple processors at once to improve computing speed and efficiency. It divides
tasks into sub-tasks and executes them simultaneously through different processors.

Distributed Computing :- In distributed computing we have multiple autonomous


computers which seems to the user as single system. In distributed systems there is no shared
memory and computers communicate with each other through message passing. In distributed
computing a single task is divided among different computers.

▪ Difference between Parallel Computing and Distributed Computing

▪ Advantages and Disadvantages of Parallel Computing

Advantages
1. It saves time and money because many resources working together cut down on time
and costs.
2. It may be difficult to resolve larger problems on Serial Computing.
3. You can do many things at once using many computing resources.
4. Parallel computing is much better than serial computing for modeling, simulating, and
comprehending complicated real-world events.
Disadvantages
1. The multi-core architectures consume a lot of power.
2. Parallel solutions are more difficult to implement, debug, and prove right due to the
complexity of communication and coordination, and they frequently perform worse
than their serial equivalents.
▪ Advantages and Disadvantages of Distributed Computing

Advantages
1. It is flexible, making it simple to install, use, and debug new services.
2. In distributed computing, you may add multiple machines as required.
3. If the system crashes on one server, that doesn't affect other servers.
4. A distributed computer system may combine the computational capacity of several
computers, making it faster than traditional systems.
Disadvantages
1. Data security and sharing are the main issues in distributed systems due to the features
of open systems
2. Because of the distribution across multiple servers, troubleshooting and diagnostics
are more challenging.
3. The main disadvantage of distributed computer systems is the lack of software
support.

✔ Types of Parallel Computing

✔ Bit-level parallelism – It is the form of parallel computing which is based on the


increasing processor’s size. It reduces the number of instructions that the system must
execute in order to perform a task on large-sized data.
✔ Instruction-level parallelism – A processor can only address less than one
instruction for each clock cycle phase. These instructions can be re-ordered and
grouped which are later on executed concurrently without affecting the result of the
program. This is called instruction-level parallelism.
✔ Task Parallelism – Task parallelism employs the decomposition of a task into
subtasks and then allocating each of the subtasks for execution. The processors perform
the execution of sub-tasks concurrently.

✔Parallel Processing

Processing of multiple tasks simultaneously on multiple processors is called parallel


processing. The parallel program consists of multiple active processes (tasks) simultaneously
solving a given problem. A given task is divided into multiple subtasks using divide-and-
conquer technique, and each one of them is processed on different CPUs. Programming on
multi–processor system using divide-and-conquer technique is called parallel programming.
The core elements of parallel processing are CPUs. Based on a number of instruction and
data streams that can be processed simultaneously, computing systems are classified into the
following four categories.

● Single Instruction Single Data (SISD) :- A SISD computing system is a


uniprocessor machine capable of executing a single instruction, which operates on a single
data stream. In SISD, machine instructions are processed sequentially, and hence computers
adopting this model are popularly called sequential computers.
● Single Instruction Multiple Data (SIMD) :- A SIMD computing system is a
multiprocessor machine capable of executing the same instruction on all the CPUs, but
operating on different data streams. Machines based on SIMD model are well suited for
scientific computing since they involve lots of vector and matrix operations.

● Multiple Instruction Single Data (MISD) :- A MISD computing system is a


multiprocessor machine capable of executing different instructions on different PEs
(processing elements), but all of them operating on the same data-set.

● Multiple Instruction Multiple Data (MIMD) :- A MIMD computing system is a


multiprocessor machine capable of executing multiple instructions on multiple data sets. Each
PE (processing element) in the MIMD model has separate instructions and data streams, and
hence machines built using this model are well suited for any kind of application.
✔Parallel Programming Approaches

To make many processors collectively work on a single program, the program must be
divided into smaller independent chunks so that each processor can work on separate
chunks of the problem. The program decomposed in this way is a parallel program. A
wide variety of parallel programming approaches are available. The most prominent
among them are the following.

❑ Data Parallelism :- In case of data parallelism, divide-and-conquer technique is used


to split data into multiple sets, and each data set is processed on different PEs by using
the same instruction. This approach is highly suitable for processing on machines
based on the SIMD model.

❑ Process Parallelism :- In the case of process parallelism, a given operation has


multiple (but distinct) activities, which can be processed on multiple processors.
❑ Farmer and Worker Model :- In case of farmer and worker model, a job distribution
approach is used, one processor is configured as master and all other remaining PEs
are designated as slaves; the master assigns a job to slave PEs, and they on completion
inform the master which in turn collects the results.

✔Components of a Distributed System

A distributed system is the result of the interaction of several components that traverse the
entire computing stack from hardware to software. It emerges from the collaboration of
several elements that working together. At the very bottom layer, computer and network
hardware constitute the physical infrastructure, these components are directly managed by
the operating system that provides the basic services for, inter-process communication,
process scheduling and management, and resource management in terms of file system
and local devices. Taken together, these two layers become the platform on top of which
specialized software is deployed to turn a set of networked computers into a distributed
system.

Architectural styles for distributed systems are helpful in understanding the different roles of
components in the system and how they are distributed across multiple machines. We
organize the architectural styles into two major classes.

1. Software Architectural Styles


2. System Architectural Styles
❑ Software architectural styles :- Software architectural styles are based on the logical
arrangement of software components. They are helpful because they provide an intuitive view
of the whole system, despite its physical deployment.

▪ Data-Centered Architectures :- These architectures identify the data as the fundamental


element of the software system and access to shared data is the core characteristic of the
data centered architectures. Therefore, especially within the context of distributed and
parallel computing systems, integrity of data is the overall goal for such systems.

▪ Data-Flow Architectures :- In the case of data-flow architectures, it is the availability of


data that controls the computation. With respect to the data-centered styles, where the access
to data is the core feature, data-flow styles explicitly incorporate the pattern of data flow,
since their design is determined by an orderly motion of data from component to
component, which is the form of communication between them.

▪ Virtual Machine Architectures :- This class of architectural styles is characterized by the


presence of an abstract execution environment (generally referred as virtual machine) that
simulates features that are not available in the hardware or software. Applications and
systems are implemented on top of this layer and become portable over different hardware
and software environment as long as there is an implementation of the virtual machine they
interface with.
▪ Call and Return Architectures :- This category identifies all those systems that are
composed by components mostly connected together by method calls. The activity of
systems modelled in this way is characterized by a chain of method calls whose overall
execution and composition identify the execution of one or more operations.

❑ System Architectural Styles :- System architectural styles cover the physical organization
of components and processes over a distributed infrastructure.

▪ Client-Server :- This architecture is very popular in distributed computing and it is suitable


for a wide variety of applications. the client-server model features two major components: a
server and a client. These two components interact with each other through a network
connection by using a given protocol.
▪ Peer-to-Peer :- Each peer acts as a server when it processes requests from other peers and
as a client when it issues requests to other peers. the client-server model which partitions the
responsibilities of the inter-process communication between server and clients, the peer-to-
peer model attributes the same responsibilities to each component.

✔Models for Inter-Process Communication (IPC)

Distributed systems are composed of a collection of concurrent processes interacting with


each other by means of a network connection. Therefore, inter-process communication (IPC)
is a fundamental aspect of distributed systems design and implementation. IPC is used to both
exchange data and information or to coordinate the activity of processes. It is what ties
together the different components of a distributed system, thus making them acting as a single
system.

● Inter-Process Communication:- Inter-process communication is the mechanism provided


by the operating system that allows processes to communicate with each other. This
communication could involve a process letting another process know that some event has
occurred or transferring of data from one process to another.
● Message-based Communication :- The term “message”, in this case, identifies any
discrete amount of information that is passed from one entity to another. It encompasses
any form of data representation that is limited in size and time, whereas this is an
invocation to a remote procedure or a serialized object instance or a generic message.

✔ Message Passing

✔ Remote Procedure Call (RPC)

✔ Distributed Objects

✔ Distributed Agents and Active Objects

✔ Web Services

✔ Models for Message-based Communication

● Point-to-Point Message Model :- This model organizes the communication among single
components. Each message is sent from one component to another, and there is a direct
addressing to identify the message receiver. In a point-to-point communication model, it is
necessary to know the location or how to address another component in the system.

● Publish-Subscribe Message Model :- This model introduces a different strategy which is


based on notification among components. There are two major roles, the publisher and the
subscriber.
✔ Push Strategy :- In this case, it is the responsibility of the publisher to notify all the
subscribers, for example, with a method invocation.
✔ Pull Strategy :- In this case, the publisher simply makes available the message for a
specific event, and it is the responsibility of the subscribers to check whether there are
messages on the events that are registered.

● Request-Reply Message Model: - The request-reply message model identifies all those
communication models, where for each of the message sent by a process, there is a reply.
This model is quite popular, and provides a different classification that does not focus on
the number of the components involved in the communication, but on how the dynamic of
the interaction evolves.

✔Service-Oriented Computing

Service-oriented computing organizes distributed systems in terms of services, which


represent the major abstraction for building systems. Service orientation expresses
applications and software systems as aggregation of services that are coordinated within a
Service Oriented Architecture (SOA). Web services, the fundamental component enabling
Cloud computing systems, leverage the Internet as the main interaction channel between
users and the system.
✔ What is Service :- A service encapsulates a software component providing a set of
coherent and related functionalities that can be reused and integrated into bigger and
more complex applications.

• Service Oriented Architecture (SOA) :- A Service-Oriented Architecture or SOA is a


design pattern which is designed to build distributed systems that deliver services to other
applications through the protocol. It is only a concept and not limited to any programming
language or platform.
• Web Services :- Web Services are the prominent technology for implementing SOA systems
and applications. They leverage Internet technologies and standards for building distributed
systems. Several aspects make Web Services the technology of choice for SOA.

✔ First of all, they allow for interoperability across different platforms and programming
languages.
✔ Secondly, they are based on well-known and vendor-independent standards such as
HTTP, SOAP, XML, and WSDL.
✔ Thirdly, they provide an intuitive and simple way to connect heterogeneous software
systems enabling the quick composition of services in a distributed environment.

❖ Serial Computing

Serial Computing is the type of computing where one instruction is given at a particular
time and the next instruction has to wait for the first instruction to execute. It is also
known as a traditional computing method because all the instructions are executed in a
sequence. It is having a single processor with low performance and high work-load of the
processor. The main disadvantage of using this computing is that it takes more time as a
single instruction is getting executed at a given point of time.

❖ Difference between parallel and serial Computing

❖ Cloud Characteristics

✔ Rapid elasticity and scalability:- The cloud computing capabilities can be released
elastically. It enables you to scale the cloud computing services inward and outward, and it
helps to be commensurate with the dynamic demand posted by the end-users.
✔ Automation :- Through automation, IT teams and developers maintain and modify cloud
services. When cloud infrastructure is in place, it ensures minimum interaction from
humans. All the configurations are installed to ensure the monitoring and maintenance of
cloud computing services, and such configurations are mostly automated.
✔ On-demand self-service :- Cloud computing delivers on-demand service. It provides the
feature of monitoring server uptime with computing capabilities to the end-users. Cloud
computing provides pre-defined network storage that enables the end-users to monitor
their computing capabilities.
✔ Multi-tenancy and resource pooling :- One of the most important features of cloud
technology is multi-tenancy. It can be defined as the software architecture that enables the
single program instance to provide services to multiple end-users. This feature enables the
usage of the same computing resources by multiple customers.
✔ Broad network access :- Cloud computing is achieved through standard computing
mechanisms, and this feature helps promote heterogeneous thick and thin client platforms.
✔ Resource pooling :- Cloud computing delivers affordable resource pooling solutions.
With resource pooling, organizations can reduce substantial computing costs, and it helps
in the dynamic pooling of resources that enable them to deliver computing services to
several consumers.
✔ Measured and reporting service:- Cloud systems offer the metering capability to
monitor, control, and optimize the usage of cloud resources. This feature can be defined as
a measured service.
✔ Resilience :- Cloud computing delivers continuous server uptime, and hence it offers
resilient services. It offers the capability to recover from any service interruption.
✔ Large Network Access :- Cloud computing is so versatile that it enables its users to
access cloud services. These fundamental characteristics of Cloud Computing also enable
them to upload data to the cloud from anywhere.
✔ Work from any location :- Cloud computing promotes the feature of remote working. It
helps the end-user function, work, or deliver remote services from any location.
✔ Comfortable payment structure :- Cloud computing offers a flexible payment structure
that plays an important role in the cost-cutting of organizations. Pricing varies based on the
features and functionalities chosen by a customer.
✔ Service Excellence :- Cloud computing delivers end-users with a wide range of services.
The cloud service providers share end users’ service level agreements with their clients.
✔ Easy maintenance :- Easy maintenance is one of the critical features of cloud computing.
The client is never involved in maintenance-related services. Its managed by the cloud
computing provider.
✔ Flexibility :- The end-users benefit from the flexibility offered by the cloud services when
they host data in the dedicated cloud.
✔ Economical and Security :- This feature is one of the key aspects of cloud computing. It
helps the big organizations to save a substantial amount on IT-related expenditure.

❖ Issues in Cloud Computing

✔ Privacy :- The user data can be accessed by the host company with or without permission.
The service provider may access the data that is on the cloud at any point in time.
✔ Compliance : - There are many regulations in places related to data and hosting. To
comply with regulations (Federal Information Security Management Act, Health Insurance
Portability and Accountability Act, etc.) the user may have to adopt deployment modes
that are expensive.
✔ Security :- Cloud-based services involve third-party for storage and security. Can one
assume that a cloud-based company will protect and secure one’s data if one is using their
services at a very low or for free? They may share users’ information with others. Security
presents a real threat to the cloud.
✔ Lack of resources/skilled expertise :- One of the major issues that companies and
enterprises are going through today is the lack of resources and skilled employees. Every
second organization is seeming interested or has already been moved to cloud services.
✔ Transparency of service provider :- There is no transparency in the service provider’s
infrastructure and service area. You are not able to see the exact location where your data
is stored or being processed. It is a big challenge for an organisation to transfer their
business information to such an unknown vendor.
✔ Computing Performance :- Data intensive applications on cloud requires high network
bandwidth, which results in high cost. Low bandwidth does not meet the desired
computing performance of cloud application.
❖ Cloud Security Challenges

✔ Data Loss :– Data Loss is one of the issues faced in Cloud computing. This is also known
as Data Leakage. As we know that our sensitive data is in the hands of Somebody else,
and we don’t have full control over our database. So if the security of cloud service is to
break by hackers then it may be possible that hackers will get access to our sensitive data
or personal files.
✔ User Account Hijacking :- Account Hijacking is the most serious security issue in Cloud
Computing. If somehow the Account of User or an Organization is hijacked by Hacker.
Then the hacker has full authority to perform Unauthorized Activities.
✔ Denial of Service (DoS) attack :- This type of attack occurs when the system receives too
much traffic. Mostly DoS attacks occur in large organizations such as the banking sector,
government sector, etc. When a DoS attack occurs data is lost. So in order to recover data,
it requires a great amount of money as well as time to handle it.
✔ Changing Service Provider :– Vendor lock In is also an important Security issue in
Cloud Computing. Many organizations will face different problems while shifting from
one vendor to another. For example, An Organization wants to shift from AWS Cloud to
Google Cloud Services then they ace various problem’s like shifting of all data, also both
cloud services have different techniques and functions, so they also face problems
regarding that.
✔ Insecure access control points :- One of the great benefits of the cloud is it can be
accessed from anywhere and from any device. But, what if the interfaces and particularly
the application programming interfaces (APIs) users interact with aren’t secure? Hackers
can find and gain access to these types of vulnerabilities and exploit authentication via
APIs if given enough time.
✔ Lack of Skill :- While working, shifting o another service provider, need an extra feature,
how to use a feature, etc. are the main problems caused in IT Company who doesn’t have
skilled Employee.
✔ Avoiding Misconfigured Cloud Infrastructure :– One of the main culprits of data
leakage and loss from the cloud is poorly configured or outrightly misconfigured systems.
Cloud configuration is particularly prone to human error, Gartner reports that “through
2025, 99% of cloud security failures will be the customer’s fault.”
✔ Lack of Cloud Security Strategy :- To be effective, cloud security policies need to be
consistently applied across data centres and an organization’s entire cloud infrastructure.
Without this consistency, say in providing strong user authentication or encryption,
hackers are bound to find, target, and exploit weak links.
✔ External Sharing of Data :- The cloud is designed to make data sharing easy. Many
clouds provide the option to explicitly invite a collaborator via email or to share a link that
enables anyone with the URL to access the shared resource. While this easy data sharing is
an asset, it can also be a major cloud security issue.
✔ Malicious Insiders :- Insider threats are a major security issue for any organization. A
malicious insider already has authorized access to an organization’s network and some of
the sensitive resources that it contains.
❖ How is Security Provided to Data at Various Stages in Context of Cloud

✔ Prevent Insecure Interfaces and APIs :- One of the most basic ways to prevent insecure
interfaces and APIs is by securing your authentication tokens and keys that are used for
calling the APIs. To secure your cloud infrastructure from third-party suppliers, analyse
their security model.
✔ Prevent Data Privacy Issues :- It is critical to address concerns regarding data privacy
and cloud security issues. By monitoring user access control and restricting access, there is
a lot of control that can be levied to ensure enhanced data security of the stored data.
✔ Data classification :- Classify data on multiple levels, such as sensitive, regulated, or
public, as it is created in the cloud. Once classified, data can be stopped from entering or
leaving the cloud service.
✔ Prevent Cloud Service Hijacking Issues :- Implement strong authentication policies for
accessing data on cloud services, especially those that deal with the sensitive information
of the company or its customers. Make sure the IP addresses are restricted for cloud
applications so that the users are only able to access corporate networks.
✔ Malicious behaviour identification :- Detect compromised accounts and insider threats
with user behavior analytics (UBA) so that malicious data exfiltration does not occur.
✔ Collaboration controls :- Manage controls within the cloud service, such as downgrading
file and folder permissions for specified users to editor or viewer, removing permissions,
and revoking shared links.
✔ Use Encryption :- Encrypting data before uploading it to the cloud is an excellent
precaution against threats from unwanted hackers. Use local encryption as an additional
layer of security.
✔ Apply Reliable Passwords :- introduce a two-step verification process to enhance the
security level of your data. Even if there is a breach in one security step, the other protects
the data. Use updated patch levels so that hackers cannot break-in easily.
✔ Test Your Security :- Testing might sound like a minor task, but it can make a significant
difference. Testing may include examining your cloud to see how well it is performing in
association with its security setup. You can also hire ethical hackers to test your system’s
security level and check if it has decayed over time; this may also provide a window to the
possible loopholes that may allow hacking from unknown sources.
✔ Risk Assessment :- Review and update risk assessments to include cloud services.
Identify and address risk factors introduced by cloud environments and providers. Risk
databases for cloud providers are available to expedite the assessment process.
✔ Malware Prevention :- Prevent malware from entering cloud services using techniques
such as file-scanning, application whitelisting, machine learning-based malware detection,
and network traffic analysis.
✔ Privileged Access :- Identify all possible forms of access that privileged accounts may
have to your data and applications, and put in place controls to mitigate exposure.

❖ Components of Cloud Computing

✔ Clients :- Clients in cloud computing are in general to the operation of Local Area
Networks (LAN’s). They are, typically, the computers that just sit on your desk. Clients
are interacting with to manage their information on the cloud.
✔ Data Centre :- A data centre is a facility that provides shared access to
applications and data using a complex network, compute, and storage infrastructure.
Industry standards exist to assist in designing, constructing, and maintaining data centre
facilities and infrastructures to ensure the data is both secure and highly available.
✔ Distributed Servers :- Distributed Servers is a server placement in a different
location. But the servers don't have to be housed in the same location. Often, servers are in
geographically disparate locations.
✔ Cloud Services :- Cloud Services, products, services and solutions that are used
and delivered real-time via internet media.
✔ Cloud Applications :- Cloud Applications, applications that use Cloud Computing
in software architecture so that users don't need to install but they can use the application
using a computer.
✔ Cloud Platform :- Cloud Platform, a service in the form of a computing platform
consisting of hardware and infrastructure software.
✔ Internet :- Internet is the medium using which the frontend and backend
components communicate and interact with each other.

❖ Elasticity in Cloud

The Elasticity refers to the ability of a cloud to automatically expand or compress the
infrastructural resources on a sudden-up and down in the requirement so that the workload
can be managed efficiently. This elasticity helps to minimize infrastructural cost. Cloud
Elasticity is the property of a cloud to grow or shrink capacity for CPU, memory, and storage
resources to adapt to the changing demands of an organization.
Cloud Elasticity can be automatic, without need to perform capacity planning in advance of the
occasion, or it can be a manual process where the organization is notified they are running low on
resources and can then decide to add or reduce capacity when needed. Monitoring tools offered by
the cloud provider dynamically adjust the resources allocated to an organization without impacting
existing cloud-based operations.

✔ Example :- Consider an online shopping site whose transaction workload increases during
festive season like Christmas. So for this specific period of time, the resources need a
spike up. In order to handle this kind of situation, we can go for Cloud-Elasticity service
rather than Cloud Scalability. As soon as the season goes out, the deployed resources can
then be requested for withdrawal.

❖ Benefits of Cloud Elasticity

✔ Agility: By eliminating the need to purchase, configure, and install new infrastructure
when demand changes, Cloud Elasticity prevents the need to plan for such unexpected
demand spikes, and enables organizations to meet any unexpected demand, whether due to
seasonal spike.
✔ Pay-as-needed pricing: Rather than paying for infrastructure whether or not is being
used, Cloud Elasticity enables organizations to pay only for the resources that are in use at
any given point tin time, closely tracking IT expenditures to the actual demand in real-
time.
✔ High Availability: Cloud elasticity facilitates both high availability and fault tolerance,
since VMs or containers can be replicated if they appear to be failing, helping to ensure
that business services are uninterrupted and that users do not experience downtime. This
helps ensure that users perceive a consistent and predictable experience, even as resources
are provisioned or deprovisioned automatically and without impact on operations.
✔ Efficiency: As with most automations, the ability to autonomously adjust cloud resources
as needed enables IT staff to shift their focus away from provisioning and onto projects
that are more beneficial to the organization.
✔ Speed/Time-to-market: organizations have access to capacity in minutes instead of the
weeks or months it may take through a traditional procurement process.
❖ Challenges in Cloud Elasticity

✔ Time to provision: Although cloud VMs can be spun up on-demand, there can still be a
lag time of up to several minutes before it is available for use. This may or not be enough
time base on a specific application or service demands, and can impact performance when
a sudden surge occurs, such as when a sign-on storm occurs at the beginning of the
business day.
✔ Cloud Provider Lock-in: Although all major public cloud providers offer Cloud
Elasticity solution, each are implemented differently, which cloud mean that organizations
are locked into a single vendor for their cloud needs.
✔ Security Impact: Cloud services that spin up and down in an elastic fashion can impact
existing security workflows and require them to be reimagined.
✔ Resource Availability: Cloud Elasticity does require modifications to existing cloud or
on-premises deployments. Organizations that do not outsource their IT management will
need to acquire technical expertise including architects, developers, and admins to help
ensure that a Cloud Elasticity plan is properly configured to meet the organization’s
specific needs.

❖ Cloud Scalability

Cloud scalability is used to handle the growing workload where good performance is also
needed to work efficiently with software or applications. Scalability is commonly used where
the persistent deployment of resources is required to handle the workload statically.

❖ Difference between Cloud Elasticity and Scalability

❖ Cloud Computing Service Providers

A few of the most popular cloud computing service providers include:


● Microsoft Azure
● Amazon Web Services (AWS)
● Google Cloud
● Alibaba Cloud
● IBM Cloud
● Oracle
● Salesforce
● SAP
● Rackspace Cloud
● VMWare

You might also like