Unit 1
Unit 1
Unit 1
Cloud Computing is the delivery of computing services such as servers, storage, databases,
networking, software, analytics, intelligence, and more, over the Cloud (Internet).
Cloud computing is the services provided on the Internet to store a vast amount of data in one
place and can be used from anywhere and from any place. This minimizes the cost of the
physical installation of the data centers and servers.
Some examples of cloud computing are −
Dropbox − It is a one-stop solution for all the services like file storage, sharing, and managing
the system.
Microsoft Azure − It provides a wide range of services like the backup of data and any sudden
recovery from any type of disaster.
The cloud environment provides an easily accessible online portal that makes handy for the user
to manage the compute, storage, network, and application resources. Some cloud service
providers are in the following figure.
o Cost: It reduces the huge capital costs of buying hardware and software.
o Speed: Resources can be accessed in minutes, typically within a few clicks.
o Scalability: We can increase or decrease the requirement of resources according to the business
requirements.
o Productivity: While using cloud computing, we put less operational effort. We do not need to
apply patching, as well as no need to maintain hardware and software. So, in this way, the IT
team can be more productive and focus on achieving business goals.
o Reliability: Backup and recovery of data are less expensive and very fast for business
continuity.
o Security: Many cloud vendors offer a broad set of policies, technologies, and controls that
strengthen our data security.
Types of Cloud Computing
o Public Cloud: The cloud resources that are owned and operated by a third-party cloud service
provider are termed as public clouds. It delivers computing resources such as servers, software,
and storage over the internet
o Private Cloud: The cloud computing resources that are exclusively used inside a single business
or organization are termed as a private cloud. A private cloud may physically be located on the
company’s on-site datacentre or hosted by a third-party service provider.
o Hybrid Cloud: It is the combination of public and private clouds, which is bounded together by
technology that allows data applications to be shared between them. Hybrid cloud provides
flexibility and more deployment options to the business.
Types of Cloud Services
1. Infrastructure as a Service (IaaS): In IaaS, we can rent IT infrastructures like servers and
virtual machines (VMs), storage, networks, operating systems from a cloud service vendor. We
can create VM running Windows or Linux and install anything we want on it. Using IaaS, we
don’t need to care about the hardware or virtualization software, but other than that, we do have
to manage everything else. Using IaaS, we get maximum flexibility, but still, we need to put
more effort into maintenance.
2. Platform as a Service (PaaS): This service provides an on-demand environment for developing,
testing, delivering, and managing software applications. The developer is responsible for the
application, and the PaaS vendor provides the ability to deploy and run it. Using PaaS, the
flexibility gets reduce, but the management of the environment is taken care of by the cloud
vendors.
3. Software as a Service (SaaS): It provides a centrally hosted and managed software services to
the end-users. It delivers software over the internet, on-demand, and typically on a subscription
basis. E.g., Microsoft One Drive, Dropbox, WordPress, Office 365, and Amazon Kindle. SaaS is
used to minimize the operational cost to the maximum extent.
Definition of Cloud
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.
There are the following operations that we can do using cloud computing:
o Developing new applications and services
o Storage, back up, and recovery of data
o Hosting blogs and websites
o Delivery of software on demand
o Analysis of data
o Streaming videos and audios
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.
Characteristics of Cloud Computing
The characteristics of cloud computing are given below:
1) Agility
The cloud works in a distributed computing environment. It shares resources among users
and works very fast.
High availability and reliability
The availability of servers is high and more reliable because the chances of infrastructure
failure are minimum.
3) High Scalability
Cloud offers "on-demand" provisioning of resources on a large scale, without having
engineers for peak loads.
4) Multi-Sharing
With the help of cloud computing, multiple users and applications can work more
efficiently with cost reductions by sharing common infrastructure.
5) Device and Location Independence
Cloud computing enables the users to access systems using a web browser regardless of their
location or what device they use e.g. PC, mobile phone, etc. As infrastructure is off-
site (typically provided by a third-party) and accessed via the Internet, users can connect
from anywhere.
6) Maintenance
Maintenance of cloud computing applications is easier, since they do not need to be installed
on each user's computer and can be accessed from different places. So, it reduces the cost
also.
7) Low Cost
By using cloud computing, the cost will be reduced because to take the services of cloud
computing, IT company need not to set its own infrastructure and pay-as-per usage of
resources.
Services in the pay-per-use mode
Application Programming Interfaces (APIs) are provided to the users so that they can access
services on the cloud by using these APIs and pay the charges as per the usage of services.
Evolution of Cloud Computing
The phrase “Cloud Computing” was first introduced in the 1950s to describe internet-related
services, and it evolved from distributed computing to the modern technology known as cloud
computing. Cloud services include those provided by Amazon, Google, and Microsoft. Cloud
computing allows users to access a wide range of services stored in the cloud or on the
Internet. Cloud computing services include computer resources, data storage, apps, servers,
development tools, and networking protocols.
Distributed
Systems
Distributed System is a composition of multiple independent systems but all of them are
depicted as a single entity to the users. The purpose of distributed systems is to share resources
and also use them effectively and efficiently. Distributed systems possess characteristics such
as scalability, concurrency, continuous availability, heterogeneity, and independence in
failures. 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.
Mainframe Computing
Mainframes which first came into existence in 1951 are highly powerful and reliable
computing machines. These are responsible for handling large data such as massive input-
output operations. Even today these are used for bulk processing tasks such as online
transactions etc. These systems have almost no downtime with high fault tolerance. 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 mainframe
technology.
Cluster Computing
In 1980s, cluster computing came as an alternative to mainframe computing. Each machine in
the cluster was connected to each other by a network with high bandwidth. These were way
cheaper than those mainframe systems. These were equally capable of high computations.
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. Thus. cloud computing is
often referred to as “Successor of grid computing”.
Virtualization
Virtualization was introduced nearly 40 years back. It refers to the process of creating a virtual
layer over the hardware which allows the user to run multiple instances simultaneously on the
hardware. It is a key technology used in cloud computing. It is the base on which major cloud
computing services such as Amazon EC2, VMware vCloud, etc work on. Hardware
virtualization is still one of the most common types of virtualization.
Web 2.0
Web 2.0 is the interface through which the cloud computing services interact with the clients.
It is because of Web 2.0 that we have interactive and dynamic web pages. It also increases
flexibility among web pages. Popular examples of web 2.0 include Google Maps, Facebook,
Twitter, etc. Needless to say, social media is possible because of this technology only. It
gained major popularity in 2004.
Service Orientation
A service orientation acts as a reference model for cloud computing. It supports low-cost,
flexible, and evolvable applications. Two important concepts were introduced in this
computing model. These were Quality of Service (QoS) which also includes the SLA (Service
Level Agreement) and Software as a Service (SaaS) .
Utility Computing
Utility Computing 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.
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 that is stored can be
files, images, documents, or any other storable document.
Underlaying principles of parallel and distributed computing
Parallel Computing:
In parallel computing multiple processors performs multiple tasks assigned to them
simultaneously. Memory in parallel systems can either be shared or distributed. Parallel
computing provides concurrency and saves time and money.
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.
There are mainly two computation types, including parallel computing and distributed
computing. A computer system may perform tasks according to human instructions. A single
processor executes only one task in the computer system, which is not an effective way. Parallel
computing solves this problem by allowing numerous processors to accomplish tasks
simultaneously. Modern computers support parallel processing to improve system performance.
In contrast, distributed computing enables several computers to communicate with one another
and achieve a goal. All of these computers communicate and collaborate over the network.
Distributed computing is commonly used by organizations such as Facebook and Google that
allow people to share resources.
In this article, you will learn about the difference between Parallel Computing and Distributed
Computing. But before discussing the differences, you must know about parallel computing and
distributed computing.
What is Parallel Computing?
It is also known as parallel processing. It utilizes several processors. Each of the processors
completes the tasks that have been allocated to them. In other words, parallel computing involves
performing numerous tasks simultaneously. A shared memory or distributed memory system can
be used to assist in parallel computing. All CPUs in shared memory systems share the memory.
Memory is shared between the processors in distributed memory systems.
Parallel computing provides numerous advantages. Parallel computing helps to increase the CPU
utilization and improve the performance because several processors work simultaneously.
Moreover, the failure of one CPU has no impact on the other CPUs' functionality. Furthermore,
if one processor needs instructions from another, the CPU might cause latency.
Advantages and Disadvantages of Parallel Computing
There are various advantages and disadvantages of parallel computing. Some of the advantages
and disadvantages are as follows:
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.
What is Distributing Computing?
It comprises several software components that reside on different systems but operate as a single
system. A distributed system's computers can be physically close together and linked by a local
network or geographically distant and linked by a wide area network (WAN). A distributed
system can be made up of any number of different configurations, such as mainframes, PCs,
workstations, and minicomputers. The main aim of distributed computing is to make a network
work as a single computer.
There are various benefits of using distributed computing. It enables scalability and makes it
simpler to share resources. It also aids in the efficiency of computation processes.
Advantages and Disadvantages of Distributed Computing
There are various advantages and disadvantages of distributed computing. Some of the
advantages and disadvantages are as follows:
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.
4. Head-to-head Comparison between the Parallel Computing and Distributed Computing
Features Parallel Computing Distributed Computing
Communication The processors communicate The computer systems connect with one another via
with one another via a bus. network.
Memory The system may have Each computer system in distributed computing has i
distributed or shared memory. own memory.
Usage It helps to improve the system It allows for scalability, resource sharing, and th
performance efficient completion of computation tasks.
Cloud characteristics
1. On-demand self-services: The Cloud computing services does not require any human
administrators, user themselves are able to provision, monitor and manage computing
resources as needed.
2. Broad network access: The Computing services are generally provided over standard
networks and heterogeneous devices.
3. Rapid elasticity: The Computing services should have IT resources that are able to scale out
and in quickly and on a need basis. Whenever the user require services it is provided to him
and it is scale out as soon as its requirement gets over.
4. Resource pooling: The IT resource (e.g., networks, servers, storage, applications, and
services) present are shared across multiple applications and occupant in an uncommitted
manner. Multiple clients are provided service from a same physical resource.
5. Measured service: The resource utilization is tracked for each application and occupant, it
will provide both the user and the resource provider with an account of what has been used.
This is done for various reasons like monitoring billing and effective use of resource.
6. Multi-tenancy: Cloud computing providers can support multiple tenants (users or
organizations) on a single set of shared resources.
7. Virtualization: Cloud computing providers use virtualization technology to abstract
underlying hardware resources and present them as logical resources to users.
8. Resilient computing: Cloud computing services are typically designed with redundancy and
fault tolerance in mind, which ensures high availability and reliability.
9. Flexible pricing models: Cloud providers offer a variety of pricing models, including pay-per-
use, subscription-based, and spot pricing, allowing users to choose the option that best suits
their needs.
10. Security: Cloud providers invest heavily in security measures to protect their users’ data and
ensure the privacy of sensitive information.
11. Automation: Cloud computing services are often highly automated, allowing users to deploy
and manage resources with minimal manual intervention.
12. Sustainability: Cloud providers are increasingly focused on sustainable practices, such as
energy-efficient data centers and the use of renewable energy sources, to reduce their
environmental impact.
Elasticity in Cloud
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 costs. This is not
applicable for all kinds of environments, it is helpful to address only those scenarios where the
resource requirements fluctuate up and down suddenly for a specific time interval. It is not
quite practical to use where persistent resource infrastructure is required to handle the heavy
workload.
The versatility is vital for mission basic or business basic applications where any split the
difference in the exhibition may prompts enormous business misfortune. Thus, flexibility
comes into picture where extra assets are provisioned for such application to meet the
presentation prerequisites.
It works such a way that when number of client access expands, applications are naturally
provisioned the extra figuring, stockpiling and organization assets like central processor,
Memory, Stockpiling or transfer speed what’s more, when fewer clients are there it will
naturally diminish those as
per prerequisite.
The Flexibility in cloud is a well-known highlight related with scale-out arrangements (level
scaling), which takes into consideration assets to be powerfully added or eliminated when
required.
It is for the most part connected with public cloud assets which is generally highlighted in pay-
per-use or pay-more only as costs arise administrations.
The Flexibility is the capacity to develop or contract framework assets (like process, capacity
or organization) powerfully on a case by case basis to adjust to responsibility changes in the
applications in an autonomic way.
It makes make most extreme asset use which bring about reserve funds in foundation costs in
general.
Relies upon the climate, flexibility is applied on assets in the framework that isn’t restricted to
equipment, programming, network, QoS and different arrangements.
The versatility is totally relying upon the climate as now and again it might become negative
characteristic where execution of certain applications probably ensured execution.
It is most commonly used in pay-per-use, public cloud services. Where IT managers are
willing to pay only for the duration to which they consumed the resources.
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 a Cloud-Elasticity service rather than
Cloud Scalability. As soon as the season goes out, the deployed resources can then be
requested for withdrawal.
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.
Example: Consider you are the owner of a company whose database size was small in earlier
days but as time passed your business does grow and the size of your database also increases,
so in this case you just need to request your cloud service vendor to scale up your database
capacity to handle a heavy workload.
It is totally different from what you have read above in Cloud Elasticity. Scalability is used to
fulfill the static needs while elasticity is used to fulfill the dynamic need of the organization.
Scalability is a similar kind of service provided by the cloud where the customers have to pay-
per-use. So, in conclusion, we can say that Scalability is useful where the workload remains
high and increases statically.
Types of Scalability:
1. Vertical Scalability (Scale-up) –
In this type of scalability, we increase the power of existing resources in the working
environment in an upward direction.
2. Horizontal Scalability: In this kind of scaling, the resources are added in a horizontal row.
3. Diagonal Scalability –
It is a mixture of both Horizontal and Vertical scalability where the resources are added both
vertically and horizontally.
It is a short term planning and adopted just to Scalability is a long term planning and
deal with an unexpected increase in demand adopted just to deal with an expected increase
4 or seasonal demands. in demand.