You are on page 1of 13

FAZAIA COLLEGE OF EDUCATION FOR WOMEN, LAHORE

CANTT

Parallel And Distributed Computing

Submitted to: Ma’am Samia Rafique


Submitted by: Mehreen Ashraf, Namra Nawaz,
Hafsa Butt and Sehar Nadeem
Topic: Cloud Computing
Discipline: BSCS –VII
Session: 2020-2024
Date of submission: 14th November, 2023
Cloud Computing

Introduction
Cloud computing refers to any kind of hosted service delivered over the internet. These services
often include servers, databases, software, networks, analytics and other computing functions
that can be operated through the cloud. Files and programs stored in the cloud can be accessed
anywhere by users on the service, eliminating the need to always be near physical hardware. In
the past, for example, user-created documents and spreadsheets had to be saved to a physical
hard drive, USB drive or disk. Without some kind of hardware component, the files were
completely inaccessible outside the computer they originated on.

Cloud Computing Architecture


Cloud computing technology is used by both small and large organizations to store the
information in cloud and access it from anywhere at anytime using the internet connection.
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

Front End
The front end is used by the client. It contains client-side interfaces and applications that are
required to access the cloud computing platforms. The front end includes web servers (including
Chrome, Firefox, internet explorer, etc.), thin & fat clients, tablets, and mobile devices.
Back End
The back end is used by the service provider. It manages all the resources that are required to
provide cloud computing services. It includes a huge amount of data storage, security
mechanism, virtual machines, deploying models, servers, traffic control mechanisms, etc.

Virtualization in Cloud Computing


Virtualization in cloud computing is a fundamental concept that involves creating virtual
instances or representations of physical resources, such as servers, storage devices, or
networking components. It allows multiple virtual machines (VMs) or virtualized resources to
run on a single physical server or hardware infrastructure. This technology enables efficient
resource utilization, isolation, and flexibility in managing cloud-based services.

key aspects of virtualization in cloud computing include:

 Hypervisor: A hypervisor, also known as a virtual machine monitor (VMM), is a software or


hardware layer that manages and orchestrates virtual machines. It allows multiple VMs to run
independently on the same physical hardware.
 VMs: Virtual machines are complete, isolated operating system instances that run on
virtualized hardware. They can be provisioned, scaled, and managed independently, making
them a crucial building block in cloud computing.
 Resource Pooling: Virtualization allows for the pooling of physical resources (CPU,
memory, storage, etc.) across multiple VMs, making it possible to efficiently allocate and
reallocate resources based on demand.
 Isolation: Virtualization provides isolation between VMs, ensuring that one VM's operation
does not affect others. This isolation enhances security and reliability in cloud environments.

Memory Allocation and Deallocation


Memory allocation in cloud computing involves setting aside a portion of a computer's RAM
(memory) for a specific task or application. This reserved memory is used for storing data,
instructions, or program variables. Efficient memory allocation is critical to ensure that various
cloud-based services and applications can run simultaneously without overloading the system's
memory. Cloud providers use sophisticated algorithms to distribute memory resources effectively
to different virtual machines or processes based on their needs, ensuring smooth and reliable
operation.
Memory Deallocation is like rearranging your cloud closet. After it has done using memory,
software needs to return it to the system. If not, the closet gets messy and less space is available
for future programs. Memory deallocation is essentially just putting things back where they
belong when you're done. It keeps the cloud organized and prevents memory waste. If you don't
deallocate, your possessions will remain in the closet eternally, and eventually there won't be any
room for anything new.

Resource Sharing and Isolation in Cloud Computing


Resource sharing in cloud computing refers to the practice of efficiently utilizing a common pool
of computing resources, such as CPU, memory, storage, and network bandwidth, among multiple
users or applications. Cloud providers manage and allocate these resources dynamically to
ensure that they are used optimally, reducing wastage and cost. Efficient resource sharing is a
key aspect of cloud computing, enabling cost savings and flexibility.
For example, a cloud service may run multiple virtual machines (VMs) on the same physical
server, allowing different users or applications to share the server's computing power

Resource isolation also known as resource segmentation, is the practice of ensuring that the
computing resources allocated to one user or application in the cloud are separate and isolated
from those of others. This isolation is crucial to prevent interference, unauthorized access, and
security breaches. In a cloud environment, each user or application should not be able to access
or affect the resources allocated to others.
For example: In a multi-tenant cloud, strong resource isolation safeguards one user's virtual
machine from accessing another user's data or resources, preserving data privacy and security
Dynamic Memory Allocation
Dynamic memory allocation in cloud computing refers to the ability to allocate and deallocate
memory (RAM) resources on-demand based on the requirements of applications, virtual
machines, or workloads. It allows cloud providers to efficiently manage and share memory
resources among multiple users and applications in a flexible manner.

