Introduction to Cloud and Distributed Systems

Welcome to one of the most exciting parts of the A.2 Networks topic! In the past, if you wanted to run a powerful program or store a massive file, you needed a powerful computer right in front of you. Today, we use "The Cloud" and "Distributed Systems" to do the heavy lifting for us. This chapter explores how computers work together across distances to make our digital lives faster and more reliable.

Don't worry if these terms sound a bit "airy" or abstract right now. By the end of these notes, you’ll see that they are just clever ways of organizing computers to solve problems more efficiently.


1. Distributed Systems: The Power of the Team

A distributed system is a collection of independent computers that appear to the user as a single, coherent system. Think of it like a professional kitchen: you have many different chefs (computers) doing different jobs, but to the customer (the user), they just see a delicious meal arriving at their table.

How they work:

In a distributed system, hardware and software components are located on different networked computers. These computers communicate and coordinate their actions by passing messages to one another. There is no single "master" clock; instead, they work together to achieve a common goal.

Key Characteristics:

  • Concurrency: Multiple tasks are processed at the same time across different machines.
  • No Global Clock: Each computer has its own timing, but they synchronize through communication.
  • Independent Failure: If one computer in the system crashes, the rest of the system can usually keep working. This is known as fault tolerance.

Analogy: Imagine you are writing a massive book. If you do it alone, it takes a year. If you "distribute" the task to 10 friends, each writing one chapter, you finish much faster. If one friend gets sick, the other nine can still keep working!

Quick Review: Distributed systems use multiple machines to increase speed and reliability, making sure that one single failure doesn't stop the whole process.


2. Cloud Computing: Accessing Resources on Demand

While a distributed system describes how the computers are organized, Cloud Computing describes a specific service model. It is the delivery of computing services—including servers, storage, databases, networking, and software—over the internet ("the cloud").

Instead of owning and maintaining physical data centers and servers, you "rent" computing power from providers like Amazon (AWS), Google (Google Cloud), or Microsoft (Azure).

Why do we use the Cloud?

  • Scalability: If your website suddenly gets a million visitors, you can instantly add more "virtual" servers to handle the traffic. This is called elasticity.
  • Cost-Effectiveness: You only pay for what you use (a "pay-as-you-go" model). You don't have to buy expensive hardware upfront.
  • Accessibility: You can access your data from any device, anywhere in the world, as long as you have an internet connection.

Did you know? "The Cloud" isn't actually in the sky. It's just a huge building (a data center) filled with thousands of servers, usually located in a place with cheap electricity and cool weather!

Key Takeaway: Cloud computing is about convenience and flexibility—letting someone else manage the hardware while you use the service.


3. Comparing Local vs. Cloud/Distributed Systems

Students often wonder why we don't just put everything in the cloud. Here is a simple breakdown of the trade-offs:

Local Computing (On-Premise):
- Pros: Total control over security, works without internet, no monthly subscription fees.
- Cons: Expensive to upgrade, takes up physical space, if the hardware breaks, you lose everything.

Cloud/Distributed Computing:
- Pros: Easy to grow (scalability), automatic backups, lower upfront costs.
- Cons: Requires a stable internet connection, potential privacy concerns (your data is on someone else's server), ongoing costs.


4. Important Concepts for Exams

When you are answering questions about cloud and distributed systems in your Paper 1 exam, keep these three "abilities" in mind:

1. Availability

This is the percentage of time the system is "up" and running. High-quality cloud services aim for "five nines" availability, which means they are working \(99.999\%\) of the time.

2. Reliability

This refers to the system's ability to perform its function without failure. Distributed systems use redundancy (keeping copies of data in different places) to ensure that if one part fails, the data is still safe.

3. Scalability

This is the ability of the system to handle a growing amount of work.
- Vertical Scaling: Making a single machine more powerful (adding RAM).
- Horizontal Scaling: Adding more machines to the network (this is what distributed systems do best!).

Common Mistake: Don't confuse "The Internet" with "The Cloud." The Internet is the network (the pipes), while the Cloud is a service (the water running through the pipes) that uses that network.


Summary Checklist

Before you move on to the next chapter, make sure you can:

  • Define a distributed system as a collection of independent computers working together.
  • Explain that Cloud Computing is the on-demand delivery of services over the internet.
  • Identify Scalability and Redundancy as major benefits of these systems.
  • Compare the benefits of storing data locally versus in the cloud.

For more information on how these systems stay safe, check out the next chapter on Network security and encryption!