2.Introduction to Distributed Computing and Cloud Computing - Copy
2.Introduction to Distributed Computing and Cloud Computing - Copy
Key Idea: Tasks are divided into smaller parts and executed
simultaneously on different machines.
•Client:
•End-user device requesting services.
•Examples: Browsers, mobile apps.
•Server:
•Provides resources and services to clients.
•Examples: Web servers, database servers.
•Middleware:
•Software layer facilitating communication between clients and
servers.
•Examples: RPC (Remote Procedure Call), Message Queues.
•Network:
•Connects all components, enabling data transfer.
•Examples: LAN, WAN, the Internet
Client-Server
Architecture
•Key Features:
•Centralized server for resource
management.
•Clients act as interfaces for users.
•Advantages:
•Easier management and maintenance.
•Centralized security control.
•Disadvantages:
•Single point of failure.
•Scalability challenges.
Peer-to-Peer (P2P)
Architecture
•Key Features:
•Decentralized system; each node acts
as both client and server.
•Advantages:
•No single point of failure.
•Highly scalable.
•Disadvantages:
•Complex to manage.
•Security challenges.
Three-Tier
Architecture
Layers:
Advantages:
Disadvantages:
Increased complexity.
Service-Oriented
Architecture (SOA)
•Key Features:
•Services are loosely coupled and reusable.
•Communication via standard protocols (e.g.,
HTTP, REST).
•Advantages:
•High flexibility.
•Supports diverse platforms.
•Disadvantages:
•Overhead in communication.
•Dependency on middleware.
Middleware in
Distributed Systems
•Definition:
Middleware is software that acts as a bridge
between client and server applications.
•Functions:
•Data translation.
•Load balancing.
•Authentication and security.
•Examples:CORBA, Apache Kafka, RabbitMQ.
Examples of Distributed
Systems
• The Internet: A global distributed system.
• Blockchain Networks: Secure and decentralized.
• Distributed Databases: E.g., Apache Cassandra,
MongoDB.
• Scientific Computing: Weather forecasting, protein
folding simulations.
Challenges in Distributed Computing
Architecture
1.Concurrency: Managing simultaneous processes.
2.Fault Tolerance: Ensuring reliability despite failures.
3.Security: Protecting data across systems.
4.Scalability: Handling increased loads efficiently.
5.Latency: Reducing delays in communication.
Future Trends
• Edge Computing: Processing data closer to its source.
• Serverless Architectures: Focus on code, not
infrastructure.
• AI in Distributed Systems: Improved fault tolerance
and decision-making.
Types of Cloud Services (Cloud
Models)
•CaaS
•Containers as a service, or CaaS, delivers and manages all the hardware and software
resources to develop and deploy applications using containers. Sometimes viewed as a subset
or an extension of IaaS, CaaS uses containers rather than VMs as its main resource.
Developers and IT operations teams can use CaaS to develop, run, and manage applications
without having to build and maintain the infrastructure or platform to run and manage
containers. Customers still have to write the code and manage their data and applications, but
the environment to build and deploy containerized apps is managed and maintained by the
cloud service provider.
Cloud Models
•PaaS
•Platform as a service, or PaaS, delivers and manages all the hardware and software resources
to develop applications through the cloud. Developers and IT operations teams can use PaaS to
develop, run, and manage applications without having to build and maintain the infrastructure
or platform on their own. Customers still have to write the code and manage their data and
applications, but the environment to build and deploy apps is managed and maintained by the
cloud service provider.
•SaaS
•Software as a service, or SaaS, provides the entire application stack, delivering an entire cloud-
based application that customers can access and use. SaaS products are completely managed
by the service provider and come ready to use, including all updates, bug fixes, and overall
maintenance. Most SaaS applications are accessed directly through a web browser, which
means customers don’t have to download or install anything on their devices.
Key differences between cloud
IaaS, PaaS, SaaS, and CaaS
Scenarios
On-premises: If you decide to build your house from scratch, you do everything yourself. You’ll need to source the raw materials and
tools, put everything together, and run to the store every time you need anything. This is similar to running an application on-
premises, where you own everything from the hardware to your applications and scaling.
Infrastructure as a service: If you are busy, you might consider hiring a contractor to do the work. You tell them how you want the
house to look and how many rooms you want, and they take the instructions and build your home. IaaS works in a similar way for your
applications. You rent the hardware to run your application on, but you are responsible for managing the OS, runtime, scale, and all the
data. Example: Compute Engine
Containers as a service: If buying a home is just too much work due to the maintenance it comes with, you can choose to rent
instead. The basic utilities are included, but you bring your own furniture and make the space yours. With containers, you can bring a
containerized application, so you don't have to worry about the underlying operating system but still have control over scale and
runtime. Example: Google Kubernetes Engine (GKE)
Platform as a service: If you don’t want to worry about furnishing your living space, you can rent a furnished house. PaaS lets you
bring your own code and deploy it but leaves the server management and scaling up to the cloud provider. Examples: App Engine,
Cloud Run
Function as a service: If you just need a small dedicated place to work away from your home, you can rent a desk in a coworking
workspace. Similarly, FaaS allows you to build and deploy a small piece of code, or a function, that performs a specific task. The cloud
provider adds scale if needed when a function executes. Example: Cloud Functions
Software as a service: Now, imagine you move into a finished house (rented or purchased), but you have to pay for upkeep, such as
cleaning or lawn care. SaaS is the same—you pay to use a complete application for a specific purpose that is managed, maintained,
and secured by the cloud provider, but you are responsible for taking care of your own data. Example: Google Workspace
Benefits of Cloud Computing
Distributed
Aspect Cloud Computing
Computing
Systems working Services delivered via
Definition
together. the internet.
Collaboration of On-demand service
Focus
systems. delivery.
Infrastructu Decentralized, multiple
Centralized or hybrid.
re machines.
Blockchain, distributed AWS, Google Cloud,
Examples
databases. Azure.
Real-World Applications
Distributed Cloud
Computing: Computing:
• High- • Hosting websites
performance and apps.
computing • Data backup and
(HPC). disaster
• Content delivery recovery.
networks (CDNs).
Challenges
• Distributed Computing:
• Complexity in synchronization.
• Debugging and fault tolerance.
• Cloud Computing:
• Data privacy concerns.
• Dependency on internet connectivity.
Conclusion