Benefits of Dynamic Memory Allocation


 Efficient Resource Utilization: Dynamic memory allocation optimizes resource usage by
allocating memory as needed, preventing over-provisioning or under-utilization.
 Scalability: Cloud providers can scale memory resources up or down based on workload
demands, ensuring applications have the required memory without unnecessary overhead.
 Cost Savings: Efficient memory allocation reduces costs by minimizing wasted resources
and allowing users to pay only for what they use.
 Performance Optimization: By adjusting memory allocations in real-time, cloud services
can maintain high performance and responsiveness for applications.

Drawbacks of Dynamic Memory Allocation


 Resource Contention: In a multi-tenant cloud environment, dynamic memory allocation can
lead to resource contention, potentially impacting application performance if not managed
properly.
 Complexity: Managing dynamic memory allocation can be complex, requiring sophisticated
resource management and allocation policies.
 Memory Over commitment: Overcommitting memory resources can lead to performance
issues if not properly monitored, as excessive allocation may result in memory exhaustion.
 Security Risks: Inadequate isolation and improper memory deallocation can pose security
risks, potentially allowing unauthorized access to sensitive data.

Memory Balancing
Load Balancing for Memory Resources
Load balancing for memory resources is the practice of distributing memory workloads evenly
across a cluster of servers or virtual machines to ensure efficient utilization and prevent
performance bottlenecks. This helps maintain a balanced memory usage pattern, optimizing the
overall system's performance.
Strategies for efficient memory utilization
These strategies are essential in ensuring efficient memory utilization in various computing
environments, including virtualized systems and cloud computing.
 Memory Ballooning: Adjust memory allocations to virtual machines based on real-time
demand, reallocating memory resources where needed to optimize utilization.
 Dynamic Memory Allocation: Allocate and deallocate memory resources on-demand,
scaling memory to match application or workload requirements, preventing over-
provisioning.
 Memory Paging: Divide memory into fixed-size blocks (pages) and swap them between
RAM and disk when not actively in use, optimizing RAM usage.
 Memory Swapping: Move entire processes or application data between RAM and disk to
free up memory for more critical tasks, enhancing overall system stability.
 Memory Over commitment: Allocate more memory than physically available by relying on
statistical analysis of resource usage, while closely monitoring and managing memory to
avoid performance degradation.
 Memory Mirroring: Duplicate memory content across multiple memory modules to
enhance data redundancy and fault tolerance, primarily used in high-availability systems.
 Transparent Page Sharing: Identify and share identical memory pages across multiple
instances or virtual machines to reduce redundant memory usage, saving memory resources.

Elastic Memory in Cloud Computing


Automatic scaling of memory based on demand
Elastic memory in cloud computing enables automatic adjustment of RAM allocated to virtual
machines or applications in response to real-time demand. When more memory is needed, it's
allocated on-the-fly to ensure optimal performance. Conversely, surplus memory is automatically
reclaimed when demand decreases. This dynamic management optimizes resource usage,
enhances performance, and ensures cost-efficient resource allocation. Users only pay for the
memory they use, making it a flexible and cost-effective solution in cloud computing.
Implementation Challenges and Solutions
Implementing elastic memory in cloud computing comes with several challenges:
 Resource Monitoring:
Monitoring memory usage in real time and detecting spikes in demand is crucial. Cloud
providers use sophisticated monitoring tools and algorithms to track memory utilization.
 Resource Allocation Policies:
Developing intelligent resource allocation policies that can adapt to changing memory needs is
essential. Machine learning and predictive analytics can help optimize allocation decisions.
 Resource Reclamation:
Effective memory reclamation mechanisms are needed to release memory when it's no longer
needed. Techniques like memory ballooning and transparent page sharing can assist in efficient
memory reclamation.
 Security and Isolation:
Ensuring that dynamic memory allocation doesn't compromise security and isolation is vital.
Strong isolation mechanisms and encryption are used to protect data and ensure that one user's
memory allocation cannot be accessed by another.
 Cost Management:
Users must be billed accurately for their memory usage. Cloud providers often use pay-as-you-
go pricing models to align costs with actual resource consumption.

Benefits of Cloud Computing


Cloud storage also comes with a number of other benefits. Business leaders have reported the top
benefits of cloud computing to be increased efficiency, faster deployment, collaboration
tools, security and remote accessibility, according to Statista.Memory management in cloud
computing shares many principles with traditional computing systems but has some unique
aspects due to the distributed and virtualized nature of cloud environments. Here are key
considerations in memory management architecture for cloud computing:
Virtualization: Cloud environments heavily rely on virtualization technologies such as
hypervisors and containers. These technologies create virtual instances of computing resources,
including memory, allowing multiple workloads to run on the same physical hardware.
Resource Pooling: Cloud provider’s pool and share computing resources, including memory,
among multiple users and applications. This pooling allows for efficient utilization and
scalability.
Elasticity: Cloud services are designed to be elastic, meaning that resources, including memory,
can be dynamically allocated and deallocated based on demand. This flexibility ensures optimal
performance and cost efficiency.
On-Demand Self-Service: Cloud users can provision and manage memory resources as needed
without requiring manual intervention from the cloud provider. This self-service aspect is a
fundamental characteristic of cloud computing.
Auto-Scaling: Cloud platforms often support auto-scaling, where the system automatically
adjusts the number of resources, including memory, based on workload fluctuations. This helps
maintain performance during periods of increased demand and reduces costs during periods of
lower demand.
Fault Tolerance: Cloud environments prioritize fault tolerance, and memory management plays
a role in ensuring that applications can recover from failures. Techniques like redundant data
storage and load balancing contribute to overall system reliability..

Types of Cloud Computing

Public Cloud
This is the most common and all of the players in cloud computing (Amazon, Microsoft, Apple
and Google) run public clouds accessible anywhere with login credentials and the right web app.
Private Cloud
This model offers the same kind of flexibility as the public cloud, but with the infrastructure
needs (hosting, data storage, IT staff, etc.) provided by the companies or users of the service.
Additionally, the restricted access and hands-on management of hosting gives the private model
an extra layer of security.
Hybrid Cloud
Hybrid cloud computing is a combination of the public and private models. Two cloud types are
linked over the internet and can share resources when needed (for example, if the private cloud
reaches storage capacity or becomes corrupted, the public cloud can step in and save the day).
Community Cloud
Infrastructure is shared by several organizations with common computing concerns, such as
regulatory compliance and industry standards. It is less common than public, private, and hybrid
clouds but may be suitable for certain collaborative efforts.

Advantages
Cloud computing offers numerous advantages that have made it a popular choice for businesses
and individuals. Here are some key advantages of cloud computing:
Cost Efficiency
Pay-as-You-Go Model: Users pay only for the resources they consume, allowing for cost
savings by eliminating the need for upfront investments in hardware and infrastructure.
Economies of Scale: Cloud providers benefit from economies of scale, which can result in lower
costs for users due to the large scale and efficiency of their operations.
Scalability
Cloud resources can be easily scaled up or down based on demand. This flexibility allows
organizations to adapt to changing workloads without over-provisioning or under-provisioning
resources.
Flexibility and Accessibility
Cloud services can be accessed from anywhere with an internet connection. This enables remote
work, collaboration, and flexibility in accessing applications and data across different devices.
Reliability and Availability
Cloud providers typically offer high levels of reliability and availability through redundancy and
backup mechanisms. This helps ensure that applications and data are accessible even in the case
of hardware failures.
Automatic Updates
Cloud service providers handle system maintenance, updates, and patches, reducing the burden
on users and IT teams. This ensures that the latest features, security patches, and improvements

Disadvantage
While cloud computing offers numerous advantages, it also comes with certain disadvantages
and challenges that organizations need to consider. Here are some common disadvantages of
cloud computing.
Security Concerns
Security is a significant concern, and some organizations may be hesitant to trust third-party
providers with sensitive data. Although cloud providers invest heavily in security, breaches can
still occur, and there may be concerns about data privacy and compliance with regulations.
Downtime and Service Outages
Cloud services are not immune to downtime or outages. If the cloud provider experiences
technical issues or maintenance activities, it can affect the availability of services, leading to
potential disruptions for users.
Limited Customization and Control
Organizations may have limited control over the infrastructure and configurations in a public
cloud environment. This lack of control can be a disadvantage for those who require highly
customized or specialized computing environments
Dependence on Internet Connectivity
Access to cloud services relies on internet connectivity. If there are connectivity issues or the
internet goes down, users may experience disruptions in accessing their applications and data.
Lack of Standardization
The lack of standardization in cloud computing services and platforms can create challenges for
interoperability and data portability between different providers.
Potential for Data Loss
Although cloud providers implement backup and redundancy measures, data loss is still a
possibility. Accidental deletions, service provider errors, or other unforeseen events could result
in data loss.

Applications
Cloud computing finds application across a wide range of industries and use cases due to its
flexibility, scalability, and cost-effectiveness. Here are some common applications of cloud
computing:
Web-Based Email Services
Services like Gmail, Outlook, and Yahoo Mail leverage cloud computing to store and manage
email data. Users can access their emails from any device with an internet connection.
Data Storage and Backup
Cloud storage services such as Dropbox, Google Drive, and Microsoft OneDrive allow users to
store and back up their data securely in the cloud. This eliminates the need for physical storage
devices and provides accessibility from anywhere.
Content Delivery and Streaming
Content delivery networks (CDNs) use cloud computing to efficiently distribute and deliver
multimedia content, such as videos and streaming services, to users globally. Examples include
Netflix and YouTube.

Development and Testing Environments


Cloud platforms like AWS, Azure, and Google Cloud provide scalable and on-demand
infrastructure for software development, testing, and deployment. Developers can quickly
provision resources and scale their applications as needed.
Big Data Analytics
Cloud computing facilitates the processing and analysis of large datasets using tools like Apache
Hadoop and Spark. Organizations can leverage cloud-based analytics services for real-time
insights and decision-making.
Internet of Things (IoT)
Cloud platforms provide scalable and reliable infrastructure for managing and analyzing data
generated by IoT devices. This includes collecting, processing, and storing data from sensors and
connected devices.

Artificial Intelligence and Machine Learning


Cloud services offer the computational power and resources required for training and deploying
machine learning models. Platforms like AWS SageMaker and Google AI Platform enable
organizations to implement AI solutions
Collaboration and Communication Tools
Cloud-based collaboration tools like Microsoft Teams, Slack, and Google Workspace enable
seamless communication and collaboration among team members, regardless of their physical
location.
E-commerce Platforms
Online retailers use cloud computing to host and scale their e-commerce platforms. This allows
them to handle varying levels of web traffic, manage inventory, and provide a seamless shopping
experience.
Healthcare Information Systems
Cloud computing supports the storage and retrieval of electronic health records (EHRs) and
facilitates collaborative healthcare solutions. It enables healthcare providers to access patient
data securely.
Financial Services
Cloud computing is used in the financial industry for applications such as risk management,
fraud detection, and algorithmic trading. It provides the computational power needed for
complex financial analytics.

Future of Cloud Computing


As we rapidly approach the end of 2022, it is time to start looking ahead to the future of cloud
computing from 2025 to 2030. Here are some predictions for what we can expect to see in the future
of cloud computing:
The continued rise of hybrid and multi-cloud
As businesses become more comfortable with using multiple cloud providers, we will see a
continued increase in the use of hybrid and multi-cloud strategies. This will allow organizations
to more easily take advantage of the best features and services of each provider.
The growth of edge computing
With the continued expansion of the Internet of Things, there will be an increasing need for
processing power at the edge of the network. This will lead to more adoption of edge computing
architectures, which can provide lower latency and higher performance than traditional
centralized cloud models.

AI and machine learning


Cloud providers will continue to invest heavily in artificial intelligence and machine learning
technologies. This will allow them to offer more advanced features and services, such as
automatic scaling and self-healing systems.
 Greater focus on security
As cloud usage continues to grow, so too will the importance placed on security. We can expect
to see more investment in security technologies, as well as stricter controls on who has access to
data and how it can be used.
 Continued price wars
With so many providers competing for market share, we can expect to see continued price wars
in the cloud computing space. It will benefit consumers as prices for services continue to drop.
 Increased regulation
As cloud services become more ubiquitous, we can expect to see increased regulation around
data privacy, security, and other issues. This will help ensure that users' rights are protected and
that providers are held accountable for their actions.
Conclusion
Cloud computing will affect large part of computer industry including Software companies,
Internet service providers. Cloud computing makes it very easy for companies to provide their
products to end-user without worrying about hardware configurations and other requirements of
servers. The cloud computing and virtualization are distinguished by the fact that all of the
control plane activities that center around creation, management, and maintenance of the virtual
environment, are outsourced to an automated layer that is called as an API and other
management servers for the cloud management. On the other hand, in cloud computing, the
activities are self-managing where an API (Application Program Interface) is used so that the
users can self-consume the cloud service.

You might also like